Нужен совет по поводу хранения данных

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Citius
Обычный пользователь
Обычный пользователь
 
Сообщения: 74
Зарегистрирован: 09.11.2005 (Ср) 9:36
Откуда: Украина

Нужен совет по поводу хранения данных

Сообщение Citius » 24.08.2007 (Пт) 20:20

Здравствуйте, мне необходим Ваш совет.
У меня есть набор данных "Сайт", "поисковая система", "дата", "поисковый запрос", так вот как мне их сохранять в каком формате, какие технологии использовать.
Стоит так же учесть, что все эти данные должны быть доступными и легко находимыми, так как буду не только лежать мертвым грузом, как архив, но и активно использоваться, редактироваться, анализироваться.

Жду красивого обоснованного ответа с примерами.

VVitafresh
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1641
Зарегистрирован: 12.05.2005 (Чт) 14:44
Откуда: Херсон, UA

Сообщение VVitafresh » 24.08.2007 (Пт) 20:24

Сначала красиво и обоснованно расшифруй, что ты продразумеваешь под
набор данных "Сайт", "поисковая система", "дата", "поисковый запрос"
Никакую проблему невозможно решить на том же уровне, на каком она возникла. Нужно стать выше этой проблемы, поднявшись на следующий уровень.

Citius
Обычный пользователь
Обычный пользователь
 
Сообщения: 74
Зарегистрирован: 09.11.2005 (Ср) 9:36
Откуда: Украина

Сообщение Citius » 24.08.2007 (Пт) 21:33

VVitafresh
Так что же здесь непонятного? Сайт - название сайта, позицию которого необходимо найти в поисковой системе по поисковому запросу, зафиксировать дату поиска и сохранить, а в дальнейшем эта информация будет использоваться для построения графиков и анализа.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 24.08.2007 (Пт) 21:42

Хеад:
DWORD - Кол-записей
DWORD - Смещение основной таблицы
DWORD - смещение кучи строк
DWORD - размер записи в основной таблице (на случай модификации формата).
DWORD - размер кучи строк

Основная таблица:
DWORD - RVA строки "сайт"
DWORD - RVA строки "поисковая система"
DWORD - RVA строки "поисковой запрос"
QWORD - Дата/вреия

Куча строк:
сJoin-нные 0-символом вместе строки.


З.Ы. Чую, XML-щики готовят ответный удар :)
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

VVitafresh
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1641
Зарегистрирован: 12.05.2005 (Чт) 14:44
Откуда: Херсон, UA

Сообщение VVitafresh » 24.08.2007 (Пт) 21:55

Citius, т.е. у тебя обычная таблица и ты не знаешь как её хранить?

MS Access, Excel для твоих целей подходит?
Если да, то информации по работе с ними на этом форуме предостаточно (напр. через ADO).

А если хочешь чего-то экзотического, то это по части Хакера :)
Никакую проблему невозможно решить на том же уровне, на каком она возникла. Нужно стать выше этой проблемы, поднявшись на следующий уровень.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 24.08.2007 (Пт) 22:14

PE-, PAK-, ZIP-, BMP-, WAV-форматы - оказывается крайне экзотические вещи...
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

VVitafresh
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1641
Зарегистрирован: 12.05.2005 (Чт) 14:44
Откуда: Херсон, UA

Сообщение VVitafresh » 24.08.2007 (Пт) 22:16

Эти форматы не экзотика (и их использование тоже). Экзотикой для меня является разработка своего собственного формата.
Никакую проблему невозможно решить на том же уровне, на каком она возникла. Нужно стать выше этой проблемы, поднявшись на следующий уровень.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 24.08.2007 (Пт) 22:18

Не надо его разрабатывать. Я его уже разработал. См. мой первый пост.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

dr.MIG
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1441
Зарегистрирован: 18.12.2004 (Сб) 9:53
Откуда: г.Ярославль

Сообщение dr.MIG » 25.08.2007 (Сб) 0:24

Как уже говорил Хакер - я бы выбрал XML, так как данные будут представлены в более 'наглядном' виде + возможность построения отчётов, используя XSLT + готовые инструменты для работы с XML.
Salus populi suprema lex

Citius
Обычный пользователь
Обычный пользователь
 
Сообщения: 74
Зарегистрирован: 09.11.2005 (Ср) 9:36
Откуда: Украина

Сообщение Citius » 25.08.2007 (Сб) 0:24

Я наверное остановлюсь на Excel хотя скорее это не особо целесообразно :roll:

И все же интересно Хакер то что ты написал в первом посте это из какой оперы??? :shock:

Citius
Обычный пользователь
Обычный пользователь
 
Сообщения: 74
Зарегистрирован: 09.11.2005 (Ср) 9:36
Откуда: Украина

Сообщение Citius » 25.08.2007 (Сб) 0:25

dr.MIG писал(а):Как уже говорил Хакер - я бы выбрал XML, так как данные будут представлены в более 'наглядном' виде + возможность построения отчётов, используя XSLT + готовые инструменты для работы с XML.


Интересный момент :) думаю я пересмотрю свое первое решение :)

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 25.08.2007 (Сб) 0:37

И все же интересно Хакер то что ты написал в первом посте это из какой оперы???


Из оперы элементарных базовых знаний.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

FaKk2
El rebelde gurú
El rebelde gurú
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Сообщение FaKk2 » 25.08.2007 (Сб) 2:27

Хакер писал(а):PE-, PAK-, ZIP-, BMP-, WAV-форматы - оказывается крайне экзотические вещи...


Да только ниодин из них не используется в качестве контейнера для хранения и обработки текстовых данных.

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Сообщение Twister » 25.08.2007 (Сб) 6:40

Да только ниодин из них не используется в качестве контейнера для хранения и обработки текстовых данных.
Да, они используются для хранения двоичных данных. А чем текстовые отличаются от вышеназванных? Тем что содержат только печатные символы + Chr(13) + Chr(10). Следовательно, Хакер предложил универсальный вариант.

Еще: для бысторого поиска относительно большие блоки данных можно (и нужно) хранить в двусвязных списках.

я бы выбрал XML
Если важна скорость обработки данных, то не стоит.
А я все практикую лечение травами...

dr.MIG
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1441
Зарегистрирован: 18.12.2004 (Сб) 9:53
Откуда: г.Ярославль

Сообщение dr.MIG » 25.08.2007 (Сб) 17:04

Скорость? В данном случае объём информации явно невелик. ИМХО, даже на моём пк (проц. 1200 МГц) разительного отличия не будет, не говоря уже о современных машинах. Для меня бы первостепенным было удобство дальнейшей работы - построение отчётов и лёгкость изменения их внешнего вида даже без изменения кода программы.
Salus populi suprema lex

VVitafresh
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1641
Зарегистрирован: 12.05.2005 (Чт) 14:44
Откуда: Херсон, UA

Сообщение VVitafresh » 25.08.2007 (Сб) 19:21

Citius, вот тебе очень простой пример для работы с твоей таблицей через ADO. Никаких проверок правильности ввода и обработок ошибок нет, это уже сам как-нибудь (если остановишь свой выбор на mdb).

Преимущества: очевидная простота кода; большое количество инфы по работе с ADO; возможность выборки данных из таблицы посредством SQL.
О недостатках пусть скажут Хакер и Twister :twisted:

Да, и хотелось бы такого же небольшого примерчика по работе с собственным форматом от них. Просто для сравнения.
Вложения
dbexamp.rar
Пример работы с mdb через ADO
(18.02 Кб) Скачиваний: 174
Никакую проблему невозможно решить на том же уровне, на каком она возникла. Нужно стать выше этой проблемы, поднявшись на следующий уровень.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 25.08.2007 (Сб) 19:33

О недостатках пусть скажут Хакер и Twister :twisted:

Да на здоровье:
1) Требует знания объектной модели ADO.
2) Требует знания SQL.
3) Данный код просто потому что используется дата-линкинг (удел ламеров, которым лень и которые не умеют писать код и главное, которым это не доставляет удовольствия) и дата-грид (ужаснейший контрол. Даже скроллинг - и тот кривой.).
4) Дополнительно к п.1 - это требует не только знания ОМ ADO, это требует ещё и знание принципов и методик объёма с базами данных. Например, надо знать что такое "рекорд-сет".
5) Простота (а на самом деле - псевдо простота) перечёркивается юзанием грамоздкой технологии, отжирающей скорость и ресурсы.

А теперь, пожалуйста, аналогичный список для моего метода. Только не надо переносить описанное мною на мой же метод. Скажем довод "Требует знания Open, Get, Put, Close" я не буду принимать.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

VVitafresh
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1641
Зарегистрирован: 12.05.2005 (Чт) 14:44
Откуда: Херсон, UA

Сообщение VVitafresh » 25.08.2007 (Сб) 19:42

Хакер писал(а):Да на здоровье:
1) Требует знания объектной модели ADO.
2) Требует знания SQL.
4) ...

Эти знания никогда не будут лишними. Рано или поздно программисту придется иметь дело с БД.
3) Данный код просто потому что используется дата-линкинг (удел ламеров, которым лень и которые не умеют писать код и главное, которым это не доставляет удовольствия) и дата-грид (ужаснейший контрол. Даже скроллинг - и тот кривой.).
С этим частично согласен. Но для простейшей задачи сгодится и дата-линкинг. Ну а грид, конечно, желательно заменить на какой-то более приглядный, не из стандартной поставки VB.
5) Простота (а на самом деле - псевдо простота) перечёркивается юзанием грамоздкой технологии, отжирающей скорость и ресурсы.
И тем не менее при небольшом изучении технологии это не cтолько простое но и универсальное решение.

А теперь, пожалуйста, аналогичный список для моего метода. Только не надо переносить описанное мною на мой же метод. Скажем довод "Требует знания Open, Get, Put, Close" я не буду принимать.
Пока воздержусь, хочу все-таки увидеть небольной рабочий примерчик, чтобы не быть голословным (хотя не исключаю возможности, что ты меня убедишь :) ).
Никакую проблему невозможно решить на том же уровне, на каком она возникла. Нужно стать выше этой проблемы, поднявшись на следующий уровень.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 25.08.2007 (Сб) 19:43

Примерчик -- от меня? Примерчик работы с данным моим способом?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

VVitafresh
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1641
Зарегистрирован: 12.05.2005 (Чт) 14:44
Откуда: Херсон, UA

Сообщение VVitafresh » 25.08.2007 (Сб) 19:45

Ну да, работа с собственным форматом, типа там: "Добавить, удалить запись, показать все записи". В общем что-то несложное.
Никакую проблему невозможно решить на том же уровне, на каком она возникла. Нужно стать выше этой проблемы, поднявшись на следующий уровень.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 25.08.2007 (Сб) 20:01

А устроит пример без ГУИ? Т.е. некий конечный класс, предоставляющий методы Add, Remove, Delete, Load,Save и тд?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

VVitafresh
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1641
Зарегистрирован: 12.05.2005 (Чт) 14:44
Откуда: Херсон, UA

Сообщение VVitafresh » 25.08.2007 (Сб) 20:04

С ГУИ, конечно, веселей :)
Ну давай класс, мне всегда нравились хорошие (удобные) классы.
Никакую проблему невозможно решить на том же уровне, на каком она возникла. Нужно стать выше этой проблемы, поднявшись на следующий уровень.

Citius
Обычный пользователь
Обычный пользователь
 
