Я нормальная форма таблицы БД

Я нормальная форма таблицы БД

4. Установление связей между таблицами

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

1НФ требует, чтобы каждое поле таблицы было

· Неделимым,

· Не содержало повторяющихся групп.

Неделимость – требование относительное. Наиболее характерные примеры:

Пример 1. Объект БОЛЬНИЦА

№ па-циента ФИО па-циента Адрес пациента Дата опе-рации ФИО хирурга Операция
  Васин ВВ Мира, 14-2 11.01.05 Батурин РР Удал.грыжи
  Васин ВВ Мира, 14-2 10.02.05 Зинин Б.Б. Уд. камней
  ВанинНН Труда, 114-67 03.12.04 Петров ДД Уд.камнейт
  Ким ОО Калинина, 13-97 21.02.05 Зинин Б.Б. Щитов жел

Недостатки таблицы с т. зрения БД, если первичный ключ - №пац.:

1. Здесь атрибуты ФИО пац и ФИО хир.,Адрес пац и Дата не являются неделимыми, но для целей данной БД их можно принять неделимыми.

2. Есть повторяющаяся группа – строки 1 и 2.

Выбор первичного ключа:

Вариант 1. Выбор одного атрибута.

- № пац. – нельзя, т.к. две записи, неоднозначно идентифицирует записи таблицы,

-ФИО пац, адрес пац. – то же,

-Дата оп. –можно, но это не основной атрибут, не главный семантически, как № пац, его ФИО, хирург, операция, дата тоже может повторяться – пока отложим.

- ФИО хир. –повторяется

- Операция – тоже повторяется

Вариант 2. Выбор составного атрибута

Можно объединить № пац + ФИО хирурга или

№ пац + Операция или

№ пац + Дата оп.

Выбираем № пац + ФИО хир, как несуший наибольшую смысловую нагрузку – по ФИО хирурга м. узнать вид операции, возможно – его дату по расписанию его работы. Тогда таблица примет вид:

№ пац.+ ФИО хирурга ФИО па-циента Адрес пациента Дата опе-рации Операция
110+ Батурин РР Васин ВВ Мира, 14-2 11.01.05 Удал.грыжи
110+ Зинин Б.Б. Васин ВВ Мира, 14-2 10.02.05 Уд. камней
114+ Петров ДД ВанинНН Труда, 114-67 03.12.04 Уд.камнейт
215+ Зинин Б.Б. Ким ОО Калинина, 13-97 21.02.05 Щитов жел

Для данной конкретной БД составной первичный ключ удовлетворяет 1НФ, исчезла повторяющаяся группа.

Но данное решение не универсально, при добавлении в таблицу новых записей возможны совпадения, появление повторяющихся групп.

Может быть, долее нечувствительным к обновлению БД окажется составной ключ

№ пац + Дата, т.к. мало вероятно, что одному пациенту в один день сделают 2 операции.


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



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