История развития баз данных. Основные понятия и определения. Архитектура базы данных. Физическая и логическая независимость, страница 4

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

И в приведённой таблице можно получить различные дополнительные сведения (списки кафедр, списки факультетов или дисциплин и т.д.). Для этого необходимо выбрать неповторяющееся значение какого-либо атрибута. Однако представленная модель имеет ряд существенных недостатков. Качество любой модели определяется с точки зрения возможности и удобства выполнения типовых операций «Добавить», «Удалить», «Изменить».

Основными недостатками этой модели являются:

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

Причина указанных недостатков в том, что не все не ключевые атрибуты зависят от ключевых атрибутов. В этом примере атрибуты преподавателя «Фамилия», «Должность» не зависят от преподаваемой дисциплины и в таблице смешаны 2 типа информации: «Преподаватель» и «Дисциплина».

Говорят, что отношение задано во второй нормальной форме, если оно задано в первой нормальной форме и каждый не ключевой атрибут зависит от ключевого. Иначе говоря, если ключ содержит один атрибут, то отношение задано во второй  нормальной форме, если несколько, то необходимо перевести во вторую нормальную форму, путём разбиения на несколько отношений. Для нашего примера таблица преобразуется в следующую:

Преподаватель

Код преподавателя

Фио

Должность

Кафедра

Факультет

001

Иванов

доцент

К1

Ф1

002

Петров

профессор

К1

Ф1

003

Сидоров

доцент

К2

Ф2

Нагрузка по дисциплине

Код преподавателя

Дисциплина

Количество часов

001

Д1

20

001

Д2

10

002

Д3

30

003

Д4

22

004

Д5

24

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

Однако и эта модель данных имеет ряд недостатков:

  1. Невозможно добавить информацию о новой кафедре, пока в её штат не будет принят хотя бы один преподаватель.
  2. При удалении сведений о преподавателе удаляются сведения о принадлежности кафедры к факультету. Т.е. удалив все сведения обо всех преподавателях, мы потеряем сведения о кафедре вообще.
  3. При изменении зависимости «кафедра-факультет», т.е. преподаватель, например, перешёл работать на другой факультет, требуется просмотр всего отношения. А при переводя преподавателя на другую кафедру требуется обновить поле «Факультет».

Причина указанных недостатков в транзитивной зависимости атрибутов «Код преподавателя», «Кафедра» и «Факультет».

Если A, B, C – некоторые атрибуты отношения и A зависит от B, а B зависит от C? То говорят, что A транзитивно зависит от C.

Говорят, что отношение задано в третьей нормальной форме, если оно задано во второй нормальной форме и каждый не ключевой атрибут не транзитивно зависит от ключа отношений. Для нашего примера, чтобы перейти к третьей нормальной форме, это отношение («Факультет-Преподаватель») необходимо разбить надвое: