|
Программирование >> Реализация целостности данных
Четвертая нормальная форма Четвертая нормальная форма подводит теоретическую базу под интуитивно очевидный принцип: независимые юшиеся группы данных не следует размещать в одном и том же отношении. Предположим, что собственная продукция компании hwind Traders упаковывается в тару нескольких размеров, что эта тара поставляется несколькими поставщиками, и что каждый поставщик обеспечивает компанию тарой всех необходимых размеров. Ненормализованный вариант отношения Products мог бы выглядеть так, как показано на рис. 2-24. Chai Exotic Uquids 8 ог, 16 oz, 32 ог Clief Antons Cajun Seasoning New Orleans Cajun Deliglits 8 oz, 16 oz, 32 oz Pavlova Psvlova.Ltd 8 oz, 16 02 , 32 oz Puc, 2-24. Отношение не является нормализованнгм Первым шагом будет устранение составного атри- бута в результате чего мы получим отношение, показанное на рис. 2-25. Chai Chai Chai Chef Antons Cajun Seasoning Exotic Liquids il.9/r Erotic Liquids i12 oz ...... j Esotic l-iquids .EI 02 New Orleans Cajun Delights : 16 oi Chef Anton easoning New Orleans Cajun Delighls 12 oi Chef New Cajun Delights 8 Pavlova Pavilova, Ltd. 16 рг Pavlova Pavlova, Ltd. 12 oz Pavlova Pavlova Ltd B QZ Puc. 2-25. Вариант тшеиия, показанного на рис. 2-24, в нормальной форме Бойса-Кодда Забавно то, что отношение на рис. 2-25 находится в нормальной форме Бойса-Кодда, так как полный набор ее атрибутов образует ключ. Однако данные в отношении явно избыточны, и поддержание их целостности может показаться ночным кошмаром тому, кто этим будет заниматься. Решение проблемы базируется на концепции многозначных зависимостей и четвертой нормальной формы. Многозначная зависимость - это два совершенно независимых множества атрибутов. На рис. 2-24 многозначная зависимость записывается ка Шаше} - {PackSize} {SupplierName}, что означает: две множественные зависимости поставщиков упаковки и размеров упаковки от наименования продукта . Упрошен- ЧАСТЬ 1 Теории НОННЫХ баз данных НО, нормализация до четвертой нормальной формы состоит в выделении многозначные мостей в разные отношения (рис. 2-26). Формально отношение находится в четвертой нормальной форме, если оно находится в нормальной форме и кроме того, все многозначные зависимости являются также функциональными зависимостями от ключей-кандидатов. Приведение отношения к четвертой нормальной форме актуально, только если между атрибутами существуют многозначные связи. Если бы каждый продукт упаковывался в тару только одного размера, или вся тара поступала от единственного поставщика, приведения к четвертой нормальной форме не потребовалось бы. Точно так же, если два множества атрибутов не являются совершенно независимыми, это скорее всего говорит о том, что отношение не находится во второй нормальной форме. Chai phai... Chai Ciief Antons Cajun Seasofiing Chel Antons Cajun Seaaurimg Chef Antons Cajun Saasqning Pavlova Pa<<tma Pavlova ; isoz В 01 ; 16 oz. 8 01 ; Chai ! EkoIic Lit( ids . . Chai i Exolic Liquids Chai iEotic Lipuids Chef .Mans Cajun Sessontng : NewOrlaans Cajun Delights Che oning NewOrteans Cajun tjaiightb Chef Antons Cajun Seasoning Orleans Cajun OeHghts i-.=jyiciva Pavlova, Ltd. Pavlova. . 7 >avfbya,Lti. Pavlova Pavlova, Puc. 2-26, Отношения жащшмногозначные зависимости, должны быть подвергнуты декомпозиции Пятая нормальная форма Пятая нормальная форма имеет дело с чрезвхчайно редко встречию-щимся случаем зависимостей соединения. Зависимости соединения подчиняются шем;. принципу слн сущность i зависит от сущности 2, сущность 2 зависит ости 3, а сущность 3 в свою очередь зависит от сущности то все три сущности обязательно должны входить в один и тот же кортеж . Если перевести это на нормальный язык, то получится следующее: Есл вшик поставляет данный товар своим заказчикам и определенный заказчик заказывает данный товар у а тый поставщик поставляет нечто упомянутому заказчику (то есть заказчик иногда заказывает что-то у поставщика), то это значит, что данный поставщик поставляет упомянутый товар упомянутому !аказчику . В общем случае это рассуждение ошибочно. Поставщик не обязательно поставляет заказчику именно этот конкретный товар, он может поставлять ему другие имеющиеся у него продукты. Зависимость соединения существует, только когда на модель налагается дополнительное ограничение, делающее подобное рассуждение справедливым. Зависимость соединения в нашем случае можно выразить так: Если поставщик поставляет товар, этот товар интересует заказчика, и заказчик работает с поставщиком, то заказчик непременно ет товар у поставщика . В такой ситуации недостаточно ограничиться созданием одного-единственного отношения t[, Силютее] (Поставщик, Продукт, Покупатель), так как при обновлении данных могут возникнуть проблемы, связанные с избыточностью. Например, если рассматривать связь, изображенную на рис. 2-27 и придерживаться сформулированного выше принципа о связи поставщика, продукта и заказчика, то внесение записи {Ма Maison, Aniseed Syrup, Bergiunds snabk...op) потребует также внесения второй записи {Exotic Liquids, Aniseed Syrup, Bergiunds snablc.op}. В самом деле, заказчик *Berglunds snabk..op > решил, что ему не хватает продукта Aniseed Syrup (анисовый сироп). Он решил покупать его у поставщика Ма Maison (Мамаша Мейсон). Но его поставщиком уже является компания Exotic Liquids* ( Экзотические напигки ). Следовательно, согласно сформулированному принципу, придется Экзотическим напиткам поставлять Berglunds snabk..op еше и анисовый сироп. Exotic uiu - Aniseed ... , Alfreds Futlerkiste EKDtic Liquids Chef Antons Cajun Seasoning Bergiunds snahbkijpj Puc. 2-27. Данное отношение не находится в пятой нормальной форме Декомпозиций на три различных отношения: Supplier Product, Pro-ductCustomer Customei (Поставщик - Продукт, Продукт -Покупатель и Покупатель тавщик) устраняет проблему избыточности, но приводит к возникновению иных трудностей. Если вам нужно получить исходные данные, то придется соединить между собой все три новых Если попытаться соединить толь-
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |