Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Для Белаш / Лекции / 4 - Разработка структуры БД.doc
Скачиваний:
1
Добавлен:
07.08.2024
Размер:
249.34 Кб
Скачать

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

Отношение находится в 1НФ, если все его атрибуты простые.

Пример: Отношение R1.

Табельный номер

ФИО

Оклад

Комната

Телефон

Дети

Имя

Возраст

211

Иванов

350

12

616

Саша

10

Женя

7

Вася

3

358

Петров

300

12

616

Вова

5

360

Сидоров

400

5

306

Женя

8

Федя

6

Эта таблица (отношение) содержит сложный атрибут Дети.

Такое отношение требует преобразования, которое обычно приводит к изменению ключа отношения.

Отношение R2.

Табельный номер

Имя ребенка

Возраст ребенка

ФИО

Оклад

Комната

Телефон

211

Саша

10

Иванов

350

12

616

211

Женя

7

Иванов

350

12

616

211

Вася

3

Иванов

350

12

616

358

Вова

5

Петров

300

12

616

360

Женя

8

Сидоров

400

5

306

360

Федя

6

Сидоров

400

5

306

2). Вторая нормальная форма (2нф).

Пусть X и Y – два атрибута некоторого отношения.

Y функционально зависит от X, если каждому значению X соответствует не более, чем одно значение Y.

X  Y – функциональная зависимость.

Пример: Функциональные зависимости:

  • Табельный номерФИО.

  • Табельный номерКомната.

(если каждый сотрудник имеет рабочее место только в одной комнате).

  • КомнатаТелефон.

(если в каждой комнате установлен один телефон).

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

Пример: Неключевые атрибуты ФИО, Оклад, Комната, Телефон не находятся в полной функциональной зависимости от составного ключа, т.к. они функционально зависят от части составного ключа – Табельный номер.

Недостатки:

  • Избыточное дублирование данных ФИО, Оклад, Комната, Телефон.

  • При изменении оклада необходимо менять данные в нескольких записях.

  • Если у сотрудника нет детей, то информацию о нем нельзя включить в отношение.

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

Чтобы отношение привести ко 2НФ, надо:

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

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

Пример: Отношение R3.

Табельный номер

Имя ребенка

Возраст ребенка

211

Саша

10

211

Женя

7

211

Вася

3

358

Вова

5

360

Женя

8

360

Федя

6

Отношение R4.

Табельный номер

ФИО

Оклад

Комната

Телефон

211

Иванов

350

12

616

358

Петров

300

12

616

360

Сидоров

400

5

306