Виды зависимостей между атрибутами в отношениях. Первая нормальная форма. Вторая нормальная форма. Третья нормальная форма.
С проектирование БД связано понятие нормализации. Нормализация отношений - это процесс построения оптимальной структуры таблиц и связей в реляционной БД (процесс уменьшения избыточности информации). В процессе нормализации данные группируются в таблицы, представляющие классы объектов и их взаимодействие. Цели, которые преследуются при построении наиболее эффективной структуры данных:
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.
Данные в таблицах примут следующий вид:
Заказы
Клиенты
Товары
Производители
Дата добавления: 2016-05-11; просмотров: 1135;