Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции ИОСУ Ч.1 _2016.docx
Скачиваний:
2
Добавлен:
31.01.2024
Размер:
2.97 Mб
Скачать

3.3 Проектирование баз данных на основе нормализации отношений

Рассмотрим классический подход, при котором процесс проектирования БД производится в терминах реляционной модели данных методом последовательных приближений к удовлетворительному набору схем отношений [7, 8, 12].

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

Нормализация – это разбиение таблицы на две или более, обладающих лучшими свойствами (по отношению к начальному) при добавлении, изменении и удалении данных. Окончательная цель нормализации сводится к получению такого проекта БД, в котором каждый факт появляется лишь в одном месте, т.е. исключена избыточность информации. Это делается не столько с целью экономии памяти, сколько для исключения возможной противоречивости хранимых данных.

Каждая таблица в реляционной БД удовлетворяет условию, в соответствии с которым в позиции на пересечении каждой строки и столбца таблицы всегда находится единственное атомарное значение, и никогда не может быть множества таких значений. Любая таблица, удовлетворяющая этому условию, называется нормализованной. Фактически, ненормализованные таблицы, т.е. таблицы, содержащие повторяющиеся группы, не допускаются в реляционной БД.

Всякая нормализованная таблица автоматически считается таблицей в первой нормальной форме (1NF). Таким образом, понятия «нормализованная» и «находящаяся в 1NF» означают одно и то же. Однако на практике термин «нормализованная» часто используется в более узком смысле – «полностью нормализованная», который означает, что в проекте не нарушаются никакие принципы нормализации.

Каждой нормальной форме соответствует некоторый определенный набор ограничений, и отношение находится в некоторой нормальной форме, если удовлетворяет свойственному ей набору ограничений.

В теории реляционных БД обычно выделяется следующая последовательность нормальных форм:

  • первая нормальная форма (1NF);

  • вторая нормальная форма (2NF);

  • третья нормальная форма (3NF);

  • нормальная форма Бойса-Кодда (BCNF);

  • четвертая нормальная форма (4NF);

  • пятая нормальная форма, или нормальная форма проекции-соединения (5NF или PJ/NF).

В качестве общих свойств для всех нормальных форм можно отметить:

  • каждая следующая нормальная форма в некотором смысле лучше предыдущей;

  • при переходе к следующей нормальной форме свойства предыдущих сохраняются.

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

Первая нормальная форма (1NF) - это обычное отношение. Поскольку требование первой нормальной формы является базовым требованием классической реляционной модели данных, будем считать, что исходный набор отношений уже соответствует этому требованию. Напомним свойства отношений (это и есть свойства 1NF):

  • в отношении нет одинаковых кортежей;

  • кортежи не упорядочены;

  • атрибуты не упорядочены и различаются по наименованию;

  • все значения атрибутов атомарны.

Пример 2. Рассмотрим в качестве примера предметной области организацию, выполняющую некоторые проекты [8]. Модель предметной области опишем следующим неформальным текстом:

Сотрудники организации выполняют проекты.

Проекты состоят из нескольких заданий.

Каждый сотрудник может участвовать в одном или нескольких проектах, или временно не участвовать ни в каких проектах.

Над каждым проектом может работать несколько сотрудников, или временно проект может быть приостановлен, тогда над ним не работает ни один сотрудник.

Над каждым заданием в проекте работает только один сотрудник.

Каждый сотрудник числится в одном отделе.

Каждый сотрудник имеет телефон, находящийся в отделе сотрудника.

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

О каждом сотруднике необходимо хранить табельный номер и фамилию. Табельный номер является уникальным для каждого сотрудника.

Каждый отдел имеет уникальный номер.

Каждый проект имеет уникальный номер и наименование.

Каждая работа из проекта имеет номер, уникальный в пределах проекта. Работы в разных проектах могут иметь одинаковые номера.

В ходе логического моделирования на первом шаге предложено хранить данные в одном отношении СОТРУДНИКИ_ОТДЕЛЫ_ПРОЕКТЫ (Н_СОТР, ФАМ, Н_ОТД, ТЕЛ, Н_ПРО, ПРОЕКТ, Н_ЗАДАН), имеющем следующие атрибуты:

Н_СОТР – табельный номер сотрудника;

ФАМ – фамилия сотрудника;

Н_ОТД – номер отдела, в котором числится сотрудник;

ТЕЛ – телефон сотрудника;

Н_ПРО – номер проекта, над которым работает сотрудник;

ПРОЕКТ – наименование проекта, над которым работает сотрудник;

Н_ЗАДАН – номер задания, над которым работает сотрудник.

Так как каждый сотрудник в каждом проекте выполняет ровно одно задание, то в качестве потенциального ключа отношения необходимо взять пару атрибутов (Н_СОТР, Н_ПРО).

Пусть в текущий момент состояние предметной области отражается нижеследующими фактами в табл. 2.

Сотрудник Иванов, работающий в 1 отделе, выполняет в первом проекте "Космос" задание 1 и во втором проекте "Климат" задание 1.

Сотрудник Петров, работающий в 1 отделе, выполняет в первом проекте "Космос" задание 2.

Сотрудник Сидоров, работающий во 2 отделе, выполняет в первом проекте "Космос" задание 3 и во втором проекте "Климат" задание 2.

Таблица 2. СОТРУДНИКИ_ОТДЕЛЫ_ПРОЕКТЫ

Н_СОТР

ФАМ

Н_ОТД

ТЕЛ

Н_ПРО

ПРОЕКТ

Н_ЗАДАН

1

Иванов

1

11-22-33

1

Космос

1

1

Иванов

1

11-22-33

2

Климат

1

2

Петров

1

11-22-33

1

Космос

2

3

Сидоров

2

33-22-11

1

Космос

3

3

Сидоров

2

33-22-11

2

Климат

2

Соседние файлы в предмете Информационное обеспечение систем управления