- подготовка различных отчетов (учебная карточка студента, экзаменационная ведомость и др.).
Облегчение условий труда достигается благодаря возможности автоматизировать основные процессы ведения делопроизводства [5].
РАЗДЕЛ 3. ПОСТРОЕНИЕ МОДЕЛИ ПРЕДМЕТНОЙ ОБЛАСТИ БД АИС «МАТРИКУЛЬНАЯ КНИГА»
В соответствии с современными методологиями модель предметной области чаще всего представляет собой совокупность диаграмм, выполненных в какой-либо нотации и структурированных спецификаций, описывающих элементы модели [1].
Существует множество подходов к построению моделей предметных областей: графовые модели, семантические сети, модель «сущность-связь» и т.д.
Наиболее популярной из них оказалась модель «сущность-связь» или ER-модель (от англ. Entity-Relationship, т.е. сущность-связь).
На использовании разновидностей ER-модели основано большинство современных подходов к проектированию баз данных (главным образом, реляционных) [6].
Различные варианты диаграмм «сущность-связь» используются в качестве инструмента семантического моделирования, которое применяется в реальном проектировании структуры базы данных. Семантическое моделирование представляет собой моделирование структуры данных, опираясь на смысл этих данных.
Первый вариант модели «сущность-связь» был предложен в 1976 году Питером Пин-Шэн Ченом (Chen). В дальнейшем многими авторами были разработаны свои варианты подобных моделей (нотация Мартина, нотация IDEF1X, нотация Баркера и др.). Кроме того, различные программные средства, реализующие одну и ту же нотацию, могут отличаться своими возможностями [10].
ER-моделирование предметной области базируется на использовании графических диаграмм, включающих небольшое число разнородных компонентов.
По сути, все варианты диаграмм «сущность-связь» исходят из одной идеи — рисунок всегда нагляднее текстового описания. И в связи со своей наглядностью представления концептуальных схем баз данных ER-диаграммы получили широкое распространение [6].
Все ER-диаграммы используют графическое изображение сущностей предметной области, их свойств (атрибутов), и взаимосвязей между сущностями [10]. Следовательно, сущности, связи между ними и их свойства (атрибуты) являются основными элементами описания предметной области.
Сущность — любой конкретный или абстрактный объект в рассматриваемой предметной области. Сущности — это базовые типы информации, которые хранятся в БД. К сущностям могут относиться: студенты, клиенты, подразделения и т.д. Каждая сущность в модели изображается в виде прямоугольника с наименованием. Пример изображения сущности приведён на рис. 3.1.
Рис. 3.1 Пример изображения сущности в ER-моделировании
Необходимо различать такие понятия, как тип сущности и экземпляр сущности. Понятие тип сущности относится к набору однородных личностей, предметов, событий или идей, выступающих как целое. Экземпляр сущности относится, например, к конкретной личности в наборе. Типом сущности может быть студент, а экземпляром – Петров, Сидоров и т. д.
Атрибут — это свойство сущности в предметной области. Атрибутом сущности является любая деталь, которая служит для уточнения, идентификации, классификации, числовой характеристики или выражения состояния сущности.
Атрибуты используются для определения того, какая информация должна быть собрана о сущности. Например, для сущности студент могут быть использованы следующие атрибуты: ФИО, дата и место рождения, № зачётной книжки, форма обучения и т.д.
Атрибуты изображаются в пределах прямоугольника, определяющего сущность. Наименование атрибута должно быть уникальным для конкретного типа сущности. Пример изображения атрибутов сущности представлен на рис. 3.2.
Рис. 3.2 Пример изображения атрибутов сущности в ER-моделировании
Здесь также существует различие между типом и экземпляром. Тип атрибута Место рождения, например, имеет много экземпляров или значений: Харьков, Киев, Одесса, Купянск и т.д., однако каждому экземпляру сущности присваивается только одно значение атрибута.
Связь — ассоциации (отношения) между сущностями в предметной области. Связи представляют собой соединения между частями БД [6, 9, 10].
Связи позволяют по одной сущности находить другие сущности, связанные с нею.
Каждая связь может иметь один из следующих типов:
- один-к-одному (1:1);
- один-ко-многим (1:М);
- многие-ко-многим (М:М).
Обозначение типов связей в ER-диаграммах представлено на рис. 3.3.
Рис. 3.3 Типы связей в ER-моделировании
Связь один-к-одному (1:1) означает, что один экземпляр первой сущности связан с одним экземпляром второй сущности. Например, сущность СТУДЕНТ и сущность СТИПЕНДИЯ имеют связь 1:1, так как Студент может не «заработать» стипендию, получить обычную или повышенную стипендию. Связь один-к-одному чаще всего свидетельствует о том, что на самом деле мы имеем всего одну сущность, неправильно разделенную на две.
Связь один-ко-многим (1:М) означает, что один экземпляр первой сущности связан с несколькими экземплярами второй сущности. Это наиболее часто используемый тип связи. Например, сущность СТУДЕНТ и сущность ОЦЕНКИ имеют связь 1:М, так как Студент может получить несколько оценок по нескольким дисциплинам.
Между связью один-ко-многим и многие-к-одному в принципе нет никакой разницы, так как между двумя сущностями возможны связи в обоих направлениях и всё зависит от того, с какими сущностями связаны данные.
Связь многие-ко-многим (М:М) означает, что каждый экземпляр первой сущности может быть связан с несколькими экземплярами второй сущности, и каждый экземпляр второй сущности может быть связан с несколькими экземплярами первой сущности. Тип связи много-ко-многим является временным типом связи, допустимым на ранних этапах разработки модели. В дальнейшем этот тип связи должен быть заменен двумя связями типа один-ко-многим путем создания промежуточной сущности [6, 10].
Каждая связь имеет два конца и одно или два наименования. Наименование обычно выражается в неопределенной глагольной форме: «иметь», «принадлежать» и т.п. Каждое из наименований относится к своему концу связи. Иногда наименования не пишутся ввиду их очевидности [10].
Основываясь на анализе предметной области и требованиях предъявляемых к БД можно выявить такие основные сущности: СТУДЕНТ, ДИСЦИПЛИНЫ, УЧЕБНЫЙ ПЛАН, УСПЕВАЕМОСТЬ, ДИПЛОМНЫЕ РАБОТЫ, КУРСОВЫЕ РАБОТЫ, ПРАКТИКА, ПЕРЕВОД С КУРСА НА КУРС, РОДИТЕЛИ.
Основные предметно-значимые атрибуты сущностей могут быть следующими.
Для сущности СТУДЕНТ определяем такие основные атрибуты:
- № зачётной книжки;
- ФИО;
- год рождения;
- национальность;
- гражданство;
- семейное положение;
- социальное положение;
- военная служба;
- адрес;
- льготные категории;
- учится за счёт;
- форма обучения;
- курс зачисления
- год зачисления;
- приказ о зачислении №;
- специализация;
- особые отметки;
- № студ. билета;
- дата выдачи студ. билета;
- дата выдачи зачётки;
- код группы.
Сущность РОДИТЕЛИ имеет следующие атрибуты:
- № зачётной книжки;
- ФИО;
- отношение к студенту;
- место работы;
- должность;
- телефон.
Для сущности ДИСЦИПЛИНЫ можно выделить следующие атрибуты:
- шифр дисциплины;
- название дисциплины;
- сокращённое название.
Сущность УЧЕБНЫЙ ПЛАН будет иметь такие атрибуты:
- код дисциплины;
- шифр дисциплины;
- курс;
- семестр;
- количество часов;
- лекции;
- практические / семинары;
- форма контроля;
- курсовая (отметка).
Для сущности УСПЕВАЕМОСТЬ можем определить такие атрибуты:
- код дисциплины;
- № зачётной книжки;
- зачёт;
- экзамен.
Сущность ДИПЛОМНЫЕ РАБОТЫ может иметь такие примерные атрибуты:
- № зачётной книжки;
- курс;
- тема;
- дисциплина;
- оценка;
- квалификация;
- серия диплома;
- № диплома
- № направления на работу;
- место работы;
- должность.
КУРСОВЫЕ РАБОТЫ — сущность, имеющая следующие атрибуты:
- № зачётной книжки;
- код дисциплины;
- название;
- ФИО преподавателя;
- оценка.
Сущность ПРАКТИКА будет иметь такие атрибуты:
- № зачётной книжки;
- курс;
- семестр;
- название организации;
- дата начала;
- дата окончания;
- ФИО руководителя;
- оценка.
Для сущности ПЕРЕВОД С КУРСА НА КУРС определяем такие атрибуты как:
- № зачётной книжки;
- курс переведения;
- год;
- № приказа.
Если бы назначением базы данных было только хранение отдельных, не связанных между собой данных, то ее структура могла бы быть очень простой. Однако одно из основных требований к организации баз данных — это обеспечение возможности отыскания одних сущностей по значениям других, для чего необходимо установить между ними определенные связи [6].
Сущности связываются между собой с помощью ключей.
Ключ сущности — это неизбыточный набор атрибутов, значения которых в совокупности являются уникальными для каждого экземпляра сущности. Неизбыточность заключается в том, что удаление любого атрибута из ключа нарушается его уникальность. Сущность может иметь несколько различных ключей.
Ключом для сущности СТУДЕНТ является № зачётной книжки, так как он уникален для каждого студента. Для сущности РОДИТЕЛИ определяем составной ключ: № зачётной книжки и ФИО, для сущности ДИСЦИПЛИНЫ уникальным является её шифр, он и будет выступать в роли ключа. УЧЕБНЫЙ ПЛАН имеет ключом код дисциплины, для УСПЕВАЕМОСТИ имеем составной ключ: код дисциплины и № зачётной книжки. Сущности ДИПЛОМНЫЕ РАБОТЫ, КУРСОВЫЕ РАБОТЫ и ПРАКТИКА имеют составные ключ: № зачётной книжки + курс, № зачётной книжки + код дисциплины и № зачётной книжки + курс соответственно.