Студопедия

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

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

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






Рейс<--->> Расписание






В таблице Расписание можно избавиться от составного ключа день, время_вылета, добавив уникальное поле, например, код_расписания, и выбрав его в качестве первичного ключа:

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

однако делать этого до полной нормализации не рекомендуется.

 

Вторая нормальная форма (2НФ)

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

Пример:

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

Поставка (номер_поставщика, товар, цена)

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

номер_поставщика, товар ® цена

товар ® цена

Можно отметить неполную функциональную зависимость атрибута цена от ключа.

Это приводит к следующим аномалиям:

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

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

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

Разложение таблицы Поставка на две таблицы устранит неполную функциональную зависимость:

Поставка (номер_поставщика, товар)

Цена_товара (товар, цена)

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

 

Третья нормальная форма (3НФ)

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

Пример:

Пусть имеется таблица Получение (фирма, склад, объем), которое содержит информацию о фирмах, получающих товары со складов. В таблице имеются функциональные зависимости:

фирма ® склад (фирма получает товары только с одного склада)

склад ® объем

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

Преобразование таблицы в 3НФ, устраняет рассмотренные аномалии.

Получение (фирма, склад); Склад_объем (склад, объем).

 

Таблица Рейс, полученная 1-м способом приведения к 1НФ не находится в 2НФ, а полученная 2-м способом – находится в 3НФ.

 

Получив 3НФ, мы можем сказать, что наша модель данных нормализована. Существуют и другие нормальные формы, однако в большинстве случаев 3НФ достаточно, чтобы гарантировать правильность проекта базы данных.






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