Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Неделя 03 Лекция 1 (4).doc
Скачиваний:
1
Добавлен:
13.11.2019
Размер:
171.01 Кб
Скачать

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

Для проведения дальнейшей нормализации в теории реляционных баз данных вводится понятие ключа. Напомним, что:

Суперключ (superkey) – это атрибут или множество атрибутов, которое единственным образом идентифицирует кортеж данного отношения.

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

Первичный ключ – это потенциальный ключ, который выбран для уникальной идентификации кортежей внутри отношения.

Внешний ключ – это атрибут или множество атрибутов внутри отношения, которое соответствует потенциальному ключу некоторого (может быть, того же самого) отношения.

Для определения второй нормальной формы необходимо ввести концепцию функциональной зависимости. Это зависимость, связывающая атрибуты в одной таблице с единственным значением в другой таблице. Функциональную зависимость для таблиц А и В принято обозначать как А-В. Это понятие подводит "на один шаг" к родственной концепции объединения таблиц в отношения типа 1:1 или 1:М.

Теперь приведем определение второй нормальной формы.

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

Примером приведения таблиц ко второй нормальной форме может служить следующее решение, позволяющее учитывать читателей, записанных в библиотеке, приведенное в табл. 4.4. Очевидно, что в качестве первичного ключа может выступать совокупность полей «№ читательского билета», «Серия паспорта» и «№ паспорта». Однако, поле «№ читательского билета» может самостоятельно выступать в качестве первичного ключа. В свою очередь совокупность полей «Серия паспорта» и «№ паспорта» также однозначно характеризуют читателя. Следовательно, первичный ключ «№ читательского билета», «Серия паспорта» и «№ паспорта» однозначно определяет запись таблицы «Читатели», но является избыточным. Значит необходимо выделить поля, которые зависят только от части первичного ключа «Серия паспорта» и «№ паспорта» необходимо выделить в отдельную таблицу. В итоге получим, что сведения о читателях библиотеки будут размещены в двух таблицах (табл. 4.5 и 4.6), которые связаны отношением 1:1.

Таблица 4.4.

Спецификация таблицы Readers (ЧИТАТЕЛИ).

№ п.п.

Заглавие

Имя поля

Тип

Длина

Ключ

Фамилия

FamilyName

CHAR

30

Имя

Name

CHAR

30

Отчество

Patronymic

CHAR

30

№ читательского билета

ReaderCardNumber

INTEGER

Серия паспорта

Series

CHAR

2

№ паспорта

Number

INTEGER

Дата рождения

Birthday

DATE

Место рождения

BirthPlace

CHAR

30

Пол

Sex

CHAR

1

Место выдачи паспорта

IssuePlace

CHAR

100

Дата выдачи паспорта

IssueDate

DATE

Прописка

Note

BLOB

Место основной работы

Job

CHAR

60

Должность

Post

CHAR

30

Примечания

Note

BLOB

Таблица 4.5.

Спецификация таблицы Readers (ЧИТАТЕЛИ).

№ п.п.

Заглавие

Имя поля

Тип

Длина

Ключ

Фамилия

FamilyName

CHAR

30

Имя

Name

CHAR

30

Отчество

Patronymic

CHAR

30

№ читательского билета

ReaderCardNumber

INTEGER

P

Серия паспорта

Series

CHAR

2

F

№ папорта

Number

INTEGER

F

Место основной работы

Job

CHAR

60

Должность

Post

CHAR

30

Примечания

Note

BLOB

Таблица 4.6.

Спецификация таблицы PasportData (ПАСПОРТНЫЕ ДАННЫЕ).

№ п.п.

Заглавие

Имя поля

Тип

Длина

Ключ

Серия паспорта

Series

CHAR

2

P

№ папорта

Number

INTEGER

P

Дата рождения

Birthday

DATE

Место рождения

BirthPlace

CHAR

30

Пол

Sex

CHAR

1

Место выдачи паспорта

IssuePlace

CHAR

100

Дата выдачи паспорта

IssueDate

DATE

Прописка

Note

BLOB