Бобровски С. Oracle7 и вычисления клиент/сервер

Вид материалаЛитература

Содержание


Тип_дог) и названия (Имя_тип_дог
2.3.3.2. Зависимые сущности (таблицы)
Пользов и Измен
10. Отделы (Отдел, Кор_имя_отд, Факульт, Вид_отд, Имя_отд, Пользов, Измен).
Отдел, Кор_имя_отд
Пользов и Измен
11. Вып_каф (Кафедра, Факульт, Специал, Статус, Курс, Вариант, Начало, Конец, Форма, Нач_дипл, Ном_план, Пользов, Измен).
Кафедра — номер выпускающей кафедры (внешний ключ, связанный с первичным ключом Отдел табл. Отделы); Факульт
Специал и Статус
Начало и Конец
Пользов и Измен
12. Груп_спец (Ном_план, Группа, Пользов, Измен).
13. Ученик (Номер, Группа, Ном_план, Признак, Начало, Конец, Приказ, Строка, Пользов, Измен).
Номер — внешний ключ, связанный с первичным ключом табл. Студенты; Группа
Начало и Конец
Пользов и Измен
14. Контр_студ (Номер, Отдел, Договор, Тип_дог, Начало, Конец, Величина, Ед_изм, Приказ, Пользов, Измен).
Номер — внешний ключ, связанный с первичным ключом табл. Студенты; Отдел
Начало и Конец
Пользов и Измен
...
Полное содержание
Подобный материал:
1   2   3   4   5   6   7

8. Тип_дог (Тип_дог, Имя_тип_дог).

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

Эта таблица достаточно проста и должна содержать мало данных (в пределах одного экрана), правильность ввода и изменения которых отслеживается визуально.


2.3.3.2. Зависимые сущности (таблицы)

9. Фамилия (Номер, Фамилия, Конец, Пользов, Измен).

Таблица отводится для хранения старой (до изменения) фамилии (Фамилия) и даты (Конец), до которой она существовала. Здесь Номер — внешний ключ, связанный с первичным ключом табл. Студенты. Форматы этих атрибутов описывались ранее в таблицах Студенты и Уч_года.

Пользов и Измен — см. описание этих полей в таблице 1. Студенты.

При вводе новых или изменении атрибутов существующих строк необходимо, чтобы дата окончания действия старой фамилии была в пределах от (Текущая дата — 10 лет) до (Текущая дата).

10. Отделы (Отдел, Кор_имя_отд, Факульт, Вид_отд, Имя_отд, Пользов, Измен).

Таблица отводится для хранения необходимого минимума сведений о кафедрах и других подразделениях вуза. Здесь: Отдел, Кор_имя_отд и Имя_отд — номер, аббревиатура и название отдела (например, "102, ВТ, Кафедра вычислительной техники" или "209, ВМ, Кафедра высшей математики"); при этом из трех возможных ключей (Отдел, Кор_имя_отд и Имя_отд) в качестве первичного выбирается простейший — Отдел;

Факульт и Вид_отд — внешние ключи, связанные с первичными ключами табл. Факультет и Вид_отд, соответственно; из них выбираются название факультета и вид соответствующего подразделения.

Отдел и Вид_отд — целочисленные атрибуты длиной три и две цифры, соответственно. Кор_имя_отд, Факульт и Имя_отд — текстовые атрибуты длиной восемь, пять и семьдесят два символа, соответственно.

Пользов и Измен — см. описание этих полей в таблице 1. Студенты.

При вводе новых или изменении атрибутов существующих строк необходимо обеспечить уникальность значений столбца Кор_имя_отд.

11. Вып_каф (Кафедра, Факульт, Специал, Статус, Курс, Вариант, Начало, Конец, Форма, Нач_дипл, Ном_план, Пользов, Измен).

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

Кафедра — номер выпускающей кафедры (внешний ключ, связанный с первичным ключом Отдел табл. Отделы);

Факульт — аббревиатура названия факультета, обеспечивающего обучение по рабочему плану (внешний ключ, связанный с первичным ключом табл. Факультет).



Специал и Статус — номер специализации и статус обучаемых (составной внешний ключ, связанный с первичным ключом табл. Специал);

Курс и Вариант — номер курса (1, 2, ..., 6) и вариант рабочего плана: основной (Осн) или индивидуальный (Ин1, Ин2, ...);

Начало и Конец — даты начала и окончания обучения по данному рабочему плану (эти даты могут не совпадать с датами начала и конца учебного года);

Форма —форма обучения ("дневная", "вечерняя" или "заочная") для обучаемых по данной специализации на данной кафедре;

Нач_дипл — дата начала дипломного проектирования (для дипломников);

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

Кафедра, Курс и Ном_план — целочисленные атрибуты длиной три, одна и четыре цифры, соответственно; Факульт, Специал, Статус, Вариант и Форма — текстовые атрибуты длиной пять, шесть, девять, три и восемь символов, соответственно; Начало, Конец и Нач_дипл — даты.

Пользов и Измен — см. описание этих полей в таблице 1. Студенты.

При вводе новых или изменении атрибутов существующих строк надо отслеживать, чтобы:
  • значения столбца Курс лежали в пределах от 1 до 6;
  • даты начала и окончания обучения по плану должны лежать в пределах дат начала и окончания соответствующего учебного года и дата начала была не больше даты окончания;
  • значения столбца Форма принадлежали набору: "дневная", "вечерняя" или "заочная";
  • запрещается изменять и удалять строки предшествующих учебных годов.
  • была обеспечена уникальность сочетания "Кафедра, Специал, Статус, Вариант, Начало, Конец, Курс, Форма".

12. Груп_спец (Ном_план, Группа, Пользов, Измен).

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

Пользов и Измен — см. описание этих полей в таблице 1. Студенты.

Первичным ключом этой таблицы является сочетание "Ном_план, Группа".

13. Ученик (Номер, Группа, Ном_план, Признак, Начало, Конец, Приказ, Строка, Пользов, Измен).

Эта таблица отводится для хранения изменяемых данных о студентах, бакалаврах и магистрах. Здесь:

Номер — внешний ключ, связанный с первичным ключом табл. Студенты;

Группа и Ном_план — номер студенческой группы, в которую по приказу зачислен студент с номером, указанным в столбце Номер, и номер рабочего плана (заменяющий номер подгруппы), который определяет специализацию и (или) выпускающую кафедру студента; это сочетание является внешним ключом, связанным с первичным ключом табл. Груп_спец);

