Введение в дисциплину «Безопасность систем баз данных». Теоретические основы построения реляционных баз данных. Верификация баз данных и проведение аудита в СБД. Распределенные базы данных, страница 8

·  CHECK – задает логическое условие, которому должны удовлетворять все значения данного атрибута.

2.2. Проектирование реляционных баз данных

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

·  из каких отношений должна состоять БД;

·  какие атрибуты должны быть у этих отношений.

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

Теоретическим фундаментом любого подхода к проектированию реляционных БД является теория нормальных форм.

2.2.1. Теория нормальных форм

Нормальная форма – это форма представления отношений в соответствии с определенным набором требований. В настоящее время научно обосновано и признано пять нормальных форм, три из них постоянно используются на практике.

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

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

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

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

В отношении R атрибут Y функционально зависит от атрибута X тогда и только тогда, когда каждому значению X в любой момент времени соответствует в точности одно значение Y. Символически это записывается так: X -> Y (Y функционально зависит от X). Атрибут X принято называть детерминантом. Атрибуты X и Y могут являться как простыми, так и составными.

Схематичное пояснение функциональной зависимости атрибута Y от X дано на рис. 2.4. Каждому значению x1 соответствует значение y2, каждому x2y3, каждому x3y1. Что произойдет, если во второй строке изменить значение y3 на y4? Так как Y функционально зависит от X, значение y3 должно поменяться на y4 в каждой строке, где оно встречается в паре с x2.

X

Y

x1

y2

x2

y3

x3

y1

x1

y2

x2

y3

x1

y2

x3

y1

x3

y1

x1

y2

x3

y1

Рисунок 2.4 – Функциональная зависимость X -> Y

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

Какие функциональные зависимости не являются допустимыми? Для ответа на этот вопрос целесообразно привести пример универсального отношения. Обратимся к рис. 2.5. Универсальное отношение, представленное на нем, содержит сведения о сотрудниках, занимаемых ими должностях и выполняемых проектах, причем каждый проект включает в себя множество заданий. Предположим для простоты, что: