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

Неделя

3

ЛЕКЦИЯ

1 (4)

ТЕМА

Нормализация таблиц при проектировании базы данных.

Содержание

4.1. Пять нормальных форм. 1

4.2. Первая нормальная форма. 2

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

4.4. Третья нормальная форма. 5

4.5. Четвертая и пятая нормальные формы. 6

4.6. Нормализация – за и против. 7

4.1. Пять нормальных форм.

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

Правила нормализации или правила Кодда, как их теперь принято называть, очень просты и немногочисленны, но весьма строги. В случае применения к таблицам с данными каждое правило описывает следующий уровень соответствия требованиям теории реляционных баз данных и различные степени нормализации. Как будет показано в дальнейшем, существует пять различных уровней нормализации, но ни одна из реляционных СУБД до сих пор не предоставляет поддержки для всех пяти нормальных форм. Это происходит из-за жестких требований в отношении производительности. Суть дела в том, что в полностью нормализованной базе данных для выполнения запроса вам потребуется соединить столь много таблиц, что производительность такой системы не сможет удовлетворить практических запросов.

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

Существует несколько нормальных форм - 1НФ, 2НФ, 3НФ, 4НФ, 5НФ, нормальная форма Бойса-Кодда (БКНФ). При практической разработке баз данных важны первые три - 1НФ, 2 НФ, ЗНФ.

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

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

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

Неделимость поля означает, что значение поля не должно делиться на более мелкие значения. Например, если в поле "ФИО" содержится фамилия, имя и отчество читателя или библиотекаря, требование неделимости не соблюдается и необходимо из данного поля выделить в отдельное поля имя и отчество. В результате получится три поля: «Фамилия», «Имя» и «Отчество».

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

Таблица 4.1.

Спецификация таблицы Phones (ТЕЛЕФОНЫ).

№ п.п.

Заглавие

Имя поля

Тип

Длина

Ключ

Код читателя

ReaderCode

INTEGER

F

№ домашнего телефона

HomePhoneNumber

CHAR

20

№ рабочего телефона

WorkPhoneNumber

CHAR

20

№ мобильного телефона

MobPhoneNumber

CHAR

20

Чтобы таблица «ТЕЛЕФОНЫ» соответствовала первой нормальной форме необходимо вынести типы телефонов в отдельную таблицу, и реализовать регистрацию телефонов читателей на базе двух таблиц (табл. 4.2. и 4.3).

Таблица 4.2.

Спецификация таблицы Phones (ТЕЛЕФОНЫ).

№ п.п.

Заглавие

Имя поля

Тип

Длина

Ключ

Код читателя

ReaderCode

INTEGER

F

Код типа телефона

PhoneTypeCode

INTEGER

F

№ телефона

PhoneNumber

CHAR

20

Таблица 4.3.

Спецификация таблицы PhoneTypes (ТИПЫ ТЕЛЕФОНОВ).

№ п.п.

Заглавие

Имя поля

Тип

Длина

Ключ

Код

Code

INTEGER

P

Наименование

Name

CHAR

20

Таким образом, если появится еще один тип телефона читателя, нам его останется зарегистрировать в табл. 4.3 и записать его номер в табл. 4.2 в строке с соответствующими кодами читателя и типа телефона.