Скачать презентацию Нормализация отношений Цель нормализации Основная цель нормализации Скачать презентацию Нормализация отношений Цель нормализации Основная цель нормализации

Лекция 3. Нормализация отношений.pptx

  • Количество слайдов: 26

Нормализация отношений Нормализация отношений

Цель нормализации Основная цель нормализации – создание набора отношений с заданными свойствами: • между Цель нормализации Основная цель нормализации – создание набора отношений с заданными свойствами: • между атрибутами не должно быть нежелательных функциональных зависимостей. • группировка атрибутов должна обеспечивать минимум дублирования данных. Нормализация отношений - пошаговый, обратимый процесс анализа отношений на основе их первичного ключа (или потенциальных ключей) и функциональных зависимостей с последующей декомпозицией (разложением) исходных отношений.

Необходимость использования только нормализованных отношений Явная избыточность. Одни и те же значения одного или Необходимость использования только нормализованных отношений Явная избыточность. Одни и те же значения одного или нескольких атрибутов могут появляться в отношении несколько раз. Неявная избыточность встречается там, где есть неявная зависимость между атрибутами. Аномалия добавления связана с отсутствием некоторой информации при включении в БД кортежа с нулевыми значениями некоторых атрибутов записи. Пример неявной избыточности Аномалия удаления в ненормализованных таблицах Номер гостя Комната Телефон может привести к тому, что при 1 12 23 -12 удалении информации об одном 2 13 21 -13 объекте будет удалена также 3 14 24 -14 информация о каких-то других 4 12 23 -12 объектах

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

Типы функциональных зависимостей Транзитивная зависимость. Если для атрибутов А, В, С выполняются условия А Типы функциональных зависимостей Транзитивная зависимость. Если для атрибутов А, В, С выполняются условия А В и В С, но обратная зависимость отсутствует, то говорят, что С зависит от А транзитивно при условии, что атрибут А функционально не зависит ни от атрибута В, ни от атрибута С. Многозначная зависимость. В отношении R атрибут В многозначно зависит от А (А –>> В), если каждому значению А соответствует множество значений В, никак не связанных с другими атрибутами из R. Тривиальная зависимость. Тогда и только тогда, когда ее правая (зависимая) часть является подмножеством ее левой части (детерминанта). Функциональные зависимости позволяют определить все потенциальные ключи данного отношения.

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

Пример приведения к 1 НФ Исходные данных Первоначальная обработка данных Ненормализованная форма (ННФ) Kл. Пример приведения к 1 НФ Исходные данных Первоначальная обработка данных Ненормализованная форма (ННФ) Kл. No Кл. Имя Coб. No Адрес Сдана Осв Цена Bл. No Ск 76 ЖЖ 36 Иван Ключов ЖЖ 21 ул. М-2 11 -09 -02 ул. D-18 ЖЖ 16 Ск 56 Лина Жильц ова Вл. И 6 -10 -02 400 Вл 46 Дмитрий 10 -01 -01 11 -11 -01 700 Вл 87 Кирилл ул. N-5 1 -08 -01 1 -10 -01 560 Вл 93 Антон ЖА 14 ул. Н-16 1 -10 -01 1 -11 -01 700 Вл 46 Дмитрий ЖЖ 36 ул. М-2 10 -01 -01 11 -11 -01 400 Вл 46 Дмитрий

Варианты приведения к 1 НФ • разделить одну запись на несколько частей, продублировав при Варианты приведения к 1 НФ • разделить одну запись на несколько частей, продублировав при этом значения атрибутов «Kл. No» и «Кл. Имя» на все соответствующие записи, т. е. добиться, чтобы на пересечении каждой строки и каждого столбца находилось единственное значение. • Второй вариант предполагает, что повторяющаяся группа (в нашем примере код клиента и его имя) удаляется из данного отношения (остается только ключевой атрибут) и помещается в другое отношение вместе с копией исходного ключевого атрибута. Отношение "Сделки" в 1 НФ Kл. No Кл. Имя Coб. No Адрес Сдана Осв Цена Bл. No Вл. И Ск 76 Иван Ключов ЖЖ 36 ул. М-2 11 -09 -02 6 -10 -02 400 Вл 46 Дмитрий Ск 76 Иван Ключов ЖЖ 21 ул. D-18 10 -01 -01 11 -11 -01 700 Вл 87 Кирилл Ск 56 Лина Жильцова ЖЖ 16 ул. N-5 1 -08 -01 1 -10 -01 560 Вл 93 Антон Ск 56 Лина Жильцова ЖА 14 ул. Н-16 1 -10 -01 1 -11 -01 700 Вл 46 Дмитрий Ск 56 Лина Жильцова ЖЖ 36 ул. М-2 10 -01 -01 11 -11 -01 400 Вл 46 Дмитрий

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

