Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Виды зависимостей между атрибутами в отношениях. Первая нормальная форма. Вторая нормальная форма. Третья нормальная форма.



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

1) обеспечить быстрый доступ к данным;

2) исключить ненужное повторение данных, которое может являться причиной ошибок при вводе, а также привести к нерациональному использованию дискового пространства;

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

Теория нормализации отношений работает с 5 нормальными формами таблиц. Подробно рассмотрим только 3 нормальные формы.

Первая нормальная форма. Определение. Отношение R находится в 1НФ тогда и только тогда, когда все входящие в него значения (домены) содержат только атомарные значения (простые, неделимые).

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

1) таблица не должна иметь повторяющихся записей.

2) в таблице должны отсутствовать повторяющиеся группы полей.

Для приведения к 1НФ можно использовать следующий алгоритм:

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

2. Определить группы повторяющихся полей.

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

4. Назначить первичные ключи в новых таблицах. (В качестве ключевых полей можно использовать поля таблицы или добавить новое поле. Если ключевое поле имеет большой размер, предпочтительней добавлять новое поле.)

5. Определить тип отношения между таблицами.

Пример.

Пусть дана однотабличная БД:

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

Рисунок 1.5.2.

Рисунок 1.5.3.

Приведем БД к 1НФ.

1. Добавим в таблицу поле Номер заказа, что позволит однозначно идентифицировать каждый из заказов.

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

Поля характеризующие товар: (Наименование товара, Цена). Вынесем их в отдельную таблицу Товары

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

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

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

Конечный результат:

Рисунок 1.5.4.

Данные в таблицах примут следующий вид:

Заказы

Клиенты

Товары

Производители

 

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

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

Частичнозависимое поле - поле, зависящее только от части ключа.

Пример.

Проекты

Пусть таблица имеет составной ключ, который формируется по двум полям: Код проекта, Код руководителя проекта.

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

Для приведения к 2НФ необходимо:

1) вынести все частичнозависимые поля в отдельную таблицу;

2) определить ключевые поля;

3) установить отношения между таблицами.

Пример.

Рисунок 1.5.10.


Поделиться:



Популярное:

Последнее изменение этой страницы: 2016-05-03; Просмотров: 857; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.012 с.)
Главная | Случайная страница | Обратная связь