Форум программистов, компьютерный форум, киберфорум
Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.80/15: Рейтинг темы: голосов - 15, средняя оценка - 4.80
Заблокирован

Проектирование баз данных. Алгоритм действий и инструменты

05.07.2019, 13:46. Показов 3327. Ответов 24
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
в продолжение обсуждения в теме решил создать отдельную тему.

Мартин Грабер в Гл 19 "Проектирование баз данных" описывает два основных алгоритма создания баз данных, а именно:
1. На базе подхода ER-модели создаются ER-диаграммы, затем они преобразуются программистом в таблицы реляционной базы данных и проверяются на соответствие требованиям нормализации (то есть, фактически, не накосячил ли программист, ведь если все делать правильно, то из ER-диаграммы путем достаточно формальных процедур можно получить достаточно нормализованные таблицы).
2. Создается некая супертаблица (набор супертаблиц), то есть набор всех возможных атрибутов (столбцов) в одной куче, и затем путем её декомпозиции создаётся удобоваримый и в меру нормализованный набор таблиц - схема БД.

При это отмечается, что подход на базе ER-модели является предпочтительным и к тому же - более человечным, интуитивно более понятным (он менее формален, чем подход два).

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

P.S.
Есть конечно некий предварительный этап (очень важный и затратный по силам и времени), вплоть до разработки ТЗ, который может разниться в зависимости от рода задачи, а именно:
- Изучение предметной области
- Выявление и определение сущностей, атрибутов (столбцов), связей
и т.д.
Но это отдельная история.
Если говорить ещё и о проблеме разработки ТЗ, о проблеме общения с заказчиками и со специалистами предметной области - то это отдельная задача.
Кстати, проблемы этой задачи в чем-то общие и при разработке БД для заказчика и при разработке сайта. Особенно, если заказчик не является крупной структурой и у него нет специалистов-программистов, погруженных в предметную область и могущих компетентно разработать ТЗ.
То есть, есть проблема преодоления пропасти: программист не знает предметной области, а заказчик не понимает как поставить задачу программисту. Считаю, что для преодоления такой пропасти могло бы существовать специальное ПО. Но это постскриптум.
1
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.07.2019, 13:46
Ответы с готовыми решениями:

Проектирование баз данных
Кто-нибудь встречал в интернете пример проектирования базы данных сферы обслуживания?

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

Объединение баз данных , разделение баз.
Приветствую. Помогите разделить имеющуюся базу, и собрать все в одну. С sql только начал работать.

24
 Аватар для VinniPuh
9129 / 6136 / 593
Регистрация: 27.03.2013
Сообщений: 19,986
05.07.2019, 14:47
Цитата Сообщение от titan4ik Посмотреть сообщение
...решил создать отдельную тему....
Хорошая тема.
У меня правда оперативной памяти в голове не хватило дочитать до конца, но начало и задумка первых 10-15 строк мне пнравилась.
Ибо 90% начинающих создавать реляционные БД ваааще похоже не понимають, чего от них требуют, а тем более чему их учат преподы.
Обычно это оперирование максимум таблицами Экселя.
Поставлю ка я отзыв за хорошую тему.
Может в важное со временем перенесут.
0
05.07.2019, 15:07

Не по теме:


ачучение, что гражданину нечем заняться. IMHO

0
 Аватар для VinniPuh
9129 / 6136 / 593
Регистрация: 27.03.2013
Сообщений: 19,986
05.07.2019, 15:40
pincet, Если это про меня, то - Истину глаголите Член Корреспондент Академии Наук.
Если про - titan4ik, то прям возжаждал его поддержать.
Ибо за душу взяло, т. к. сам что то на подобии хотел давно написать.
Наверное мы с ним родственники, а то и ваще, разлучённые в детстве - Братья-Близнецы.
0
 Аватар для pincet
1654 / 1153 / 173
Регистрация: 23.07.2010
Сообщений: 6,910
05.07.2019, 16:05
VinniPuh,
я про ТС
0
 Аватар для Andrey-MSK
3339 / 2226 / 387
Регистрация: 14.08.2018
Сообщений: 7,518
Записей в блоге: 4
05.07.2019, 16:31
Я делал так
Во главу угла ставим Объект (то что описываем) и начинаем его разбивать на более мелкие части в логической последовательности. И в итоге получаем основу Объекта. А потом уже на неё начинаем навешивать что надо.
Если взять мою БД, то логика такая

tblGenPlan (Сам объект) -> tblDraw (чертежи на части объекта) -> tblDrawSys (системы в чертежах частей объекта) -> tblDrawSpec (спецификация - сааамая мелкая часть всего)

А все остальное уже добавлено для реализации специфических задач. И никаких ER-моделей я не рисовал, бумага + ручка + голова + документация Из инструментов MS SQL Server + SSMS + Access для морды БД.
Может я и не прав, но мне так было гораздо проще
Миниатюры
Проектирование баз данных. Алгоритм действий и инструменты  
1
 Аватар для VinniPuh
9129 / 6136 / 593
Регистрация: 27.03.2013
Сообщений: 19,986
05.07.2019, 16:33
Цитата Сообщение от pincet Посмотреть сообщение
...я про ТС...
Ну я это только после того как написал заметил.
Ибо чудноватый и неоднократно контуженный на всю голову.
Так что не шибко обращайте на меня внимание, ибо староват и синтементален.
0
Заблокирован
05.07.2019, 23:49  [ТС]
Цитата Сообщение от Andrey-MSK Посмотреть сообщение
И никаких ER-моделей я не рисовал, бумага + ручка + голова + документация Из инструментов MS SQL Server + SSMS + Access для морды БД.
Может я и не прав, но мне так было гораздо проще
Andrey-MSK, чтобы понять как относиться к вашей инфе, Вы специалист по БД или это был первый и единственный опыт?
На самом деле, вот это метод "бумага + ручка + голова" он конечно является универсальным и я его очень уважаю. Например, любой бизнес-план сводится к 3-5 цифрам (то бишь, числам) и должен умещаться на 1/2 А4 и т.д. и т.п. То бишь логика здравого смысла - это сила!
Однако... хотелось бы услышать и других граждан. Давно заметил, что чем проще и конкретнее вопрос, тем туманнее ответы. Такое ачучение, что граждане-гуру не хотят признаваться в методах своей работы. Неужели и тут работает теория заговора?!)
Пацаны, кто-то применяет ER-модель, использует ER-диаграммы?
Если да, то какие для этого инструменты используете?
Если нет, то что тогда - "бумага + ручка + голова"? А если проект объемный, работает много народа, тоже "бумага + ручка + голова"?
P.S. Тут новости как раз прошли по банкоматам, по платежам, по теме транзакций и параллелизма. Интересно кому все эти Дейт и Грабер и прочие яйцеголовые все эти книги писали и зачем?

Не по теме:


Добавлено через 6 минут

Цитата Сообщение от VinniPuh Посмотреть сообщение
Братья-Близнецы
Бу-га-га)
Цитата Сообщение от VinniPuh Посмотреть сообщение
Ибо чудноватый и неоднократно контуженный на всю голову.
Так что не шибко обращайте на меня внимание, ибо староват и синтементален.
Бу-га-га-га-га-га) В точку! (это я про себя)
P.S. VinniPuh, мерси конечно, но чё мне с таким гигантским рейтингом теперь делать?)

Добавлено через 5 минут


Хмм... граждане-специалисты, настоятельно прошу высказаться конкретно.
0
 Аватар для VinniPuh
9129 / 6136 / 593
Регистрация: 27.03.2013
Сообщений: 19,986
06.07.2019, 07:38

Не по теме:

Цитата Сообщение от titan4ik Посмотреть сообщение
...но чё мне с таким гигантским рейтингом теперь делать?...
А кому щас легко?
Мне вот тоже в репу надавали много кто, но ни чего, смирился и живу как то с такой нелёгкой ношей.
Первые пять лет трудно, потом привыкается.



