Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.11.25;
Скачать: [xml.tar.bz2];

Вниз

Подходы к разработке БД-II. Где о них можно почитать.   Найти похожие ветки 

 
Z-Yuri   (2002-11-01 15:13) [0]

Существуют ли выработанные методы проектировки и реализации типичных баз данных (склад, магазин, бухгалтерия и т. п.) или каждый программист решает все по-своему?

Когда я начинал свою первую БД (а прошло уже год) я конечно прочитал умные книжки про нормализацию, SQL и т. п. Но в процессе работы возникли ряд проблем, решить которые для меня было сложно.

Некоторые из них:
- справочники: вид, поиск, удаление, идентификаторы.
- расчет и хранение остатков (итогов) - принципы реализации,
- введение, правка и удаление документов задним числом и за прошлые периоды.
и др. я все так сразу и не вспомню.
Вобщем программу я написал, потом вторую но многие вещи делались по интуиции, иногда по ходу внося серьезные изменения в структуру БД.
Сейчас хочу написать очередную программу более-менее "правильно", но проблем мне кажется не меньше.
Иногда случаются очень полезные ветки на форуме, как например
http://delphi.mastak.ru/cgi-bin/forum.pl?look=1&id=1035468144&n=1
правда Мастера не всегда приходят к единому мнению.
Косить под 1С не хочется, но иногда приходится.
И вот вопрос к Мастерам - см. первый абзац.


 
Alexandr   (2002-11-01 15:21) [1]

обычно все ориентируются на свой собственный опыт.
Поскольку все частности реализации стараются скрыть т.к. это типа коммерческая тайна.

Так что собирай информацию по-крупицам, думай, пробуй, смотри на чужие системы, изучай и т.д.


 
Z-Yuri   (2002-11-02 14:44) [2]

> обычно все ориентируются на свой собственный опыт.
И что, никто свой опыт не систематизировал и не оформил как, книгу, статью... Если так, то значит количество настоящих профи
не достигло еще критической отметки.



 
MsGuns   (2002-11-02 18:04) [3]

>Z-Yuri © (02.11.02 14:44)

Могу поделиться своим собственным (не сладким). С БД я работаю в общей сложности больше 20 лет. За это время технологии менялись постоянно, а несколько раз кардинально, что не могло не сказаться и на принципах проектирования самих БД. Хотя, конечно, основополагающие принципы (лог.связи, справочники, ограничения на значения полей и т.д.) остались почти незыблимыми и по-прежнему во многом определяют качественное наполнение БД, т.е. состав таблиц, типы данных, наличие ключей и индексов.
Любая БД состоит как минимум из 2 вещей: собственно данные в таблицах и заложенный при проектировании алгоритм извлечения этих данных, который носит модное название "бизнез-правила". Так вот первая вещь во многом зависит от второй, а вторая определяется первой. Другими словами, если в структуру или топологию БД была "внесена" ошибка, то на этапе проектирования бизнес-логики (БЛ) приходится эту ошибку "обходить" или же исправлять саму ошибку, меняя сущности БД (модифицирование, удаление или добавление таблиц, полей, ключей, связей и пр.)
Как показывает мой личный опыт, невозможно создание сколько-нибудь солидной БД (я не говорю про тел.справочник с простейшими поисковыми функциями) без нескольких "возвратов" к пересмотру сущностей БД и соответсвенно ревизии полной или частичной БЛ.

Как пример. Есть у меня хорошо зарекомендовавшая себя на практике программа "Оптовая торговля", работающая уже несколько лет (до 8) у нескольких десятков клиентов. Прога написана в ДОСе на Paradox 3.5 и рассчитана на работу до 28 клиентских станций с обязательным выделенным сервером.
Когда пришла пора перевести ее в винду (сначала под 5-й, затем 7-й Paradox), пришлось "перетряхивать" не столько логику программ, сколько состав и структуры таблиц и их связи.
Теперь пришла пора тащиться в клиент - сервер. Снова всеобщая ревизия. Т.к.новые возможности (централизация большинства элементов БЛ на сервер) должны дать существенный эффект как по временным характеристикам, так и (и это, пожалуй, главное) по резкому "облегчению" подгонки программ, реализующих собственно интерфейс с клиентом-человеком. Кроме того, весьма существенно упрощается администрирование, т.е. поддержание в работоспособном состоянии, всей БД, что для того же парадокса было ахиллесовой пятой.
Т.е. я хочу сказать, что давать конкретные советы по создании БД, не зная элементной базы (начиная от кол-ва компов и их характеристик, типа сети, ОС, вида СУБД и проч), не говоря уже об особенностях объекта (т.е.сферы деятельности человека) - дело весьма неблагодарное и даже несколько авантюрное.

