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

Отношение со схемой R и множеством функциональных зависимостей F находится в 1НФ, если любой экземпляр схемы R удовлетворяет следующим условиям [1], [6], [7]:

§ Каждый атрибут схемы R имеет уникальное имя. Одинаковые имена атрибутов возможны только в разных отношениях.

§ Элементы кортежей с одним и тем же именем должны быть определены на одном и том же домене. Например, нельзя в одном и том же столбце для номера поставщика задавать значения так: PN

p3

...,

поскольку значения 1, 2,... принадлежат домену целых чисел, а значение “p3” – домену, определяющему цепочки символов.

§ Элементы домена должны быть атомарным, т.е. не представлять, в свою очередь, некоторую совокупность значений. Определить понятие атомарности подчас бывает трудно, так как значение, атомарное в одном приложении, может быть не атомарно в другом [4]. Можно руководствоваться следующим соображением. Значение не атомарно, если в приложении оно используется по частям. Например, пусть дано отношение РОЖДЕНИЕ с атрибутами ИМЯ и ДАТА_РОЖД следующего вида:

РОЖДЕНИЕ (ИМЯ, ДАТА_РОЖД)

Иванов 7 июня 1961

Петров 21 марта 1970

Смирнов 30 апреля 1956

Если бы потребовалось указать только месяц или год рождения, то это отношение не находилось бы в 1НФ, так как требуемые значения (месяц или год рождения) являются только частью значений атрибута ДАТА_РОЖД. Чтобы указанное отношение находилось в 1НФ в этом случае, атрибут ДАТА_РОЖД нужно разбить на части, например, так:

РОЖДЕНИЕ (ИМЯ, ДЕНЬ_РОЖД, МЕСЯЦ_РОЖД, ГОД_РОЖД)

Иванов 7 июнь 1961

Петров 21 март 1970

Смирнов 30 апрель 1956

§ Каждый элемент кортежа должен иметь одно значение. Повторяющиеся группы значений недопустимы, т.е. на пересечении каждой строки и каждого столбца должно находиться одно значение. Например, повторяющиеся значения атрибута ПРОФЕССИЯ (два значения на пересечении первой строки и второго столбца в таблице 1 должны отображаться для реляционных структур, как в таблице 2):

1)ИМЯ, ПРОФЕССИЯ,... 2) … ИМЯ, ПРОФЕССИЯ,...

Иванов токарь, слесарь Иванов токарь

Петров водитель, повар Иванов слесарь

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

Петров повар

§ В отношении не должно быть повторяющихся (одинаковых) кортежей.

Отношение, не находящееся в 1НФ, называется ненормализованным.

Рассмотрим процесс нормализации ненормализованного отношения до первой нормальной формы.

Пусть имеем схему отношения R = PN, ST, GOR, DN, KOL, где

PN, ST, GOR - номер, статус и город поставщика;

DN - номер поставляемой детали;

KOL - количество поставляемых поставщиком деталей.

Пусть на схеме R определено множество функциональных зависимостей:

F = {PN ® GOR, GOR ® ST, PN ® ST, (PN, DN) ® KOL}

Экземпляр схемы r(R), определенный ниже, не удовлетворяет условиям 1НФ, так как содержит повторяющиеся группы значений для атрибутов DN и KOL (выделены).

Ненормализованное отношение: Нормализованное отношение (1НФ):

r (R) = PN ST GOR DN KOL r1(R) = PN ST GOR DN KOL

p1 80 Москва d1 100 p1 80 Москва d1 100

- - - d2 100 p1 80 Москва d2 100

p2 40 Самара d1 300 p2 40 Самара d1 300

- - - d2 40 p2 40 Самара d2 40

p3 80 Москва d2 200 p3 80 Москва d2 200

p4 100 СПб d2 150 p4 100 СПб d2 150

Поэтому отношение, имеющее структуру экземпляров r(R), является ненормализованным. Чтобы отношение R было нормализованным, надо привести структуру его экземпляров к виду r1(R). Теперь отношение R со структурой экземпляров r1(R) будет находиться в первой нормальной форме.

Отношению R, находящемуся в 1НФ, присущи следующие недостатки:

1) информационная избыточность (город и статус поставщика повторяются для каждого поставляемого вида деталей);

2) аномалии операций обработки данных:

§ добавление (в экземпляр r1 (R) нельзя включить нового поставщика, пока он не начнет поставлять какую-либо деталь);

§ удаление (нельзя удалить сведения только о поставках, так как можно удалить всю информацию о поставщике. Кроме того, удаление кортежа с поставщиком “p4” приведет к потере статуса для Петербурга, что может нарушить целостность данных);

§ корректировка (при изменении значения города, например у поставщика “p1”, можно получить противоречивые данные, если сделать эти изменения не во всех кортежах с поставщиком “p1”).

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

Чтобы избавиться от этих недостатков, надо продолжить нормализацию исходного отношения R до второй нормальной формы.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: