Лекция №19

 

Название лекции: Итоговая схема процедуры нормализации.

Другие нормальные формы

План:

1. Итоговая схема процедуры нормализации.

2. Другие нормальные формы. Доменно-ключевая нормальная форма (ДКНФ).

3. Нормальная форма «выборка-объединения».

4. Модель типа объект/отношение.

5. Пример семантических понятий.

6. Обзор модели объект/отношения.

7. Подтипы.

 

1. Итоговая схема процедуры нормализации.

Дано: отношение в 1НФ (приведено в нем) ограничения ФЗ, многозначная зависимость и зависимости соединения.

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

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

Схема нормализации:

1) Отношение в 1НФ следует разбить на проекции для исключения всех – функциональных зависимостей, которые не являются неприводимыми. Получим набор отношений в 2НФ.

2) Отношение в 2НФ следует разбить на проекции для исключения любых транзитивных функциональных зависимостей. Получим набор отношений в 3НФ.

3) Отношение в 3НФ следует разбить на проекции для исключения любых оставшихся функциональных зависимостей, в которых детерминанты не являются потенциальными ключами. Получим набор отношений в НФБК.

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

4) Отношение в НФБК следует разбить на проекции для исключения любых многозначных зависимостей, которые не являются функциональными зависимостями. Получим набор отношений в 4НФ.

5) Отношения 4НФ следует разбить на проекции для исключения любых зависимостей соединения, которые не подразумеваются потенциальными ключами (если их можно выявить) т.е. получим набор отношений в 5НФ.

Цели нормализации:

1) Исключение некоторых типов избыточности.

2) Устранение некоторых аномалий обновления.

3) Проектирование макета БДЮ который был бы хорошим представлением реального мира, интуитивно понятен и служил хорошей основой для дальнейшего развития.

4) Упрощение процесса наложения ограничения целостности.

Приведение к 5НФ представляет простой путь наложения важных и распространенных ограничений. Главное привести в действие условие уникальности потенциальных ключей.

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

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

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

1) Кроме Ф.З., многозначных зависимостей и зависимостей соединения могут существовать другие ограничения целостности.

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

3) Приведение к НФБК и сохранению зависимостей может привести к конфликтной ситуации.

4) Не всякую избыточность можно устранить разбиением на проекции.

 

2. Другие нормальные формы. Доменно-ключевая нормальная форма (ДКНФ).

Не определяется на основе ФЗ, МЗ и ЗС. Утверждается, что отношение R находится в ДКНФ, тогда и только тогда, когда каждое ограничение, наложенное на отношение R, является логическим следствием ограничений доменов и ограничений ключей, наложенных на отношение R.

Ограничение домена – это ограничение на использование значения для данного атрибута только из некоторого предметного домена.

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

Декларируется, что достаточно выполнить ограничение доменов и ключей и тогда все остальные ограничения выполняются автоматически. Причем под «другие ограничения» понимается более явные понятия, чем ФЗ, МЗ или ЗС: понимают некоторый предикат.

Фейгин показал, что отношение, находящееся в ДКНФ находится и в 5НФ, однако не всегда можно добавить приведение к ДКНФ или показать, как это сделать.

 

3. Нормальная форма «выборка-объединения».

Рассмотрим отношение, в котором находятся сведения о поставщиках.

Для нормализации типа «выборка-объединения» предлагает разбивку отношения на ряд однотипных (с одинаковой структурой) отношений, в каждое из которых включается запись о поставщиках из одного города. Фактически такое разбиение (не на проекции) всегда хуже стандартной нормализации, однако классическая теория нормализации не позволяет ответить на вопрос хуже это или лучше.

Некоторое преимущество для специальных выборок (резкое сокращение обрабатываемых записей).

Имеются другие направление в исследовании нормализации, основаны на основе других операций, отличных от проекций.

 

4. Модель типа объект/отношение.

Модель типа объект/отношение относится к так называемым семантическим моделям. Необходимость таких моделей вызвана тем, что СУБД (реляционные или другие) обладают ограниченными сведениями о смысловом значении данных, хранящейся в некоторой базе данных. Обычно СУБД позволяют включить простые ограничения целостности на простые атомарные значения. Ясно, что домены, потенциальные ключи, внешние ключи являются семантическими понятиями в реляционной модели. В качестве другого способа реализации семантики были разработаны различные «расширенные» модели, которые несут большую смысловую нагрузку, чем предлагаемые ранее модели.

«Семантическая» модель является целой области исследований, повещенных способом представления смыслового значения.

Общий подход:

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

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

Пример: сотрудник, фирмы поставщики, поставки и т.д.

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