Сообщения: 74
Зарегистрирован: 09.11.2005 (Ср) 9:36
Откуда: Украина

Сообщение Citius » 25.08.2007 (Сб) 21:28

Хакер писал(а):
И все же интересно Хакер то что ты написал в первом посте это из какой оперы???


Из оперы элементарных базовых знаний.


К сожалению у меня этих знаний нет :(, а где их почерпнуть можно?

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 25.08.2007 (Сб) 21:34

Сейчас я освобожусь и сяду за изготовление примера.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 25.08.2007 (Сб) 21:56

Народ - возмите мой KSDAT(что из кирпичей). Там над ним надстройку небольшую(склеивающую и расклеивающую строки в/из запись) написать и готово. В итоге даже со сжатием данных.
Изображение

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 25.08.2007 (Сб) 21:58

[offtopic]
А KSDAT не будет переименован? :)
[/offtopic]
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 26.08.2007 (Вс) 0:05

[offtop]
Если будет написана новая шутрая и функциональная(хотя бы на уровне структурированного хранилища) версия на C++ с опциональным использованием zlib или собственной сжималки.
В любом случае это будет после 14-15-го числа, т. к. через три часа я уматываю на море 8)
[/offtop]
Изображение

FaKk2
El rebelde gurú
El rebelde gurú
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Сообщение FaKk2 » 26.08.2007 (Вс) 8:07

Twister писал(а):
Да только ниодин из них не используется в качестве контейнера для хранения и обработки текстовых данных.
Да, они используются для хранения двоичных данных. А чем текстовые отличаются от вышеназванных? Тем что содержат только печатные символы + Chr(13) + Chr(10). Следовательно, Хакер предложил универсальный вариант.


Обьясни тогда зачем городить огород с XML если есть такой замечательный универсальный способ Хакера?

Это сродни аналогии с чисткой зубов: можно в принципе и не чистить, и вреда особого не наблюдается. Но все таки люди зубы чистят - наверно в этом что-то есть.

В принципе можно и в двухсвязных списках хранить инфу, но почему же тогда прогресс развился до реляционных баз?

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Сообщение Twister » 27.08.2007 (Пн) 6:26

Да, и хотелось бы такого же небольшого примерчика по работе с собственным форматом от них
Тот гипотетический формат что мы привели продиктован структурой PE-файлов. Соответственно, пример - виндовый загрузчик. Код можете посмотреть в IDA... :wink:

VVitafresh
Мое мнение - твой вариант не плох. Но если б я писал для себя, программку, обрабатывающую одномерный массив данных, я бы сделал так, как сказал.

Обьясни тогда зачем городить огород с XML
А нафига городить огород с .NET, если процессор прекрасно выполняет обычный код? Политика...

В принципе можно и в двухсвязных списках хранить инфу, но почему же тогда прогресс развился до реляционных баз?
Если бы ты немного лучше знал устройство винды изнутри, ты бы этого не написал. Не сравнивай палец и ж**у. Базы данных требуются для хранения огромного кол-ва инфы. Двусвязные списки (активно использующиеся ядром) нужны немного для другого...
А я все практикую лечение травами...

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Сообщение Twister » 27.08.2007 (Пн) 7:56

Добавлю:
Обьясни тогда зачем городить огород с XML если есть такой замечательный универсальный способ Хакера?
Видел ли ты где-нибудь крупную корпоративную базу данных на XML? И вряд-ли увидишь. Заглядывал внутрь того же mdb HIEW-ом? Какова его структура? Нет, не двусвязные списки, кое что по-эффективней, но ни какими тегами аля XML и не пахнет. Все разбито на блоки двоичных данных, имеются заголовки таблиц и прочая инфа для ускоренного поиска. А XML, имхо - просто универсальный способ хранения небольшого кол-ва инфы в структурированном и удобочитаемом виде...
А я все практикую лечение травами...

След.

Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 26

    TopList