Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 10.03.2010, 16:20
Raf Raf вне форума
Прохожий
 
Регистрация: 10.03.2010
Сообщения: 9
Репутация: 10
По умолчанию Выбор базы данных для большого объема текстовых документов

Собираемся создать базу для хранения и поиска большого объема текстовых документов (порядка 100000 документов, с общим объемом поряка 2гб).
Какую базу посоветуйте выбрать? База все время будет редактироваться и пополняться новыми документами. Каждый документ должен иметь атрибуты /дата ввода, дата последней редакции, номер, тип, автор и т.д./ по которым будут искать документы.
Ответить с цитированием
  #2  
Старый 10.03.2010, 16:29
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,906
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

Если правильно организовать хранение - то любая, хоть dbf
__________________
Некоторые программисты настолько ленивы, что сразу пишут рабочий код.

Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты.
Ответить с цитированием
  #3  
Старый 10.03.2010, 18:44
Raf Raf вне форума
Прохожий
 
Регистрация: 10.03.2010
Сообщения: 9
Репутация: 10
По умолчанию

Цитата:
Сообщение от Aristarh Dark
Если правильно организовать хранение - то любая, хоть dbf
Если не ошибаюсь в dbf тексты хранятся в поле memo (.dbt), где при редактировании текстов физически там остаются и старые версии текстов, что приводит к чрезмерному увеличению файла .dbt
Ответить с цитированием
  #4  
Старый 10.03.2010, 18:57
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,015
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Нет, не остаются. Там другого рода проблема - управление пространством. Если периодически делать сжатие базы, то размер будет нормальным. Но в dbf, конечно, лучше большие данные не хранить.

Если совсем нет внешних ограничений на выбор, то я взял бы какую-нить Netezza. Ну или просто Oracle или PostgreeSQL.
Ответить с цитированием
  #5  
Старый 10.03.2010, 19:40
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,906
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

Вопрос стоит в том, что хранить и как хранить (и сколько это обойдется в деньгах). Если документы по 5-6 индексным полям, то можно хоть txt+zip (для документов) и до миллиона записей - все в ёлку.
__________________
Некоторые программисты настолько ленивы, что сразу пишут рабочий код.

Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты.
Ответить с цитированием
  #6  
Старый 10.03.2010, 21:25
Raf Raf вне форума
Прохожий
 
Регистрация: 10.03.2010
Сообщения: 9
Репутация: 10
По умолчанию

О деньгах не беспокойтесь.

Что кроется под "txt+zip (для документов)". Означает ли это хранение текстов вне базы данных - в отдельных текстовых или в zip файлах?
Тогда как быть с поиском в текстах документов?
Ответить с цитированием
  #7  
Старый 11.03.2010, 03:45
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,906
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

А зачем искать текст внутри документов если ясно сказано что:
Цитата:
Каждый документ должен иметь атрибуты /дата ввода, дата последней редакции, номер, тип, автор и т.д./ по которым будут искать документы.
__________________
Некоторые программисты настолько ленивы, что сразу пишут рабочий код.

Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты.
Ответить с цитированием
  #8  
Старый 11.03.2010, 11:54
Raf Raf вне форума
Прохожий
 
Регистрация: 10.03.2010
Сообщения: 9
Репутация: 10
По умолчанию

Документы будут искать не только по перечисленным атрибутам, но и по словам и/или словосочетаниям в текстах. А в дальнейшем не исключаем и добавление в текстах гиперссылок на другие документы базы.
Ответить с цитированием
  #9  
Старый 11.03.2010, 22:14
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

А вы уверены, что вам это лучше в БД хранить? Тип документов у вас наверняка будет разный, доступ к ним тоже будете осуществлять скорее всего с помощью разных приложений, да еще надо будет решать массу проблем интерфейса для отображения результатов поиска, и т.д. Так зачем вам усложнять себе жизнь? Для индексации текста и поиска по этому индексу вам придется держать документ не упакованным, для показа документа в исходном виде нужно будет запускать соответствующее приложение. Может проще и эффективнее воспользоваться просто поисковой системой настроенной на работу с папкой где хранятся эти документы? Из таковых мне больш всего нравится DtSearch которая позволяет работать как в сети так и локально.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #10  
Старый 12.03.2010, 08:22
Raf Raf вне форума
Прохожий
 
Регистрация: 10.03.2010
Сообщения: 9
Репутация: 10
По умолчанию

Дело в том, что в будущем база будет в интернете. И тогда я не знаю насколько эффективным будет предложенный Вами путь.
Может есть какая СУБД для создания и ведения гипертекстовых БД? Что-то похожее на КонсультантПлюс или Гарант. Кстати, может кто знает, какую БД они используют?
Ответить с цитированием
  #11  
Старый 12.03.2010, 08:56
Аватар для Vayrus
Vayrus Vayrus вне форума
Исполняемый Ретровирус
 
Регистрация: 09.08.2008
Адрес: Umbrella Corporation
Сообщения: 743
Репутация: 1293
Лампочка

SQLite не подойдет ?
Ответить с цитированием
  #12  
Старый 13.03.2010, 19:20
Raf Raf вне форума
Прохожий
 
Регистрация: 10.03.2010
Сообщения: 9
Репутация: 10
По умолчанию

MySQL или SQLite. Что лучше?
Можно ли создать отдельную прогу на дельфи для работы с данными из этох баз, которую можно будет инсталлировать на отдельный компьютер для работы локально на этом компьютере. Нужно ли в этом случае инсталлировать и MySQL или SQLite, или что-то еще?
Ответить с цитированием
  #13  
Старый 13.03.2010, 21:50
Аватар для Vayrus
Vayrus Vayrus вне форума
Исполняемый Ретровирус
 
Регистрация: 09.08.2008
Адрес: Umbrella Corporation
Сообщения: 743
Репутация: 1293
Лампочка

SQLite - идеальный варинат, ИМХО, с собой тока будешь таскать 1 библиотеку
Ответить с цитированием
  #14  
Старый 15.03.2010, 10:32
Raf Raf вне форума
Прохожий
 
Регистрация: 10.03.2010
Сообщения: 9
Репутация: 10
По умолчанию

Есть ли в SQLite возможность в локальном варианте хранить текстовые (или Memo поля) в архивированном виде? Если нет, какая СУБД обладает такой возможностью?

Что такое - ИМХО?
Ответить с цитированием
  #15  
Старый 15.03.2010, 12:31
Аватар для Vayrus
Vayrus Vayrus вне форума
Исполняемый Ретровирус
 
Регистрация: 09.08.2008
Адрес: Umbrella Corporation
Сообщения: 743
Репутация: 1293
Лампочка

Цитата:
Сообщение от Raf
Есть ли в SQLite возможность в локальном варианте хранить текстовые (или Memo поля) в архивированном виде? Если нет, какая СУБД обладает такой возможностью?

Что такое - ИМХО?

Это означает что мнение сугубо личное

Точно знаю что данные базы легко шифруются, кажется
А вот насчет архивирования , а что стоит самому паковать в тот же
BZIP, PPMD, ZIP, RAR, 7-Zip, или другой алго который жмет быстро в ущерб степени сжатия.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 23:21.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter