- •Раздел 4. Проектирования бд
- •4.1. Метод нормальных форм
- •4.1.1. Цели проектирования реляционных бд
- •Возможность хранения всех необходимых данных в бд
- •Исключение избыточных данных.
- •Нормализация отношений.
- •Аномалии добавления (insert)
- •Аномалии обновления (update)
- •Аномалии удаления (delete)
- •4.1.2.Формирование исходного отношения. Функциональные зависимости (фз)
- •4.1.3. Процедура нормализации
- •Существует 6 нормальных форм, на практике ограничиваются 4-мя. 1,2,3 нф и форма Бойса-Кодда (нфбк).
- •4.1.4. Рекомендации по разработке структур
- •4.2. Метод сущность - связь
- •4.2.1. Основные понятия метода
- •4.2.2. Этапы проектирования
- •Правила формирования отношений для 1:1
- •Правила формирования отношений для 1:м
- •Правила формирования отношений для м:м
- •4.2.3. Пример проектирования бд с использованием метода сущность связь
Раздел 4. Проектирования бд
4.1. Метод нормальных форм
В жизненном цикле БД одним из наиболее важных этапов является этап проектирования. Главная задача, которая решается в процессе проектирования – это организация данных: интегрирование, структурирование и определение взаимосвязей.
Процесс проектирования информационных систем является достаточно сложной задачей и содержит ряд последовательных этапов. На первом этапе проводится анализ предметной области: для чего создается, из каких объектов состоит, каковы будут запросы пользователей. Результатом анализа являются списки объектов ПО, перечень их свойств или атрибутов, определение связей между объектами. Создается инфологическая (информационно-логическая) модель данных, т. е. определение сущностей. Цель инфологического моделирования – обеспечение наиболее естественных для человека способов сбора и представления той информации, которую предполагается хранить в создаваемой базе данных. Сущность – любой различимый объект (объект, который мы можем отличить от другого), информацию о котором необходимо хранить в базе данных. Сущностями могут быть люди, места, самолеты, рейсы, вкус, цвет и т.д. Необходимо различать такие понятия, как тип сущности и экземпляр сущности. Понятие тип сущности относится к набору однородных личностей, предметов, событий или идей, выступающих как целое. Экземпляр сущности относится к конкретной вещи в наборе. Например, типом сущности может быть ГОРОД, а экземпляром – Москва, Киев и т.д)
Для каждого атрибута накладываются ограничения на их возможное значение, такие ограничения называются ограничениями целостности данных.
На втором этапе разрабатывается концептуальная модель, которая диктует выбор СУБД. Если мы выбрали реляционную модель, то данные представляются в таблице, затем проводится декомпозиция этой таблицы на несколько взаимосвязанных таблиц на основе нормализации отношений, т.е. определяются таблицы, из которых будет состоять БД.
4.1.1. Цели проектирования реляционных бд
-
Возможность хранения всех необходимых данных в бд
БД должна содержать все данные, используемые в решаемой задаче. Т.о. на первом шаге определяются все атрибуты, которые будут помещены в БД. Далее определяется, сколько отношений необходимо и какие из атрибутов включаются в созданные отношения.
-
Исключение избыточных данных.
Суть в том, что надо различать дублирование данных и избыточное дублирование данных.
Рассмотрим на примере.
П-3 |
||
НП |
Фамилия преподавателя |
ЗавК (фамилия завкафедрой) |
102 |
Иванов |
Шеломов |
104 |
Петров |
Вагнер |
108 |
Сидоров |
Вагнер |
123 |
Мороз |
Шеломов |
П-3 |
||
НП |
Фамилия преподавателя |
ЗавК (фамилия завкафедрой) |
102 |
Иванов |
Шеломов |
104 |
Петров |
Вагнер |
108 |
Сидоров |
|
123 |
Мороз |
|
В отношении представлены данные указывающие непосредственного начальника каждого преподавателя.
Фамилии повторяются, но это повторение не является избыточным, т.к. удаление повторяющихся фамилий приведет к потере информации о преподавателях Сидоров и Мороз, мы не будем знать у кого они работают.
Пример отношений с избыточным дублированием данных.
П-3-Т |
|
П-3-Т |
|
П-3 |
|
З-Т |
|
||||||
НП |
ЗавК |
Нтел |
|
НП |
ЗавК |
Нтел |
|
НП |
ЗавК |
|
ЗавК |
Нтел |
|
102 |
Шеломов |
2888 |
|
102 |
Шеломов |
2888 |
|
102 |
Шеломов |
|
Шеломов |
2888 |
|
104 |
Вагнер |
2345 |
|
104 |
Вагнер |
2345 |
|
104 |
Вагнер |
|
Вагнер |
2345 |
|
108 |
Вагнер |
2345 |
|
108 |
Вагнер |
|
|
108 |
Вагнер |
|
|
|
|
123 |
Шеломов |
2888 |
|
123 |
Шеломов |
|
|
123 |
Шеломов |
|
|
|
|
Первая таблица избыточна, т.к. номера телефонов можно получить из других кортежей отношений. Но такой метод плох по двум причинам:
-
Следует избегать пустых полей
-
Здесь возникает проблема при удалении информации. Если преподаватель с номером 102 будет удален, то и кортеж «102, Шеломов, 2888» будет тоже удален, номер телефона Шеломов утерян, т.к. нигде больше не представлен.
Чтобы исключить избыточность телефонных номеров необходимо представить отношение П-3-Т в виде 2-х отношений П-3 и З -Т, потери номера при этом не произойдет.
-
Сведение числа хранимых в БД отношений к минимальному.
Разбиение отношения на два или больше меньших отношений желательно для исключения проблем, но неудобно для пользователей, поэтому не надо стремиться к неограниченному росту отношений.