Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие_Информатика_v3.doc
Скачиваний:
57
Добавлен:
09.11.2019
Размер:
1.13 Mб
Скачать

3. Рабочие задания

Задания, приведенные ниже, предусматривают проектирование и реализацию физической модели данных на основе Eclipse ERMaster с последующим формированием из этой модели РБД под управлением СУБД PostgreSQL.

Задание 1. Создание физической модели бд

Создайте в Eclipse новый проект, в этом проекте – новые диаграммы ER путем вызова ERMaster. Диаграммы должны отражать структуру БД, позволяющую хранить заносимую пользователем в процессе анкетирования информацию. Построение таких диаграмм будет базироваться на результате проектирования пользовательского интерфейса, выполненного другим разработчиком в проекте. Правильные, на взгляд авторов, ER-диаграммы представлены ниже.

1.1. Физическая модель данных для хранения регистрационной информации о слушателях и экспертах

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

  • Независимое множество «users»

  • Два связанных множества «groups» и «students»

Рис.4.2. Физическая схема данных для хранения регистрационной информации о слушателях и экспертах

Таблица users хранит данные авторизации, по которым определяется профиль работающего с системой пользователя. Таблица содержит первичный ключ user_id, столбец user_login и столбец user_password.

Так как проектируемая система предполагает работу с двумя профилями – «Студент» и «Эксперт», то в таблице users содержатся всего две записи, соответственно. Для профиля «Студент» пусть user_login=student, user_password=student, а для профиля «Эксперт» user_login=expert, user_password=expert. При авторизации пользователь вводит соответствующие логин и пароль и заходит в нужный профиль.

При работе с профилем «Студент» пользователь должен выбрать свою группу и ФИО, а потом ввести номер зачетной книжки в качестве пароля. Информационную поддержку этого процесса обеспечивают таблицы groups и students. В таблице groups хранятся данные по анкетируемым группам. Для этого в таблице предусмотрены два столбца – group_name для хранения имени группы и year для хранения года поступления. В таблице students содержатся данные по студентам, включая фамилию, имя, отчество и номер зачетки. Эта таблица является дочерней по отношению к таблице groups, связана с ней взаимоотношением «многие к одному», подразумевающему, что несколько студентов относятся к одной группе и наоборот. Данная взаимосвязь осуществляется по внешнему ключу group_id (в таблице students).

1.2. Физическая модель данных для хранения информации о читаемых дисциплинах

Физическая модель данных для хранения информации о читаемых дисциплинах должна включать в себя следующие связанные множества (рис. 4.3):

  • Множество «disciplines»

  • Множество «lections»

  • Множество «seminars»

Рис.4.3. Физическая модель данных для хранения информации по дисциплинам

Таблица disciplines является родительской по отношению к lections и seminars и связана с ними отношениями «один ко многим», означающими, что одной дисциплине может соответствовать несколько лекций и несколько семинаров. Отношения реализованы при помощи внешних ключей discipline_id.

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

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

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

Таблицы БД, созданные по 2-м вышеописанным моделям заполняются до начала рабочего функционирования системы. Для хранения регистрационных данных таблицы заполняются по спискам групп студентов за определенный год, официально присутствующих в деканате. Для хранения сведений о дисциплинах, по которым проводится анкетирование, таблицы заполняются по данным из рабочего учебного плана кафедры, из расписания занятий на конкретный семестр и из рабочих программ дисциплин.