Но все же есть некоторые постулаты...

Вся инфа, как правило делится на:
- нормативно-справочная (справочники)
- оперативная (документы)
- статистическая (картотеки, архивы)
- выходные формы (отчеты, графики и проч)
- управляющая (права, роли, сценарии и проч)

Начиная работу над ТЗ (техническим заданием) советую как можно тщательнее разобраться с объектом, а именно
- документооборот (т.е.первичные носители информации - счета, накладные, платежки, договора, справки, журналы и проч), который разнится практически в каждой конторе хотя бы в деталях. А также способы хранения документов, их регистрации и учета.
- специфику работы людей на каждом рабочем месте, т.е. чтО собственно они делают и каковы главные цели их труда.
- Как руководители фирмы хотят улучшить результаты своей деятельности после внедрения программы, для чего собственно и затевают весь сыр-бор, стОящий им совсем не дешево.

После сбора этой инфы надо ее систематизировать, дополнить новыми деталями, позволяющими улучшить всю модель в целом, затем убрать избыточность и определить связи. Профи называт все это НОРМАЛИЗАЦИЕЙ БД.

И только после этого лично я выбирал бы СРЕДСТВА, т.е. ОС, СУБД тип сети и проч. На этом этапе весьма уместно обращение к опытным людям за советом о СПОСОБАХ РЕАЛИЗАЦИИ и оценкой КАЧЕСТВ БЛ и сущностей БД.


 
Anatoly Podgoretsky   (2002-11-02 18:25) [4]

Мартин, Грубер, Дейт - это Мастера БД, их книги надо читать в первую очередь, остальные как парвило не стоят и бумаги на которой они напечатаны.


 
blackman   (2002-11-03 11:38) [5]

>Anatoly Podgoretsky
Книги это хорошо !
У меня есть и были, но
"Суха теория мой друг, а древо жизни вечно зеленеет"
Нужно
- понять какие документы имеются (не вообще все, а те из которых юзер берет цифры)
- сделать из них таблицы, выкинув в справочники все повторяющиеся поля
- определить какие из полей будут калькулироваться и из каких таблиц/полей
- нарисовать печатные формы.
- НАЧАТЬ ПИСАТЬ
- ПОДУМАТЬ и НАЧАТЬ ЗАНОВО.
- исправить или переписать
- .... и так до тех пор пока не поймешь, что полное ...
- закончить работу и сдать заказчику (ужас летящий во тьме ночи)


 
MsGuns   (2002-11-03 12:57) [6]

>blackman © (03.11.02 11:38)
>- закончить работу и сдать заказчику (ужас летящий во тьме ночи)

Если это как ужас, то лучше вообще не сдавать.. А идти сразу в грузчики (или дирижеры)



 
Sergey13   (2002-11-04 11:51) [7]

2Z-Yuri © (01.11.02 15:13)
>Существуют ли выработанные методы проектировки и реализации
>типичных баз данных (склад, магазин, бухгалтерия и т. п.) или
>каждый программист решает все по-своему?
ИМХО, документально оформленных методов не существует, есть только рекомендации. Это, опять же ИМХО, в основном определяется тем, что не существует четко регламентированных правил работы складов, магазинов, бухгалтерий и т.п.


 
blackman   (2002-11-04 14:15) [8]

>MsGuns
Как скажешь, так и сделаю.


 
MsGuns   (2002-11-04 14:41) [9]

>blackman © (04.11.02 14:15)
>MsGuns
>Как скажешь, так и сделаю.

Да это шутка была 8) Хотя, как известно, в каждой шутке...


 
blackman   (2002-11-04 17:11) [10]

Xa.


 
Z-Yuri   (2002-11-06 15:36) [11]

Всем спасибо за обсуждение, особенно - MsGuns © (02.11.02 18:04).
Буду разрабатывать свои методы. :)




Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2002.11.25;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.009 c
1-82780
Трое из Леса
2002-11-06 11:58
2002.11.25
RichEdit


14-82973
Drova
2002-11-06 23:11
2002.11.25
Что такое WINS ?


1-82768
Cruse
2002-11-15 15:21
2002.11.25
Label не хочет меняться


3-82583
harismatik
2002-11-07 14:45
2002.11.25
JPG картинку в базу как запихнуть?


1-82733
sers
2002-11-15 10:38
2002.11.25
Format





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский