· 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, каждому x2 – y3, каждому x3 – y1. Что произойдет, если во второй строке изменить значение 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. Универсальное отношение, представленное на нем, содержит сведения о сотрудниках, занимаемых ими должностях и выполняемых проектах, причем каждый проект включает в себя множество заданий. Предположим для простоты, что:
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.