Функциональные зависимости (ФЗ) в отношении «Сделки» Ф 31: (Kл. No, Соб. No) (Сдана, Осв); Функциональные зависимости (ФЗ) в отношении «Сделки» Ф 31: (Kл. No, Соб. No) (Сдана, Осв); Ф 32: Kл. No Кл. Имя; Ф 33: Соб. No (Адрес, Цена, Вл. No, Вл. И); Ф 34: Соб. No Вл. И; Ф 35: (Kл. No, Сдана) (Соб. No, Адрес, Осв, Цена, Вл. No, Вл. И); • Ф 36: (Соб. No, Сдана) (Kл. No, Кл. Имяб Осв); Потенциальные ключи – (Kл. No, Соб. No), (Kл. No, Сдана), (Соб. No, Сдана). Ф 34 – транзитивная зависимость. ФЗ 3 указывает, что Соб. No Вл. No, т. е. Соб. No Вл. No, Вл. No Вл. И. • • •

Граф функциональных зависимостей В качестве первичного ключа выберем Kл. No и Соб. No. Из Граф функциональных зависимостей В качестве первичного ключа выберем Kл. No и Соб. No. Из графа видно, что существуют две частичные зависимости ФЗ 2 и ФЗ 3. Это говорит о том, что отношение «Сделки» не находится в 2 НФ и должно быть к ней преобразовано.

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

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

Функциональные зависимости Отношение «Съемщик» : • Ф 32: Kл. No Кл. Имя. Отношение «Аренда» Функциональные зависимости Отношение «Съемщик» : • Ф 32: Kл. No Кл. Имя. Отношение «Аренда» : • Ф 31: (Kл. No, Соб. No) (Сдана, Осв); • Ф 35: (Kл. No, Сдана) (Соб. No, Адрес, Осв, Цена, Вл. No, Вл. И); • Ф 36: (Соб. No, Сдана) (Kл. No, Кл. Имяб Осв); Отношение «Собственник» : • Ф 33: Соб. No (Адрес, Цена, Вл. No, Вл. И); • Ф 34: Вл. No Вл. И; В отношении «Собственник» присутствует транзитивная зависимость: Соб. No Вл. No, Вл. No Вл. И.

Отношения в третьей нормальной форме (3 НФ) Устранение транзитивной зависимости в отношении «Собственник» достигается Отношения в третьей нормальной форме (3 НФ) Устранение транзитивной зависимости в отношении «Собственник» достигается переносом в отдельное отношение пары атрибутов и оставлением копии детерминанта в отношении «Собственник» . В результате получим два новых отношения «Жилье» и «Владелец» , которые находятся в 3 НФ, поскольку в них нет транзитивных зависимостей

Процесс нормализации Процесс нормализации

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

Различия между 3 НФ и НФБК Функциональная зависимость A B допускается в 3 НФ-отношении, Различия между 3 НФ и НФБК Функциональная зависимость A B допускается в 3 НФ-отношении, если атрибут В является первичным ключом, а атрибут А необязательно является потенциальным ключом. В НФБК-отношении эта зависимость допускается только тогда, когда атрибут А является потенциальным ключом. Каждое НФБК-отношение является 3 НФ-отношением, но не всякое 3 НФ-отношение является НФБКотношением.

Пример НФБК Отношения Жилье, Владелец, Съемщик, очевидно, находятся в НФБК, поскольку каждое из них Пример НФБК Отношения Жилье, Владелец, Съемщик, очевидно, находятся в НФБК, поскольку каждое из них имеет один детерминант, который является потенциальным ключом этого отношения. В отношении Аренда имеется три детерминанта: • (Кл. No, Соб. No); • (Кл. No, Сдана); • (Соб. No, Сдана), которые являются потенциальными ключами. Поэтому отношение Аренда также находится в НФБК.

Отношение не удовлетворяющее требованиям НФБК • ФЗ 1: (Кл. No, Дата. Интервью) (Время. Интервью, Отношение не удовлетворяющее требованиям НФБК • ФЗ 1: (Кл. No, Дата. Интервью) (Время. Интервью, Код. Сотрудника, Комната); • ФЗ 2: (Код. Сотрудника, Дата. Интервью, Время. Интервью) ( Кл. No ); • ФЗ 3: (Комната, Дата. Интервью, Время. Интервью) ( Код. Сотрудника, Кл. No ); • ФЗ 4: (Код. Сотрудника, Дата. Интервью) (Комната); Ключи: ФЗ 1 – первичный ключ, ФЗ 2, ФЗ 3 – потенциальные ключи. Детерминат ФЗ 4 Код. Сотрудника, Дата. Интервью не является потенциальным ключом и, тем самым, нарушает требование НФБК.

Преобразования отношения к НФБК Для преобразования отношения к НФБК отношение разбивается на отношения Интервью Преобразования отношения к НФБК Для преобразования отношения к НФБК отношение разбивается на отношения Интервью и Комнаты, выделив атрибуты, входящие в ФЗ 4 в отношение Комнаты.

Пример приведения к НФБК Таблица бронирования для теннисных кортов на день: {Номер корта, Время Пример приведения к НФБК Таблица бронирования для теннисных кортов на день: {Номер корта, Время начала, Время окончания, Тариф, Член клуба} Тариф зависит от выбранного корта и членства в клубе. Возможны следующие составные первичные ключи: • {Номер корта, Время начала}. • {Номер корта, Время окончания}. • {Тариф, Время начала}. • {Тариф, Время окончания}. Данные отношения будут соответствовать НФБК: • {Номер корта, Время начала, Время окончания, Член клуба}. • {Тариф, Номер корта, Член клуба}.

Четвёртая нормальная форма (4 НФ) Отношение находится в 4 НФ, если оно находится в Четвёртая нормальная форма (4 НФ) Отношение находится в 4 НФ, если оно находится в НФБК и не содержит нетривиальных многозначных зависимостей. То есть все многозначные зависимости являются, функциональными зависимостями от ключей отношения. Пример: Предприятия производят разные виды изделий, а службы доставки предприятий работают только в определенных районах города. Составной ключ такого отношения: {Предприятие, Вид изделия, Район доставки}. Такое отношение не соответствует 4 НФ, так как существует многозначная зависимость: {Предприятие} {Вид изделия} {Предприятие} {Район доставки} Для приведения отношения к 4 НФ нужно разбить многозначную зависимость – разместить независимые факты в разных таблицах – {Предприятие, Вид изделия} и {Предприятие, Район доставки}.

Пятая нормальная форма (5 НФ) Таблица находится в 5 NF, если она находится в Пятая нормальная форма (5 НФ) Таблица находится в 5 NF, если она находится в 4 NF и любая многозначная зависимость соединения в ней является тривиальной. 5 НФ в большей степени является теоретическим исследованием и практически не применяется при реальном проектировании баз данных. Пример: Продавец может торговать продукцией нескольких фирм, ассортимент у фирм различен, причем продавец может предлагать только часть товаров конкретной фирмы. Отношение {Продавец, Фирма, Вид товара} соответствует 4 НФ, однако не отражает ограничения, связанного с ассортиментом продукции фирм. Может возникнуть кортеж, в котором фирме будет соответствовать вид товара, который она не выпускает. Для приведения к 5 НФ отношение должно быть разбито на три: {Продавец, Фирма}, {Фирма, Вид товара}, {Продавец, Вид товара}.

Доменно-ключевая нормальная форма Отношение в ДКНФ не имеет аномалий модификации. Другими словами, что бы Доменно-ключевая нормальная форма Отношение в ДКНФ не имеет аномалий модификации. Другими словами, что бы ни менялось – ничего не потеряется, если соблюдены все ограничения относительно ключей и доменов. Суть заключается в том, что если выполнять некоторые правила, то при любых действиях с таблицей ее целостность не пострадает и вся необходимая информация сохранится. Пример: Правила действуют примерно так: нельзя просто удалить категорию из таблицы категорий, если с этой категорией связаны другие таблицы.

Шестая нормальная форма (6 НФ) Обобщение 5 НФ для темпоральной базы данных. Темпоральная база Шестая нормальная форма (6 НФ) Обобщение 5 НФ для темпоральной базы данных. Темпоральная база данных – это база данных, позволяющая хранить темпоральные данные. ТБД позволяют сохранить информацию об эволюции объектов предметной области: для любого объекта, созданного в момент времени tstart и закончившее свое существование в момент времени tend, в БД будут сохранены все его состояния на временном интервале [tstart, tend]. Таким образом, в ТБД при каждом изменении состояния объекта будет сохраняться запись в базе данных. Уникальный идентификатор такой записи состоит из ключа объекта и временного интервала, на котором данное состояние объекта было актуальным, и имеет следующий вид: {key, [tstart, tend]}, где key -- ключ записи, [tstart, tend] -- временная метка записи. Важной особенностью ТБД является то, что в них возможны запросы не только по ключу, но и по времени.