Признак — содержит "обучен", "академ", "повтор", "отчисл", "армия" в зависимости от того, обучается ли студент в указанном ниже периоде или прекратил обучение (временно или постоянно);

Начало и Конец — даты начала и окончания действия атрибутов данной строки или период действия (если конец действия не определен приказом, то устанавливается "запредельная" дата 22.02.2222);

Приказ — номер приказа о изменении какого-либо из предыдущих атрибутов, который повлек появление в таблице этой строки (строка со старым значениями атрибутов сохраняется а таблице);

Строка — уникальный номер строки в данной таблице (первичный ключ), который создается путем наращивания максимального из существующих (до ввода этой строки) номеров строк на единицу.

Признак и Приказ — текстовые атрибуты длиной шесть и двадцать символов; Строка — целочисленный атрибут длиной шесть цифр; форматы остальных атрибутов описаны выше.

Пользов и Измен — см. описание этих полей в таблице 1. Студенты.

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

Студент должен быть зачислен в вузе в единственную группу и либо обучаться в ней, либо находится в длительном отпуске. Любые изменения группы или подгруппы, в которой он обучается, или уход в отпуск должны сопровождаться вводом новой строки с новыми данными и указанием начала и конца периода действия этой строки. Следовательно, в данной таблице фиксируется все изменения по приписке студента к определенной специализации, кафедре, группе и др. во время его пребывания в вузе (до его окончания или до исключения из вуза). При этом нельзя допускать временных "дыр", т.е. дата окончания предшествующего периода должна вплотную примыкать к дате начала следующего (при восстановлении после отчисления должна сохраняться строка со значением "отчисл" в столбце Признак). Естественно, что удалять из таблицы можно только те строки, которые являются "последними" (с максимальной датой конца) среди строк, принадлежащих конкретному студенту.

14. Контр_студ (Номер, Отдел, Договор, Тип_дог, Начало, Конец, Величина, Ед_изм, Приказ, Пользов, Измен).

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

Номер — внешний ключ, связанный с первичным ключом табл. Студенты;

Отдел — номер подразделения, заключившего договор на платное обучение; внешний ключ, связанный с первичным ключом Отдел табл. Отделы;

Договор и Тип_дог — номер договора на платное обучение и код типа договора;

Начало и Конец — даты начала и окончания действия договора (если конец действия не определен приказом, то устанавливается "запредельная" дата 22.02.2222);

Величина и Ед_изм — величина и единица измерения (МРОТ, у.е. или $) оплаты по договору;

Приказ — номер приказа о изменении какого-либо из предыдущих атрибутов, который повлек появление в таблице этой строки (строка со старым значениями атрибутов сохраняется а таблице).

Договор и Величина — целочисленные атрибуты длиной шесть цифр; Ед_изм — текстовый атрибут длиной четыре символа; форматы остальных атрибутов описаны выше.

Пользов и Измен — см. описание этих полей в таблице 1. Студенты.

Так как каждое подразделение, заключающее договор на платное обучение студента, вводит свою нумерацию договоров, которая может совпадать с аналогичной нумерацией других подразделений, то в качестве первичного ключа придется использовать составной ключ: Отдел, Договор.

При вводе новых или изменении атрибутов существующих строк необходимо отслеживать, чтобы:
  • дата начала была не больше, чем дата окончания договора;
  • сочетание "Номер, Отдел, Договор" было уникальным.

15. Контр_искл (Номер, Отдел, Договор, Начало, Конец, Величина, Ед_изм, Приказ, Строка, Пользов, Измен).

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

Номер — внешний ключ, связанный с первичным ключом табл. Студенты;

Отдел — номер подразделения, заключившего договор на платное обучение; внешний ключ, связанный с первичным ключом Отдел табл. Отделы;

Договор - номер договора на платное обучение;

Начало и Конец — даты начала и окончания действия исключения;

Величина и Ед_изм — величина и единица измерения (МРОТ, у.е. или $) оплаты по договору (оплата может быть 0, например, при академическом отпуске);

Приказ — номер приказа о изменении какого-либо из предыдущих атрибутов, который повлек появление в таблице этой строки (строка со старым значениями атрибутов сохраняется а таблице);

Строка — уникальный номер строки в данной таблице (первичный ключ), который создается путем наращивания максимального из существующих (до ввода этой строки) номеров строк на единицу.

Форматы атрибутов встречаются в предшествующих таблицах и уже описаны выше.

Пользов и Измен — см. описание этих полей в таблице 1. Студенты.

Сочетание Отдел, Договор является составным внешним ключом, связанным с первичным составным ключом табл. Контр_студ;

При вводе новых или изменении атрибутов существующих строк необходимо отслеживать, чтобы:
  • дата начала была не больше, чем дата окончания исключения;
  • сочетание "Отдел, Договор,Начало" было уникальным.
  1. Контр_сум (Отдел, Договор, Уч_год, Внесено, Дата, Строка, Пользов, Измен).

Эта таблица служит для хранения сведений об оплате по договорам на платное обучение контрактных студентов.

Отдел — номер подразделения, заключившего договор на платное обучение; внешний ключ, связанный с первичным ключом Отдел табл. Отделы;

Договор — номер договора на платное обучение;

Уч_год — учебный год, за который произведена оплата исключения (внешний ключ, связанный с первичным ключом табл. Уч_года);

Внесено — сумма оплаты в рублях;

Дата — дата оплаты;

Строка — уникальный номер строки в данной таблице (первичный ключ), который создается путем наращивания максимального из существующих (до ввода этой строки) номеров строк на единицу.

Внесено — денежный атрибут (рубли и копейки) длиной восемь цифр; форматы остальных атрибутов описаны выше.

Пользов и Измен — см. описание этих полей в таблице 1. Студенты.

Сочетание Отдел, Договор является составным внешним ключом, связанным с первичным составным ключом табл. Контр_студ;

17. Дисцип (Дисципл, Семестр, Испол, Индекс, Кор_дисц, Лек, Лаб, Прак, СРС, Контр, Пользов, Измен).

Эта таблица отводится для хранения сведений о содержании дисциплин рабочих планов. Ее содержимое соответствует строкам рабочих планов (см. выше), в которую добавлен атрибут Дисципл — уникальный номер строки рабочего плана. Здесь:

Дисципл — уникальный номер строки в данной таблице (первичный ключ), который создается путем наращивания максимального из существующих (до ввода этой строки) номеров строк на единицу;

Семестр — номер семестра, в котором изучается дисциплина;

Испол — номер кафедры, которой поручено обучение по дисциплине (внешний ключ, связанный с первичным ключом табл. Отделы);

Индекс — индекс дисциплины (ГСЭ, ЕН, ...);

Кор_дисц — внешний ключ, связанный с первичным ключом табл. Имя_дисципл;

