![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
Нормализация – преобразование исходного отношения по определенным правилам и получение другого отношения, которое эквивалентно другому отношению. Формы вложены друг в друга. Нахождение отношения в старшей форме, в некотором смысле, более предпочтительно.
Определение 1НФ. Отношение находится в первой 1НФ, если все его атрибуты атомарны, то есть если ни один из его атрибутов нельзя разделить на более простые атрибуты, которые соответствуют каким-то другим свойствам описываемой сущности.
Будем называть исходное отношение основным, а значение неатомарного атрибута — подчинённым. Для того, чтобы нормализовать исходное отношение, атрибуты которого неатомарны, необходимо объединить схемы основного и подчинённого отношений.
Алгоритм нормализации отношения до 1НФ:
1. создать новое отношение, схема которого будет получена путём слияния основной и подчинённой схем исходного отношения в одну;
2. для каждого кортежа исходного отношения включить в новое столько строк, сколько кортежей содержится в подчинённом отношении этого кортежа;
3. заполнить значения атрибутов нового отношения, соответствующих атрибутам подчинённого отношения;
4. заполнить строки нового отношения значениями атомарных атрибутов исходного;
R1 | ||||
Код | Статус | Город | Товар | Кол-во |
Москва | ||||
Москва | ||||
Москва | ||||
Москва | ||||
Москва | ||||
Москва | ||||
Ростов | ||||
Ростов | ||||
Ростов | ||||
Москва | ||||
Москва | ||||
Москва |
Недостатки 1НФ рассмотрим на примере отношения R1 со следующими ФЗ: {код, товар} -> {количество}; {код} -> {город}; {код} -> {статус}; {город} -> {статус}, первичный ключ в отношении {код, товар}.
Данное отношение обладает избыточностью (для каждого поставщика указан город и статус). Избыточность приводит к различным аномалиям:
1. аномалия вставки. Нельзя добавить информацию о поставщике, который не поставил ни одного товара;
2. аномалия удаления. Возможно, что с удалением некоторой строки таблица (удаление поставки) исчезнет информация о поставщике;
3. аномалия обновления. Проблема возникает в том случае, если необходимо переместить поставщика из одного города в другой. Например, 1 из Москвы в Новгород. Для этого необходимо откорректировать все записи о поставках от этого поставщика;
Для решения этой проблемы заменим отношение несколькими проекциями. В одно включим первичный ключ и все неключевые атрибуты, неприводимо зависимые от первичного ключа. В остальные проекции – неключевые атрибуты, приводимо зависимые от первичного ключа и та часть первичного ключа, от которой данные атрибуты неприводимо зависят. Итак получим 2 отношения R2 и R3:
R2 | R3 | |||||
Код | Товар | Кол-во | Код | Статус | Город | |
Москва | ||||||
Ростов | ||||||
Ростов | ||||||
Москва | ||||||
Новгород | ||||||
ФЗ для отношения R2: {код, товар} -> {кол-во}.
ФЗ для отношения R3: {код} -> {город}, {код} -> {статус}, {город} -> {статус}.
Такие отношения позволяют преодолеть указанные противоречия:
1. можно добавить поставщика из Новгорода, который не поставлял товар;
2. можно удалить товар с кодом 2 от поставщика с кодом 3, а сведения о поставщике останутся;
3. для того, чтобы переместить поставщика 1 из Москвы в Новгород, достаточно поменять запись в отношении R3.
Физический смысл противоречий в отношении R1 в том, что это отношение описывает не один объект (поставку товара) а два: поставку и поставщика.
Определение 2НФ (при условии единственности потенциального ключа). Отношение находится во второй нормальной форме тогда и только тогда, когда оно находится в 1НФ и каждый его неключевой атрибут неприводимо зависим от первичного ключа.
Проблемы, возникающие в R3:
1. аномалия вставки. Нельзя включить город с некоторым статусом из которого нет ни одного поставщика;
2. аномалия удаления. Удалив поставщика 5, удалим информацию о том, что Новгороду был установлен статус 30;
3. аномалия обновления. Информация о статусе повторяется, т.о. изменив статус Москвы с 20 на 30 необходимо откорректировать несколько записей.
Физический смысл противоречия тот же: информация о двух объектах предметной области (город и поставщик) находится в одном отношении.
Формальным признаком не принадлежности R3 к 3НФ является наличие транзитивной ФЗ для этого отношения неприводимое множество ФЗ: {код} → {город} и {город} → {статус}.
R5: | R6: | |||
Код | Город | Город | Статус | |
Москва | Москва | |||
Ростов | Ростов | |||
Ростов | Новгород | |||
Москва | Казань | |||
Новгород |
Для решения проблемы найдем об R3 проекции, в которые включим первичный ключ и атрибут, перед которым осуществляется транзитивная зависимость и во втором отношении этот же атрибут и атрибут, транзитивно зависящий от первичного ключа исходного отношения. Получим отношения R5 и R6. ФЗ для отношения R5: {код} -> {статус}. ФЗ для отношения R6: {город}→ {статус}.
Каждое отношение описывает только одну сущность (объект предметной области).
Определение 3НФ. Отношение находится в третьей нормальной форме тогда и только тогда, когда оно находится в 2НФ, и каждый его неключевой атрибут нетранзитивно зависим от первичного ключа.
Дата публикования: 2015-02-03; Прочитано: 1298 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!