
- •Архитектуры вычислительных систем
- •Нейрокомпьютерные системы
- •2 Нейронные сети обратного распространения с непрерывной функцией активации: архитектура, алгоритмы обучения, применение.
- •3 Конструируемые нейронные сети с конкурирующими нейронами: архитектура, применение.
- •4. Обучаемые нейронные сети с конкурирующими нейронами: архитектура, алгоритмы обучения, применение.
- •Базы данных
- •1 Понятие «базы данных». Основные компоненты базы данных.
- •2 Архитектура системы баз данных.
- •3 Нормальные формы БД. Нормализация данных.
- •4 Язык SQL для работы с реляционными базами данных.
- •5 Хранимые процедуры, триггеры, транзакции.
- •Системы поддержки принятия решений
- •1 Сравнительный анализ парадигм исследования операций и принятия решений. Классификация типов проблем по Г. Саймону.
- •2 Основные элементы многокритериальной задачи принятия решения. Выявление цели и определение типа задачи. Формирование множества альтернатив, критериев, шкал.
- •Структуры данных
- •1 Временная сложность алгоритма. Сравнительный анализ алгоритмов поиска.
- •Алгоритмы поиска в неупорядоченных массивах
- •Алгоритмы поиска в упорядоченных массивах
- •Анализ алгоритма блочного поиска
- •Сортировка Шелла
- •Пирамидальная сортировка
- •Анализ пирамидальной сортировки
- •Улучшенная сортировка обменом 1
- •Анализ улучшенной сортировки обменом 1
- •Улучшенная сортировка обменом 2
- •Анализ улучшенной сортировки обменом 2
- •Анализ улучшенной сортировки обменом 2 аналогичен анали-зу улучшенной сортировки обменом 1. Порядок функций ВС этих алгоритмов в лучшем и худшем случаях одинаковый.
- •Алгоритм быстрой обменной сортировки
- •7 Структуры данных типа граф. Представление графов в памяти. Алгоритмы прохождения в «глубину» и в «ширину». Топологическая сортировка. Матрица достижимости.
- •Технология разработки программного обеспечения
- •1 Технология разработки программного обеспечения. Основные этапы на примере классического жизненного цикла.
- •2 Описание технического задания по ГОСТ.
- •3 Паттерны проектирования. Формат описания.
- •Описание паттернов.
- •Результаты применения паттернов:
- •4 Кодирование. Стандарты на кодирование. Кодирование и проектирование. Исходный код как главный проектный документ.
- •5 Рефакторинг. Цели, описание, примеры.
- •6 Системы управления версиями. Использование в проектах.
- •7 Тестирование. Виды тестирования. Разработка через тестирование.
- •Человеко-машинное взаимодействие
- •2 Применение метафор, идиом, аффордансов и стандартов в пользовательском интерфейсе. Основные принципы. Примеры.
- •4 Основные элементы пользовательского интерфейса и удобство их использования. Особенности. Рекомендации.
- •Теория языков программирования
- •3 Регулярные языки и конечные распознаватели. Использование конечных распознавателей в трансляторах.
- •4 Лексические анализаторы. Основные функции, проектирование и методы программной реализации.
- •5 Нисходящий анализ методом рекурсивного спуска.
- •6 Транслирующие грамматики. Построение нисходящих МП-трансляторов.
- •7 Грамматики польского перевода. Построение восходящих МП-трансляторов.
- •Теория вычислительных процессов
- •1 Автоматы Мили и Мура. Трансформация автоматов. Эквивалентность и минимизация.
- •2 Функциональная эквивалентность, логико-термальная эквивалентность и изоморфизм стандартных схем программ.
- •3 Стандартные и рекурсивные схемы программ. Алгоритмы трансляции.
- •4 Анализ сетей Петри с использованием дерева достижимости и матричных уравнений.
- •Объектно-ориентированное программирование
- •5 Общая характеристика классов в объектно-ориентированном программировании. Особенности реализации классов в различных объектно-ориентированных языках программирования.
- •Сети ЭВМ и телекоммуникации
- •1 Каналы передачи данных. Физический канал. Логический канал. Понятие блока данных. Пример формата блока данных любого протокола.
- •2 Структуризация сетей. Понятие и характеристики основных сетевых топологий. Структурообразующие аппаратные средства и программное обеспечение.
- •4 Характеристика протоколов IP, TCP, ARP, ICMP, POP3, SMTP.

