Определение функциональных зависимостей между атрибутами

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

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

Таблица 2.2. Функциональные зависимости между атрибутами сущности «Users»

Наименование атрибутов Функциональные зависимости
Login Password Order Определение функциональных зависимостей между атрибутами - student2.ru

Таблица 2.3. Функциональные зависимости между атрибутами сущности «Студенты»

Наименование атрибутов Функциональные зависимости
Номер_зач Фамилия Имя Отчество Факультет Курс Прописка Наличие_регистрации Определение функциональных зависимостей между атрибутами - student2.ru

Таблица 2.4. Функциональные зависимости между атрибутами сущности «Документ_на_вселение»

Наименование атрибутов Функциональные зависимости
Код_приказ Дата_подписания Дата_вселения Дата_выселения Номер_комната Номер_корпус Номер_зач Определение функциональных зависимостей между атрибутами - student2.ru

Таблица 2.5. Функциональные зависимости между атрибутами сущности «Ведомость»

Наименование атрибутов Функциональные зависимости
Номер_касса_ордер Дата_оплата Инн_СевКавГТУ Месяц_плата Сумма Фамилия_гл_бухгалтер Фамилия_кассир Код_приказ Определение функциональных зависимостей между атрибутами - student2.ru

Таблица 2.6. Функциональные зависимости между атрибутами сущности «Комната»

Наименование атрибутов Функциональные зависимости
Номер_комната + Номер_корпус Кол_мест Кол_своб_мест Кровать_шт Полка_шт Стол_шт Стул_шт Телевизор_шт Тумба_шт Холодильник_шт Шкаф_шт Определение функциональных зависимостей между атрибутами - student2.ru Определение функциональных зависимостей между атрибутами - student2.ru Определение функциональных зависимостей между атрибутами - student2.ru Определение функциональных зависимостей между атрибутами - student2.ru

Таблица 2.7. Функциональные зависимости между атрибутами сущности «Корпус»

Наименование атрибутов Функциональные зависимости
Номер_корпус Фамилия_комендант Имя_комендант Отчество_комендант Тел_корпус Кол_мест Кол_своб_мест Определение функциональных зависимостей между атрибутами - student2.ru

Выбор ключей

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

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

1. Сущность «Users» имеет ключ «login».

2. Сущность «Студенты» имеет ключ «Номер_зач».

3. Сущность «Документ_на_вселение» имеет ключ «Код_приказ».

4. Сущность «Комната» имеет составной ключ «Комната», состоящий из атрибутов «номер_комната» и «номер_корпус», так как однозначно идентифицировать комнату можно только по совокупности этих атрибутов.

5. Сущность «Корпус» имеет ключ «Номер_корпус».

6. Сущность «Ведомость» имеет ключ «Номер_касса_ордер».

Нормализация отношений

Нормализация – это разбиение таблицы на две или более, обладающих лучшими свойствами при включении, изменении и удалении данных. Окончательная цель нормализации сводится к получению такого проекта базы данных, в котором каждый факт появляется лишь в одном месте, т.е. исключена избыточность информации. В теории нормализации существует пять нормальных форм таблиц. Эти формы предназначены для уменьшения избыточной информации от первой до пятой нормальной формы. Поэтому каждая последующая НФ должна удовлетворять требованиям предыдущей формы и некоторым дополнительным условиям [8,9].

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

1. Все таблицы находятся в первой нормальной форме, так как все атрибуты в них атомарны.

2. Все таблицы находятся во второй нормальной форме, так как они находятся в первой нормальной форме и удовлетворяют дополнительному условию. Рассмотрим таблицы «Студенты», «Ведомость», «Документ_на_вселение», «Корпус». Таблицы не имеют составного первичного ключа, поэтому они однозначно определены во второй нормальной форме. Таблица «Комната» в качестве первичного ключа имеет составной ключ «Комната», состоящий из атрибутов «Номер_комната» и «Номер_корпус». Таблица не имеет частичные функциональные зависимости, так как не ключевые атрибуты полностью зависят от составного первичного ключа:

Комната={номер_комната, номер_корпус}

Комната->кол_мест;

Комната->кол_своб_мест;

Комната->стул_шт;

Комната->стол_шт;

Комната->кровать_шт;

Комната->шкаф_шт;

Комната->полка_шт;

Комната->телевизор_шт;

Комната->холодильник_шт;

Комната->тумба_шт.

Значит и таблица «Комната» находится во второй нормальной форме.

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

Наши рекомендации