Главная страница Случайная лекция Мы поможем в написании ваших работ! Порталы: БиологияВойнаГеографияИнформатикаИскусствоИсторияКультураЛингвистикаМатематикаМедицинаОхрана трудаПолитикаПравоПсихологияРелигияТехникаФизикаФилософияЭкономика Мы поможем в написании ваших работ! |
Вторая нормальна формаТаблица B. РАСПОЛОЖЕНИЕ_ОТДЕЛОВ Таблица B2 ОТДЕЛ Таблица А Таблица А Первая нормальная форма Для приведения к 1НФ нужно проверить условия: 1. являются ли значения всех атрибутов скалярными иначе атомарными (логически неделимыми); 2. не соответствует ли одному значению первичного ключа несколько разных строк; 3. не содержит ли таблица несколько атрибутов(полей) с одинаковыми именами. Рассмотрим пример №1 — БД предприятия, содержащей таблицу ОТДЕЛ со следующими значениями (ключевое поле выделено полужирным): Таблица A: ОТДЕЛ
В данном случае нарушается условие 2. Для приведения этой таблицы к 1НФ мы должны устранить атрибут «Расположение» из таблицы ОТДЕЛ и создать новую таблицу РАСПОЛОЖЕНИЕ_ОТДЕЛОВ, в которой определить первичный ключ, являющийся комбинацией номера отдела и его расположения (Номер_отдела+Расположение - см. таблицы B и В2). В результате декомпозиции получаем две новые таблицы. Теперь для каждого расположения отдела существуют различные строки, тем самым мы устранили повторяющиеся группы. Другим ненормализованным примером таблицы А является случай, когда каждое значение какого-либо атрибута является составным. Например, значение атрибута «Руководитель» содержит данные о коде руководителя и его Фамилию. Нарушается условие 1.
Третьим примером приведения ненормализованного отношения к 1НФ является случай, когда в одной строке таблицы встречаются более одного одинакового атрибута, например:
В результате приведения таблицы А к первой нормальной форме, мы получим отношения:
Для приведения таблицы ко 2НФ нужно проверить: не присутствуют ли в таблице такие атрибуты, которые зависят только от части составного первичного ключа? Такие атрибуты называются частично зависимыми. Такие неключевые атрибуты заключают в себе информацию о данном объекте, но не идентифицируют ее уникально (не указывают на него точно). Рассмотрим пример №2 Предположим, что есть необходимость распределить работников по проектам, ведущимся в проектном бюро. Для этого создаётся таблица ПРОЕКТ с составным первичным ключом: номер работника и идентификатор проекта.
Таблица C: ПРОЕКТ
(Номер_Работника напрямую зависит от Номера_Руководителя). В этой таблице возникает следующая проблема. Атрибуты Назв_проекта и Продукт зависят от сущности ПРОЕКТ и, следовательно, зависят от атрибута ИД_проекта (это часть первичного ключа), но не зависят от атрибута Номер_работника. Следовательно, они являются частично зависимыми от составного первичного ключа. То же самое можно сказать и об атрибуте Фамилия, который зависит от атрибута Номер_работника, но не зависит от атрибута ИД_проекта. Для нормализации этой таблицы (приведения ее ко 2НФ) удаляем атрибуты Номер_работника и Фамилия и создаём другую таблицу (РАБОТНИК_В_ПРОЕКТЕ), которая будет содержать эти два атрибута, и они же будут являться ее первичным ключом. В результате получим таблицы, приведенные ко 2НФ.
Нужно помнить, что привести таблицу ко 2НФ можно только в том случае, если у неё составной первичный ключ. Если первичный ключ простой, то такая таблица считается автоматически приведенной к 2 НФ.
Дата добавления: 2014-03-13; просмотров: 359; Нарушение авторских прав Мы поможем в написании ваших работ! |