Нормализация отношений. При проектировании реляционной БД центральная задача – это определение количества отношений и их атрибутного состава
При проектировании реляционной БД центральная задача – это определение количества отношений и их атрибутного состава. Задача группировки в отношения, набор которых заранее не фиксирован, допускает множество различных вариантов решений. Рациональные варианты группировки должны учитывать следующие требования:
· множество отношений должно обеспечивать минимальную избыточность данных;
· корректировка отношений не должна приводить к двусмысленности или потере данных;
· перестройка набора отношений при добавлении в БД новых полей должна быть минимальной.
Наиболее изученным способом преобразования отношений, позволяющих улучшить характеристики БД по перечисленным критериям, является нормализация отношений. Это процесс приведения отношений к той или иной нормальной форме. Методику нормализации отношений разработал американский ученый А. Ф. Кодд в 1970 г. Он выделил три нормальные формы - 1НФ, 2НФ, 3НФ. Позже стали выделять 4НФ и 5НФ. Каждая последующая нормальная форма вводит определенные ограничения на хранимые в БД данные.
Отношение находится в первой нормальной форме, если все его поля являются простыми. Пример ненормализованного отношения:
Книга | Автор | Цена, тыс. руб. | Телефон |
А | Крюк К. К. Лис Л. Л. | 11-11-11 77-77-77 | |
В | Дудов Д. Д. Павлов П.П. | 44-44-44 55-55-55 |
Отношение содержит клетки, включающие несколько значений поля. Приведение этого отношения к 1НФ производится путем вставки записей:
Книга | Автор | Цена, тыс. руб. | Телефон |
А | Крюк К. К. | 11-11-11 | |
А | Лис Л. Л. | 77-77-77 | |
В | Дудов Д. Д. | 44-44-44 | |
В | Павлов П.П. | 55-55-55 |
Отношение находится во второй нормальной форме, если оно удовлетворяет требованиям первой нормальной формы и неключевые поля функционально полно зависят от ключа. Полная функциональная зависимость означает, что значение каждого неключевого поля однозначно определяется значением ключа.
В предыдущем отношении неключевое поле «Телефон» не зависит от ключа «Книга». Для приведения этого отношения ко 2НФ его надо разбить на три:
1) информация о книгах:
Номер книги | Книга | Цена, тыс. руб. |
А | ||
В |
2) информация об авторах:
Автор | Телефон |
Крюк К. К. | 11-11-11 |
Лис Л. Л. | 77-77-77 |
Дудов Д. Д. | 44-44-44 |
Павлов П.П. | 55-55-55 |
3) информация о том, какой автор написал какую книгу:
Автор | Номер книги |
Крюк К. К. | |
Лис Л. Л. | |
Дудов Д. Д. | |
Павлов П.П. |
Все три отношения имеют 2НФ.
Отношение находится в третьей нормальной форме, если оно удовлетворяет требованиям второй нормальной формы и при этом неключевые поля зависят от ключа нетранзитивно. Транзитивной называется такая зависимость, при которой какое-либо неключевое поле зависит от другого неключевого поля, а то, в свою очередь, зависит от ключа.
Приведем пример отношения, находящегося во 2НФ, такой структуры:
Таб. № | Должность | Оклад |
В этом отношении имеется транзитивная зависимость: неключевое поле «Оклад» зависит от неключевого поля «Должность», которое зависит от ключа «Таб. №». Она устраняется, если исходное отношение разбить на два отношения следующей структуры:
Таб. № | Должность | Должность | Оклад |
В результате требования 3НФ удовлетворены.
Дата добавления: 2015-11-28; просмотров: 607;