Добавлено через 34 минуты
Цитата Сообщение от titan4ik Посмотреть сообщение
...вот это метод "бумага + ручка + голова" он конечно является универсальным и я его очень уважаю...
Лично я не являясь специалистом, а просто любителем БД (ибо на работе приспичило облегчить себе и другим работу и побольше полентяйничать ) стал изучать Access в основном из за безделья.
В те времена наверное и интернета то не было, только книги.
Ручкой и бумажкой ни когда не пользовался.
Всегда интерактивно как в конструкторе творил и пробовал как это будет в натуре работать, очень увлекло.
Access для творчества БД на мой взгляд самое наилучшее средство для начинающих, ИБО там не абстрактно делаются связи между табличками, а чётко и конкретно видно что и в куда в схеме данных, что очень помогает на начальном этапе.
Плюс в нем есть помощники в виде -
Мастер таблиц
Мастер форм
Мастер запросов
Мастер отчетов.
Щас ими не пользуюсь, но в самом начале пути очень даже помогло перестроить логику в голове.
Щас думаю совсем по другому, чем 20 лет назад, что очень помогает по жизни.
1
Заблокирован
06.07.2019, 10:58  [ТС]
Цитата Сообщение от VinniPuh Посмотреть сообщение
Щас ими не пользуюсь
А щас как?
0
 Аватар для VinniPuh
9129 / 6136 / 593
Регистрация: 27.03.2013
Сообщений: 19,986
06.07.2019, 11:24
titan4ik, щас есть - наработки и заготовки.
Пользуюсь только ими.
0
Заблокирован
06.07.2019, 11:28  [ТС]
А если новая предметная область и для неё нужно сделать БД, то будете пользоваться ER-диаграммами? Или как?
Или послушаете специалистов из этой области, порисуете карандашом по бумаге, а потом сразу схему (таблицы уже) будете делать с помощью инструментов конкретной используемой (любимой) СУБД?
0
 Аватар для VinniPuh
9129 / 6136 / 593
Регистрация: 27.03.2013
Сообщений: 19,986
06.07.2019, 18:51
titan4ik, если вы мне, то карандашом портить листочек не буду.
Прокручу все в голове и буду ваять с табличками.
Если чего то не так придумал, то изменяю, ибо когда начинаешь вводить данные, то сразу видно, так или не так придумано.
Но тут нужно учесть, что уже есть опыт создания БД и половина делается просто на автомате.
1
 Аватар для pincet
1654 / 1153 / 173
Регистрация: 23.07.2010
Сообщений: 6,910
06.07.2019, 19:35
Цитата Сообщение от titan4ik Посмотреть сообщение
А если новая предметная область и для неё нужно сделать БД, то будете пользоваться ER-диаграммами? Или как?
лично мне проще ER на бумаге наваять. Помогает осмыслить. и не более
пысы - если интересно - юзаю нотацию Мартина (воронья лапа)
1
Заблокирован
06.07.2019, 19:41  [ТС]
Нет, VinniPuh, про карандаш, я не вам)
А так-то понятно. В экономике это называется "менеджмент здравого смысла". В технике - опыт и наработки. Это понятно.
Не понятно только использует ли кто-то вообще ER-модель.
Пока за неё никто не высказался.
Цитата Сообщение от VinniPuh Посмотреть сообщение
Если чего то не так придумал, то изменяю, ибо когда начинаешь вводить данные
Не знаю как в Access, а так пишут, что изменять таблицы чревато - лучше уничтожать и делать новую(???). А это вроде не оч удобно.

Добавлено через 5 минут
Цитата Сообщение от pincet Посмотреть сообщение
лично мне проще ER на бумаге наваять. Помогает осмыслить. и не более
То есть, это помогает тому, чтобы в голове сложилась основная часть схемы и потом уже по мере реализации додумываются детали. Так?
Понятно.
Сделаю риорическое замечание - тут есть две проблемы:
1. Как быть, если разработка большая и много разработчиков
2. Как описать готовую схему, чтобы сторонняя голова могла понять.
Если есть ER-диаграмма, как документ (постоянно корректируемый), то с её помощью можно общаться в коллективе - в том числе с не программистами (например, со спецами предметной области и лпр). И она же может быть немаловажной частью описания БД.
0
 Аватар для VinniPuh
9129 / 6136 / 593
Регистрация: 27.03.2013
Сообщений: 19,986
06.07.2019, 19:48
Цитата Сообщение от titan4ik Посмотреть сообщение
...что изменять таблицы чревато...
На стадии разработки менять и изменять структуру можно и наверное полезно для оптимизации.
Опробование Запросов и Процедур.
Про ввод данных имелось ввиду - тестовые данные, а не уже сама работа с БД.

Добавлено через 2 минуты
titan4ik, Под - ER диаграммой вы имеете ввиду всякие квадратики, ромбики и кружочки с треугольничками, соединенные черточками?
1
Заблокирован
06.07.2019, 19:50  [ТС]
Цитата Сообщение от VinniPuh Посмотреть сообщение
На стадии разработки менять и изменять структуру можно и наверное полезно для оптимизации.
То есть, использование ALTER TABLE чревато только потерей данных? Это хорошо, ежели так.

Добавлено через 27 секунд
Цитата Сообщение от VinniPuh Посмотреть сообщение
titan4ik, Под - ER диаграммой вы имеете ввиду всякие квадратики, ромбики и кружочки с треугольничками, соединенные черточками?
Именно!!!
Мартин Грабер Гл 19. Проектирование базы данных.
стр 255 Построение ER-модели.
стр 260 Диаграммное представление ER-модели.
0
 Аватар для VinniPuh
9129 / 6136 / 593
Регистрация: 27.03.2013
Сообщений: 19,986
06.07.2019, 19:55
Цитата Сообщение от titan4ik Посмотреть сообщение
...1. Как быть, если разработка большая и много разработчиков...
Тут наверное таки нужно иметь общий план и схему, что бы все работали над проектом в одном ключе, а не вразброс, но это скорее всего должен делать кто то один, типа управляя и направляя процесс созидания.
0
Заблокирован
06.07.2019, 19:58  [ТС]
Цитата Сообщение от VinniPuh Посмотреть сообщение
Тут наверное таки нужно иметь общий план и схему
Ну, вот, казалось бы, что ER-модель и может быть таким общим базисом. А практически выходит, что это не вполне так.
P.S. Фактически, ER-модель должна быть последней частью (итоговым содержанием) ТЗ. Это если по-хорошему.
Но в ходе работы она конечно должна "совершенствоваться")
0
 Аватар для VinniPuh
9129 / 6136 / 593
Регистрация: 27.03.2013
Сообщений: 19,986
06.07.2019, 20:12
titan4ik, Щас вот подумал и понял, что я просто зациклился на БД, а так к примеру у себя на работе, при проектировании принципиальных схем по автоматизации оборудования котельных, всегда сначала нарисую принципиальную электрическую схему схему с теми же реле, их контактами и прочими переключателями.
Правда не на листочке это делаю а на компе в экселе рисую, ибо можно изменить не черкая и не стирая.
типа к примеру так.
Если надо распечатать, очень даже удобно.
Возможно есть какие то и более продвинутые программы, но т. к. я старый пердун привык по старинке, мне так привычнее и тем более эксель есть на любом ПК.
Миниатюры
Проектирование баз данных. Алгоритм действий и инструменты  
Вложения
Тип файла: rar Сх.КИПиА (ДЕ-1).rar (20.6 Кб, 1 просмотров)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.07.2019, 20:12
Помогаю со студенческими работами здесь

Насколько актукальны инструменты по оптимизации баз данных Oracle в России?
Доброго времени суток! Хотелось бы провести маленький опрос и одновременно могу ответить на любые вопросы, которые возникнут о базах...

Проектирование баз данных
Уважаемые форумчане! Просьба высказать свое мнение о необходимости перед созданием конкретной базы в Access создавать функциональную...

Проектирование реляционных баз данных
Специализированная научная библиотека Рассмотрим специализированную библиотеку, которая располагает книжным фондом определенной...

Проектирование баз данных в СУБД Access
Задание №3 Вариант 7 Разработать информационно-логическую модель предметной области...

Правильное проектирование баз данных при очень частом обращении
Пишу мессенджер и в истории переписок в адаптере очень часто вызывается последнее сообщение для каждого чата и база данных садится, какие...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru