Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Metodich_LR_3k_BD.doc
Скачиваний:
3
Добавлен:
01.04.2025
Размер:
245 Кб
Скачать
☆

2 Подготовка к выполнению лабораторных работ

Лабораторные работы рассчитаны на студентов, имеющих опыт работы в какой-либо интегрированной среде разработки программ – Delphi, Lazarus или других. Основной целью выполнения лабораторной работы является приобретение практических навыков проектирования и создания баз данных.

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

Готовность студента к работе определяется преподавателем путем проведения собеседования. Основным материалом для собеседования являются контрольные вопросы, приведенные в разделе 7.

Защита лабораторной работы производится после написания студентом программы и оформления отчета.

3 Построение er-модели

ER-модель (модель «сущность-связь») – широко используемый инструмент разработки баз данных, представляющий собой формализованное графическое представление предметной области в виде прямоугольников, линий и специальных символов.

Преимущество ER-модели заключается в том, что она понятна и разработчикам баз данных, и заказчикам, то есть будущим ее пользователям, и потому все возможные изменения в структуре данных согласуются между ними именно на уровне этой модели. ER-модель никак не связана ни с какой конкретной СУБД, этот выбор осуществляется впоследствии. В основе ER-модели лежат понятия «сущность» («entity») и «связь» («relation»). Не существует удовлетворительного формального описания понятия «сущность». Можно сказать, что это – совокупность значимых объектов, существующих в рамках предметной области. Например, при построении системы учета успеваемости студентов придется оперировать сущностями «студент», «преподаватель», «дисциплина», а в случае создания банковской системы – сущностями «клиент» и «счет» Каждая сущность имеет набор атрибутов, представляющих собой именованные свойства сущности. Например, сущность «студент» может иметь атрибуты:

1. Номер группы

2. Фамилия

3. Имя

4. Номер зачетной книжки

5. Дата рождения

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

Связи бывают трех типов:

1. Связь «один к одному». При этой связи один элемент первой сущности связан не более чем с одним экземпляром второй сущности. Этот тип связи встречается сравнительно редко.

2. Связь «один ко многим». В этом случае один экземпляр первой сущности связан с несколькими экземплярами второй сущности, но один экземпляр второй сущности связан не более чем с одним экземпляром второй сущности. Первая сущность считается в данной связи основной, вторая – подчиненной. Примером может служить рассмотренная выше связь между сущностями «учебная групп» и «студент». Сущность «учебная группа» является здесь основной, сущность «студент» – подчиненной, так как одна группа состоит из нескольких студентов, и, следовательно, одному экземпляру сущности «группа» соответствует несколько экземпляров сущности «студент», принадлежащих этой группе.

3. Связь «многие ко многим». В этом случае каждый экземпляр первой сущности может быть связан с несколькими экземплярами второй сущности, а каждый экземпляр второй сущности – с несколькими экземплярами первой. В качестве примера можно привести связь между сущностями «преподаватель» и «дисциплина» системы учета успеваемости. Эта связь имеет тип «многие ко многим», так как один преподаватель может вести несколько учебных дисциплин, а одна дисциплина вестись несколькими преподавателями.

Связи также классифицируются по возможности null-значения. В какой-то момент времени студент может не принадлежать группе. Например, на момент академического отпуска или при переводе со специальности на специальность. Таким образом, атрибут «номер группы» сущности «студент», кроме значений первичного ключа сущности «группа», может принимать null-значение. То есть в семантической модели присутствует связь 1:М с возможностью неопределенного значения внешнего ключа. Такая связь отмечается ромбом у сущности-предка. Рассмотрим другой пример. Сотрудник работает в отделе. Можно провести рассуждения, аналогичные предыдущему примеру. Если каждый сотрудник должен работать в отделе, то между сущностями «сотрудник» и «отдел» присутствует связь 1:М без возможности неопределенного значения внешнего ключа. Она отображается таким же способом, как и в предыдущем примере, но ромб у сущности-предка отсутствует. Следовательно, для построения ER-модели необходимо сначала выявить сущности, характерные для заданной предметной области и определить для каждой сущности набор атрибутов, имеющих значение исходя из поставленной задачи. Затем необходимо определить все имеющиеся связи между сущностями и характеристики этих связей. После этого строится ER-диаграмма, то есть собственно графическое изображение модели с использованием одной из существующих нотаций. Для простых случаев ER- диаграмму можно рисовать вручную, для более сложных можно воспользоваться специализированным программным обеспечением (каким-либо CASE-средством). В данной работе мы будем придерживаться нотации IDEFX. В стандарте IDEFX сущность обозначается прямоугольником, разделенным на две части. В верхней части перечисляются атрибуты первичного ключа, в нижней – остальные атрибуты. Над прямоугольником записывается имя сущности, которое должно быть именем существительным в единственном числе. Все наборы атрибутов, которые могли рассматриваться, как ключи помечают как АК, то есть альтернативный ключ. Связи между сущностями изображаются в виде линий, соединяющих прямоугольники соответствующих сущностей. Для сущности, находящейся со стороны «многие», линия связи должна заканчиваться закрашенным кругом.

В качестве примера создадим несколько упрощенную модель системы учета успеваемости студентов. Оценки, получаемые студентами по изучаемым дисциплинам, заносятся в специальную таблицу, где указывается номер зачетной книжки студента, код дисциплины, табельный номер преподавателя, дата получения оценки и собственно оценка. Студент не может в один и тот же день два раза сдавать одну и ту же дисциплину. Студенты разбиты по группам. Каждая группа имеет свой номер и куратора из числа преподавателей. Каждый преподаватель может вести несколько дисциплин, каждая учебная дисциплина может вестись несколькими преподавателями. Таким образом, можно выделить следующие сущности:

1) студент;

2) преподаватель;

3) дисциплина;

4) учебная группа;

5) оценка.

Атрибутами сущности «студент» будут номер зачетной книжки, фамилия, имя, номер группы. Ключом здесь будет номер зачетной книжки.

Сущность «преподаватель» будет иметь атрибуты табельный номер, фамилия, имя, отчество. Ключом сущности, естественно, является табельный номер преподавателя.

У сущности «дисциплина» будет два атрибута – код дисциплины и наименование дисциплины, при этом первый атрибут - ключевой.

Сущность «учебная группа» следующие атрибуты - номер группы и табельный номер куратора группы; Здесь номер группы – ключевой атрибут.

И, наконец, сущность «оценка» имеет следующие атрибуты - номер зачетной книжки студента, код дисциплины, код преподавателя, дату получения оценки, оценка.

Напомним, что ключом сущности является атрибут или набор атрибутов, значения которых являются уникальными для каждого экземпляра сущности. В данном случае ключом сущности «оценка» будет набор из трех атрибутов – номер зачетной книжки, код дисциплины и дата получения оценки, так как предполагается, что студент в один день по некоторой дисциплине может получить только одну оценку.

Теперь рассмотрим связи, имеющиеся между сущностями.

1. Так как в одной группе числятся несколько студентов, между сущностями «учебная группа» и «студент» существует связь «один ко многим». Внешний ключ сущности «студент» может принимать Null значения, в случае, если студент еще не прикреплен к группе, или он находится в академическом отпуске.

2. Так как у каждой группы есть куратор из числа преподавателей, между сущностями «учебная группа» и «преподаватель» существует связь «один к одному».

3. Поскольку каждый преподаватель может вести несколько дисциплин, а одна дисциплина вестись несколькими преподавателями, то между сущностями «преподаватель» и «дисциплина» имеется связь «многие ко многим».

4. Между сущностью «студент» и сущностью «оценка» существует связь «ко многим». Каждый студент неоднократно получает оценки по изучаемым дисциплинам.

5. Между сущностью «преподаватель» и сущностью «оценка» существует связь «один ко многим». Каждый преподаватель выставляет оценки по своим дисциплинам.

6. Между сущностью «дисциплина» и сущностью «оценка» существует связь «один ко многим», так как по каждой дисциплине может быть выставлено много оценок.

На рисунке 1 показана ER-диаграмма, построенная для данной задачи, с учетом существующих связей.

Группа

Дисциплина

Фамилия

Имя

Группа (FK)

Номер зачетки

Табельный номер

Фамилия

Имя

Отчество

Преподаватель

Табельный номер

Код

Наименование

Номер

Куратор (FK)

Студент

Фамилия

Имя

Отчество

Оценка

Номер зачетки (FK)

Дисциплина (FK)

Преподаватель (FK)

Дата

Оценка

Рисунок 1 – ER-модель предметной области

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]