Поставщик | Город | Страна |
"Полесье" | Киев | Украина |
"Наталка" | Киев | Украина |
"Хуанхэ" | Пекин | Китай |
“Юрмала” | Рига | Латвия |
"Лайма" | Рига | Латвия |
... | ... | ... |
Рисунок 1.2 –Таблица реляционной БД с функциональной зависимостью
В приведенной таблице «Поставщики» поле «Страна» функционально зависит от составного ключа («Поставщик», «Город»). Однако последняя зависимость не является функционально полной, так как «Страна» функционально зависит и от части ключа – поля «Город».
Полная функциональная зависимость. Поле В находится в полной функциональной зависимости от составного поля А, если оно функционально зависит от А и не зависит функционально от любого подмножества поля А.
Многозначная зависимость. Поле А многозначно определяет поле В той же таблицы, если для каждого значения поля А существует хорошо определенное множество соответствующих значений В.
ОБУЧЕНИЕ
Дисциплина | Преподаватель | Учебник |
Информатика | Шипилов П.А. | Форсайт Р. Паскаль для всех |
Информатика | Шипилов П.А. | Уэйт М. и др. Язык Си |
Информатика | Голованевский Г.Л. | Форсайт Р. Паскаль для всех |
Информатика | Голованевский Г.Л. | Уэйт М. и др. Язык Си |
... | ... | ... |
Рисунок 1.3 – Таблица с многозначной зависимостью
|
|
Для примера рассмотрим таблицу "Обучение", приведенную на рисунке 1.3. В ней есть многозначная зависимость "Дисциплина-Преподаватель": дисциплина (в примере Информатика) может читаться несколькими преподавателями (в примере Шипиловым и Голованевским). Есть и другая многозначная зависимость "Дисциплина-Учебник": при изучении Информатики используются учебники "Паскаль для всех" и "Язык Си". При этом Преподаватель и Учебник не связны функциональной зависимостью, что приводит к появлению избыточности (для добавление еще одного учебника придется ввести в таблицу две новых строки). Дело улучшается при замене этой таблицы на две: (Дисциплина-Преподаватель и Дисциплина-Учебник).
Неключевым атрибутом называется любой атрибут отношения, не входящий в состав первичного ключа (в частности, первичного).
Взаимно независимые атрибуты: д ва или более атрибута взаимно независимы, если ни один из этих атрибутов не является функционально зависимым от других.
При классическом подходе к проектированию базы данных весь процесс проектирования производится в терминах реляционной модели данных методом последовательных приближений к удовлетворительному набору схем отношений. Исходной точкой является представление предметной области в виде одного или нескольких отношений, и на каждом шаге проектирования производится некоторый набор схем отношений, обладающих лучшими свойствами. Процесс проектирования представляет собой процесс нормализации схем отношений.
|
|
Основной формой считается 3НФ – для большинства баз данных она является достаточной для обеспечения целей проектирования.
1НФ - таблица находится в первой нормальной форме (1НФ) тогда и только тогда, когда ни одна из ее строк не содержит в любом своем поле более одного значения и ни одно из ее ключевых полей не пусто. (Любое поле таблицы содержит неделимую информацию и в таблице определен первичный ключ).
2НФ - Таблица находится во второй нормальной форме (2NF) в том и только в том случае, когда находится в 1NF, и каждый ее неключевой атрибут полностью зависит от первичного ключа.
3НФ – Таблица находится в третьей нормальной форме (3NF) в том и только в том случае, если находится в 2NF и каждый неключевой атрибут нетранзитивно зависит от первичного ключа. (Иными словами, таблица должна находиться во второй нормальной форме и ни одно из ее неключевых полей не должно однозначно идентифицироваться значением другого неключевого поля (полей)).
Теоретики реляционных систем Кодд и Бойс обосновали и предложили более строгое определение для 3НФ, которое учитывает, что в таблице может быть несколько возможных ключей. Таблица, соответствующая этому определению называется таблицей в улучшенной третьей форме или таблицей в нормальной форме Бойса-Кодда.
Таблица находится в нормальной форме Бойса-Кодда (НФБК), если и только если любая функциональная зависимость между его полями сводится к полной функциональной зависимости от возможного ключа.
В следующих нормальных формах (4НФ и 5НФ) учитываются не только функциональные, но и многозначные зависимости между полями таблицы. Для их описания познакомимся с понятием полной декомпозиции таблицы.
Полной декомпозицией таблицы называют такую совокупность произвольного числа ее проекций, соединение которых полностью совпадает с содержимым таблицы.
Теперь можно дать определения высших нормальных форм. И сначала будет дано определение для последней из предложенных - 5НФ.
5НФ - Таблица находится в пятой нормальной форме тогда и только тогда, когда в каждой ее полной декомпозиции все проекции содержат возможный ключ. Таблица, не имеющая ни одной полной декомпозиции, также находится в 5НФ.
4НФ - Четвертая нормальная форма является частным случаем 5НФ, когда полная декомпозиция должна быть соединением ровно двух проекций. Весьма не просто подобрать реальную таблицу, которая находилась бы в 4НФ, но не была бы в 5НФ.
Третья нормальная форма считается оптимальной для небольших баз данных, при проведении дальнейшей нормализации следует учитывать, что при увеличении количества связанных таблиц увеличивается время обработки информации, хранящейся в них. Поэтому разработчик должен сам принимать решение о том, какая ступень нормализации будет оптимальной для проектируемой базы данных.
Вопросы для самоконтроля:
- дайте понятие базы данных;
- что такое реляционная модель данных;
- дайте определение объекта, атрибута, отношения, кортежа, схемы отношений;
- что такое нормализация, нормальных форм;
- 1, 2, 3 нормальные формы. Дайте определение.
ЛАБОРАТОРНАЯ РАБОТА
РАЗРАБОТКА СТРУКТУРЫ РЕЛЯЦИОННОЙ БАЗЫ ДАННЫХ
Цель: изучение принципов проектирования реляционной БД в соответствии с правилами нормализации.
Материалы и оборудование: ПК
Индивидуальное задание: разработка схемы отношений, соответствующей объекту, описанному в варианте задания, и приведение ее к третьей нормальной форме.