
- •Применение современных open-source технологий при создании корпоративных систем
- •Предисловие
- •Введение
- •Практическая работа № 1 разработка архитектуры системы
- •1. Цель работы
- •2. Теоретические сведения, необходимые для выполнения работы
- •3. Рабочие задания Задание 1. Установка среды Archi. Изучение нотации ArchiMate
- •1. Скачайте свободно распространяемую среду Archi и установите ее на своем компьютере, проверив функционирование
- •2. Изучите нотацию ArchiMate
- •Задание 2. Построение архитектурного описания разрабатываемой системы
- •Задание 3. Создание отчета
- •Сохранение работы
- •Практическая работа № 2 создание многопользовательской среды разработки проекта
- •1. Цель работы
- •2. Теоретические сведения, необходимые для выполнения работы
- •3. Рабочее задание
- •Практическая работа № 3 разработка пользовательского интерфейса
- •1. Цель работы
- •2. Теоретические сведения, необходимые для выполнения работы
- •3. Рабочее задание
- •Практическая работа № 4 разработка базы данных
- •1. Цель работы
- •2. Теоретические сведения, необходимые для выполнения работы
- •3. Рабочие задания
- •Задание 1. Создание физической модели бд
- •1.1. Физическая модель данных для хранения регистрационной информации о слушателях и экспертах
- •1.2. Физическая модель данных для хранения информации о читаемых дисциплинах
- •1.3. Физическая модель данных для хранения анкетной информации
- •Задание 2. Создание бд из полученных моделей
- •Практическая работа № 5 разработка программной логики системы
- •1. Цель работы
- •2. Теоретические сведения, необходимые для выполнения работы
- •3. Рабочие задания
- •Задание 1. Программные компоненты для авторизации пользователей
- •Задание 2. Программные компоненты для внесения анкетных данных в бд
- •Задание 3. Программные компоненты обработки анкетных данных и вывода результатов
- •Задание 4. Отладка созданных программ
- •Практическая работа № 6 развертывание и тестирование программной системы
- •1. Цель работы
- •2. Теоретические сведения, необходимые для выполнения работы
- •3. Рабочее задание
- •Контрольные вопросы
- •Библиографический список
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-м вышеописанным моделям заполняются до начала рабочего функционирования системы. Для хранения регистрационных данных таблицы заполняются по спискам групп студентов за определенный год, официально присутствующих в деканате. Для хранения сведений о дисциплинах, по которым проводится анкетирование, таблицы заполняются по данным из рабочего учебного плана кафедры, из расписания занятий на конкретный семестр и из рабочих программ дисциплин.