
- •Введение
- •1 Инфологическое проектирование
- •1.1 Анализ предметной области
- •1.2 Анализ информационных задач и круга пользователей системы
- •1.3 Инфологическое проектирование
- •2 Определение требований к операционной обстановке
- •2.1 Выбор по и эвм
- •2.2 Объем внешней памяти занимаемый модулями субд
- •2.3 Объем памяти, отводимый под данные
- •2.4 Представление о характере и интенсивности запросов
- •3Выбор системы управления базой данных (субд)
- •4 Логическое проектирование
- •5 Физическое проектирование
- •Заключение
- •Список литературы
4 Логическое проектирование
Логическое проектирование начинается с построения универсальной таблицы (реляционного отношения), которая удовлетворяет требованию первой нормальной формы (1НФ), т.е. в универсальной таблице имеется закономерность «один факт в одном месте». Построение универсальной таблицы ведётся исходя из проведённого анализа предметной области.
Для приведения универсальной таблицы ко второй нормальной форме (2НФ) необходимо чтобы все поля каждого реляционного отношения не входящие в первичный ключ соответствующего отношения, были связаны полной функциональной зависимостью с первичным ключом. Для этого проведём дополнительный анализ, выделив составной первичный ключ универсальной таблицы.
Предположим, что каждый рейс имеет уникальный номер, определяющий название рейса, время вылета и время прибытия самолета. Следовательно, номер рейса однозначно определяет указанные атрибуты.
Каждый самолет имеет название, а также технические характеристики, такие как взлетная масса, скорость, высота, бортовой номер, тип самолета, количество посадочных мест, топливо, длина разбега.
Номер экипажа уникален для группы допуска всего экипажа
В базе данных существует нумерованный список летчиков, имеющий такие атрибуты как фамилия, имя, отчество, дата рождения, адрес, телефон.
Код вылета уникален для дня вылета.
Все купленные билеты фиксируются в продажах. Записывается дата продажи дата вылета, фамилия, имя, отчество пассажира, серия и номер паспорта, а также цена билета и номер места.
Личные данные всех кассиров также хранятся в базе данных.
Тогда в качестве первичного ключа универсальной таблицы можно использовать следующий набор атрибутов: Код вылета, Код экипажа, Код пилота, Код самолета, Номер рейса, Код кассира, Код продажи.
Выделим в отдельные таблицы сведения о самолетах, вылетах, экипажах, пилотах, рейсах, должностях, продажах и кассирах.
Таблица 4.1 – Самолеты (2НФ)
Код самолета |
Название самолета |
Взлетная масса |
Скорость |
Высота |
Бортовой номер |
Тип самолета |
Кол-во посадочных мест |
Топливо |
Длина разбега |
| |||||||||||||||||||||||
1 |
АН-2 |
5250кг |
200км/ч |
300-500м |
РА964825 |
Поршневой биплан |
12 |
Б91/115 |
180-240м |
| |||||||||||||||||||||||
2 |
АН-24 |
21тонна |
430км/ч |
1200-5700м |
57413 |
Турбовинтовой моноплан |
52 |
ТС1 |
450-550м |
| |||||||||||||||||||||||
… |
… |
… |
… |
… |
… |
… |
… |
… |
… |
| |||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
| ||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
| |||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
| |||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
| |||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
Код пилота |
Номер экипажа |
Фамилия |
Имя |
Отчество |
Дата рождения |
Адрес |
Телефон |
Код должности |
Название должности |
Оклад |
Премия |
Итого |
1 |
1 |
Кузин |
Максим |
Петрович |
21.03.1975 |
Трнавская 65-59 |
259638 |
1 |
Командир |
30000р. |
6000р. |
36000р. |
… |
… |
… |
… |
… |
… |
… |
… |
… |
… |
… |
… |
… |
13 |
3 |
Рязаев |
Алексей |
Евгеньевич |
19.08.1975 |
Лесная 128-45 |
664200 |
3 |
Штурман |
23000р. |
4600р. |
27600р. |
… |
… |
… |
… |
… |
… |
… |
… |
… |
… |
… |
… |
… |
Таблица 4.2 – Пилоты (2НФ)
Таблица 4.3 – Вылеты (2НФ)
Код вылета |
Код экипажа |
Номер рейса |
Код самолета |
День вылета |
1 |
1 |
7 |
1 |
Пятница |
2 |
3 |
6 |
1 |
Понедельник |
… |
… |
… |
… |
… |
Таблица 4.4 – Рейсы (2НФ)
Номер рейса |
Название рейса |
Время вылета |
Время прибытия |
1 |
Балаково-Москва |
8:20 |
10:20 |
2 |
Балаково-Свердловск |
10:30 |
12:05 |
… |
… |
… |
… |
Таблица 4.5 – Продажа (2НФ)
Код продажи |
Код кассира |
Номер рейса |
Дата продажи |
Дата вылета |
Фамилия |
Имя |
Отчество |
Серия/№ паспорта |
Цена билета |
Место № |
1 |
1 |
6 |
8.01.2005 |
24.01.2005 |
Картошкин |
Сергей |
Петрович |
6302 257896 |
1000р. |
5 |
2 |
2 |
7 |
8.01.2005 |
28.01.2005 |
Лампочкина |
Тамара |
Алексеевна |
5684 315320 |
2300р. |
3 |
… |
… |
… |
… |
… |
… |
… |
… |
… |
… |
… |
Таблица 4.6 – Кассиры (2НФ)
Код кассира |
Фамилия |
Имя |
Отчество |
1 |
Жукова |
Анастасия |
Сергеевна |
2 |
Сучкова |
Надежда |
Валерьевна |
… |
… |
… |
… |
Таблица 4.7 – Экипажи (2НФ)
Код экипажа |
Группа допуска |
1 |
1 |
2 |
4 |
… |
… |
Атрибуты «Код должности», «Название должности», «Оклад», «Премия», «Итого» транзитивно зависят от составного ключа.
Таблица 4.8 – Должности (3НФ)
Код должности |
Название должности |
Оклад |
Премия |
Итого |
… |
… |
… |
… |
… |
Полученные таблицы являются полной декомпозицией универсальной таблицы (1НФ). В каждой из полученных таблиц отсутствуют нетривиальные многозначные зависимости.
Преобразуем ER- диаграмму в схему базы данных.