Студопедия

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


Мы поможем в написании ваших работ!

Порталы:

БиологияВойнаГеографияИнформатикаИскусствоИсторияКультураЛингвистикаМатематикаМедицинаОхрана трудаПолитикаПравоПсихологияРелигияТехникаФизикаФилософияЭкономика



Мы поможем в написании ваших работ!




Вторая нормальна форма

Читайте также:
  1. B. ПОЛНАЯ, ИЛИ РАЗВЁРНУТАЯ, ФОРМА СТОИМОСТИ
  2. C. ВСЕОБЩАЯ ФОРМА СТОИМОСТИ
  3. D. ДЕНЕЖНАЯ ФОРМА20
  4. II. Поворотная платформа, механизмы расположенные на ней.
  5. II. Тип организации верховной власти в государстве (форма государственного правления).
  6. III ИНФОРМАЦИОННО-МЕТОДИЧЕСКАЯ ЧАСТЬ
  7. IV.5. Основные тенденции развития позднефеодальной ренты (вторая половина XVII—XVIII в.)
  8. V. Форма итогового контроля
  9. VI. Учебно-методическое и информационное обеспечение дисциплины
  10. VI. Учебно-методическое и информационное обеспечение дисциплины (модуля)

Таблица B. РАСПОЛОЖЕНИЕ_ОТДЕЛОВ Таблица B2 ОТДЕЛ

Таблица А

Таблица А

Первая нормальная форма

Для приведения к 1НФ нужно проверить условия:

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

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

3. не содержит ли таблица несколько атрибутов(полей) с одинаковыми именами.

Рассмотрим пример №1 — БД предприятия, содержащей таблицу ОТДЕЛ со следующими значениями (ключевое поле выделено полужирным):

Таблица A: ОТДЕЛ

Номер_отдела Название Руководитель Бюджет Расположение
продаж Москва
продаж Зеленоград
разработок Тверь
продаж Калуга

В данном случае нарушается условие 2.

Для приведения этой таблицы к 1НФ мы должны устранить атрибут «Расположение» из таблицы ОТДЕЛ и создать новую таблицу РАСПОЛОЖЕНИЕ_ОТДЕЛОВ, в которой определить первичный ключ, являющийся комбинацией номера отдела и его расположения (Номер_отдела+Расположение - см. таблицы B и В2).

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

Другим ненормализованным примером таблицы А является случай, когда каждое значение какого-либо атрибута является составным. Например, значение атрибута «Руководитель» содержит данные о коде руководителя и его Фамилию. Нарушается условие 1.

Номер_отдела Название Руководитель Бюджет Расположение
продаж 001 Маслов Москва
продаж 001 Маслов Зеленоград
разработок 120 Кротов Тверь
продаж 001 Маслов Калуга

 

Третьим примером приведения ненормализованного отношения к 1НФ является случай, когда в одной строке таблицы встречаются более одного одинакового атрибута, например:

Номер_отдела Название Руководитель Бюджет Расположение Расположение Расположение
продаж Зеленоград Калуга Москва
разработок Тверь    

 

В результате приведения таблицы А к первой нормальной форме, мы получим отношения:

Номер_отдела

Номер_отдела Название Руководитель Бюджет
продаж
разработок

 

Расположение

Москва
Зеленоград
Тверь
Калуга

Для приведения таблицы ко 2НФ нужно проверить: не присутствуют ли в таблице такие атрибуты, которые зависят только от части составного первичного ключа?

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

Рассмотрим пример №2

Предположим, что есть необходимость распределить работников по проектам, ведущимся в проектном бюро. Для этого создаётся таблица ПРОЕКТ с составным первичным ключом: номер работника и идентификатор проекта.

 

Таблица C: ПРОЕКТ

Номер_работника ИД_проекта Фамилия Назв_проекта Продукт
БРЖ Иванов Биржа программа
ДОК Петров Документы программа
УПР Сидоров Управление адм.меры

 

(Номер_Работника напрямую зависит от Номера_Руководителя).

В этой таблице возникает следующая проблема.

Атрибуты Назв_проекта и Продукт зависят от сущности ПРОЕКТ и, следовательно, зависят от атрибута ИД_проекта (это часть первичного ключа), но не зависят от атрибута Номер_работника. Следовательно, они являются частично зависимыми от составного первичного ключа.

То же самое можно сказать и об атрибуте Фамилия, который зависит от атрибута Номер_работника, но не зависит от атрибута ИД_проекта.

Для нормализации этой таблицы (приведения ее ко 2НФ) удаляем атрибуты Номер_работника и Фамилия и создаём другую таблицу (РАБОТНИК_В_ПРОЕКТЕ), которая будет содержать эти два атрибута, и они же будут являться ее первичным ключом.

В результате получим таблицы, приведенные ко 2НФ.

 

ИД_проекта Назв_проекта

Номер_работника Фамилия
Иванов
Петров
Сидоров

 

Продукт

БРЖ Биржа программа
ДОК Документы программа
УПР Управление адм.меры

 

Нужно помнить, что привести таблицу ко 2НФ можно только в том случае, если у неё составной первичный ключ. Если первичный ключ простой, то такая таблица считается автоматически приведенной к 2 НФ.

 

 



<== предыдущая страница | следующая страница ==>
Общие правила нормализации | Третья нормальная форма

Дата добавления: 2014-03-13; просмотров: 359; Нарушение авторских прав




Мы поможем в написании ваших работ!
lektsiopedia.org - Лекциопедия - 2013 год. | Страница сгенерирована за: 0.003 сек.