Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Нормализация реляционных баз данных. Нормальные формы 1НФ, 2НФ, 3НФ



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

Определение 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; Прочитано: 1261 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.009 с)...