3. Вторая нормальная форма (2NF)

3. Вторая нормальная форма (2NF)

Более сильные требования накладывает на отношения вторая нормальная форма, или 2NF.

Это происходит потому, что определение второй нормальной формы отношений предполагает, в отличие от первой нормальной формы, наличие системы ограничений функциональных зависимостей.

Определение. Базовое отношение находится во второй нормальной форме относительного заданного множества функциональных зависимостей тогда и только тогда, когда оно находится в первой нормальной форме и, кроме того, каждый неключевой атрибут полностью функционально зависит от каждого ключа.

В этом определении неключевой атрибут – это любой атрибут отношения, не содержащийся в каком-либо первичном или кандидатном ключе отношения.

Полная функциональная зависимость от ключа предполагает отсутствие функциональной зависимости от какой-либо части этого ключа.

Таким образом, теперь при нормализации отношения мы должны следить и за выполнением условий пребывания отношения в первой нормальной форме, т. е. следить, чтобы его атрибуты были простыми и однозначными, а также за выполнением второго условия, касающегося ограничений функциональных зависимостей.

Ясно, что отношения с простыми ключами (первичными и кандидатными) заведомо находятся во второй нормальной форме. Ведь в таком случае, зависимость от части ключа просто не представляется возможной, потому что никаких отдельных частей ключ банально не имеет.

Теперь, как и при прохождении предыдущей темы, рассмотрим пример ненормализованной схемы отношения и сам процесс нормализации.

Итак, вариант 1 схемы отношения:

Аудитории (№ корпуса, № аудитории, Площадь кв. м, № табельный коменданта корпуса);

Primary key (№ корпуса, № аудитории);

Кроме того, определена следующая система функциональной зависимости:

{№ корпуса} ? {№ табельный коменданта корпуса};

Что мы видим? Все условия пребывания этого отношения «Аудитории» в первой нормальной форме выполнены, ведь все до единого атрибуты этого отношения однозначны и просты. Но то условие, что каждый неключевой элемент должен полностью функционально зависеть от ключа, не выполняется. Почему? Да потому, что атрибут «№ табельный коменданта корпуса» функционально зависит не от составного ключа «№ корпуса, № аудитории», а от части этого ключа, т. е. от атрибута «№ корпуса». Действительно, ведь именно номер корпуса полностью определяет, какой именно комендант к нему приписан, а, в свою очередь, ни от каких номеров аудиторий табельный номер коменданта корпуса зависеть никак не может.

Таким образом, основной задачей нашей нормализации становится задача добиться того, чтобы ключи распределялись таким образом, чтобы, в частности, атрибут «№ табельный коменданта корпуса» полностью функционально зависел от всего ключа, а не от его какой-то части.

Для того, чтобы этого добиться, придется снова, как и в предыдущем параграфе, применить декомпозицию отношения. Итак, следующая система отношений, представляющая собой вариант 2 отношения «Аудитории», как раз и получилась из исходного отношения путем его декомпозиции на несколько новых самостоятельных отношений:

Корпуса (№ корпуса, № табельный коменданта корпуса);

Primary key (№ корпуса);

Аудитории (№ корпуса, № аудитории, Площадь кв. м);

Primary key (№ корпуса, № аудитории);

Foreign key (№ корпуса) references Корпуса (№ корпуса);

Что мы видим теперь? В отношении «Корпуса» неключевой атрибут «№ табельный коменданта корпуса» полностью функционально зависит от первичного ключа «№ корпуса». Здесь условие нахождения отношения во второй нормальной форме полностью выполнились.

Теперь перейдем к рассмотрению второго отношения – «Аудитории». В отношении «Аудитории» атрибут первичного ключа «№ корпуса» является одновременно внешним ключом, ссылающемся на первичный ключ отношения «Корпуса». В этом отношении неключевой атрибут «Площадь кв. м» полностью зависит от всего составного первичного ключа «№ корпуса, № аудитории» и не зависит, даже не может зависеть ни от какой из его частей.

