Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Занятие 7. Нормализация баз данных






 

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

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

S
SC
SST
В качестве примера рассмотрим таблицу поставщиков и 2 варианта ее декомпозиции:

 

код_п статус город
п3   Париж
п5   Лондон
код_п статус
п3  

SST
п5

 
код_п город
п3 Париж

SC
п5

Лондон

 

 

а)

 

код_п статус
п3  
п5  
статус город
  Париж
  Лондон

б)

 

Ознакомившись с приведенными декомпозициями, можно заметить две особенности:

1. В случае (а) информация не утрачивается, поскольку таблицы SST и SC все еще содержат данные о том, что поставщик п3 имеет статус 30 и находится в Париже, а поставщик п5 имеет статус 30 и находится в Лондоне. Иначе говоря, первая декомпозиция действительно является декомпозицией без потерь.

2. В случае (б), наоборот, некоторая информация утрачивается, поскольку оба поставщика имеют статус 30, но при этом нельзя сказать, какой из них в каком городе находится. Иначе говоря, вторая декомпозиция не является декомпозицией без потерь (полной декомпозицией).

 

Первая нормальная форма (1НФ)

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

Пример: Рейс (номер_рейса, пункт_назначения, Расписание)

Расписание (день, время_вылета)

Пусть имеются следующие данные о рейсах:

Р101 Владивосток пон. 9: 40

вт. 9: 30

пятн. 10: 30

Р800 Москва пон. 7: 30

чет. 7: 30

пятн. 7: 30

Преобразовать эти данные в 1НФ можно 2 способами:

1) В составной таблице Рейс заменить таблицу Расписание соответствующими атрибутами:

 

Рейс (номер_рейса, пункт_назначения, день, время_вылета)

номер пункт_назначения день время_вылета
Р101 Владивосток пон. 9: 40
Р101 Владивосток вт. 9: 30
Р101 Владивосток пятн. 10: 30
Р800 Москва пон 7: 30
Р800 Москва чет. 7: 30
Р800 Москва пятн. 7: 30

Недостатки этого способа:

а) избыточность; б) необходимость определения нового ключа.

 

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

Рейс (номер_рейса, пункт_назначения)

Расписание (день, время_вылета, номер_рейса) – будем считать, что 2 разных самолета не могут вылететь одновременно!)






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.