Нормализация отношений
Лекция
МОДЕЛИ ДАННЫХ: НОРМАЛИЗАЦИЯ ОТНОШЕНИЙ. 1НФ.
1. Нормализация отношений
Центральная задача проектирования базы данных ЭИС - определение количества отношений и их атрибутного состава.
Задача группировки атрибутов в отношения допускает множество различных вариантов решений. Рациональные варианты группировки должны учитывать следующие требования:
• множество отношений должно обеспечивать минимальную избыточность представления информации,
• корректировка отношений не должна приводить к двусмысленности или потере информации,
• перестройка набора отношений при добавлении в базу данных новых атрибутов должна быть минимальной.
Нормализация представляет собой один из способов преобразования отношений, позволяющих улучшить характеристики БД по перечисленным критериям.
Рекомендуемые материалы
Ограничения на значения, хранимые в реляционной базе данных, достаточно многочисленны. Соблюдение этих ограничений связано с наличием нормальных форм. Процесс преобразования отношений базы данных к той или иной нормальной форме называется нормализацией отношений. Нормальные формы нумеруются последовательно от 1 по возрастанию, и чем больше номер нормальной формы, тем больше ограничений на хранимые значения должно соблюдаться в соответствующем отношении.
Ограничения, типичные для реляционной модели данных - это функциональные и многозначные зависимости, а также их обобщения (обеспечивается сокращение избыточной информации в реляционной БД). Множество дополнительных ограничений может расти и, соответственно, будет увеличиваться число нормальных форм.
Отношение в первой нормальной форме (сокращенно 1НФ) - это обычное отношение с двухуровневой структурой. Недопустимость в структуре отношения третьего и последующих уровней является ограничением, определяющим 1НФ - отношения.
Преобразование ненормализованного отношения в представление, соответствующее 1НФ - это операция нормализации. Реляционная база данных в целом характеризуется 1НФ, если все ее отношения соответствуют 1НФ.
Следующие нормальные формы (вторая и третья) используют ограничения, связанные с понятием функциональной зависимости.
2. Функциональные зависимости и ключи
Функциональные зависимости определяются для атрибутов, находящихся в одном и том же отношении, удовлетворяющем 1НФ. Простейший случай функциональной зависимости охватывает 2 атрибута. В отношении R(A,B,...) атрибут А функционально определяет атрибут В, если в любой момент времени каждому значению А соответствует единственное значение В (обозначается А ®В).
Иначе говорят, что В функционально зависит от А (обозначается В = f(A)). Отсутствие функциональной зависимости обозначается А—/® В.
Пример 1.
I1 | |
ФИО | ГР |
Иванов Зуев Смирнов Яшина | I960 1963 1960 1961 |
Предположим, что в столбце ФИО представлены сведения о разных людях и значения не повторяются. Тогда можно утверждать: ФИО ® ГР, поскольку у каждого человека единственный год рождения. Наличие в столбце ГР повторяющихся годов (I960) означает ГР —/® ФИО.
Практически каждое ограничение для проверки функциональной зависимости можно преобразовать в утверждение о свойствах объектов предметной области.
Одновременное соблюдение двух зависимостей вида А ® В и В ® А называется взаимно-однозначным соответствием и обозначается А « В.
Пример 2.
I2 | |
Магазин | Расч |
ММЗ Динамо АТЭ | 704098 122096 440162 |
Можно допустить, что у каждого магазина единственный номер расчетного счета и утверждать, что каждый расчетный счет принадлежит единственному магазину. Это доказывает справедливость функциональных зависимостей Магазин ® Расч и Расч ® Магазин, т.е. Магазин « Расч.
Примера 3.
I3 | |
ФИО
| Дисциплина
|
Петров Федин Алешин Петров
| Физика Химия Физика Химия |
Отношение I3 описывает экзамены, сдаваемые студентами: ФИО —/® Дисциплина и Дисциплина —/® ФИО, т.к. каждый студент сдает экзамены по нескольким дисциплинам, и по каждой дисциплине экзамен сдается многими студентами. Т.е. отсутствуют функциональные зависимости.
Таким образом, для атрибутов А и В некоторого отношения возможны следующие ситуации:
• отсутствие функциональной зависимости,
• наличие А ® В (или В ® А), но не обе зависимости вместе,
• наличие взаимно-однозначного соответствия А« В.
Понятие функциональной зависимости распространяется на ситуацию с тремя и более атрибутами в следующей форме. Группа атрибутов (для определенности А,В,С) функционально определяет атрибут D в отношении T(A,B,C,D,....), если каждому сочетанию значений <а,b,с> соответствует единственное значение d (а - значение A, b - значение В, с - значение С, d - значение D). Наличие такой функциональной зависимости будем обозначать А,В,С ® D.
Существование функциональных зависимостей связано с применяемыми способами кодирования атрибутов. Так, для множества учреждений можно утверждать, что каждый отдел (как объект предметной области) относится к единственному учреждению. Однако этого недостаточно для доказательства функциональной зависимости Отдел ® Учреждение. Если в каждом учреждении отделы нумеруются последовательно, начиная с 1, то функциональная зависимость неверна. Если же код отдела, кроме номера, содержит и код учреждения (или уникальность кодов обеспечивается каким-то другим способом), то функциональная зависимость Отдел ® Учреждение справедлива.
Зависимость ФИО®ГР в I1 соблюдается, если ФИО является атрибутом- идентификатором для каждого человека, что может быть справедливо только для небольших множеств людей.
Для показателя со множеством атрибутов-признаков Р = {Р1, Р2, ... ,Рn} и атрибутом-основанием Q справедлива функциональная зависимость Р ® Q, но нельзя утверждать, что это единственная зависимость на указанных атрибутах.
С помощью функциональных зависимостей определяется понятие ключа отношения - вероятный, первичный и вторичный.
Вероятным ключом отношения называется такое множество атрибутов, что каждое сочетание их значений встречается только в одной строке отношения, и никакое подмножество атрибутов этим свойством не обладает. Вероятных ключей в отношении может быть несколько.
Примера 4.
I4 | ||||
ZEN
| RAM
| AST
| SPIM
| BIG
|
1А
| 31
| dwa
| wii
| 73
|
ЗВ
| 21
| bun
| CUD —*K
| 40
|
3D
| 30
| mun
| lam
| 58
|
40
| 31
| sab
| wii
| 40
|
Вероятным ключом отношения I4 является атрибут ZEN и пара атрибутов RAM, AST.
Выборка по известному значению вероятного ключа дает в результате одну строку отношения либо ни одной.
Когда в отношении присутствует несколько вероятных ключей, целесообразно выбрать один из них в качестве основного (первичного).
Первичным ключом отношения называется такой вероятный ключ, по значениям которого производится контроль достоверности информации в отношении (интересующий в данный момент аспект).
Применительно к экономической информации часто отношения содержат единственный вероятный ключ, который и является первичным ключом. Наличие двух и более вероятных ключей в отношениях можно объяснить наличием нескольких возможных способов интерпретации одних и тех же данных. Первичный ключ часто называется просто ключ.
В отношениях с большим числом строк нахождение первичного ключа путем непосредственного применения определения достаточно затруднено. Кроме того, на стадии проектирования ЭИС значения многих отношений просто неизвестны. Поэтому практически первичный ключ отношения определяется по известным функциональным зависимостям.
Каждое значение первичного ключа встречается только в одной строке отношения. Значение любого атрибута в этой строке также единственное. Если через К обозначить атрибуты первичного ключа в отношении R(A,B,C,... J), то справедливы следующие функциональные зависимости К ®А, К ® В, К ® С,..., К ® J.
Набор атрибутов первичного ключа функционально определяет любой атрибут отношения.
Обратно: если найдена группа атрибутов, которая функционально определяет все атрибуты отношения по отдельности, и эту группу нельзя сократить, то найден первичный ключ отношения.
Пример 5.
I5 | ||||
ФИО
| Дисциплина
| Дата | Преподаватель | Оценка |
Петров Федин Алешин Петров
| Физика Химия Физика Химия | 10.02.11 10.02.11 14.02.11 14.02.11 | Иванов Смирнов Иванов Смирнов
| 4 5 5 5 |
Ограничение, состоящее в том, что студент не может в один день сдать два и более экзаменов означает справедливость ряда функциональных зависимостей:
ФИО, Дата ® Дисциплина,
ФИО, Дата ® Преподаватель,
ФИО, Дата® Оценка.
Ясно, что
ФИО, Дата ®ФИО,
ФИО, Дата ®Дата
Следовательно, первичный ключ в отношении I5 составляют атрибуты ФИО, Дата и при поиске ключа не потребовались конкретные значения I5.
Для множества функциональных зависимостей одного отношения существует ряд закономерностей, которые выражаются теоремами. Знание теорем позволяет из исходного множества функциональных зависимостей получать производные зависимости.
Теорема1
А, В ® А и А, В ® В.
Доказательство основано на том, что в строке <а,b> для атрибутов А и В значение а (как и значение b) присутствует один раз.
Теорема 2
А ® В и А ® С тогда и только тогда, когда А ®ВС.
Рассмотрим произвольное значение а атрибута А. Если А®В и А®С, то im[1]В(а) и imC(a) содержат по одному элементу. Предположим, что зависимость А ® ВС неверна и im ВС(а) состоит из 2 или более элементов. Тогда либо im В(а), либо im С(а) должны содержать более одного элемента. Полученное противоречие доказывает зависимость А ® ВС.
Обратно, если А ® ВС, то imВС(а) содержит один элемент вида <b,с> для любого а. Зафиксируем некоторое значение al. Значение b (как и значение с) встречается в сочетании с al только один раз, следовательно, справедливо А ® В и А ® С.
Теорема 3
Если А®В и В®С, то А ® С.
Предположим, что зависимость А ® С неверна и множество imС(а) содержит более одного элемента. Каждому значению а соответствует единственное значение b (в силу А ® В), поэтому imC(b) содержит более одного элемента. Получилось противоречие с условием В ® С, что и доказывает теорему.
Доказательства остальных теорем опираются на первые 3 теоремы.
Теорема 4
Если А ® В, то АС ® В (С произвольно).
Доказательство : АС ® А (теорема 1), А ® В (условие), следовательно, АС ® В по теореме 3.
Теорема 5
Если А ® В, то АС ®ВС ( С произвольно).
Доказательство: АС ® В (теорема 4), АС ® С (теорема 1), следовательно, АС ® ВС по теореме 2.
Теорема 6
Если А ® В и ВС ® D, то AC ® D.
Доказательство Из А ® В следует АС ® ВС (теорема 5). ВС ® D (условие), поэтому АС ®D по теореме 3.
Количество теорем, которые можно доказать в таком стиле, можно расширить.
Рекомендация для Вас - 10 Электронно-лучевые осциллографы.
Для некоторого множества функциональных зависимостей F введем множество F~, называемое покрытием. Покрытие F~ содержит все функциональные зависимости, которые можно получить из множества F в результате применения теорем 1-6 (включая и содержимое F). Одно и то же покрытие F~ может быть получено из различных множеств функциональных зависимостей. Среди таких множеств выделим множество с минимальным числом зависимостей и назовем его минимальным покрытием (базисом) множества зависимостей F.
Иначе: минимальным покрытием называется множество функциональных зависимостей, из которого удалены все зависимости, являющиеся следствиями оставшихся зависимостей и теорем 1-6.
Т.о. зависимости, указанные в условии той или иной теоремы, остаются в списке функциональных зависимостей, а зависимости, указанные в заключении теоремы, удаляются.
Если известно, что вероятный ключ в отношении один, то его можно найти простым способом: это набор атрибутов, которые не встречаются в правых частях функциональных зависимостей.
Иными словами, из полного списка атрибутов отношения необходимо вычеркнуть атрибуты, встречающиеся в правых частях всех функциональных зависимостей. Оставшиеся атрибуты образуют первичный ключ.
[1] “образ”