|
Одна БД или несколько?
|
|||
---|---|---|---|
#18+
Господа! Помогите советом. Проектируется большая БД под MSSQL2000, описыващая несколько предметных областей, связанных через общие классификаторы, например контрагентов и подразделений компании. С точки зрения проектирования и программирования целесообразно размещение всех данных в единой БД. Но не пострадает ли при этом надёжность функционирования системы в целом? Восстановление после сбоя в работе с частью данных при этом приведёт к потере последних данных всех частей системы? Разделение единой БД на отдельные БД требует дополнительного механизма поддержания целостности. Что разумнее выбрать? При выборе раздельных БД как поддерживать целостность, сущестивуют ли типовые решения для этого? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2004, 08:47 |
|
Одна БД или несколько?
|
|||
---|---|---|---|
#18+
Классификаторы и справочники как минимум в отдельную БД, чтобы не было мучительно больно. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2004, 09:19 |
|
Одна БД или несколько?
|
|||
---|---|---|---|
#18+
Если говорите что с точки зрения проектирования и программирования целесообразнее в одну, то и нужно делать в одну. Надежность при использовании МССКЛ илиОракула при этом не пострадает (насчет других просто не знаю). Администрировать будет однозначно проще и ошибок меньше наделаете в плане Security/ Восстановление данных от размера БД не зависит. Просто надо правильно сконфигурировать. Лучший вариант - полная репликация на standby сервер, плюс железное зеркало, плюс архивы где-нибудь на лентах. И никакие молотки вам будут не страшны. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2004, 10:05 |
|
Одна БД или несколько?
|
|||
---|---|---|---|
#18+
Как хотите - ничего страшного не произойдет в любом случае. Вообще даже смысл термина БД - очень отличается у разных поставщиков DBMS. Например в случае Oracle - я так понимаю вопрос о нескольких БД вообще стоять не будет В случае с MS SQL/ASA/ASE все что вы теряете при разделении системы это DRI - так что смысл есть только если вы не планируете высокую связность этих модулей. Кроме того можно еще поговорить о разнесении БД на разные сервера - что позволит добиться лучшей масштабируемости - но так уж это вам надо? Достаточно ли независимы и велики ваши модули? Вообще если остались вопросы и этап анализа требований не позволил оценить сложность и взаимосвязанность этих систем - то я бы посоветовал разрабатывать в одной БД и проектировать с учетом возможного в последствии разделения на несколько ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2004, 10:24 |
|
Одна БД или несколько?
|
|||
---|---|---|---|
#18+
авторВ случае с MS SQL/ASA/ASE все что вы теряете при разделении системы это DRI - так что смысл есть только если вы не планируете высокую связность этих модулей. Я бы не ставил ASA в одну категорию с MSSQL и ASE. MSSQL и ASE могут довольно таки эффективно обрабатывать несколько БД на одном сервере, нормально оптимизируя запросы к данным различных БД, учитывая индексы и статистику. В ASA можно грузить на один сервер несколько БД, но обрабатывать он их будет автономно, т.е. каждая БД будет подключаться как внешний Remote Server и соотвествующе оптимизатор запросов не сможет создать такой же эффективный план, как у MSSQL и ASE. Я бы в ASA не рекомендовал такое делать. Единственное, когда разделение данных по разным БД наверное там имеет смысл, когда выделяется некая уже неизменяемая информация в архивную сжатую БД для работы в режиме только-чтение. Это улучшает производительность запросов за счет значительного уменьшения размеров БД (распаковать нужные страницы в памяти всегда быстрее, чем читать их с носителя), плюс так как ASA не требует постоянного подключения к удаленным серверам, вполне реально организовать хранение таких БД-архивов на сьемных носителях (те же CDROM, DVD и т.д.). ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2004, 10:56 |
|
Одна БД или несколько?
|
|||
---|---|---|---|
#18+
ASCRUS Понятно - я имел в виду трактовку понятия БД Насчет коментария Спасибо - я этого не знал. Интересно а в чем смысл такой логики ASA? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2004, 12:09 |
|
Одна БД или несколько?
|
|||
---|---|---|---|
#18+
авторИнтересно а в чем смысл такой логики ASA? Ну думаю это особенности архитектуры ASA. Изначально она все таки позиционировалась как встроенная СУБД или как Workgroup. Плюс она всегда позиционировалась как легкая в установке, не требующая никакого администрирования, независимая от используемого железа и обьемов СУБД. Из версии к версии разработчики ASA продолжают двигаться в этом направлении и если посмотреть на тот же оптимизатор запросов в современной ASA, то явно видны его развития в сторону максимального упрощения написания запросов (те же KEY JOIN, виртуальные вьюверы, иерархические запросы, повторное использование выражений в виде алиасов, добавление в UPDATE сортировки ORDER BY, привязка БД к текущим характеристикам железа, виртуальные индексы, перестройка таблицы в онлайн и т.д.). Проектировщик, правильно проектируя структуру БД и пользуясь общими рекомендациями правил оптимизации в написании запросов, благодаря самой архитектуре ASA будет для любого железа и используемых обьемов данных на автопилоте получать довольно неплохие планы запросов (конечно не на 100%). Поэтому разработчики ASA и сделали БД максимально автономной - если в MSSQL и ASE есть БД Master, в которых и храняться характеристики сервера ( те же пользователи и группы), то в ASA все в БД. Это и хорошо, например нет геммора между переносами БД между различными серверами - достаточно ее просто скопировать и подцепить к нужному серверу, но и плохо, особенно как раз в случае, когда необходимо данные и логику растащить по нескольким БД. С учетом того, что ASA еще позиционируется как СУБД для мобильных устройств, думаю политика в данном случае правильная - БД Master на мобилах совсем не к чему :) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2004, 15:52 |
|
Одна БД или несколько?
|
|||
---|---|---|---|
#18+
Вернемься к вопросу топика, СУБД наверное все таки лучше обсуждать в соотвествующих форумах. Лично я считаю, что если задача должна крутиться на одном сервере, то смысла бить на разные БД нет - затраты будут больше, чем обоснованные плюсы. Единственное, в чем наверное есть смысл выносить в отдельную БД - это статичные или с централизованным добавлением информации справочники, без возможности изменения или удаления информации, которые для остальных БД будут считаться, как справочная информация только для чтения. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2004, 16:03 |
|
|
start [/forum/topic.php?fid=32&fpage=174&tid=1546679]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
71ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
2ms |
others: | 252ms |
total: | 423ms |
0 / 0 |