Первая нормальная форма(1НФ) — КиберПедия 

Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...

Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...

Первая нормальная форма(1НФ)

2017-10-16 296
Первая нормальная форма(1НФ) 0.00 из 5.00 0 оценок
Заказать работу

Определение. Таблица находится в первой нормальной форме, если в каждой ее ячейке находится не более одного значения.

Пример. Преобразуем таблицу «ИЗДЕЛИЯ» из предыдущего при­мера в таблицу вида: ИЗДЕЛИЯ (код изделия, деталь). Тогда, за счет дублирования кода изделия, в каждой строке в колонке «Деталь» будет стоять только одно значение – наименование кода детали. Новая таб­лица будет в первой нормальной форме.

Покажем процесс нормализации на следующей исходной таблице:

ВЫПУСК ИЗДЕЛИЙ (Код подразделения (KP), наименование подразделе­ния (NP), код изделия (KI), наименование изделия (NI), код типа изделия (KTI), наименование типа изделия (NTI), дата выпуска (DVI), количество (KVI), себестоимость изделия (SI)). Ключевые атрибуты пер­вич­ного клю­ча подчеркнуты. Эта таблица находится в первой нормальной форме.

Рассмотрим аномалии (недостатки) первой нормальной формы.

1. Избыточное дублирование данных. Все наименования будут дублироваться в каждой строке нашей таблицы.

2. Аномалия включения. Пока изделие не будет выпущено, инфор­ма­ция о нем (проектируемом или ранее снятом с производства) бу­дет отсутствовать в базе.

3. Аномалия удаления. Если изделие не выпускается в отчетный пе­ри­од, то инфор­ма­ция об изделии исчезнет из базы.

4. Аномалия корректировки. Если меняется, например, название из­де­лия, то нужно откорректировать наименование не в одной строке, а во всех строках таб­ли­цы, где оно встречается.

Для устранения этих недостатков продолжим процесс нормализации. Вторая нормальная форма(2НФ)

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

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

Атрибут «Наименование под­раз­де­ления» зависит только от атрибута «Код подразделения» и не зависит от атрибутов «Код изделия» и «Дата вы­пус­ка». Поэтому его следует удалить из таблицы. Чтобы не потерять ин­формацию о подразделении, создадим но­вую таблицу «ПОДРАЗДЕЛЕ­НИЯ» и в нее включим удаляемый атрибут «Наиме­но­ва­ние подразделе­ния» вместе с ключевым атрибутом «Код подразделения» (иначе потеряется связь с таб­лицей «ВЫПУСК ИЗДЕЛИЙ») и получим таб­лицу вида:

ПОДРАЗДЕЛЕНИЯ (Код подразделения, наименование под­раз­де­ления).

Атрибут «Наименование изделия» зависит только от атрибута «Код изделия» и не зависит от остальных ключевых атрибутов. Аналогично пре­ды­дущему случаю удалим его из таблицы в новую таб­­лицу:

ИЗДЕЛИЯ (Код изделия, наименование изделия).

Атрибут «Код типа изделия» зависит только от атрибута «Код из­де­лия» и не зависит от атрибутов «Код подразделения» и «Дата выпус­ка». Ана­логично предыдущему случаю удалим его из таблицы, добавим в таб­­­лицу «ИЗДЕЛИЯ» и получим таблицу:

ИЗДЕЛИЯ (Код изделия, наименование изделия, код типа изделия).

Атрибут «Наименование типа изделия» зависит только от атрибута «Код из­де­лия». Ана­логично предыдущему случаю удалим его из таблицы и добавим в таб­­­лицу «ИЗДЕЛИЯ» и получим таблицу:

ИЗДЕЛИЯ (Код изделия, наименование изделия, код типа изделия, наиме­но­вание типа изделия).

Атрибуты «Количество» и «Себестоимость изделия» зависят от все­го ключа, поэтому оставим их в исходной таблице.

Таким образом, получим три таблицы:

ВЫПУСК ИЗДЕЛИЙ (Код подразделения, код изделия, дата выпуска, коли­чество, себестоимость изделия).

ПОДРАЗДЕЛЕНИЯ (Код подразделения, наименование под­раз­де­ления).

ИЗДЕЛИЯ (Код изделия, наименование изделия, код типа изделия, наиме­но­вание типа изделия).

Очевидно, что все они находятся во второй нормальной форме.

Третья нормальная форма(3НФ)

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

Очевидно, что первые две таблицы удовлетворяют определению треть­ей нормальной формы. Рассмотрим таблицу «ИЗДЕЛИЯ».

Атрибут «Наиме­но­вание типа изделия» функционально зависит от неключевого атрибута «Код типа изделия», поэтому его следует удалить (по определению третьей нормальной формы) из таблицы в новую:

ТИПЫ ИЗДЕЛИЙ (Код типа изделия, наиме­но­вание типа изделия).

В результате получим модель базы данных из че­ты­рех таблиц в третьей нормальной форме (рисунок 3.2.6.1):