Базы данных
1 Понятие «базы данных». Основные компоненты базы данных.
Под базой данных обычно понимается именованная совокупность данных, отображающая состояние объектов и их отношений в рассматриваемой предметной области. Характерной чертой баз данных является постоянство: данные постоянно накапливаются и используются; состав и структура данных, необходимых для решения тех или иных прикладных задач, обычно постоянны и стабильны во времени; отдельные или даже все элементы данных могут меняться – но это и есть проявление постоянства – постоянная актуальность.
Основные компоненты БД:
Поле - это минимальный элемент базы данных, содержащий один неделимый квант информации.
Каждое поле характеризуется именем и типом хранящихся в нем данных.
Запись - это совокупность нескольких разнородных полей, описывающая некоторую сущность предметной области.
Таблица базы данных - это набор однородных записей.Таблица позволяет читать, изменять, добавлять и удалять записи, а также сортировать их по определенному условию и осуществлять поиск по заданным значениям.
Также компонентами БД явл. Триггеры, Индексы, ХП, Генераторы, Схемы.
Триггеры: это хранимая процедура особого типа, которую пользователь не вызывает непосредственно, а исполнение которой обусловлено действием по модификации данных: добавлением INSERT, удалением DELETE строки в заданной таблице, или изменением UPDATE данных в определенном столбце заданной таблицы реляционной базы данных. Триггеры применяются для обеспечения целостности данных и реализации сложной бизнес-логики. Триггер запускается сервером автоматически при попытке изменения данных в таблице, с которой он связан. Все производимые им модификации данных рассматриваются как выполняемые в транзакции, в которой выполнено действие, вызвавшее срабатывание триггера. Соответственно, в случае обнаружения ошибки или нарушения целостности данных может произойти откат этой транзакции.
/* |
|
|
Триггер |
на |
уровне |
|
строки |
*/ |
|
|
|
|
|
|
|
||
CREATE |
OR |
REPLACE |
TRIGGER |
DistrictUpdatedTrigger |
||||
|
|
|
|
|
|
|
|
|
AFTER |
UPDATE |
ON |
district |
FOR |
EACH |
ROW |
||
|
|
|
|
|
|
|
|
|
BEGIN |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
INSERT |
INTO info |
VALUES ('one |
string in |
table |
"district" has |
changed'); |
||
|
|
|
|
|
|
|
||
END; |
|
|
|
|
|
|
|
Индексы:объект базы данных, создаваемый с целью повышения производительности поиска данных. Таблицы в базе данных могут иметь большое количество строк, которые хранятся в произвольном порядке, и их поиск по заданному критерию путем последовательного просмотра таблицы строка за строкой может занимать много времени. Индекс формируется из значений одного или нескольких столбцов таблицы и указателей на соответствующие строки таблицы и, таким образом, позволяет искать строки, удовлетворяющие критерию поиска. Ускорение работы с использованием индексов достигается в первую очередь за счѐт того, что индекс имеет структуру, оптимизированную под поиск — например,сбалансированного дерева.
Хранимая процедура: объект базы данных, представляющий собой набор SQL- инструкций, который компилируется один раз и хранится на сервере. Хранимые процедуры очень похожи на обыкновенные процедуры языков высокого уровня, у них могут быть входные и выходные параметры и локальные переменные, в них могут производиться числовые вычисления и операции над символьными данными, результаты которых могут присваиваться переменным и параметрам. В хранимых процедурах могут выполняться стандартные операции с базами данных (как DDL, так и DML). Кроме того, в хранимых процедурах возможны циклы и ветвления, то есть в них могут использоваться инструкции управления процессом исполнения.
Генератор: Генераторы предназначены для получения последовательностей уникальных чисел. Например - 1, 2, 3..., 10, 20, 30, и т.п. Такие числа обычно используются как идентификаторы записи в таблицах, имеющих суррогатный первичный ключ.
Схема как структура базы данных
Схема системы базы данных (от англ. Database schema) — еѐ структура, описанная на формальном языке, поддерживаемомсистемой управления базами данных (СУБД). В реляционных базах данных схема определяет таблицы, поля в каждой таблице, а также отношения между полями и таблицами.
Схемы в общем случае хранятся в словаре данных. Хотя схема определена на языке базы данных в виде текста, термин часто используется для обозначения графического представления структуры базы данных. [2]
Основными объектами схемы являются таблицы и связи.
Схема как объект базы данных
Есть и другое понятие схемы в теории баз данных.
Схема (SCHEMA) — является одним из основных объектов базы данных Oracle. Близкое понятие (RIS Schema) существует вRIS-интерфейсе доступа к базам данных. SCHEMA также появилась и в Microsoft SQL Server 2005 и формально определяется как набор объектов в базе данных[4].
В Oracle она привязывается только к одному пользователю (USER) и является логическим набором объектов базы данных. Схема создается при создании пользователем первого объекта, и все последующие объекты созданные этим пользователем становятся частью этой схемы.
2 Архитектура системы баз данных.
Современная технология баз данных основана на концепции многоуровневой архитектуры системы БД, которая представляет собой обобщенную трѐхуровневую модель архитектуры системы БД, включающая концептуальный, внешний и внутренний уровни.
Концептуальный уровень служит для поддержки единого взгляда на базу данных, общего для всех еѐ приложений и независимого от них и от среды хранения. Концептуальный уровень представляет собой формализованную информационнологическую модель ПО. Описание этого представления называется концептуальной схемой или схемой БД.
Внутренний уровень архитектуры поддерживает представление данных в среде хранения и пути доступа к ним. На этом архитектурном уровне БД представлена в полностью "материализованном" виде, тогда как на других уровнях идѐт работа на уровне отдельных экземпляров или множества экземпляров данных. Описание БД на внутреннем уровне называется внутренней схемой или схемой хранения.
Внешний уровень архитектуры БД предназначен для групп пользователей. Описание представления данных для группы пользователей называется внешней схемой. Наличие внешнего уровня позволяет поддерживать разное представление одних и тех же данных для различных групп пользователей или задач.
В данной архитектурной модели предполагается наличие в системе БД механизмов, обеспечивающих междууровневое отображение данных "внешний – концептуальный" и "концептуальный – внутренний". Функциональные возможности этих механизмов определяют степень независимости данных на всех уровнях. На переходе "внешний – концептуальный" обеспечивается логическая независимость данных, на переходе "концептуальный – внутренний" – физическая независимость. Под логической независимостью подразумевается возможность вносить изменения в концептуальный уровень, не меняя представление БД для пользователей, или изменять представление данных для пользователей без изменения концептуальной схемы. Физическая
независимость данных подразумевает возможность вносить изменения в схему хранения, не меняя концептуальную схему БД.
Взаимодействие приложения и СУБД.
Взаимодействие приложений и СУБД: клиент-сервер
•Процесс(ы) СУБД принимают и выполняют запросы прикладных программ (1965)
•Сервер необходим для поддержки конкурентного доступа к разделяемым данным
•Потенциально обеспечиваются все основные функции СУБД в полном объеме
•Поддерживается всеми большими СУБД
Взаимодействие приложения с СУБД: встроенные БД (1975)
•Компоненты БД выполняются в процессах приложений (как подпрограммы)
•Ограниченный набор функций БД (не может быть обеспечен разделяемый доступ, безопасность и отказоустойчивость)
•Производительность невысока
•Чаще всего – однопользовательские системы
•Встраивание приложений в БД (MS Access)
•Полезны в составе распределенных систем
Взаимодействие приложений с СУБД: многослойные системы
•Приложения взаимодействуют с СУБД через «средний слой»
•Часть функций СУБД выполняется средним слоем
•Мониторы транзакций, серверы приложений
•Примеры: IBM CICS (1967), BEA Tuxedo, BEA WebLogic, …
Также можно рассказать что-нибудь про драйверы и орм.
3 Нормальные формы БД. Нормализация данных.
Нормальная форма — свойство отношения в реляционной модели данных, характеризующее его с точки зрения избыточности, потенциально приводящей к

логически ошибочным результатам выборки или изменения данных. Нормальная форма определяется как совокупность требований, которым должно удовлетворять отношение.
Процесс преобразования отношений базы данных (БД) к виду, отвечающему нормальным формам, называется нормализацией. Нормализация предназначена для приведения структуры БД к виду, обеспечивающему минимальную логическую избыточность, и не имеет целью уменьшение или увеличение производительности работы или же уменьшение или увеличение физического объѐма базы данных.
1NF. Переменная отношения находится в первой нормальной форме тогда и только тогда, когда в любом допустимом значении отношения каждый его кортеж содержит только одно значение для каждого из атрибутов.
Пример
Исходная ненормализованная (то есть не являющаяся правильным представлением некоторого отношения) таблица:
|
|
Сотрудник |
|
|
|
|
Номер телефона |
|
||
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Иванов И. И. |
|
|
283-56-82 |
|
|
||||
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
390-57-34 |
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
Петров П. П. |
|
|
708-62-34 |
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
Таблица, приведѐнная к 1NF (являющаяся правильным представлением некоторого отношения):
|
Сотрудник |
|
|
Номер телефона |
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Иванов И. И. |
|
|
283-56-82 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Иванов И. И. |
|
|
390-57-34 |
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
Петров П. П. |
|
|
|
708-62-34 |
|
|
|
|
|
|
|
|
2NF. Переменная отношения находится во второй нормальной форме тогда и только тогда, когда она находится в первой нормальной форме и каждый неключевой атрибут неприводимозависит от ее потенциального ключа.
Пример приведения отношения ко второй нормальной форме
Пусть в следующем отношении первичный ключ образует пара атрибутов {Сотрудник,
Должность}:
Сотрудни |
|
Должност |
|
Зарплата |
Наличие |
|
||||||||||||||||||
|
|
|
|
к |
|
|
|
|
|
|
|
ь |
|
|
|
|
|
|
компьюте |
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ра |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Гришин |
|
|
|
Кладовщи |
|
|
20000 |
|
|
|
Нет |
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
к |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Васильев |
|
|
Программ |
|
|
40000 |
|
|
Есть |
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
ист |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Иванов |
|
|
Кладовщи |
|
|
25000 |
|
|
|
Нет |
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
к |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Зарплату сотруднику каждый начальник устанавливает сам (хотя еѐ границы зависят от должности). Наличие же компьютера у сотрудника зависит только от должности, то есть зависимость от первичного ключа неполная.
В результате приведения к 2NF получаются два отношения:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Сотрудник |
|
|
Должность |
|
|
Зарплата |
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Гришин |
|
|
|
|
Кладовщик |
|
|
|
20000 |
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Васильев |
|
|
Программист |
|
|
40000 |
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Иванов |
|
|
|
Кладовщик |
|
|
25000 |
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
Должность |
|
|
|
|
Наличие компьютера |
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Кладовщик |
|
|
|
|
|
|
Нет |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Программист |
|
|
|
|
|
Есть |
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3NF. Переменная отношения R находится в 3NF тогда и только тогда, когда выполняются следующие условия:
●R находится во второй нормальной форме.
●ни один неключевой атрибут R не находится в транзитивной функциональной зависимости от потенциального ключа R.
Пояснения к определению:
Неключевой атрибут отношения R — это атрибут, который не принадлежит ни одному из потенциальных ключей R.
Функциональная зависимость множества атрибутов Z от множества атрибутов X (записывается X → Z, произносится «икс определяет зет») является транзитивной, если существует такое множество атрибутов Y, что X → Y и Y → Z. При этом ни одно из множеств X, Y и Z не является подмножеством другого, то есть функциональные зависимости X → Z, X → Y и Y→ Z не являются тривиальными.
Рассмотрим в качестве примера отношение, которое находится во 2NF, но не соответствует 3NF:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Сотрудник |
|
|
Отдел |
|
|
Телефон |
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Гришин |
|
|
|
Бухгалтерия |
|
|
11-22-33 |
|
||||
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Васильев |
|
|
Бухгалтерия |
|
|
11-22-33 |
|
||||||
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Петров |
|
|
|
Снабжение |
|
|
44-55-66 |
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
В отношении атрибут «Сотрудник» является первичным ключом. Личных телефонов у сотрудников нет, и телефон сотрудника зависит исключительно от отдела.
Таким образом, в отношении существуют следующие функциональные зависимости: Сотрудник → Отдел, Отдел → Телефон, Сотрудник → Телефон.
Зависимость Сотрудник → Телефон является транзитивной, следовательно, отношение не находится в 3NF.
В результате декомпозиции отношения R1 получаются два отношения, находящиеся в
3NF:
|
|
Отдел |
Телефон |
|
|
|
|
|
|
|
|
|
|
|
|
|
Бухгалтерия |
|
|
11-22-33 |
|
||
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
Снабжение |
|
|
|
44-55-66 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Сотрудник |
|
|
Отдел |
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Гришин |
|
|
|
Бухгалтерия |
|
||||
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
Васильев |
|
|
Бухгалтерия |
|
||||||
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Петров |
|
|
|
Снабжение |
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
Исходное отношение R1 при необходимости легко получается в результате операции соединения отношений R2 и R3.
Нормальная форма Бойса-Кодда. Определение
Переменная отношения находится в BCNF тогда и только тогда, когда каждая еѐ нетривиальная и неприводимая слева функциональная зависимость имеет в качестве своего детерминанта некоторый потенциальный ключ.
Менее формально, переменная отношения находится в нормальной форме Бойса-Кодда тогда и только тогда, когда детерминанты всех ее функциональных зависимостей являются потенциальными ключами.
Для определения BCNF следует понимать понятие функциональной зависимости атрибутов отношения.
Пусть R является переменной отношения, а X и Y — произвольными подмножествами множества атрибутов переменной отношения R. Y функционально зависимо от X тогда и только тогда, когда для любого допустимого значения переменной отношения R, если два кортежа переменной отношения R совпадают по значению X, они также совпадают и по значению Y. Подмножество X называют детерминантом, а Y — зависимой частью.
Функциональная зависимость тривиальна тогда и только тогда, когда ее правая (зависимая) часть является подмножеством ее левой части (детерминанта).
Ситуация, когда отношение будет находиться в 3NF, но не в BCNF, возникает, например, при условии, что отношение имеет два (или более) потенциальных ключа, которые
являются составными и имеют общий атрибут. На практике такая ситуация встречается достаточно редко, для всех прочих отношений 3NF и BCNF эквивалентны.
Пример
Предположим, создаѐтся таблица бронирования для теннисных кортов на день: {Номер корта, Время начала, Время окончания, Тариф, Член клуба}. Тариф зависит от выбранного корта и членства в клубе, для каждого из кортов имеется тариф для членов теннисного клуба и для сторонних клиентов. Тарифы для кортов не повторяются.
Таким образом, возможны следующие составные первичные ключи: {Номер корта, Время начала}, {Номер корта, Время окончания}, {Тариф, Время начала}, {Тариф, Время окончания}.
Таблица соответствует второй и третьей нормальной форме. Требования второй нормальной формы (2NF) выполняются, так как все атрибуты входят в какой-то из потенциальных ключей, а неключевых атрибутов в отношении нет. Также нет и транзитивных зависимостей, что соответствует требованиям третьей нормальной формы.
(3NF).
Тем не менее, существует функциональная зависимость тарифа от номера корта. То есть, по ошибке можно нарушить логическую целостность и, например, приписать тариф Premiumдля первого корта, хотя тариф Premium может относиться только ко второму корту.
Можно улучшить структуру, разбив таблицу на две: {Номер корта, Время начала, Время окончания, Член клуба} и {Тариф, Номер корта, Член клуба}. Данное отношение будет соответствовать BCNF.
4NF. Определение
Переменная отношения R находится в четвѐртой нормальной форме, если она находится в НФБК и все нетривиальные многозначные зависимости фактически являютсяфункциональными зависимостями от еѐ потенциальных ключей.
Эквивалентная формулировка определения:
Переменная отношения R находится в четвѐртой нормальной форме тогда и только тогда, когда в случае существования таких подмножеств A и B атрибутов этой переменной отношения R, для которых выполняется нетривиальная многозначная зависимость A →→ B, все атрибуты переменной отношения R также функционально зависят от А.
Пример