Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Описание курсовой работы.docx
Скачиваний:
2
Добавлен:
01.04.2025
Размер:
1.23 Mб
Скачать
    1. Вторая нормальная форма (2нф)

Устраним имеющиеся в отношении R1 частичные зависимости и определим их в новые отношения. В результате получим:

  • R2 (ID_ClassName,ClassName);

  • R3 (ID_Time,Time);

  • D (ID_DW, DW);

  • R4(ID_Rasp,ID_DW,ID_ClassName, ID_Time,Subject, ID_Subject, Teacher, ID_Teacher, ClassRoom, ID_ClassRoom).

    1. Третья нормальная форма (3нф).

Выделим все транзитивные функциональные зависимости в отношенииR4:

ID_Rasp, ID_SubjectSubject;

ID_Rasp, ID_TeacherTeacher;

ID_Rasp, ID_ClassRoomClassRoom,

Для преобразования R4 в 3НФ необходимо удалить транзитивные зависимости путем создания четырех новых отношений:

S(ID_Subject,Subject);

T (ID_Teacher, Teacher);

C (ID_ClassRoom, ClassRoom);

R5(ID_Rasp,ID_DW, ID_ClassName, ID_Time,ID_Subject, ID_Teacher, ID_ClassRoom)

В результате выполнения нормализации исходное отношение R1, находящееся в 1НФ, было преобразовано в 6 отдельных отношений, каждое из которых находится в 3НФ:

  • R2 (ID_ClassName,ClassName);

  • D (ID_DW, DW);

  • R3 (ID_Time,Time);

  • S (ID_Subject,Subject);

  • T (ID_Teacher, Teacher);

  • C (ID_ClassRoom, ClassRoom);

  • R5(ID_Rasp,ID_DW, ID_ClassName, ID_Time,ID_Subject, ID_Teacher, ID_ClassRoom)

    1. Нормальная форма Бойса-Кодда (нфбк).

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

Отношения R2, R3, S, T, Cявляются НФБК-отношениями, т.к. каждое из них имеет только один детерминант, который в то же время является потенциальным ключом этого отношения.

Отношение R1 содержит 3 детерминанта (ID_ClassName, ID_Time, ID_DW),(ID_Time,ID_ClassRoom, ID_DW), (ID_Rasp, ID_Time),которые были выявлены нами выше и имеют вид:

  1. ID_ClassNameClassName;

ID_TimeTime.

ID_DWDW.

  1. ID_TimeTime;

ID_ClassRoomClassRoom;

ID_DWDW.

  1. ID_RaspID_DW,ID_Subject, ID_Teacher, ID_ClassRoom

ID_TimeTime.

Поскольку эти детерминанты отношения являются также потенциальными ключами, то отношение находится в НФБК.

  1. Моделирование данных с помощью er-диаграмм

    1. Выделение основных сущностей

Проведем анализ предметной области с целью выделить основные сущности. Поскольку речь идет о составлении расписания, очевидно, что в модели должна присутствовать сущность РАСПИСАНИЕ(RASPISANIE). Так как при составлении расписания нам необходимо знать, какие предметы у нас имеются, и какие преподаватели преподают имеющиеся дисциплины, то выделим следующие сущностиПРЕДМЕТ(SUBJECT)и УЧИТЕЛЬ (TEACHER). Для определения дня недели, места и времени проведения пары нам необходимо выделить сущности ВРЕМЯ(TIME), ДЕНЬ НЕДЕЛИ (DW) и КАБИНЕТ (CLASSROOM). Так же для составления расписания для того или иного класса нам необходимо знать все имеющиеся классы, выделим сущность КЛАСС(CLASSNAME).

Таким образом, мы выделили 7 сущностей (Рисунок 1):

Рисунок 1

    1. Определение списка атрибутов сущностей

Определим все необходимые атрибуты для имеющихся сущностей, в результате получим следующую схему данных (Рисунок 2):

Рисунок 2

    1. Определение связей между сущностями

Определим связи между имеющимися сущностями и укажем их названия (глаголы). В результате получим следующую модель данных (Рисунок 3):

Рисунок 3

  1. Описание таблиц

Таблица «Raspisanie»

Название поля

Тип данных

Ключевое поле

Назначение

ID_Rasp

Int

*

Уникальный номер таблицы расписание

Time_ID

Int

Номер времени начала и конца пары из таблицы «Time»

DW_ID

Int

Номер дня недели из таблицы «DW»

ClassRoom_ID

Int

Номер кабинета из таблицы «ClassRoom»

ClassName_ID

Int

Номер имени класса из таблицы «ClassName»

Subjectect_ID

Int

Номер предмета из таблицы «Subjectect»

Teacher_ID

Int

Номер учителя из таблицы “Teacher”

Таблица «ClassName»

Название поля

Тип данных

Ключевое поле

Назначение

ID_ClassName

Int

*

Уникальный номер имени класса

ClassName

nvarchar(50)

Имя класса

Kol

int

Количество учеников в классе

Таблица «ClassRoom»

Название поля

Тип данных

Ключевое поле

Назначение

ID_ClassRoom

Int

*

Уникальный номер кабинета

ClassRoom

nvarchar(50)

Номер кабинета

Vmest

int

Кол-во мест в кабинете

Таблица «DW»

Название поля

Тип данных

Ключевое поле

Назначение

ID_DW

Int

*

Уникальный номер дня недели

Day

nvarchar(50)

День недели

Таблица «Subject»

Название поля

Тип данных

Ключевое поле

Назначение

ID_Subjectect

Int

*

Уникальный номер предмета

Subjectect

Varchar(50)

Предмет

Таблица «Teacher»

Название поля

Тип данных

Ключевое поле

Назначение

ID_teacher

Int

*

Уникальный номер учителя

Teaсher

nvarchar(50)

ФИО учителя

Таблица «Time»

Название поля

Тип данных

Ключевое поле

Назначение

ID_Time

Int

*

Уникальный номер времени начала и конца пары

Time

nvarchar(50)

Начало и конец пары