Возможно ввести некоторое свойства объекта, которое идентифицирует объект.

Можно предположить, что каждый объект связан с другими объектами отношениями.

2) Необходимо определить множество формальных (символических) объектов, которые могут быть использованы для представления описанных выше семантических понятий.

Для описания семантических понятий используют особые отношения E – отношения описывающие объекты ENTITY – relation и P – отношения (PROPERTY – relation) – для описания свойств.

3) Необходимо ввести множество формальных правил целостности для работы с формальными объектами. Например, для каждого Р – отношения должен существовать Е – отношения объект.

4) Необходимо задать множество формальных операторов для манипулирования этими формальными объектами. (Z.B. оператор выбрать все свойства (все Р – отношения) для данного объекта (Е – отношения)).

5. Пример семантических понятий.

 

Понятия Неформальное определение Примеры
Объект Различные объекты. Поставщик, товар, поставка, сотрудник, отдел, человек, произведение, концерт, оркестр, дирижер, заказ, ассортимент заказов.
Свойства Информация описывающая объект. Номер поставщика, количество поставок, отдел сотрудника, рост человека, вид концерта, дата заказа.
Отношения Объект, который служит для организации взаимодействия между двумя объектами. Поставка (поставщик-товар), Назначение (сотрудник-отдел).
Подтип Тип объекта Y является подтипом объекта X т. и т. т., К. Каждый объект типа Y обязательно является объектам типа Х. Тип сотрудник является подтипом типа человек.

Видно, что один и тот же объект реального мира можно рассматривать как объект, как свойства, как отношение.

6. Обзор модели объект/отношения.

Разработчик модели О/О Чен дает такое определение объекту: объект – это предмет, который может быть четко идентифицирован.

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

Объект, не являющейся слабым объектам, называют правильным (или сильным объектом).

Пример: База данных аэропорта: правильный объект – сотрудник, слабый объект – пилот. Если удалить экземпляр сотрудника, то удаляется подчиненный ему экземпляр – пилот.

На диаграммах о/о (объект/связь) объект обозначается прямоугольником.

Свойство объектов:

Объекты обладают некоторыми свойствами. Значения свойств каждого типа извлекаются из соответствующего множества значений (в реляционной модели называют доменом).

Виды свойств:

Простое или составное свойство. Например: составное свойство «имя сотрудника» может складываться из простых свойств «имя», «отчество», «фамилия».

Ключевое свойство - уникальное свойство в некотором смысле.

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

Имеются также свойства: однозначные, многозначные, отсутствующие (т.е. неизвестные или неприменимые).

На диаграммах свойства обозначаются овалом.

Отношения.

Отношение Ченом определяется как ассоциация объектов.

Например: отношение «купил билет» между объектами «пассажир» и «вылет». Так же, как и для объектов имеется принципиальная разница между типами и экземплярами отношений.

Объекты, включенные в данное отношение, называют участниками этого отношения.

Количество участников данного отношения называют степенью этого отношения (не путайте с арностью отношения в реляционной модели). Степень отношения «купил билет» – два.

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

Пример: есть два объекта «поставщик», «товар» и отношение между ними «поставка». Если каждый товар должен поставляться как минимум одним поставщиком то, участие товара в отношении «поставка» является полным. Если допускается, что есть товар, который не поставляется ни одним из поставщиков, то участие товара в отношении «поставка» является частичным.

Будем предполагать, что отношение имеет степень 2, хотя концепция и терминология может быть расширена и на отношения более высокого порядка.

Отношение в модели о/о могут иметь типы: один-к-одному, один-ко-многим, многие-к-одному или многие-ко-многим.

Ясно, что единственным истинным отношением является отношение n:n для этого случая требуется создать отдельный объект, представляющий это отношение.

Пример: Для отношения n:n между товарами и поставщиками необходимо создать объект «поставка», у которого должны быть свойства «код поставки (ссылка на объект)», «поставщик» и «код товара» (ссылка на объект товара).

Отношения типа 1:1 и 1:n всегда могут быть представлены с помощью внешнего ключа.

Однако в некоторых случаях их следует рассматривать так же, как и n:n, по крайней мере, если существует вероятность (возможность) необходимости расширить в будущем эти отношения до типа n:n.

 

 

7. Подтипы.

Программист автоматически обладает всеми свойствами сотрудников (обратно не верно). Аналогично программисты автоматически участвуют во всех отношениях, в которых участвует сотрудник (обратное не верно).

Программисты могут входить в профессиональное общество программистов, а другие сотрудники нет.

Говорят, что свойства и отношения наследуются.

Внимание! Речь идет о иерархии типов, а не о иерархии данных.