Лек, Лаб, Прак, СРС и Контр — числа часов, отводимых рабочим планом на лекции, лабораторные и практические занятия, самостоятельную работу, а также вид контроля и индекс дисциплины.

Дисципл, Семестр, Испол, Лек, Лаб, Прак и СРС — целочисленные атрибуты длиной четыре, два и по три цифры, соответственно; Контр — текстовый атрибут длиной три символа; форматы остальных атрибутов описаны выше.

Пользов и Измен — см. описание этих полей в таблице 1. Студенты.

При вводе новых или изменении атрибутов существующих строк надо отслеживать, чтобы:
  • значения Лек, Лаб, Прак и СРС лежали в пределах от 0 до 400;
  • значения Контр принадлежали набору "Экз", "Зач", "ЗсО", "КП", "КР" и "Нет" (экзамен, зачет, зачет с оценкой, курсовой проект, курсовая работа и отсутствие официального контроля);
  • значения индекса принадлежали набору "ГСЭ", "ЕН", "ОПД", "ДН", "СД", "ДС" и "ДФ" (см. п. 2.2.1);
  • значения семестра лежали в пределах от 1 до 12;
  • была обеспечена уникальность сочетания " Семестр, Исполнит, Индекс, Кор_дисц, Лек, Лаб, Прак, СРС, Контр".

18. План (Ном_план, Дисципл, План, Пользов, Измен).

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

Дисципл — внешний ключ, связанный с первичным ключом табл. Дисципл;

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

План — целочисленный атрибут длиной пять цифр; форматы остальных атрибутов описаны выше.

Пользов и Измен — см. описание этих полей в таблице 1. Студенты.

При вводе новых или изменении атрибутов существующих строк необходимо обеспечить уникальность сочетания "Ном_план, Дисципл".

19. Ведомость (Номер, План, Оценка, Дата, Пользов, Измен).

Эта таблица служит для хранения оценок обучаемого по всем, изученным им дисциплинам. Здесь:

Номер и План — первичный ключ таблицы, составленный из внешних ключей Номер и План, связанных с первичными ключами табл. Студенты и План, соответственно; служит для привязки оценки к соответствующей дисциплине и форме контроля;

Оценка — одна из следующих оценок: "зачет", "незач", "отл", "хор", "удовл", "неуд" и "неявка";

Дата — дата получения или изменения оценки.

Оценка — текстовый атрибут длиной шесть символов; форматы остальных атрибутов описаны выше.

Пользов и Измен — см. описание этих полей в таблице 1. Студенты.

При вводе новых или изменении атрибутов существующих строк надо отслеживать, чтобы:
  • значения столбца Оценка должны принадлежать указанному выше набору оценок;
  • была обеспечена уникальность сочетания "Номер, План",
  • удаляемая строка или строка, в которой производится любое изменение, должна быть сохранена в табл. Вед_изм.

20. Вед_изм (Номер, План, Оценка, Дата, Пользов, Измен, Польз_изм, Измен_изм).

Эта таблица служит для хранения удаленных и измененных строк табл. Ведомость. Здесь все столбцы кроме Польз_изм и Измен_изм соответствуют столбцам табл. Ведомость, а в Польз_изм и Измен_изм заносятся: идентификатор пользователя, который удалил или изменил эту строку, а также время ее удаления или изменения.

Все атрибуты таблиц, кроме НЗК, Имя, Отчество, Рождение, Пользов, Измен, Приказ, Нач_дипл, Оценка и Дата (в таблице Ведомость), не могут содержать пустых (NULL) значений !


2.3.3.3. Инфологическая модель на языке "Таблицы-связи"

Эта модель приведена на рис. 2.5. В ней названия таблиц размещены над прямоугольниками, внутри которых приведены имена столбцов. Стрелками показываются связи между первичными (начало стрелок) и внешними (концы стрелок "<" или ">") ключами. При этом составные ключи отмечаются, расположенной рядом с ними, жирной линией. Первичные ключи напечатаны жирным шрифтом с подчеркиванием а внешние ключи напечатаны курсивом. Наконец, пунктирной стрелкой показана связь между таблицами Ведомость и Вед_изм. Последняя не имеет внешних ключей, так как ее строки являются копиями удаляемых или изменяемых строк таблицы Ведомость, дополненных данными о авторе и времени таких удалений (изменений).

