Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
31-40.docx
Скачиваний:
2
Добавлен:
23.09.2019
Размер:
54.02 Кб
Скачать

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

Рассмотрим отношение секция, данное отношение может иметь аномалии модификации, т.е. отношение подвержено как аномалии удаления, так и аномалии вставки.

Проблема формирования отношения заключается в том, что отношение содержит зависимость, затрагивающее только часть ключа. Ключом является комбинация №студента секция, но отношение помимо этого содержит ещё и зависимость секция-плата. Т.к. связан с секцией. Аномалии модификации не было бы если бы плата зависела от всего ключа. Чтобы устранить аномалию разбиваем отношение на 2.

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

Отношение секция, которое разбито на 2 отношения студент-секция и секция-плата находятся во 2й нормальной форме

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

Отношение во 2й нормальной форме всё же могут иметь аномалии.

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

Выполняем разбиение исходного отношения на 2: студент-проживание, включающее № студент и общежитии и общежитие –плата, следовательно приводим отношение ко 2й нормальной форме. Однако не смотря на это отношение проживание имеет аномалии обусловленные введенной транзитивной зависимостью, т.е. удалив строку мы потеряем информацию о студенте и общежитии в котором он проживает. Для того чтобы удалить аномалии из 2й нормальной формы необходимо устранить транзитивную зависимость или привести отношение ко 2й нормальной форме.

Определение: отношение находится в 3й нормальной форме если оно находится во 2й нормальной форме и не имеет транзитивной зависимости. Транзитивная зависимость устраняется при разбиении отношения на 2.

33.Нормализация на основе декомпозиции. Нормальная форма Бойса - Кодда.

Рассмотрим следующее отношение консультант, которое характеризуется атрибутами (№ студента, специальность, преподаватель). Определим следующие требования к отношению:

Студент может иметь 1 или несколько специальностей

Консультантом по 1 и тому же предмету могут быть несколько преподавателей.

Каждый преподаватель может быть консультантом только по 1й специальности.

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

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

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

В отношении консультант детерминант преподаватель не является ключом кандидатом, поэтому отношение не находится в нормальной форме Б-К. как ив других примерах отношение консультант можно разбить на 2, не имеющих аномалий. Студент-консультант (№студента и преподаватель) и консультант-предмет (консультант, предмет). Отношение в нормальной форме Б-К не имеет аномалий относящихся к функциональным зависимостям.

34. Четвертая нормальная форма. Пятая нормальная форма.

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

Многозначные зависимости приводят к аномалиям модификации. Первая проблема возникает с избыточностью данных, например, если студенту с №100 в таблице соответствует 4 записи, в каждой из которых указана одна специальность и одна секция, то если бы студенту с № 100 соответствовало меньшее количество записей, специальности вынуждены были бы храниться в значении одного атрибута, например, бух. Учёт и гос. муниципальное управление. Получилось бы следующее, студент с №100 посещает спортивные секции только в том случае, если специализируется на бух. Учёте и гос. управлении, однако такая интерпретация нелогична. Атрибут секция не должен зависеть от атрибута специальность, т.к. они независимы друг от друга.

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

Многозначная зависимость существует в том случае, когда отношение имеет минимум 3 атрибута, причём 2 из них являются многозначными, а их значение зависит от 3го. Другими словами в некотором отношении Р существует многозначная зависимость, если атрибут А многозначным образом определяет атрибуты Б и С, а сами атрибуты Б и С не зависят друг от друга.

В нашем примере № студента многозначно определяет атрибуты специальность и спортивная секция, а сами атрибуты специальность и спортивная секция не зависят друг от друга. Данное отношение находится в нормальной форме Бойса-Кодда во 2й и 3й нормальной форме, т.к. оно находится во 2й нормальной форме, поскольку его ключом является совокупность всех атрибутов. Отношение находится в 3й нормальной форме, т.к. отсутствуют транзитивные зависимости. В нормальной форме Бойса-Кодда, поскольку нет не ключевых атрибутов, однако данное отношение имеет все же аномалию (если студент получает дополнительную специальность, мы должны повторить наименование спортивной секции для каждой специальности). Чтобы устранить данную аномалию мы должны избавиться от многозначной зависимости, сделать это можно разбив исходное отношение на 2, в каждом из которых будут храниться данные только по 1 многозначному атрибуту и результирующее отношение, не будет иметь аномалии. Относительно нашего отношения студент-специальность с атрибутами № студента и спец и 2е отношение студент-секция с атрибутами № студента, наименование секции.

Определение . Отношение находится в 4й нормальной форме, если оно находится в нормальной форме Бойса-Кодда и не имеет многозначных зависимостей.

5я нормальная форма.

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

35. Представление связей. Рекурсивная связь.

В любых отношениях может быть выделена атрибутивная связь 1 к 1, 1 ко многим и многие ко многим.

Связь 1 к 1.

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

Один из атрибутов должен быть ключом (минимум) в идеале каждый из атрибутов должен быть ключом.

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

Атрибуты А и Б должны находиться в некотором отношении Р и не состоять ни в каком другом отношении.

Связь один ко многим:

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

К отношениям, между которыми имеется связь 1:N, иногда применяются термины родитель (parent) и потомок (child). Родитель — это отношение на унарной стороне связи (с кардинальным числом 1), а потомок — это отношение на множественной стороне связи (с кардинальным числом N).

Связь многие ко многим.

Тип бинарных связей, в которых сущности одного типа соответствует много сущностей второго типа, и сущности второго типа соответствует много сущностей первого типа.

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

Пример. –студент, -предмет. 1студент может изучать несколько предметов. 1 предмет может изучаться несколькими студентами

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

Рекурсивная связь

Это связь между сущностями одного и того же класса. У рекурсивных связей нет фундаментальных отличий от других типов связей.

У рекурсивных существует три разновидности: 1:1, 1 ко многим, многие ко многим.

Рекурсивные связи, таким образом, представляются точно так же, как и другие виды связей. Однако строки таблиц могут при этом играть две различные роли. Одни являются родительскими, другие — дочерними. Если некоторый ключ предполагается сделать родительским, и строка не имеет родителя, ее значение будет пустым. Если некоторый ключ предполагается сделать дочерним, и строка не имеет потомка, ее значение также будет пустым.

Пример 1 к 1: отношения – человек, -спонсор. При связи 1:1 один человек может финансировать другого, и каждый человек финансируется не более чем одним человеком.

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

Рекурсивные связи M:N. Связь У-КОГО-ЛЕЧИТСЯ: врач и у кого лечится.

Представляет ситуацию, в которой врачи лечат друг друга. Как и для других связей M:N, нам необходимо создать таблицу пересечения, в которой будут показаны связанные между собой пары строк. В первом столбце находится имя того, кто лечит, а во втором — имя того, кто лечится.

1 ко многим: данные помещаются в отношение, одна из строк представляет человека, который приводит клиентов, а другие строки представляют клиентов, приведенных данным человеком. Строка человека, приводящего клиентов, играет роль родительской строки, а те строки, на которые она ссылается, играют роли дочерних строк. Как и для всех связей вида 1:N, ключ родителя мы вставляем в потомок.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]