ВЫПУСК ИЗДЕЛИЙ (Код подразделения, код изделия, дата выпуска, коли­чество, себестоимость изделия).

ПОДРАЗДЕЛЕНИЯ (Код подразделения, наименование под­раз­де­ления).

ИЗДЕЛИЯ (Код изделия, наименование изделия, код типа изделия).

ТИПЫ ИЗДЕЛИЙ (Код типа изделия, наиме­но­вание типа изделия).

 
 

 

 


Рисунок 3.2.6.1. Модель базы данных «Выпуск изделий»

 

Убедимся в исчезновении аномалий из первой нормальной формы.

1. Избыточное дублирование данных. Все наименования сохраняют­ся в таблицах по одному разу без дублирования.

2. Аномалия включения. Хотя изделие еще не выпущено, но инфор­ма­цию о нем можно занести или сохранить в таблице «ИЗДЕЛИЯ».

3. Аномалия удаления. Если изделие не выпускается в отчетный пе­ри­од, то инфор­ма­ция об изделии сохранится в таблице «ИЗДЕЛИЯ».

4. Аномалия корректировки. Если меняется название из­де­лия, то нуж­но откорректировать наименование только в одной строке таблицы «ИЗДЕЛИЯ»..

Существуют еще несколько, редко используемых нормальных форм, которые связаны только с составными ключами.

Усиленная третья нормальная форма,или нормальная форма Бойса‑Кодда(НФБК)

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

Четвертая нормальная форма(4НФ)

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

Пример. Имеется таблица вида:

ПРЕПОДАВАТЕЛИ (Табельный номер преподавателя, предмет, группа).

Очевидно, что имеем мно­го­значную функциональную зависимость между атрибутами «Предмет» и «Группа». Будем считать, что для каждой группы одним преподавателем читается один набор предметов. Сущест­вует аномалия: при до­бав­лении новой группы нужно добавить несколько записей, по числу чита­емых преподавателем предметов, что вызывает не­же­­­лательное дублирование значений атрибута «Предмет». Исключим мно­го­значную функциональную зависимость путем переноса этих атрибутов в раз­ные таблицы, разделяя исходную таблицу на две:

ПРЕПОДАВАТЕЛИ ПРЕДМЕТЫ (Табельный номер преподавателя, пред­мет).

ПРЕПОДАВАТЕЛИ ГРУППЫ (Табельный номер преподавателя, группа).

Пятую нормальную форму(5НФ) не будем рассматривать из‑за крайне редкого ее использования (она возможна при наличии трех и более объ­ектов, связанных друг с другом отношением «многие-ко-многим»), тем бо­лее что она имеет недостатки.

Денормализация – процесс введения избыточности данных в таб­ли­цах (нарушения нормализации) в целях повышения производитель­нос­ти. Существуют нисходящая (копиро­вание атрибута из родительского объекта в дочерний) и восходящая (копирование атрибута из дочернего в роди­тель­ский объект в форме итога) денормализация.

Пример. Нормализованные таблицы «ПРЕПОДАВАТЕЛИ ПРЕД­МЕ­ТЫ» и «ПРЕПОДАВАТЕЛИ ГРУППЫ» из предыдущего примера мож­но объединить в исходную таблицу «ПРЕПОДАВАТЕЛИ». Хотя и имеет место дублирование данных, но работа с одной таблицей будет быстрее, чем с двумя нормализованными.

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

Домены

 
 

Для создания домена нужно выполнить команду Model/Domain Dic­tionary (рисунок 3.2.7.1), нажать кнопку New и заполнить поля (рисунок 3.2.7.2).

 
 

Рисунок 3.2.7.1. Окно редактирования доменов на логическом уровне

Рисунок 3.2.7.2. Окно создания домена

 
 

Домен можно создать на основе родительского домена (из списка Domain Parent). На страницах Datatype, Definition, Note, UDP (рисунок 3.2.7.1) можно ука­зать тип значений, описание, комментарий и свойство соот­ветственно. Можно создать один домен («код подразделения») и исполь­зовать его при создании атри­бутов различных сущностей (рисунок 3.2.7.3).

Рисунок 3.2.7.3. Окно создания атрибута на основе домена

 

 
 

На физическом уровне можно корректировать домен командой Mo­del/Do­main Dic­tionary (рисунок 3.2.7.4).

Рисунок 3.2.7.4. Окно редактирования доменов на физическом уровне

На странице Genaral задаются имя родительского домена, наимено­ва­ние колонки. Параметры сервера (например, ORACLE (рисунок 3.2.7.4)) задаются на странице с наименованием типа СУБД.

Домены используются при генерации системы для создания типов пользователя.


Поделиться с друзьями:

Архитектура электронного правительства: Единая архитектура – это методологический подход при создании системы управления государства, который строится...

История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...

Таксономические единицы (категории) растений: Каждая система классификации состоит из определённых соподчиненных друг другу...

История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.022 с.