Примеры выполнения ER-модели, проектирования логической структуры БД и нормализации отношений
Пример выполнения № 1
1.1 Описание предметной области.
База данных «Аэропорт» хранит и выдает информацию о работниках самолета, о расписании вылетов, о самолетах, о бригадах самолетов (т. е. об экипаже), о ведомости продаж билетов.
1.2 Описание входных документов
Благодаря базе данных «Аэропорт» можно будет получить информацию о номере самолета, узнать год выпуска самолета, количество посадочных мест и грузоподъемность. О работниках самолета можно будет узнать ФИО, год рождения, стаж и должность, пол, адрес и телефон. В
расписании вылетов можно узнать номер самолета, дату и время вылета,
номер маршрут, маршрут (начальный и конечный пункты назначения,
пункты пересадки), стоимость билета. О бригаде самолетов можно узнать такие вещи, как номер бригады, название самолета, ФИО работника, который состоит в этой бригаде (о его должности), номере маршрута по которому движется бригада. Что касается продажи билетов, можно узнать дату и время продажи, ФИО пассажира, паспортные данные, номер рейса, стоимость билета.
Для каждого рейса необходимо выделить самолет, бригаду самолета и внести это в график работы и ведомость продажи билетов. Правильно составленный график полетов позволит грамотно использовать время занятости и загруженность рейсов. Для того, чтобы всегда отслеживать работу авиакомпании и следить за качеством работы сотрудников,
необходима база данных, включающая всю необходимую информацию.
1.3 Определение пользователей
- работники аэропорта: у них есть доступ к базе данных, но производить манипуляции с таблицами они не могут;
-администратор аэропорта: у него есть доступ ко всей базе данных и полномочия выполнять любые действия с данными;
- пассажиры: могут только просматривать таблицу с расписанием вылетов;
-кассир: помогает пассажирам выбрать необходимый рейс и помогает с оформлением;
1.4 Определение запросов
-всевозможные запросы, содержащие информацию в базе данных;
-подсчет пассажиров, летающими определенным рейсом;
-подсчет всех участвующих сотрудников в бригаде;
-подсчет сотрудников определенной должности в каждой бригаде;
-количество мест в самолете;
-принадлежность самолета к определенной бригаде;
-подсчет суммы проданных билетов;
1.5 Описание выходных документов
- после покупки билета, пассажир относится к определенному рейсу, к
которому уже относится определенная бригада. Происходит формирование
«группы», летящей определенным самолетом/рейсом.
- «Ведомость продажи билетов» формирует подсчет суммы проданных за день билетов или общую сумму за определенный рейс;
2 Анализ сущностей и связей между ними
2.1 ER-диаграмма
Нужна для составления предполагаемой схемы связей между таблицами в данной БД. Так же ER-диаграмма отражает связь таблиц,
наглядное отображение первичных и внешних ключей.
Первичный ключ — это поле или набор полей таблицы, которые предоставляют уникальный идентификатор для каждой строки. После того как первичный ключ определен, его можно использовать в других таблицах для ссылки на таблицу с полем первичного ключа. Например, номер бригады.
Однако, для идентификации каждой бригады первичного ключа недостаточно, так как каждая бригада принадлежит определенному самолету.
Каждая бригада летает определенными маршрутами. И в состав каждой бригады входят определенные работники. Для этого используем внешние ключи. Внешний ключ – это атрибут отношения, который является первичным ключом другого отношения. В моем случае, это атрибут таблицы самолетов. С помощью внешнего ключа будет определено к какому самолету принадлежит каждая бригада.
Рисунок 1 – ER-диаграмма
По предварительно-составленной ER-диаграмме составила схему данных для ИС, где указываются имена сущностей, их атрибуты и связи между сущностями. Даталогическая модель БД представляется в виде набора таблиц специальной формы, в которых указываются наименование атрибута,
идентификатор, тип, длина, формат, ограничения.
Таблица 1 - Список связей
№ |
Названи |
Сущности, участвующие в |
Назначение |
|
|
|
е связи |
связи |
|
|
|
|
|
|
|
|
|
1 |
М:М |
Ведомость - Расписание |
Ведомость |
выписывается |
к |
|
|
вылетов |
конкретному вылету |
|
|
|
|
|
|
|
|
2 |
1:М |
Бригады самолетов – |
Каждая бригада самолетов |
|
|
|
|
Расписание вылетов |
осуществляет определенные |
|
|
|
|
|
вылеты |
|
|
|
|
|
|
|
|
3 |
1:М |
Бригада самолетов – Работники |
В каждой |
бригаде определенные |
|
|
|
аэропорта |
работники. |
|
|
Рисунок 2 – Схема базы данных
2.2 Нормализация отношений
В рассматриваемой БД будет 5 таблиц. Рассмотрим каждую из них подробно.
|
|
|
|
|
|
|
|
|
Таблица 2 - Список сущностей |
|
|
|
|
|
|
||||
|
№ |
Название |
|
|
Назначение |
||||
|
1 |
Работники аэропорта |
|
Персональные данные о работниках |
|||||
|
2 |
Расписание вылетов |
|
График полетов, связанные с определенным самолетом, |
|||||
|
|
|
|
|
|
|
продажей билетов и бригадой самолетов |
||
|
|
|
|
|
|
||||
|
3 |
Самолеты |
|
|
Описание основных характеристик самолета |
||||
|
4 |
Бригады |
|
|
|
|
Состав работников определенной бригады самолета |
||
|
5 |
Ведомость |
продаж |
|
Хранение сведений о продаже билетов и пассажирах |
||||
|
|
билетов |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
Таблица 3 – Список атрибутов таблицы «Работники аэропорта» |
||||
|
Ключевое |
|
Название |
|
Назначение |
||||
|
поле |
|
|
|
|
|
|
|
|
|
ПК |
|
|
Код работника |
Ключевое поле. Представляет собой первичный |
||||
|
(Первичный |
|
|
|
|
|
ключ. Это уникальное значение, соответствующее |
||
|
ключ) |
|
|
|
|
|
каждому работнику. Например, это его табельный |
||
|
|
|
|
|
|
|
|
номер. |
|
|
|
|
|
|
|
|
|
||
|
|
|
|
ФИО работника |
|
|
|||
|
|
|
|
Пол |
|
|
|
|
|
|
|
|
|
Должность |
|
Пилот, диспетчер, техник, стюардесса, кассир |
|||
|
|
|
|
Год рождения |
|
|
|
||
|
|
|
|
Стаж |
|
|
|
|
|
|
|
|
|
Телефон |
|
|
|
||
|
|
|
|
Адрес |
|
|
|
||
|
|
|
|
|
Таблица 4 – Список атрибутов таблицы «Расписание вылетов» |
||||
|
Ключевое |
Название |
|
|
Назначение |
||||
|
поле |
|
|
|
|
|
|
|
|
|
ПК |
|
Код работника |
|
|
Ключевое поле. Представляет собой первичный |
|||
|
(Первичный |
|
|
|
|
|
|
ключ. Это уникальное значение, |
|
|
ключ) |
|
|
|
|
|
|
соответствующее каждому вылету. Например, |
|
|
|
|
|
|
|
|
|
|
номер рейса |
|
|
|
|
|
|
|
|
||
|
Ключевое |
Название |
|
|
Назначение |
поле |
|
|
|
|
ВК |
Код самолета |
|
|
Внешний ключ – это атрибут отношения, |
(Внешний |
|
|
|
который является первичным ключом другого |
ключ) |
|
|
|
отношения. В моем случае, это атрибут таблицы |
|
|
|
|
самолетов. С помощью внешнего ключа будет |
|
|
|
|
определено какой самолет полетит данным |
|
|
|
|
определенным рейсом. |
|
Дата и время вылета |
|
|
|
|
Маршрут |
|
|
Начальный и конечный пункты назначения, |
|
|
|
|
пункты пересадки |
|
Номер маршрута |
|
|
|
|
Стоимость билета |
|
|
|
|
|
Таблица 5 – Список атрибутов таблицы «Самолеты» |
||
|
|
|
|
|
Ключевое |
Название |
|
|
Назначение |
поле |
|
|
|
|
ПК |
Код самолета |
|
|
Ключевое поле. Представляет собой первичный |
(Первичный |
|
|
|
ключ. Это уникальное значение, соответствующее |
ключ) |
|
|
|
каждому самолету. Например, номер самолета. |
|
|
|
|
|
|
Название самолета |
|
|
|
|
Год выпуска |
|
|
|
|
Количество посадочных |
|
||
|
мест |
|
|
|
|
Грузоподъемность |
|
|
|
|
|
Таблица 6 – Список атрибутов таблицы «Бригады» |
||
Ключевое |
Название |
|
|
Назначение |
поле |
|
|
|
|
ПК |
Код бригады |
|
|
Ключевое поле. Представляет собой первичный |
(Первичный |
|
|
|
ключ. Это уникальное значение, соответствующее |
ключ) |
|
|
|
каждой бригаде самолета. Например, номер |
|
|
|
|
бригады. |
|
|
|
|
Однако, для идентификации каждой бригады |
|
|
|
|
первичного ключа недостаточно, так как каждая |
|
|
|
|
бригада принадлежит определенному самолету. |
|
|
|
|
Каждая бригада летает определенными |
|
|
|
|
маршрутами. И в состав каждой бригады входят |
|
|
|
|
определенные работники. Для этого используем |
|
|
|
|
внешние ключи. |
|
|
|
|
|
Ключевое |
Название |
|
|
Назначение |
поле |
|
|
|
|
|
ВК |
Код самолета |
Внешний ключ – это атрибут отношения, который |
|
(Внешний |
|
является первичным ключом другого отношения. |
|
ключ) |
|
В моем случае, это атрибут таблицы самолетов. С |
|
|
|
помощью внешнего ключа будет определено к |
|
|
|
какому самолету принадлежит каждая бригада. |
|
|
|
|
|
ВК |
Код работника |
С помощью внешнего ключа будет определено |
|
(Внешний |
|
какой работник принадлежит к каждой бригаде. |
|
ключ) |
|
|
|
ВК |
Код вылета |
С помощью внешнего ключа будет определено |
|
(Внешний |
|
каким рейсом полетит эта бригада. |
|
ключ) |
|
|
|
|
Маршрут |
|
|
|
Самолет |
|
|
|
ФИО работника |
|
|
|
Таблица 7 – Список атрибутов таблицы «Ведомость продажи билетов» |
|
|
Ключевое |
Название |
Назначение |
|
поле |
|
|
|
ПК |
Код продажи |
Ключевое поле. Представляет собой первичный |
|
(Первичный |
|
ключ. Это уникальное значение, соответствующее |
|
ключ) |
|
каждой ведомости. Например, номеру ведомости. |
|
|
|
|
|
ВК |
Код вылета |
Чтобы осуществить продажу билета, необходимо |
|
(Внешний |
|
знать номер рейса. Поэтому нужно использовать |
|
ключ) |
|
внешний ключ «Расписание вылетов». Чтобы |
|
|
|
точно знать когда пассажир воспользуется |
|
|
|
билетом, который он приобрел. |
|
|
ФИО пассажира |
|
|
|
Дата и время вылета |
|
|
|
Паспорт |
|
|
|
Номер рейса |
|
|
|
Стоимость билета |
|
Пример выполнения № 2
1.1 Описание предметной области.
База данных «ВМФ» хранит и выдает информацию о базах и частях ВМФ, кораблях, имеющихся на вооружении, сотрудниках и проведенных учениях.
1.2 Описание входных документов
БД состоит из следующих таблиц: базы, части, личный состав, корабли,
учения.
Таблица Базы военно-морского флота имеет следующие атрибуты:
название базы, географическое расположение, кол-во частей.
Таблица части имеет следующие атрибуты: номер части, база флота,
место базирования, вид войск (морская авиация, морская пехота и т.д.).
Таблица личный состав имеет следующие атрибуты: фамилия, часть,
должность, год рождения, год поступления на службу, выслуга лет, награды,
Таблица корабли имеет следующие атрибуты: идентификационный номер корабля, название корабля, тип корабля, дата создания, наработка, кол-
во посадочных мест, устройство двигателя (парусное, гребное, пароход,
теплоход, турбоход, и т.д.), тип привода (самоходное, несамоходное),
размещение корпуса (подводная лодка, ныряющее, полупогружное, и т.д.)
Таблица учения: часть, корабль, дата учения, место проведения, оценка
1.3 Определение пользователей У служащих, имеющих звание “Адмирал” есть доступ ко всей базе
данных, все остальные служащие могут только просматривать таблицу
“учения”.
1.4 Определение запросов
- различные запросы, содержание информацию в БД.
1.5 Описание выходных документов
После того, как проходят какие-либо учения сотрудник вносит в базу данных информацию о дате учений, корабле, участвовавшем в учении, части
и оценке.
2 Анализ сущностей и связей между ними
2.1 ER-диаграмма
Нужна для составления предполагаемой схемы связей между таблицами в данной
БД. Так же ER-диаграмма отражает связь таблиц, наглядное отображение первичных и внешних ключей.
Первичный ключ — это поле или набор полей таблицы, которые предоставляют уникальный идентификатор для каждой строки. После того как первичный ключ определен, его можно использовать в других таблицах для ссылки на таблицу с полем первичного ключа. Например, поле «Код автомобиля» из таблицы «Автомобиль» можно найти и в таблице
«Продажи». В таблице «Автомобили» оно является первичным ключом. В
таблице «Продажи» оно называется внешним ключом.
Между этими информационными объектами существуют связи.
Связь «один-к-одному» означает, что экземпляр одной сущности связан только с одним экземпляром другой сущности.
Связь «один-ко-многим» означает, что один экземпляр сущности,
расположенный слева по связи, может быть связан с несколькими экземплярами сущности, расположенными справа по связи.
Связь «многие-ко-многим» означает, что одни экземпляр первой сущности может быть связан с несколькими экземплярами второй сущности,
и наоборот, один экземпляр второй сущности может быть связан с несколькими экземплярами первой сущности.
ER-модель предметной области «Автосалон» представлена на рисунке.
Рисунок 1 – ER-модель рассматриваемой предметной области
2.2 Нормализация отношений
В нашей БД будет 5 таблиц. Рассмотрим каждую из них подробно.
Таблица 1 – Список сущностей
№ |
Название |
Назначение |
1 |
Базы |
Описание базы и список входящих в нее частей |
2 |
Части |
Описание части и вида войск |
3 |
Личный состав |
Описание личного состава части |
4 |
Корабли |
Описание кораблей |
5 |
Учения |
Перечень частей с их оценками за учения |
|
|
Таблица 2 – Список атрибутов таблицы «Базы» |
|
|
|
|
|
Ключевое |
Название |
|
Назначение |
поле |
|
|
|
ПК |
Код базы |
|
Ключевое поле, предназначенное для |
|
|
|
однозначной идентификации каждой записи в |
|
|
|
таблице. Представляет собой первичный ключ. |
|
|
|
Это уникальное значение, соответствующее |
|
|
|
каждой базе. |
|
|
|
Это целое число. Т.е. для идентификации |
|
|
|
каждой базы будет применятся не названия |
|
|
|
самой базы, а определенный номер. Этот |