
- •II. Реляционная модель
- •III. Функциональная зависимость
- •(Шифр поставщика*, Щифр изделия*) Цена
- •IV. Нормализация отношений
- •A) Приведение к первой Нормальной Форме
- •B) Приведение ко второй Нормальной Форме
- •C) Приведение к третьей Нормальной Форме
- •D) Приведение к нормальной форме Бойса-Кодда
- •E) Приведение к IV нормальной форме
II. Реляционная модель
В реляционной модели объекты и взаимосвязи между ними представляются с помощью двумерных таблиц-отношений.
Реляционная модельданных является совокупностью отношений, из которых в результате выполнения запросов пользователей образуются новые производные отношения.
Для записи структуры отношения, а так же преобразования отношений используются понятия реляционной алгебры.
Структура отношения определяется указанием имени отношения и перечислением в скобках имён атрибутов, входящих в данное отношение.
Ключ отношения:
Должен однозначно определять кортеж отношения
В состав ключа должно входить минимальное количество атрибутов, т.е. при удалении из состава ключа одного элемента должно теряться свойство однозначности определения кортежа
Свойства отношений в реляционной модели:
Каждый домен отношения имеет уникальное имя. Все домены имеют одинаковое количество значений (атрибутов)
Каждый кортеж отношения описывает некоторый объект, характеризуя свойства этого объекта. Причём набор свойств остаётся неизменным, меняются их конкретные значения.
Отношения не содержат двух одинаковых кортежей
Порядок следования доменов и кортежей в отношениях произвольный.
|
| |||||
|
№ |
ФИО |
Пол |
Дата рожд. |
Спец-ть |
Группа |
З |
11520 |
Иванова Л.И. |
0 |
01.10.84 |
1738 |
01 |
12674 |
Сидоров А.В. |
1 |
07.11.83 |
0646 |
02 | |
Запись= сегмент= кортеж |
11365 |
Петрова А.П. |
0 |
25.06.81 |
0647 |
01 |
11670 |
Захаров А.Т. |
1 |
16.06.82 |
1738 |
03 | |
1 |
Демьянов Ф.И. |
1 |
11.02.84 |
1738 |
02 | |
Идентификатор объекта |
Набор величин одного элемента данных (домен) |
*Некоторые атрибуты сами представляют собой идентификацию объекта в другом файле.
Основные термины реляционной модели:
Термин |
Альтернативный термин |
Приблизительный эквивалент |
Отношение |
Таблица |
Файл (один тип записи) |
Атрибут |
Наименование столбца |
Элемент данных; поле; (тип, а не экземпляр) |
Первичный ключ |
|
Ключ записи; идентификатор записи |
Кортеж |
Строка |
Запись (экземпляр, а не тип) |
Домен |
|
Совокупность значений элементов данных |
III. Функциональная зависимость
Задавая отношения над элементами данных, разработчик должен интересоваться тем, какие из атрибутов объекта являются зависимыми.
Термин функциональная зависимостьозначает следующее: атрибут В отношения R функционально зависит от атрибута А того же отношения, если в каждый момент времени каждому значению атрибута А соответствует не более чем одно значение атрибута В.
Утверждение, что В функционально зависит от А означает, то же самое, что А однозначно определяет В, т.е. если в какой-то момент времени известно значение А, то получить и значение В.
Рассмотрим отношение: Студент (Номер зачётной книжки*,Имя студента, Стипендия, Номер курсового проекта, Дата сдачи)
Функциональные зависимости этого отношения:
Номер зачётной книжки |
|
Имя студента |
Номер зачётной книжки |
|
Стипендия |
Номер зачётной книжки |
|
Номер курсовой проект |
Номер курсового проекта |
|
Дата сдачи |
Номер зачётной книжки |
|
Дата сдачи |
Атрибут Номер зачётной книжки не является функционально зависимым от атрибута Стипендия, так как несколько студентов могут иметь одинаковую стипендию, Номер зачётной книжки не является функционально зависимым от атрибута Номер курсового проекта. От Номера курсового проекта зависит только атрибут Дата сдачи
Функциональные зависимости можно представить в виде диаграммы:
*
*- первичные атрибуты, которые входят в какой-либо ключ.
Атрибут может зависеть не от какого-то одного атрибута, а от целой группы атрибутов.
Например:Деятельность программиста (Номер программиста*,Номер программы*, Имя программиста, Имя программы, Количество рабочих часов).
*
*
Атрибут (или набор атрибутов) В из отношения R называется полностью зависимым от другого набора атрибутов А отношения R, если В функционально зависит от всего множества А, но не зависит от подмножества А.
А – детерминант В
В отношении деятельности программиста атрибут Количество рабочих часов является полностью зависимым от составного ключа (Номер программиста*, Номер программы*), так как он задаёт количество рабочего времени, затраченного данным программистом на конкретную программу.
При этом ни один из атрибутов, ни Номер программиста, ни Номер программы в отдельности не определяют значение атрибута Количество рабочих часов.
Номер программиста * |
|
Имя программиста |
Номер программы* |
|
Имя программы |
Поставка (Шифр изделия*, Шифр поставщика*,Наименование изделия, Сведения о поставщике, Цена, Количество)
*
*