Связи (отношения) между сущностями характеризуются степенью связи (например, «один ко многим» — 1:М или «многие ко многим» — М:М) и классом принадлежности (символы «0,» перед 1 или М указывают на необязательность связи). Например, студентка может не изменять фамилии за все время обучения или изменять ее несколько раз, т.е. между таблицами Студенты и Фамилия устанавливается необязательная связь «один ко многим» или сокращенно 1:0,М. Связь же «один ко многим» между таблицами Уч_циклы и Дисцип является обязательной (1:М).

Следует отметить, что здесь «многие» трактуются во всех случаях как «один и более». Однако в некоторых работах и CASE-системах «многие» — это «более одного», а «один или многие» — это «один и более».


2.3.3.4. Нормализация

2.3.3.4.1. О функциональных и многозначных зависимостях

Выше (п. 2.3.3) отмечалось, что нормализация – это разбиение таблицы на несколько, обладающих лучшими свойствами при обновлении, включении и удалении данных [4]. Теория нормализации основывается на наличии той или иной зависимости между полями таблицы. Определены два вида таких зависимостей: функциональные и многозначные.

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

Например, в таблице Факультеты (рис. 2.5) поле Факультет функционально зависит от ключа Факульт, а в таблице Специал поле Имя_спец функционально зависит от составного ключа (Специал, Статус). Однако последняя зависимость не является функционально полной, так как Имя_спец функционально зависит и от части ключа – поля Специал.

Полная функциональная зависимость. Поле В находится в полной функциональной зависимости от составного поля А, если оно функционально зависит от А и не зависит функционально от любого подмножества поля А.

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


2.3.3.4.2. Нормальные формы

Сегодня существуют следующие нормальные формы: 1НФ, 2НФ, 3НФ, НФБК, 4НФ и 5НФ, образующие общую структуру, в которой (n+1)-я нормальная форма автоматически находится в n-й нормальной форме, но обладает лучшими свойствами, чем n-я.

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

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

Все таблицы рис. 2.5 удовлетворяет этим требованиям, т.е. находится в 1НФ. Правда, нам очень хотелось иметь в таблице Вып_каф поле группы, где хранился бы перечень групп, занимающихся по соответствующему плану. Это позволило бы быстро получить список групп, принадлежащих какой-либо кафедре или факультету, и облегчило вывод содержимого «шапки» рабочих учебных планов (рис. 2.4). Но как при таком подходе связать таблицы Вып_каф и Ученик, как добавлять или удалять группы и т.п.?

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

Ко второй нормальной форме приведены почти все таблицы рис. 2.5 кроме таблицы Специал, в которой Имя_спец зависит только от поля Специал, являющегося частью первичного ключа (Специал, Статус). Для приведения таблицы Специал к 2НФ исключим из нее поле Статус, объявим первичным ключом поле Специал, т.е. преобразуем часть инфологической модели так, как это показано на рис. 2.6. При этом ограничения целостности для столбца Статус предшествующей версии таблицы Специал необходимо перенести в описание аналогичного столбца таблицы Вып_каф.




При создании инфологической модели (пп. 2.3.3.1 и 2.3.3.2) почти во все таблицы были введены столбцы Пользов и Измен, позволяющие узнать: кто и когда вводил или изменял ту или иную строку этих таблиц. Кроме того, в ряд таблиц, где существовали только составные возможные ключи, были введены столбцы с цифровыми первичными ключами. Все это формально затрудняет процедуру установления функциональных связей между этими ключами и остальными полями. Действительно, как в таблице Дисципл установить зависимость между номером дисциплины (Дисципл) и ее сокращенным именем или числом лекционных часов и решить, приведена ли эта таблица к 2НФ? Однако, если мысленно удалить из этой таблицы столбцы Дисципл, Пользов и Измен, то ее единственным возможным (и, следовательно, первичным) ключом будет сочетание всех оставшихся столбцов. Ясно, что такая «урезанная» таблица Дисцип находится во 2НФ, так как не имеет полей, не входящих в первичный ключ.

Для упрощения нормализации подобных таблиц целесообразно использовать следующую рекомендацию.

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

Так, мысленно удаляя из таблиц рис. 2.5 столбцы Пользов, Измен, Строка и ряд других, мы убеждаемся, что эти «урезанные» таблицы находятся не только в нормальной форме 2НФ, но и в, описанных ниже, формах 3НФ и НФБК.

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

Более строгое определение, получившее название НФБК, имеет вид.

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

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

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

Теперь можно дать определения высших нормальных форм. И сначала будет дано определение для последней из предложенных – 5НФ.

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

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