
- •Разработка структуры бд Проектирование логической структуры бд
- •Модели данных, поддерживаемые субд
- •Дореляционные модели данных
- •Реляционная модель данных
- •Постреляционные моделей данных
- •Преобразование концептуальной модели данных в реляционную модель данных
- •Суррогатные ключи
- •Ограничения целостности
- •1. Ограничения на значения данных.
- •1.1. Ограничения доменов.
- •1.2. Ограничение обязательности значения.
- •1.3. Ограничение уникальности.
- •2. Ограничения на связи между данными.
- •2.1. Ограничения ссылочной целостности.
- •2.2. Ограничения кардинальности связи.
- •2.3. Ограничения на изменения в записях.
- •Нормализация отношений
- •1). Первая нормальная форма (1нф).
- •2). Вторая нормальная форма (2нф).
- •3). Третья нормальная форма (3нф).
- •Понятие физической структуры бд
1). Первая нормальная форма (1нф).
Отношение находится в 1НФ, если все его атрибуты простые.
Пример: Отношение R1.
-
Табельный номер
ФИО
Оклад
Комната
Телефон
Дети
Имя
Возраст
211
Иванов
350
12
616
Саша
10
Женя
7
Вася
3
358
Петров
300
12
616
Вова
5
360
Сидоров
400
5
306
Женя
8
Федя
6
Эта таблица (отношение) содержит сложный атрибут Дети.
Такое отношение требует преобразования, которое обычно приводит к изменению ключа отношения.
Отношение R2.
-
Табельный номер
Имя ребенка
Возраст ребенка
ФИО
Оклад
Комната
Телефон
211
Саша
10
Иванов
350
12
616
211
Женя
7
Иванов
350
12
616
211
Вася
3
Иванов
350
12
616
358
Вова
5
Петров
300
12
616
360
Женя
8
Сидоров
400
5
306
360
Федя
6
Сидоров
400
5
306
2). Вторая нормальная форма (2нф).
Пусть X и Y – два атрибута некоторого отношения.
Y функционально зависит от X, если каждому значению X соответствует не более, чем одно значение Y.
X Y – функциональная зависимость.
Пример: Функциональные зависимости:
Табельный номер ФИО.
Табельный номер Комната.
(если каждый сотрудник имеет рабочее место только в одной комнате).
Комната Телефон.
(если в каждой комнате установлен один телефон).
Неключевой атрибут функционально полно зависит от составного ключа, если он функционально зависит от ключа, но не находится в функциональной зависимости ни от какой части составного ключа.
Пример: Неключевые атрибуты ФИО, Оклад, Комната, Телефон не находятся в полной функциональной зависимости от составного ключа, т.к. они функционально зависят от части составного ключа – Табельный номер.
Недостатки:
Избыточное дублирование данных ФИО, Оклад, Комната, Телефон.
При изменении оклада необходимо менять данные в нескольких записях.
Если у сотрудника нет детей, то информацию о нем нельзя включить в отношение.
Отношение находится во 2НФ, если оно находится в 1НФ и каждый неключевой атрибут функционально полно зависит от составного ключа.
Чтобы отношение привести ко 2НФ, надо:
Построить проекцию отношения, исключив атрибуты, которые не находятся в полной функциональной зависимости от составного ключа.
Построить дополнительно одну или несколько проекций на часть составного ключа и атрибуты, функционально зависящие от этой части ключа.
Пример: Отношение R3.
-
Табельный номер
Имя ребенка
Возраст ребенка
211
Саша
10
211
Женя
7
211
Вася
3
358
Вова
5
360
Женя
8
360
Федя
6
Отношение R4.
-
Табельный номер
ФИО
Оклад
Комната
Телефон
211
Иванов
350
12
616
358
Петров
300
12
616
360
Сидоров
400
5
306