Otvety_na_voprosy (565208), страница 3
Текст из файла (страница 3)
СЕКЦИИ (КодСтудента, Секция, Плата)КодСтудентаСекцияПлата110плавание150110111футболволейбол110120111122плаваниебокс150100112шахматы100Первая нормальная форма подвержена аномалиям вставки и удаления. Так, для табл.1 при удалениистудента «122» будет потеряна информация о плате в секции «бокс» и нельзя ввести данные о новой секции,пока в нее не будет записан студент. Основной причиной возникновения аномалий являетсяфункциональная зависимость атрибутов не от всего ключа, а только от его части.
В данном случае Платазависит только от Секции (Секция->Плата).13) Транзитивные зависимости. Третья нормальная форма. Примеры.Функциональная зависимость R.X --> R.Y называется транзитивной, если существует такой атрибут Z,что имеются функциональные зависимости R.X --> R.Z и R.Z --> R.Y и отсутствует функциональнаязависимость R.Z --> R.X.Отношение R находится в третьей нормальной форме (3НФ), если находится во 2НФ и каждыйнеключевой атрибут не является транзитивно зависимым от первичного ключа.Табл.2. ПРОЖИВАНИЕ (КодСтудента, Общежитие, Плата)КодСтудентаОбщежитиеПлата100110№9№4120110111№9120121132№4№8110100142№5100Для табл.2 также при удалении студента с кодом «142» будет потеряна информация о плате вобщежитии «№5» и нельзя ввести данные по отсутствующему общежитию, пока не будет добавлен студент.В данном случае имеют место функциональные зависимости КодСтудента→Общежитие иОбщежитие→Плата, образуя транзитивную зависимость КодСтудента→Общежитие→Плата.Основной причиной возникновения аномалий является транзитивная зависимость неключевыхатрибутов от первичного ключа.УСТРАНЕНИЕ: декомпозиция отношения на два новых отношения СТУДЕНТ-ПРОЖИВАНИЕ(КодСтудента, Общежитие) и ОБЩЕЖИТИЕ-ПЛАТА (Общежитие, Плата)14) Детерминант.
Нормальная форма Бойса-Кодда. Примеры.Детерминант – любой атрибут, от которого полностью функционально зависит некоторый другойатрибут.Отношение R находится в нормальной форме Бойса-Кодда (БКНФ) в том и только в том случае, есликаждый детерминант является возможным ключом.Табл.3. НаучныйРуководитель (КодСтудента, УчебныйКурс, Преподаватель)КодСтудентаУчебныйКурсПреподаватель100ФизикаБойль110111ХимияФизикаКлапейронМариотт121133ФизикаБиологияБойльДарвин133ХимияКлапейронТребования к отношению «НаучныйРуководитель»:1.
Студент может посещать один или несколько учебных курсов.2. На учебном курсе может быть несколько преподавателей.3. Каждый преподаватель может осуществлять научное руководство над студентом только в рамкаходного учебного курса.Для табл.3: при удалении студента с кодом «133» будет потеряна информация об учебном курсе«Биология» и нельзя ввести данные по отсутствующему учебному курсу, пока не будет добавлен студент.В данном случае имеются два ключа-кандидата: КодСтудента-УчебныйКурс и КодСтудентаПреподаватель.
Преподаватель является детерминантом атрибута УчебныйКурс (без преподавателя неможет существовать учебный курс, следовательно учебный курс полностью функционально зависит отпреподавателя).Основной причиной возникновения аномалий является то, что детерминант «Преподаватель» врассматриваемом отношении не является ключом.УСТРАНЕНИЕ: декомпозиция отношения на два новых отношения СТУДЕНТ-РУКОВОДИТЕЛЬ(КодСтудента, Преподаватель) и РУКОВОДИТЕЛЬ-УЧЕБНЫЙКУРС (Преподаватель, УчебныйКурс)15) Многозначные зависимости. Четвертая нормальная форма.
Примеры.В отношении R (A, B, C) существует многозначная зависимость R.A -->> R.B в том и только том случае,если множество значений B, соответствующее паре значений A и C, зависит только от A и не зависит от С.Поле А многозначно определяет поле В той же таблицы, если для каждого значения поля А существуетхорошо определенное множество соответствующих значений В.Отношение R находится в четвертой нормальной форме (4НФ), если находится в форме НФБК и неимеет многозначных зависимостей.Табл.4.
СТУДЕНТ (КодСтудента, УчебныйКурс, Секция)КодСтудентаУчебныйКурсСекция100100ФизикаХимияПлаваниеПлавание111111ФизикаХимияПлаваниеПлавание111ФизикаБорьба111ХимияБорьбаДля табл.4 существуют такие недостатки, как избыточность данных, а также аномалиимодификации, выражающиеся в том, что при необходимости вставить или удалить информацию по секцииследует добавить (или удалить) несколько строк.Основной причиной возникновения аномалий является наличие многозначных зависимостей:КодСтудента->->УчебныйКурс и КодСтудента->->Секция.УСТРАНЕНИЕ: декомпозиция отношения на два новых:СТУДЕНТ-УчебныйКурс(КодСтудента, УчебныйКурс) и СТУДЕНТ-Секция(КодСтудента, Секция).16) Доменно-ключевая нормальная форма. Определения. Примеры.Доменно-ключевая нормальная форма (ДКНФ) была предложена в 1981 г.
Фагиным (R.Fagin). Ондоказал, что если отношение находится в ДКНФ, то оно свободно от каких бы то ни было аномалий.Определение: Отношение находится в ДКНФ, если каждое ограничение, накладываемое на него,является логическим следствием определения доменов и ключей.Под ограничением понимаетсяправило, которое регулирует значения атрибутов (правиларедактирования и ограничения связей, внутренние ограничения отношений, функциональные имногозначные зависимости).Домен (domain – область, сфера) – именованный набор значений, которые может принимать атрибут.Это чаще всего известный или фиксированный набор значений либо более общее определение форматазначений.Табл.5.
СТУДЕНТ (КодСтудента, Курс, Общежитие, Плата)АтрибутДоменЗначениеЦелое число, 3-ицифрыКодСтудентаИдентификаторСтудентаКурсГодОбучения1,2,3,4,5,6ОбщежитиеНомерЗданияЦелое число, 2-ецифрыПлатаПлатаЗаПроживаниеЛюбая денежная суммаРасположенные в таблице 5 колонки «Домен» и «Значение» представляют, фактически, прообразМетаданных, который в дальнейшем будет положен в основу структуры таблиц проектируемой базыданных.Метаданные – это данные о данных, т.е.
описание «скелета» или структуры базы данных, котораявпоследствии будет заполняться конкретной информацией.При определении ключей данного отношения можно видеть, что атрибут «Общежитие» может быть ключомсамостоятельного отношения «Плата». Кроме того, при анализе доменной структуры отношения «Студент»(табл.5) можно выявить такой недостаток, как избыточность данных, возникающий вследствие имеющейсяфункциональной зависимости между атрибутами «Общежитие» и «Плата». Поэтому имеющееся отношениеследует преобразовать в два новых отношения: СТУДЕНТ(КодСтудента,Курс,Общежитие) и ОбщежитиеПлата(Общежитие, Плата)..