нпеп. Реляционная алгебра и нормализация баз данных
Скачать 443.5 Kb.
|
Реляционная алгебра и нормализация баз данныхОсновы проектирования баз данных Наличие первого из них допускается в БД, а избыточное дублирование данных может приводить к проблемам при их об обработке. Приведём пример обоих вариантов дублирования. Пример не избыточного дублирования данных представляет отношение СГ (студент-группа) с атрибутами Студент и Группа: Для студентов, обучающихся в одной группе, номер группы совпадает. Для каждого студента номер группы - уникальный атрибут. Поэтому ни один из номеров групп не является избыточным. Пример избыточного дублирования (избыточности) представляет отношение СГК (студент-группа-куратор), которые, в отличии от отношения СГ, дополнено атрибутом Куратор. Вполне естественно, что студенты одной группы находятся под руководством одного и того же куратора. В рассматриваемом отношении имеется избыточное дублирование данных: Возможный способ данных из этой ситуации в создании двух отношений СГ и ГК, полученных путём декомпозиции исходного отношения СГК: Исключение избыточности дублированияПроцедура декомпозиции отношения СГК на 2 отношения СГ и ГК является основной процедурой нормализации отношений. Избыточное дублирование создает проблемы при обработке кортежей отношениями, названной Эдгаром Коддом «Аномалии обновления отношений». Аномалиями будем называть такую ситуацию в таблица БД, которая приводит к противоречиям в БД, либо существенно усложняет обработку данных. Выделяют 3 основных вида аномалий:
Аномалии удаления Аномалии добавления Аномалии модификации проявляются в том, что изменение значения одного данного может повлечь за собой просмотри всей таблицы и соответствующее изменение некоторых других записей таблицы. Аномалии удаления состоят в том, что при удалении какого-либо данного из таблицы может пропасть и другая информация, которая не связана напрямую с удаляемым данным. Аномалии добавления возникают в случаях, когда информацию в таблицу нельзя поместить до тех пор, пока она неполная, либо вставка новой записи требует дополнительного просмотра таблицы. Нормализация базы данныхПервая нормальная форма (1НФ) Отношение находится в 1НФ, если все его атрибуты являются простыми, все используемые домены должны содержать только скалярные значения. Не должно быть повторений строк в таблице. Например, есть таблица «Автомобили»:
Нормализация базы данныхНарушение нормализации 1НФ происходит в моделях BMW, т.к. в одной ячейке содержится список из 3 элементов: M5, X5M, M1, т.е. он не является атомарным. Преобразуем таблицу к 1НФ:
Нормализация базы данныхВторая нормальная форма (2НФ) Отношение находится во 2НФ, если оно находится в 1НФ и каждый не ключевой атрибут неприводимо зависит от Первичного Ключа(ПК). Неприводимость означает, что в составе потенциального ключа отсутствует меньшее подмножество атрибутов, от которого можно также вывести данную функциональную зависимость. Например, дана таблица:
Нормализация базы данныхТаблица находится в первой нормальной форме, но не во второй. Цена машины зависит от модели и фирмы. Скидка зависит от фирмы, то есть зависимость от первичного ключа неполная. Исправляется это путем декомпозиции на два отношения, в которых не ключевые атрибуты зависят от первичного ключа.
Нормализация базы данныхТретья нормальная форма (3НФ) Отношение находится в 3НФ, когда находится во 2НФ и каждый не ключевой атрибут нетранзитивно зависит от первичного ключа. Проще говоря, второе правило требует выносить все не ключевые поля, содержимое которых может относиться к нескольким записям таблицы в отдельные таблицы. Рассмотрим таблицу:
Нормализация базы данныхТаблица находится во 2НФ, но не в 3НФ. В отношении атрибут «Модель» является первичным ключом. Личных телефонов у автомобилей нет, и телефон зависит исключительно от магазина. Таким образом, в отношении существуют следующие функциональные зависимости: Модель → Магазин, Магазин → Телефон, Модель → Телефон. Зависимость Модель → Телефон является транзитивной, следовательно, отношение не находится в 3НФ. В результате разделения исходного отношения получаются два отношения, находящиеся в 3НФ:
Риал-авто 87-33-98 Некст-Авто 94-54-12
Виды связей между таблицамиСвязь позволяет моделировать отношения между объектами предметной области. Наименование связи должно быть уникально во всей модели. Существует 4 типа связей: 1. «Один-к-одному» - любому экземпляру сущности А соответствует только один экземпляр сущности В, и наоборот. У любого конкретного ученика может быть только одна характеристика, и эта характеристика относится к единственному ученику. Виды связей между таблицами2. «Один-ко-многим» - любому экземпляру сущности А соответствует 0, 1 или несколько экземпляров сущности В, но любому экземпляру сущности В соответствует только один экземпляр сущности А. Ученику ставят много оценок; поставленная оценка принадлежит только одному ученику. Виды связей между таблицами3. «Многие-к-одному» - любому экземпляру сущности А соответствует только один экземпляр сущности В, но любому экземпляру сущности В соответствует 0, 1 или несколько экземпляров сущности А. Преподаватель работает только в одном кабинете, однако рабочий кабинет может быть закреплен за несколькими преподавателями. Виды связей между таблицамиКакая же разница между связями «один-ко-многим» и «многие-к-одному»? Такая же, как между фразами «портфель ученика» и «ученик портфеля». То есть важно, кто во взаимоотношении двух объектов главный - ученик или портфель. Суть отношений двух объектов отражается в имени связи. Виды связей между таблицами4. «Многие-ко-многим» - любому экземпляру сущности А соответствует 0, 1 или несколько экземпляров сущности В, и любому экземпляру сущности В соответствует 0, 1 или несколько экземпляров сущности А. Ученик Иванов учится у нескольких преподавателей. И каждый преподаватель работает со многими учениками. |