Вторая нормальная форма


Отношение удовлетворяет второй нормальной форме (2НФ), если оно удовлетворяет 1НФ и не содержит атрибутов, зависящих от части ключа.

На рисунке 5 приведено отношение СЕМЕСТР, не удовлетворяющее 2НФпо следующей причине. Ключ отношения составляют атрибуты код студента и номер семестра, т.к. комбинация значений именно атрибутов уникальна для любого кортежа отношения. Вместе с тем, если атрибуты тип стипендии в семестреи рейтинг в семестре, зависят от полного ключа, то Ф.И.О. и дата рождения являются характеристиками студента вне зависимости от семестра, т.е. зависят от части ключа – от атрибута код студента.

Схема структуры СТУДЕНТ 3

Код студента Ф.И.О. Дата рождения Номер семестра Тип стипендии Рейтинг за семестр
           
Гончар Е.Г 29.01.1970 академическая
Гончар Е.Г 29.01.1970 академическая
Ермолова А.Г. 19.09.1985 не получал
Ермолова А.Г. 19.09.1985 академическая
Ермолова А.Г. 19.09.1985 повышенная
Курник П.В. 28.02.1975 академическая
           

Рисунок 5 Отношение, не удовлетворяющее второй нормальной форме.

 

Студент может изменить фамилию и тогда это можно было связать это с семестром, хотя практического смысла в этом нет. При использовании такого ненормализованного отношения возникают проблемы обновления и подсчета числа объектов, отмеченных при рассмотрении примера нормализации по 1НФ.

Приведение отношения ко 2НФ и заключается в разбиении исходного отношения на два, одно из которых включает атрибуты ключа исходного отношения и атрибуты, зависящие от полного ключа, а второе – атрибуты зависящего от части ключа вместе с атрибутами этой части. Результат нормализации исходного отношения СТУДЕНТ 3 приведен на рисунке 6.

СТУДЕНТ 4

Код студента Ф.И.О. Дата рождения

 

СТУДЕНТ 5

Код студента Семестр Тип стипендии Рейтинг за семестр

 

Рисунок 6 – Результат нормализации отношения СЕМЕСТР

 

Третья нормальная форма

Отношение удовлетворяет третей нормальной форме (3НФ), если оно удовлетворяет 2НФ, и среди его не ключевых атрибутов нет зависящих от другого не ключевого атрибута (нет атрибутов, транзитивно зависящих от ключа).

На рисунке 7 приведено отношение, не удовлетворяющее 3НФ.

СТУДЕНТ 6

Код студента Ф.И.О. Дата рождения Адрес общежития Ф.И.О. коменданта общежития
         
Гончар Е.Г 29.01.1970 Ерошевского 53 Афанасьв А.В
Ермолова А.Г. 19.09.1985 Панова 63 Листьев Л.О
Курник П.В. 28.02.1975 Панова 63 Листьев Л.О
         

Рисунок 7 Отношение, не удовлетворяющее третьей нормальной форме

В этом примере ключ состоит из одного атрибута код студента, атрибут Ф.И.О. коменданта общежития однозначно связан с не ключевым атрибутом адрес общежития, где проживает студент, т.е. функционально зависит от него (точно также как и от ключа). Естественно, одно и тоже значение атрибута Ф.И.О. коменданта общежития будет повторяться во всех кортежах, относящихся к студентам, проживающим в одном и том же общежитии. При использовании такого ненормализованного отношения также возникают проблемы корректного обновления (изменения фамилии коменданта) и выборки кортежей.

Приведение отношения к 3НФ заключается в разбиении исходного отношения на два (рисунок 8), одно из которых есть исходное отношение без атрибутов, зависящих от не ключевого атрибута. Второе отношение состоит из атрибута, от которого в исходном отношении зависели исключенные атрибуты (оно станет ключом в новом отношении) плюс атрибуты, исключенные из исходного отношения.

СТУДЕНТ 7

Код студента Ф.И.О. Дата рождения Адрес общежития

СТУДЕНТ 8

Адрес общежития Ф.И.О. коменданта общежития

Рисунок 8 – Результат нормализации отношения СТУДЕНТ

Разобравшись с нормальными формами, перейдем к разбору отношений.

Именованное множество пар "имя атрибута - имя домена" называется схемой отношения. Мощность этого множества - называют степенью или "арностью" отношения. Набор именованных схем отношений, представляет из себя схему базы данных.

Отношение может содержать несколько ключей. Всегда один из ключей объявляется первичным, его значения не могут обновляться. Понятие первичного ключа — это такой набор атрибутов, который однозначно определяет кортеж и минимален среди всех своих подмножеств (то есть нельзя убрать ни один из атрибутов). При добавлении новых записей первичный ключ обязан оставаться первичным ключом (например, неверным будет использование в качестве первичного ключа набора Имя + Отчество + Фамилия сотрудника, даже если на момент создания таблицы полных тёзок среди заносимых в неё людей не было).

В теории реляционных баз данных таблица представляет собой изначально неупорядоченный набор записей. Единственный способ идентифицировать определённую запись в этой таблице — это указать набор значений одного или нескольких полей, который был бы уникальным для этой записи. Отсюда и происходит понятие первичного ключа — набора полей (атрибутов, столбцов) таблицы, совокупность значений которых определена для любой записи (строки) этой таблицы и различна для любых двух записей.

Использование

Первичный ключ в таблице является базовым уникальным идентификатором для записей. Значение первичного ключа используется везде, где нужно указать на конкретную запись. На использовании первичных ключей основана организация связей между таблицами реляционной БД. Чтобы организовать между двумя таблицами связь типа «один к одному» или «один ко многим(многие к одному)» в одну из связываемых таблиц добавляют поле (поля), содержащее(ие) значение первичного ключа записи в связанной таблице (такое поле называют внешним ключом). Для организации связи типа «многие ко многим» создают отдельную таблицу (так называемую «таблицу связи» или «таблицу ассоциации»), каждая запись которой содержит первичные ключи двух связанных записей в разных таблицах.

Классификация



Дата добавления: 2020-02-05; просмотров: 481;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.009 сек.