Uploaded by Dasha Bogoradnikova

Логическое проектирование БД

advertisement
Логическое проектирование
базы данных
План
1. Отображение инфологической модели на
реляционную модель
2. Нормализация отношений
Под логической моделью БД будем понимать
представление о предметной области в виде
данных и связей между ними, преобразованное для
эффективной реализации в среде конкретной
СУБД.
Практически используют БД, имеющие
одну из трех логических моделей:
- иерархическую,
- сетевую,
- реляционную.
Основные действия проектировщика,
общие для всех трех моделей:
1 Отображение исходной концептуальноинфологической модели на конкретную
логическую модель.
2 Преобразование модели с учетом
ограничений конкретной СУБД.
3 Преобразование СУБД-ориентированной
модели с целью улучшения ее
эксплуатационных характеристик и получение
эффективной логической модели.
1. Отображение инфологической
модели на реляционную модель
Реляционная логическая модель
представляет собой совокупность
нормализованных отношений, в которых
реализованы связи между объектами
предметной области и выполнены все
преобразования, необходимые в среде
организации конкретной СУБД.
Для получения реляционно-логической
модели необходимо:
1. Провести отображение, полученной на
предыдущем этапе модели на реляционную
модель путем совместного представления в
ее отношениях ключевых элементов
взаимосвязанных сущностей.
2. Выполнить анализ полученных отношений с
точки зрения соответствия их трем
нормальным формам.
3. Представить логическую реляционную
модель.
Общее правило: ключ порожденной сущности
добавляется в исходную сущность.
ПРАВИЛО 1: Если между сущностями модели
существует простая однонаправленная или
сложная однонаправленная связь, то порожденной
является сущность к которой эта связь направлена.
Если каждый экземпляр
сущности
участвует
говорят,
имеет
обязательно
в
что
связи,
то
сущность
обязательный
класс принадлежности.
Если экземпляры данной
сущности
могут
не
На ER-диаграмме если класс
принадлежности
обязательный, то
кружочек заносится
внутрь маленького блока.
ПРАВИЛО 2: Если степень бинарной связи равна 1:1 и
класс принадлежности обеих сущностей является
обязательным, то выбор произвольной сущности
произволен.
S1(кл1, S1атр1, S1атр2) и S2(кл2, S2атр1, S2атр2)
S1(кл1, S1атр1, S1атр2, кл2), S2(кл2, S2атр1, S2атр2)
или
S1(кл1, S1атр1, S1атр2), S2(кл2, S2атр1, S2атр2, кл1)
ПРАВИЛО 3: Если степень бинарной связи равна 1:1 и
класс принадлежности одной сущности является
обязательным, а другой – необязательным, то
необходимо построение двух отношений. Под каждую
сущность необходимо выделение одного отношения,
при этом ключ сущности должен служить первичным
ключом для соответствующего отношения. Сущность с
необязательным классом принадлежности будет
являться порожденной.
S1(кл1, S1атр1, S1атр2) и S2(кл2, S2атр1, S2атр2)
S1(кл1, S1атр1, S1атр2, кл2)
S2(кл2, S2атр1,S2атр2)
Правило 4: Если степень бинарной связи равна
1:1 и класс принадлежности обеих сущностей
необязательный, то необходимо использовать
три отношения: по одному отношению для
каждой сущности и одного отношения для
связи. Среди своих атрибутов отношение,
выделяемое для связи, будет иметь по одному
ключу от каждой сущности.
S1(кл1, S1атр1, S1атр2) и S2(кл2, S2атр1, S2атр2)
S1(кл1, S1атр1, S1атр2)
S2(кл2, S2атр1, S2атр2)
S3(кл3, кл1, кл2)
ПРАВИЛО
5:
если
между
сущностями
существует связь «один ко многим», то
исходной будет та сущность, от которой
исходит простая связь.
ПРАВИЛО 6: если между сущностями существует
связь «многие ко многим», то создается
промежуточное отношение, в которое помещаются
ключи взаимосвязанных сущностей и устанавливается
связь «один ко многим» между отношениями.
Студенты
Код
студента
Дисциплины
Шифр
дисциплины
Код
студента
Студенты
Шифр
дисциплины
Успеваемость
по
дисциплине
Дисциплины
Код
студента
Шифр
дисциплины
Замечание:
Если во взаимосвязанных сущностях есть
одноименные ключи, то при совместном
представлении дублирование исключается.
Специализация
1
Врачи
Пациенты
4
2
Оборудование
3
Кабинеты
Связь 1:
Специализация
порожденная
Шифр
Наименование Категория
специализации специализации
Врачи
Табельный
номер
исходная
ФИО
Дата рождения
Отношение 1 (Специализация)
Шифр
специализации
Наименование
специализации
Категория
Отношение 2 (Врачи)
Табельный
номер
ФИО
Дата рождения Шифр
специализации
Связь 2:
Врачи
порожденная
Табельный номер
ФИО Дата рождения
Оборудование
Номер оборудования
исходная
Название
Дата ввода в эксплуатацию
Отношение 3 (Врачи)
Табельный номер ФИО
Дата рождения
Отношение 4 (Оборудование)
Номер
Название
оборудован
ия
Дата ввода в
эксплуатацию
Табельный номер
Связь 3:
Врачи
Табельный номер
исходная
ФИО
Кабинеты
Дата рождения
порожденная
Номер кабинета Площадь
Освещенность
Отношение 5 (Врачи)
Табельный номер
ФИО
Дата рождения
Отношение 6 (Кабинеты)
Номер
кабинета
Площадь
Освещенность
Номер кабинета
Связь 4:
Врачи
Табельный номер
ФИО
Дата рождения
Пациенты
Номер карты
ФИО
Номер медицинского полиса
Отношение 7 (Врачи)
Табельный номер
ФИО
Дата рождения
Отношение 8 (Прием)
Табельный номер Номер карты
Дата приема
Время приема
Отношение 9 (Пациенты)
Номер карты
ФИО
Номер медицинского полиса
Итоговый набор отношений
Отношение: Специализация
Шифр специализации Наименование специализации Категория
Объединяя отношения 2,3,5,7, получим отношение: Врачи
Табельный
номер
ФИО Дата
Шифр
рождения
специализации
Номер
кабинета
Отношение: Оборудование
Номер
оборудования
Название Дата ввода в
Табельный номер
эксплуатацию
Отношение: Кабинеты
Номер кабинета
Площадь
Освещенность
Отношение: Прием
Табельный
номер
Номер карты Дата приема
Время
приема
Отношение: Пациенты
Номер карты ФИО
Номер медицинского полиса
2. НОРМАЛИЗАЦИЯ
Нормализация
отношений
–
формальный аппарат ограничений на
формирование
позволяет
устранить
обеспечивает
хранимых
отношений,
который
дублирование,
непротиворечивость
данных
и
трудозатраты на ведение БД.
уменьшает
Свойства НФ:
1. Каждая следующая нормальная форма в
некотором смысле лучше предыдущей.
2. Каждая следующая нормальная форма
сохраняет все свойства предыдущей НФ.
Первая
нормальная форма
(1NF)
Отношение находится в первой нормальной
форме тогда и только тогда, когда все атрибуты
содержат атомарные значения.
Сотрудники
Табельный номер
Фамилия
Имя
Отчество
Должность
Оклад
Дети
Сотрудники
Табельный номер
Фамилия
Имя
Отчество
Должность
Оклад
Ребенок 1
Ребенок 2
Ребенок 3
Для приведения отношения к первой
нормальной форме следует:
- разделить сложные атрибуты на атомарные,
- создать новое дочернее отношение,
- перенести в него все "повторяющиеся"
атрибуты,
- создать новый первичный ключ,
- установить идентифицирующую связь от
родительского отношения к дочернему, первичный
ключ родительского отношения станет внешним
ключом для дочернего отношения.
Сотрудники
Табельный номер
Фамилия
Имя
Отчество
Должность
Оклад
Дети сотрудников
Табельный номер
Имя ребенка
Возраст ребенка
Вторая нормальная форма (2NF)
Функциональная зависимость является
обобщением понятия ключа.
График
ПИЛОТ
РЕЙС
ДАТА
ВРЕМЯ-ВЫЛЕТА
Мовчан
83
9 августа
10:15
Мовчан
116
10 августа
13:25
Синицын
281
8 августа
05:50
Синицын
301
12 августа
18:35
Синицын
83
11 августа
10:15
Федотов
83
13 августа
10:15
Федотов
116
12 августа
13:25
Вишневский
281
9 августа
05:50
Вишневский
281
13 августа
05:50
Вишневский
412
15 августа
13:25
Ограничения:
1. ВРЕМЯ функционально зависит от РЕЙСА.
2. РЕЙС функционально зависит от (ПИЛОТ,
ДАТА, ВРЕМЯ).
3. ПИЛОТ функционально зависит от (РЕЙС,
ДАТА) или (РЕЙС, ДАТА) функционально
определяют ПИЛОТ.
Пусть R = (А1, А2, …, Аn) – схема
отношения, X, Y – два подмножества атрибутов
А1, А2, …, Аn.
X функционально определяет Y (X  Y) если в
любом экземпляре отношения r со схемой R не
существует двух кортежей, совпадающих по
атрибутам X, но не совпадающих по атрибутам
Y.
Атрибут В отношения r(R) называется
полностью функционально зависимым от
атрибута А отношения r(R) , если В
функционально зависит от всего множества А,
но не зависит ни от какого его подмножества А.
Отношение находится во второй
нормальной форме, если оно находится в
первой нормальной форме и каждый
неключевой атрибут полностью зависит от
первичного ключа.
Для приведения отношения ко второй
нормальной форме следует:
- выделить атрибуты, которые зависят
только от части первичного ключа,
- создать новое отношение;
- поместить атрибуты, зависящие от части
ключа, в их собственное (новое) отношение;
- установить идентифицирующую связь от
родительского отношения к дочернему.
Поставщики
Название поставщика
Наименование товара
Адрес
Цена
Поставщики
Название поставщика
Наименование товара
Адрес
Цена
Поставщики
Название поставщика
Адрес
Поставки
Название поставщика
Наименование товара
Цена
Третья нормальная форма (3NF)
Пусть A, B, C – три атрибута отношения
r(R).
Если B  C, A  B, то A  C, если при
этом обратное соответствие
неоднозначно, то C транзитивно
зависит от A.
Отношение находится в третьей нормальной
форме, если оно находится во второй
нормальной форме и каждый неключевой
атрибут нетранзитивно зависит от первичного
ключа.
Сотрудники
Табельный номер
Фамилия
Имя
Отчество
Должность
Оклад
Для приведения отношения к третьей
нормальной форме следует:
- создать новое отношение и перенести в
него атрибуты с одной и той же зависимостью
от неключевого атрибута;
- использовать атрибут(ы), определяющий
эту зависимость, в качестве первичного ключа
нового отношения;
- установить неидентифицирующую связь
от нового отношения к старому.
Сотрудники
Табельный номер
Фамилия
Имя
Отчество
Должность
Должность
Должность
Оклад
Третья нормальная форма позволяет избежать ряда
аномалий:
Обновление. Имеет место дублирование данных об
окладе, если должность занимают несколько
сотрудников. Если оклад соответствующих должности
меняется, необходимо менять несколько записей (по
числу сотрудников на одной должности).
Вставка. Невозможно ввести данные об окладе,
соответствующем должности, если в данный момент нет
сотрудника, занимающего эту должность.
Удаление. В случае удаления из таблицы сотрудника,
занимающего уникальную должность, данные об окладе
теряются.
Download