Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > СУБД, общие вопросы > Как решать вопрос выбора модели данных?


Автор: Гость_Борис 5.12.2004, 00:56
Простите за вопрос - он может показаться совершенно дилетантским. Я начинающий проектировщик БД. И меня волнует проблема выбора модели данных - реляционка, сетевая, ЕР, нужно ли действительно делать проект вплоть до 5-й нормальной форма или послать его подальше? Мне, например, очень приглянулся метод Чена "сущность-связь" (ЕР). Но я не понимаю, нафига рисовать какие-то придурастые промежуточные диограммы. Подскажите, современные СУБД ориентированы на какую-нибудь одну модель данных, чтобы потом не морочить голову с обновлениями структуры? И еще. Существуют ли специализированные СУБД, которые автоматизируют проектирование БД именно на основе именно ЕР-метода? Этот метод получил ли дальнейшее развитие в индустрии СУБД

Автор: ida 5.12.2004, 12:39
Пардон, а каким образом вы хотите создать БД, не построив проекта?... Это примерно как здание строить, не имея его плана. Из собственного и не только профессионального опыта:
1. модель строится ВСЕГДА, поскольку это второй обязательный этап разработки после анализа требований.
2. непродуманная или плохо продуманная модель создает неразрешимые проблемы либо на стадии реализации, либо после реализации при использовании продукта - решить эти проблемы можно только построением новой модели и на ее основе нового продукта - то есть по сути повторной разработкой.
3. все академические курсы применительно к БД отводят на разработку модели не меньше половины всего времени работы над продуктом - иначе такой продукт потом никто не будет использовать.

Решайте сами, нужна ли вам модель. smile

Автор: AntonSaburov 6.12.2004, 13:54
Сравнивать EP и реляционные базы данных - это нечто вроде "соленый" и "красный".

Реляционные базы данных используются в 99% случаев. Поэтому тут выбор очевиден. Хотя потихонечку стали появляться заметки об объектно-ориентированых базах. Тот же Cashe.

По поводу методологии - EP очень приличная и хорошо зарекомендовавшая себя модель. Можно ей и пользоваться.

Автор: Kurt 6.12.2004, 17:56
Цитата
Тот же Cashe.

P.S. Cache..

Автор: Sleepy_PIP 6.12.2004, 20:23
Цитата
Простите за вопрос - он может показаться совершенно дилетантским. Я начинающий проектировщик БД. И меня волнует проблема выбора модели данных - реляционка, сетевая, ЕР, нужно ли действительно делать проект вплоть до 5-й нормальной форма или послать его подальше? Мне, например, очень приглянулся метод Чена "сущность-связь" (ЕР). Но я не понимаю, нафига рисовать какие-то придурастые промежуточные диограммы. Подскажите, современные СУБД ориентированы на какую-нибудь одну модель данных, чтобы потом не морочить голову с обновлениями структуры? И еще. Существуют ли специализированные СУБД, которые автоматизируют проектирование БД именно на основе именно ЕР-метода? Этот метод получил ли дальнейшее развитие в индустрии СУБД


ВСЕ - ИМХО!

А в чем собственно проблемма?
А я лично начал бы с определения того сервера БД, на котором Вы будете строить свое здание БД.
99% - реляционные сервера.
По классам грубо разделяются на малые (типа IB, ADS), средние типа MS SQL( - хотя я его не навижу smile) , SyBase, Posgress и так далее), большие (точнее уже даже майнфреймовые - типа Оракла, DB2, Adabas и так далее) (хотя Оркл прекрасно живет и на PC и даже под win32 smile).
Есть и экзотические (и не реляционные) типа MDBS-II-III-IV, MUMPS (когда компутеры были большими он был Диамс-2 smile ).
Я начал-бы с оценки вообще потоков данных.
Если Вы собираетесь оперировать до 100-ми мег - это одно, десятками гиг - другое - сотнями и более гиг - третье.
Если Вам надо строить систему с минимальным откликом - это одно, без оного - это другое.
Если Вам надо строить очень многоконнектую систему - это одно, если мало - это другое.
Если Вам надо строит 2х7х365 - это совсем третье.
Конечно - перед оценкой всего этого Вам нужны входные параметры - как то - колл-во пользователей, входной поток данных, выходной поток данных и степень его структурированности (что в конце концов определяет и структуру и запросы).
После каких-либо определений о сервере и платформе - уже стоит переходить собственно к структуре БД,
отчетливо предварительно представляя что от нее хоят, что в нее вливают, какие задачи и подзадачи она будет обслуживать.
Хороше-б перед проектированием структуры представить какие и в каком виде данные от БД потребуются не только на момент окончания проекта, но и в будущем.
По поводу нормальных форм скажу одно - знать это обязательно, но следовать им стоит не всегда ...
Кстати - очень не маловажным фактором является список и наличие средств разработки, администрирования как самого сервера и БД, так и клиентской стороны.
Стоит продумать и 3-х звенную архитектуру - она так-же может наложить свой отпечаток даже на структуру БД.
ИМХО - не стоит проектировать задачу под "любой сервер" если енсть желание использовать все возможности серверной базы.
Пример - битовые индексы, сегментирование таблиц в Оракле ... я еше не видел ни одного CASE, который бы это уже не только знал, но и активно использовал ... ну мжет отстал, да ...
Для собственно описания самой структуры БД ИМХО обязательно даже на этапе тестового проектирования пользоваться спец. CASE'ми для этого типа ErWin, BPWin, PowerDesigner and so on). Я уже 5 лет предпочитаю ErWin (хотя он меня уже достал smile).
Если проект большой - необходимо позаботиться о средствах тестирования. - для примера - хотя-б средствах заполнения тестовыми данным Ваших табличек.
И совсем не стоит забывать что часто случается так, что колл-во переходит в качество.
Успехов!
PS: и ну очень часто бывает что Ваш проект прийдется дорабатывать, модифицировать и вообще делать из него ежика - так что не промахнитесь при проектировании и с этим! smile

Автор: Cashey 6.12.2004, 21:05
Цитата(Sleepy_PIP @ 6.12.2004, 20:23)
А я лично начал бы с определения того сервера БД, на котором Вы будете строить свое здание БД.

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

Автор: Sleepy_PIP 6.12.2004, 21:22
Цитата(Cashey @ 6.12.2004, 21:05)
Цитата(Sleepy_PIP @ 6.12.2004, )
А я лично начал бы с определения того сервера БД, на котором Вы будете строить свое здание БД.

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

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

Автор: Cashey 6.12.2004, 21:36
Цитата(Sleepy_PIP @ 6.12.2004, 21:22)
Интересно - как ты себе представляешь выбор сервера и модели без определенностью с задачами?
Т.е. это просто очевидно ... не так?

вот и я о том же, только уложил это в несколько строчек, а описания БД уже имеется.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)