Методические указания к курсовому проектированию по курсу базы данных для студентов дневной и заочной форм обучения специальностей

Вид материалаМетодические указания

Содержание


2 Разработка структуры базы данных 2.1 Инфологическая модель данных
2.2 Датологическая модель данных
Подобный материал:
1   2   3   4   5   6










2 Разработка структуры базы данных

2.1 Инфологическая модель данных



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

Инфологическая модель данных приведена на рис.2.1 в виде ER-диаграммы.

Центральной информационной сущностью БД является сущность «Билет». Эта информационная сущность описывает конкретный билет на поезд. Каждый билет имеет свой уникальный идентификатор «Номер билета» и характеризуется сущностями «Пассажир», «Дата отправления поезда», «Станция», «Номер поезда», «Тип вагона». Также сущность «Билет» включает в себя стоимость билета.

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

Сущность «Номер билета» создана как уникальный идентификатор для сущности «Билет».

Сущность «Пассажир» связана отношением «Имеет» с сущностью «Льготы (процент скидки)». Она характеризуется характеристиками каждого пассажира и видом льготы. У одного пассажира может быть только один вид льготы.

Сущность «Льготы (процент скидки)» характеризуется видом льготы и идентификатором. Необходима для создания определенного набора видов льгот.

Сущность «Станция» содержит в себе информацию по каждой станции. Связана отношением «Находится на» с сущностью «Расстоянии». Также она связана отношением «Следует через» с сущностью «Номер поезда». Определенные поезда следуют через определенные станции.

Сущность «Расстоянии» характеризуется расстоянием от станции, на которой находится данная касса железнодорожных билетов, до данной станции и идентификатором. Одной станции соответствует одно значение расстояния.


Рис.2.1 ER-диаграмма





Сущность «Номер поезда» содержит характеристики каждого поезда. Связана отношением «Включает в себя» с сущностью «Количество вагонов данного типа».

Сущность «Тип вагона» содержит набор существующих типов вагонов и идентификаторов для каждого типа вагона. Она связана отношением «Включает в себя» с сущностью «Количество вагонов данного типа». Также она содержит характеристики каждого типа вагона.

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

2.2 Датологическая модель данных



В созданной базе данных (БД) вся информация хранится в 10 таблицах, и 2 таблицы являются вспомогательными для промежуточных вычислений. Схема данных представлена на рис.2.2.


Рис 2.2 Схема данных





В таблице «Скидка» хранится размер льготы «Льгота» числового типа и ключевое поле «Код» типа счетчик, являющееся идентификатором льготы.

В таблице «Пассажир» хранится ФИО каждого пассажира в поле «ФИО» текстового типа, конкретная скидка для каждого пассажира в поле со списком «Скидка». Также хранится идентификатор каждого пассажира в поле «Код» типа счетчик. Поле «Код» является ключевым.

В таблице «Дата отправления» хранятся различные даты отправления поездов в поле «Дата» типа дата и идентификаторы для каждой даты в поле «Код» типа счетчик. Поле «Код» является ключевым.

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

В таблице «Количество вагонов» хранится количество вагонов данного типа для данного номера поезда. Количество вагонов хранится в поле «Количество вагонов» числового типа. Данный тип вагонов хранится в поле со списком «Тип вагона», данный номер поезда в поле со списком «Номер поезда». Ключевое поле состоит из 2 полей: «Номер поезда» и «Тип вагона». Составное ключевое поле необходимо, чтобы определенному типу вагонов и определенному номеру поезда соответствовало только одно количество вагонов.

В таблице «Вид поезда» хранится информация о видах поездов. В поле «Вид поезда» текстового типа хранится название вида поезда. В поле «Стоимость км» денежного типа хранится стоимость одного километра пути на данном виде поезда. Идентификатором вида поезда и ключевым полем является поле «Код» типа счетчик.

В таблице «Номер поезда» хранится номер поезда в поле «Номер поезда» числового типа, вид поезда в поле со списком «Вид поезда» и ключевое поле «Код» типа счетчик, являющееся идентификатором для данного номера поезда.

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

В таблице «Станция» хранится информация по каждой станции. В поле «Станция» текстового типа хранится название стации, в поле «Расстояние» числового типа расстояние от станции, на которой находится данная касса железнодорожных билетов, до данной станции. Ключевое поле «Код» типа счетчик является идентификатором для данной станции.

В таблице «Купил билет» хранится информация о каждом проданном билете. Ключевое поле «Номер» текстового типа содержит номер проданного билета. В поле со списком «Дата» хранится дата отправления поезда. В поле со списком «Номер поезда» хранится номер поезда, на который продан билет. В поле со списком «Тип вагона» хранится тип вагона, в который продан билет. В поле со списком «Станция» хранится название станции, до которой следует пассажир. В поле со списком «Пассажир» хранится пассажир, на которого оформлен билет. В поле «Цена» денежного типа хранится подсчитанная стоимость проезда для билета с данными параметрами.

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

Все связи реализуют: обеспечение целостности данных, каскадное обновление связанных полей, каскадное удаление связанных полей.