Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Описание модели



Что представляет собой решение задач, когда мы имеем дело с базами данных? Естественно, что база данных должна существовать. Следовательно, кто-то должен ее спроектировать. Как правило, проектирование базы данных и даже, возникающая по мере ее эксплуатации необходимость изменения ее структуры, представляет разовую работу, выполнение которой падает на специально подготовленных специалистов – проектировщиков базы данных. Более широкий круг пользователей вынужден чаще всего писать запросы к существующей базе данных, то есть по имеющейся структуре базы данных написать программу, позволяющую получить новое отношение, содержащее кортежи, отвечающие требованиям, поставленным в условии задачи. Как правило, в условии задачи на естественном языке говорится, каким образом надо скомпоновать хранимые данные и какие ограничения на эти данные следует учесть. Необходимым условием для успешного решения задач является четкое представление о том, как хранимые данные распределены по отношениям и как реализованы связи между различными объектами.

Поэтому в этом разделе постараемся подробно описать модель, в рамках которой будут ставиться и разбираться задачи. Естественно, модель выбрана в той области, которая в большой степени известна студентам. Безусловно, предлагаемая модель является весьма упрощенной по сравнению с той, которая реально используется в жизни.

2.1 Концептуальная модель

В модели должна храниться информация о студентах. О каждом студенте известны: номер его студенческого билета, фамилия, инициалы, пол, дата рождения и выплачиваемая ему стипендия. Все студенты распределены по группам. Как правило, один из студентов в группе выбирается старостой, чтобы представлять интересы группы в деканате. Иногда назначение старосты затягивается, и мы должны знать дату его назначения. Может случиться, что студенты нескольких групп учатся одинаковой специальности и тогда группы объединяются в общий поток. В базе данных должно храниться название специальности, которую получат студенты по окончании обучения. Для потока расписаны все дисциплины, которые предписаны для изучения каждым студентом любой из групп, относящихся к потоку. Эти дисциплины составляют типовой учебный план. Общая трудоемкость дисциплин типового учебного плана является минимальной для получения соответствующей степени. Однако любой студент с согласия кафедры может заменить часть дисциплин другими и/или добавить несколько дополнительных дисциплин, составив свой индивидуальный учебный план. В данной модели мы будем считать, что, в принципе, студент может заменить вообще все дисциплины типового плана, но индивидуальный учебный план составляется сразу на все время обучения. По мере изучения дисциплины и проведения итогового контроля студенту выставляется оценка его знаний с указанием даты получения оценки. По дисциплинам, по которым имеются неудовлетворительные оценки, могут быть проведены дополнительные занятия и новый итоговый контроль, что отражается новой оценкой, полученной в другой день. За преподавание дисциплины отвечает кафедра (какой именно преподаватель нам не важно; будем считать, что за все отвечает заведующий кафедрой). За полгода до окончания обучения студент получает на кафедре тему выпускной работы и по результатам защиты ему выставляется оценка с указанием даты ее получения. Мы не предусматриваем неудовлетворительных оценок на защите. В начале обучения для тех студентов, кому трудно даются базовые дисциплины могут назначить для помощи студента старшего курса, причем только одного. Если студент переводится из одного потока в другой (меняет специальность), то выбирает он все дисциплины в соответствии с правилами нового потока, а среди оцененных могут остаться дисциплины старого учебного плана.

Концептуальная модель приведена на схеме 1.

На схеме типы объектов указаны в прямоугольниках, а типы связей – в ромбах. Все типы связей в данной модели бинарные и около каждой из них указана кардинальная пропорция: возможное максимальное количество экземпляров типа объекта, участвующих в данном типе связи. Например, тип связи "УЧИТСЯ_В" между типами объектов "СТУДЕНТ" и "ГРУППА" означает, что любой из студентов участвует в этом типе связи не более одного раза (т.е. учится только в одной группе), а любая группа – несколько раз (т.е. в ней учатся несколько студентов, хотя может быть и один). Одинарная линия, соединяющая прямоугольник и ромб означает, что не обязательно каждый экземпляр типа объекта участвует в связи, а двойная линия – обязательное участие.

Схема 1. Концептуальная модель

Роль каждого типа объекта во всех типах связей очевидна, кроме типа связи "ПОМОГАЕТ". Так как тип объекта "СТУДЕНТ" участвует в этом типе связи дважды (рекурсивный тип связи), то это означает, что один из студентов играет роль помогающего, а другой – роль того, которому помогают (это отмечено текстом на линиях). В данном случае отмечено, что студент, который выступает в роли того, кому помогают, может участвовать в этом типе связи не более одного раза (ему может помогать только один студент), а тот, который помогает, может помогать нескольким студентам.

В концептуальной модели в овалах указаны атрибуты типов объектов и типов связей. Атрибуты типов объектов, как правило, не вызывают трудностей у студентов, поэтому остановимся только на атрибутах типов связей, характеризующих не каждый объект в отдельности, а именно связь между всеми объектами, участвующими в этом типе связи. Особенно отметим многозначный (в двойном овале), составной атрибут типа связи "ОЦЕНЕН", что подчеркивает, что любой студент по одной и той же дисциплине может иметь несколько оценок полученных в разные дни. Как правило, это пересдачи неудов на положительную оценку, но, в принципе, это может быть и пересдача с целью улучшения рейтинга. Для определенности будем считать, что со временем оценка не может быть уменьшена.

2.2 Реляционная модель

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


СТ – СТУДЕНТ

ГР – ГРУППА

ПТ – ПОТОК

КФ – КАФЕДРА

ДЦ – ДИСЦИПЛИНА

ВЫБ – ВЫБИРАЕТ

ИЗЧ – ИЗУЧАЕТ

ОТВ – ОТВЕЧАЕТ

ОЦН – ОЦЕНЕН.



 
 

Кст – код (шифр, номер студенческого билета) студента

Фам – фамилия студента

Дрожд – дата рождения

Стип – стипендия

Ккур – код помогающего студента

Кстг – код старосты группы

Дстг – дата назначения старосты

Назв – название кафедры или дисциплины

Труд – трудоемкость дисциплины

Цикл – цикл, к которому относится дисциплина; один из трех:

ГСЭ – гуманитарный,
ЕН – естественно-научный, СД – специальный

Спец – название направления (специальности)

Nгр, Nпт, Nкф, Nдц – номера соответственно группы, потока, кафедры и дисциплины.


На схеме 2 приведена реляционная модель, соответствующая концептуальной модели, представленной на схеме 1.

Подчеркиванием в реляционной модели выделены первичные ключи каждого отношения. Курсивом – внешние связи. СТ.Ккур реализует тип связи "ПОМОГАЕТ", СТ.Nгр – "УЧИТСЯ В", СТ.Nкф – "ВЫПУСКАЕТ", ГР.Nпт – "ВХОДИТ", Кстг – "ПРЕДСТАВЛЯЕТ". В связях типа M:N (ИЗЧ, ОЦН, ОТВ, ВЫБ), реализованных отдельными отношениями, подчеркнутым курсивом выделены первичные ключи, относящихся к этим связям типов объектов.


СТ(Кст, Фам, Дрожд, Пол, Стип, Ккур, Nгр, Nкф, Тема, Дата, Оценка)

ГР(Nгр, Nпт, Кстг, Дстг) ПТ(Nпт, Спец)

КФ(Nкф, Назв) ДЦ(Nдц, Назв, Труд)

ИЗЧ(Nпт, Nдц) ВЫБ(Кст, Nдц)

ОЦН(Кст, Nдц, Дата, Оценка) ОТВ(Nкф, Nдц)

Схема 2. Реляционная модель данных





Дата публикования: 2015-10-09; Прочитано: 620 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.008 с)...