Таким образом, путем декомпозиции исходного отношения, мы пришли к тому, что все условия из определения второй нормальной формы полностью выполнились.

В данном примере все требования функциональной зависимости навязаны объявлением первичных ключей (кандидатных ключей здесь нет) и внешних ключей. Поэтому дальнейшая нормализация не требуется.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг:

Краткая форма записи

Из книги автора

Краткая форма записи Можно существенно упростить объявление перехода (в котором нет задержки), пользуясь свойством transition. Такой синтаксис будет использоваться во всех остальных примерах этой книги.a.foo {  padding: 5px 10px; background: #9c3; -webkit-transition: background 0.3s ease; }a.foo: hover { background: #690; }Мы


Основная форма If...Then

Из книги автора

Основная форма If...Then Оператор If ... Then выполняет некоторый блок программного кода, если условие, которое вы предложили этому оператору, принимает значение True, и не делает ничего, если условие принимает значение False. Синтаксис оператора следующий:If условие Then( операторы,


Строгая форма имени

Из книги автора

Строгая форма имени Перед установкой компоновочного блока в GAC вы должны назначить компоновочному блоку строгое имя, которое уникальным образом идентифицирует издателя данного двоичного объекта .NET. При этом следует понимать, что "издателем" может быть и отдельный


2. Первая нормальная форма (1NF)

Из книги автора

2. Первая нормальная форма (1NF) На ранних стадиях проектирования баз данных и разработки схем их управления использовались простые и однозначные атрибуты как наиболее продуктивные и рациональные единицы кода. Тогда применяли наряду с простыми и составные атрибуты, а


4. Третья нормальная форма (3NF)

Из книги автора

4. Третья нормальная форма (3NF) Следующей нормальной формой, которую мы подвергнем рассмотрению, является третья нормальная форма (или 3NF). В отличие от первой нормальной формы, так же как и вторая нормальная форма, третья – подразумевает задание вместе с отношением системы


5. Нормальная форма Бойса – Кодда (NFBC)

Из книги автора

5. Нормальная форма Бойса – Кодда (NFBC) Нормальная форма Бойса – Кодда следует по «сложности» сразу после третьей нормальной формы. Поэтому нормальную форму Бойса – Кодда еще иногда называют просто усиленной третьей нормальной формой (или усиленной 3 NF). Почему же она


Форма как графический объект

Из книги автора

Форма как графический объект Каким образом можно скопировать форму в буфер обмена в виде графического изображения?uses clipbrd;procedure TShowVRML.Kopieren1Click(Sender: TObject);var bitmap:tbitmap;begin bitmap:=tbitmap.create; bitmap.width:=clientwidth; bitmap.height:=clientheight; try  with bitmap.Canvas do CopyRect (clientrect,canvas,clientrect);  clipboard.assign(bitmap); finally 


Форма проекта

Из книги автора

Форма проекта Нам понадобится форма с тремя страничками и тремя компонентами TMemo. В первом будет показываться исходный текст преобразуемого документа, во втором — XSLT-преобразование и в третьем — результат преобразования.Приблизительный внешний вид формы показан на


Форма букв

Из книги автора

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


Форма слов

Из книги автора

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


Форма заглавных букв

Из книги автора

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


9. Форма

Из книги автора

9. Форма Признаки слева направо (рис. 189): Рис. 189• форма почерка угловатая;• форма почерка округлая;• форма почерка школьная;• форма почерка с печатными буквами;• форма почерка каллиграфическая;• форма почерка


Форма объявлений

Из книги автора

Форма объявлений Отточим наши критические навыки вначале на чем-либо не столь существенном. Поэтому начнем с синтаксиса. Рассмотрим нотацию, используемую при объявлении компонентов. В отличие от многих языков мы не использовали для подпрограмм ключевых слов procedure или


Базовая форма

Из книги автора

Базовая форма Программный объект довольно простое существо, если известен класс, которому он принадлежит. Пусть O - объект. По определению он является экземпляром некоторого класса. Точнее, он является прямым экземпляром (direct instance) только одного класса, например C. С