Рис.5. Определение сущности «Группа» в модели ER
Реляционная схема базы данных «Учебный процесс» представлена следующими таблицами:
«Группа» – содержит по одной строке для каждой из групп;
«Студенты» – содержит по одной строке для каждого из студентов;
«Кафедра» – содержит по одной строке для каждой из кафедр;
«Преподаватель» – содержит по одной строке для каждого из преподавателей;
«Предмет» – содержит по одной строке для каждого из предметов;
«Учебный план» – содержит по одной строке для каждого вида занятия по каждому предмету отдельного семестра;
«Успеваемость» – содержит по одной строке для каждого результата сдачи отдельным студентом отдельной дисциплины.
Все таблицы базы данных «Учебный процесс» находятся в третьей нормальной форме:
· каждый столбец таблицы неделим, и в рамках одной таблицы нет столбцов с одинаковыми по смыслу значениями (1НФ);
· первичные ключи однозначно определяют запись и неизбыточны, все поля каждой из таблиц зависят от ее первичного ключа (2НФ);
· значение любого поля, не входящего в первичный ключ, не зависит от значения другого поля, тоже не входящего в первичный ключ (3НФ).
В графической форме изображены перечисленные таблицы, их столбцы, первичные и внешние ключи. Задание первичных и внешних ключей сопровождается построением дополнительных структур – индексов, обеспечивающих быстрый доступ к данным через значение ключа.
Структура базы данных
Между сущностями могут быть установлены связи – бинарные ассоциации, показывающие, каким образом сущности соотносятся или взаимодействуют между собой. Связь может существовать между двумя разными сущностями или между сущностью и ей же самой (рекурсивная связь). Она показывает, как связаны экземпляры сущностей между собой. Если связь устанавливается между двумя сущностями, то она определяет взаимосвязь между экземплярами одной и другой сущности
Связь «один-ко-многим» (1:М), один со стороны «Преподаватель» и многие со стороны «Абитуриент»
В разных нотациях мощность связи изображается по-разному. Между двумя сущностями может быть задано сколько угодно связей с разными смысловыми нагрузками. Связь любого из этих типов может быть обязательной, если в данной связи должен участвовать каждый экземпляр сущности, необязательной – если не каждый экземпляр сущности должен участвовать в данной связи. При этом связь может быть обязательной с одной стороны и необязательной с другой стороны. Обязательность связи тоже по-разному обозначается в разных нотациях. Мы снова используем нотацию POWERDESIGNER. Здесь необязательность связи обозначается пустым кружочком на конце связи, а обязательность перпендикулярной линией, перечеркивающей связь. И эта нотация имеет простую интерпретацию. Кружочек означает, что ни один экземпляр не может участвовать в этой связи. А перпендикуляр интерпретируется как то, что, по крайней мере, один экземпляр сущности участвует в этой связи.
Кроме того, в ER-модели допускается принцип категоризации сущностей. Это значит, что, как в объектно-ориентированных языках программирования, вводится понятие подтипа сущности, то есть сущность может быть представлена в виде двух или более своих подтипов – сущностей, каждая из которых может иметь общие атрибуты и отношения и/или атрибуты и отношения, которые определяются однажды на верхнем уровне и наследуются на нижнем уровне. Все подтипы одной сущности рассматриваются как взаимоисключающие, и при разделении сущности на подтипы она должна быть представлена в виде полного набора взаимоисключающих подтипов. Если на уровне анализа не удается выявить полный перечень подтипов, то вводится специальный подтип, называемый условно «Прочие», который в дальнейшем может быть уточнен. В реальных системах бывает достаточно ввести подтипизацию на двух-трех уровнях.
Сущность имеет имя, уникальное в пределах модели. При этом имя сущности – это имя типа, а не конкретного экземпляра.
Сущности подразделяются на сильные и слабые. Сущность является слабой, если ее существование зависит от другой сущности – сильной по отношению к ней.
Сущность может быть расщеплена на два или более взаимоисключающих подтипов, каждый из которых включает общие атрибуты и/или связи. Эти общие атрибуты и/или связи явно определяются один раз на более высоком уровне. В подтипах могут определяться собственные атрибуты и/или связи. В принципе выделение подтипов может продолжаться на более низких уровнях, но в большинстве случаев оказывается достаточно двух-трех уровней.
Сущность, на основе которой определяются подтипы, называется супертипом. Подтипы должны образовывать полное множество, то есть любой экземпляр супертипа должен относиться к некоторому подтипу. Иногда для полноты множества надо определять дополнительный подтип, например, «Прочие».
Представим предметную область «Учебный процесс» как взаимодействие следующих сущностей: каждый «Абитуриент» сдает экзамен или зачет по некоторому «Предмету» согласно учебному плану. В учебном процессе участвует «Преподаватель», который осуществляет чтение учебного курса и контроль знаний «Абитуриента». В учебном процессе также участвует «Кафедра», которая организовывает работу «Преподавателя». Обучение «Абитуриента» ведется в «Группе» совместно с его одногруппниками.
Следует отметить, что для каждой сущности устанавливается свой код – ключевой атрибут, однозначно характеризующий сущность. Например, обычный номер Абитуриента в группе не может выполнять роль ключа, поскольку для каждой группы эти номера могут повторяться. Для преподавателя атрибут Табельный номер нежелательно брать в качестве ключевого, поскольку все-таки возможно изменение табельного номера.
Для реализации дополнительных функций базы может потребоваться введение дополнительных атрибутов, например, номера зачетной книжки и домашнего телефона Абитуриента, домашнего адреса и домашнего телефона преподавателя, должности преподавателя, рабочей программы, даты сдачи экзамена (зачета) и т.д.
Будем считать для простоты все связи обязательными. Между выделенными сущностями можно выделить, например, следующие связи:
1. «Абитуриенты» объединены в «Группы» (связь М:1).
2. Работу «Преподавателей» организуют «Кафедры» (связь М:1).
3. «Преподаватели» преподают «Предметы учебного плана» (связь 1:М).
5. «Абитуриенты» сдают «Предметы учебного плана» (связь М:М).
Покажем теперь эти связи между всеми сущностями графически с использованием нотации POWERDESIGNER.
Будем считать для простоты, что все Абитуриенты обязательно объединены в группы.
Группа |
Моделирование связи между сущностями «Абитуриент» и «Группа»
Аналогичным образом выглядит связь «Преподаватель» и «Кафедра».Для простоты предлагается считать, что каждый преподаватель обязательно работает на какой-нибудь кафедре.
Моделирование связи между сущностями «Преподаватель» и «Кафедра»
Версия полной ER-модели для базы данных «Учебный процесс».
Процесс проектирования БД на основе принципов нормализации представляет собой последовательность переходов от неформального словесного описания информационной структуры предметной области к формализованному описанию объектов предметной области в терминах некоторой модели.