Рассмотрим моделирование информационного представления сдачи студентом экзаменов.
1. Выделим сущности и дадим им имена: СТУДЕНТ, ЭКЗАМЕН.
2. Определим атрибуты каждой сущности:
o СТУДЕНТ - № зачетной книжки, фамилия, имя, отчество, специальность, группа, телефон, домашний адрес;
o ЭКЗАМЕН – номер экзамена, название предмета, дата, преподаватель;
3. Определим уникальный идентификатор каждой сущности – первичный ключ:
o СТУДЕНТ - № зачетной книжки,
o ЭКЗАМЕН – номер экзамена,
4. Определим связь и дадим ей имя: СТУДЕНТ сдает ЭКЗАМЕН. Эта связь – «многие-ко-многим», ее надо заменить новой таблицей, дадим ей имя ЭКЗАМЕН_СТУДЕНТА. Основной атрибут этой сущности – оценка. Чтобы отличать оценки, полученные разными студентами на разных экзаменах, добавим атрибут для первичного ключа – номер оценки.
5. Определим связи новой сущности:
o ЭКЗАМЕН_СТУДЕНТА позволяет оценить знания СТУДЕНТа (студент сдает конкретный экзамен один раз, а таких экзаменов – много, «один-ко-многим»), для связывания таблиц в дочернюю таблицу ЭКЗАМЕН_СТУДЕНТА копируем первичный ключ таблицы СТУДЕНТ – поле «№ зачетной книжки»;
o ЭКЗАМЕН_СТУДЕНТА сдается на ЭКЗАМЕНе (на конкретном экзамене многие студенты сдают экзамен и каждый получает оценку, связь «один-ко-многим»); для связывания таблиц в дочернюю таблицу ЭКЗАМЕН_СТУДЕНТА копируем первичный ключ таблицы ЭКЗАМЕН – поле «номер экзамена».
6. Построим ER-диаграмму, таблицы ЭКЗАМЕН и СТУДЕНТ можно определить как справочники, из них берется информация для таблицы ЭКЗАМЕН_СТУДЕНТА (ЭКЗАМЕН и СТУДЕНТ – родительские, расположим их выше, ЭКЗАМЕН_СТУДЕНТА – дочерняя).
| СТУДЕНТ | ЭКЗАМЕН | ||||||||
| РК | № зачетной книжки
фамилия
имя
отчество
дата поступления
специальность, группа
домашний адрес
|
|
| PK | номер экзамена название предмета дата преподаватель | ||||
| ЭКЗАМЕН_СТУДЕНТА | |||||||||
| PK FK FK | номер оценки
№ зачетной книжки
номер экзамена
оценка
|
7. Проверим, можно ли получить ответы на запросы:
o определить оценку студента по фамилии «Иванов» по предмету «Математика»,
o узнать, когда Иванов сдавал информатику,
o какой преподаватель принимал химию у Иванова,
o сколько «пятерок» поставил преподаватель Петров.
ПРИМЕЧАНИЕ. В данной задаче в таблице ЭКЗАМЕН_СТУДЕНТА можно было не вводить поле «номер оценки» (п. 4), а использовать составной первичный ключ – поля «№ зачетной книжки» и «номер экзамена», т.к. они однозначно определяют оценку каждого студента по конкретному экзамену.
№ зачетной книжки
фамилия
имя
отчество
дата поступления
специальность, группа
домашний адрес
номер экзамена
оценка






