Программирование >>  Реализация целостности данных 

1 ... 15 16 17 [ 18 ] 19 20 21 ... 124


CnmflrEiD Mineiro FamilisAnnJibBldo GourmetLsnchDtie-les Graal Lakes Foo: MarKel GROSgUARsslaijramB Напгп Carnas HILABIUN-Abastoe Munjry CovolB Imjjort Store rslahd Tradrng............

23 Tiawasesn Bi¥i. .....

Ujsiadat, 25 iRuaCn;s.92

av Bnsii,J

2732 Baker SW

yftK Lm Palna Srarales - --v-ii-

,. L,.:B.?}> P HiB7.............

Carmra 22 con Aw CarlaE Saublelle I Clly Cental Plaza

I Gafderi House

Tsawaaaen 350 Paule .Saq Piulq., CampJniit

> -V.....

!SP...

RiodeJaneiro iflj

San Cnstobal TacMfB Bgrn lOR....

FmeL.ilela efWight

Tsamiaeii BC SioPauia ЗР.

rnimptnaa 5P

i;irai;.iH DF

rRro de Janeiro Rj srn Cnatfibai fit-hl!

12FBM4 18!в afwail ТРШ1 7PJ.I

ftfc. 2-20. Эти два отношения находятся тьей нормальной

форме

Решение, когда и как вводить тель третью нормальную форму, может приниматься только с учетом семантика мщейся модели (впрочем, как и любое другое решение в ходе построения модели данных). Как правило, отдельные отношения проектируются только для моделирования наиболее важных сущностей предметной области, или когда предполагается частое изменение каких-то данных, или когда вы получаете в результате создания конкретного отношения серьезные технологические выгоды. Почтовые индексы изменяются, но не часто; кроме того, они не являются существенно важными

ментами большинства систем. Дальнейшая нормализация

Первые три нормальные формы были введены докторов ддом в его оригинальной работе по реляционной теории, и в поданляюшем большинстве случаев это все, о чем вам следует беспокоиться. Вспоминаю пословицу, которую я слышала в университете: Ключ, целый ключ и ничего кроме ключа, и да поможет мне Кодд!

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

Нормальная форма Бойса-Кодда

Нормальная форма Бойса-Кодда рассматривается как вариант третьей нормальной формы. Она имеет дело со специальной разновидностью отношений, для которых существует несколько



дидатов. Фактически, чтобы применять нормализацию по Бойсу-Код ду, нужно сочетание нескольких условий:

отношение должно иметь не мене ключей-кандидатов;

по крайней мере два ключа-кандидата должны быть составными;

ключи-кандидаты должны иметь перекрывающиеся атрибуты.

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

Оно находится в третьей нормальной форме (если предположить, что

имя поставщика уникально), но все еще содержит существенно избыточные данные.

5 Cooperaliva de Quesos Las Cabras,

14 Formacjgi Foriini s r I, ........

20 Leka Trading -.]

6 Mayumis .......

2A Gday, Mate / ,

$14.00

$34.80

obd

SIB so

J42 4Q

Puc. 2-21. Отношение находится в третьей алыюй форме, но не удовлетворяет нормальной форме Ьойса-Кодда

В данном случае имеется два ключа-кандидата Pro-

и Name, а диаграмма функциональной за-

висимости показана на рис.

I К сожалению, это утверждение неточно. Обычно ся болге формальным oпpeдeлeниef: огношети R находится в нормальной форме Бойса-Кодда тогда и только тогда №гда для любой нетривиальное тональной зависимости №1 a {Y межжду атрибутами R множества тив (Х[ (называемое детерминантом функциональной зависимости) всегда содержжи ключсй-кандидатоп. При этом на : -, ; не налагается никаких ограничений. Поэтому в нормальной форме Бойса-Кодда ключи-кандидаты могут зависеть друг от друга или часть атрибутов од-

ног гш.[1.ндата може даонально зависеть а-канлил;1ТГ1, - Прим. перев.

На диаграмма п. ошибка стпуст важная деталь. Вертикальная стрелка межжду ключами-кандидатами должна быть двунаправленной, как и межу атрибутами Sup-plierlD и SupplierName. Это означает, что существуют i функциональные зависимости: [SuppUerlD]-* {SuppHerName\wi [SupplierName] {SiipplierlO\ Яи одна из этих

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



Supplier ID

PracluctID

SupplierName

PrDCJui;tlD

Quantity

UiittPrice

Рис ма функциональной зависимости для отношения, показанного на рис. 2-21

Как вы можете видеть, существует функциональная зависимость (SupplierlD} {SupplierName}, которая нарушает нормальную форму Бойса-Кодда. Корректная модель показана .рис. 2-23.

Отношение Suppliers

20; Leka Trading

S; Cqoperativa de Queens Las eahrais 14: Formaggi Foftini sr.l

& Majumis 24 Gdsy, Male

Отношение Products

SSBD

$1400

$34.80

$18,ED

4b

(42.40

Рис. 2-23. Полностью нормализованный вариант модели, изображенной на рис. 2-21

Нарушения нормальной формы Бойса-Кодда легко избежать, если уделить внимание логическому смыслу ируе.мого отношения. Если отношение на рис21 содержит информацию о производимой nnOivKHin!, то туда не следует включать информацию о поставщике (разумеется, верно и обратное утверждение).



1 ... 15 16 17 [ 18 ] 19 20 21 ... 124

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика