Файл: 1 Детально изучить и описать предметную область.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 09.11.2023

Просмотров: 59

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.


2

.3 Разработка физической схемы базы данных по учету продаж

авиабилетов

Для проектирования физической модели базы данных, представленной

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

и СУБД, которые могут отличаться типами данных. В данном случае, были

выбрана СУБД MySQL, которая отличается простотой и интуитивной

понятностью. Как говорилось выше, для осуществления связей «много ко

многим» необходимы вспомогательные таблицы. В нашем случае

была введена сущность: «border_has_class». Для связи таблиц типа «один ко

многим» были введены внешние ключи. Так как названия сущностей и

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

является плохим тоном, а также такие наименования могут повлечь за собой

проблемы совместимости кодировок на этапе реализации, то все

наименования были переведены на английский язык и записаны с помощью

латиницы. Для работы с данными были выбраны следующие типы данных

СУБД:

Varchar(X) символьные данные переменной длины. Под

X

обозначается количество символов. Используется для хранения записей,

например, название, имя, адрес.


Integer длинное целое число. Используется для первичных ключей

каждой таблицы, а также для хранения регистрационных номеров и цены

услуг.

Date - Дата. Поддерживается интервал от '1000-01-01' до '9999-12-31'.

Time Время. Поддерживается интервал от '00:00:00' до '23:59:59'




1

3

Рисунок 3 Физическая схема базы данных по продаже авиабилетов

2

.4 Бизнес правила

) В самолете не может быть суммарно мест больше, чем максимально

1

установленное кол-во производителем

2

3

4

5

6

7

8

) Билет можно оформить только на совершеннолетнее лицо

) Нельзя оформить билет на место, которого нет

) Нельзя оформить билет в класс, которого в самолете нет

) Нельзя оформить билет на уже занятое место

) Билеты на ребёнка покупаются вместе со взрослым

) При вылете заграницу необходимо указать визу

) Цена билета известна заранее


1

4

3

Реализация базы данных по учету продаж авиабилетов

3

.1 Реализация и заполнение базы демо-информацией

SQL (англ. structured query language «язык структурированных

запросов») декларативный язык программирования, применяемый для

создания, модификации и управления данными в реляционной базе данных,

управляемой соответствующей системой управления базами данных. SQL

очень мощный инструмент. Хоть у каждой СУБД есть свои особенности,

скрипты основных операций не отличаются, что делает SQL независимым от

конкретной СУБД. Как было упомянуто в определении, SQL декларативный

язык, это значит, что программист описывает только то, какие данные

необходимо извлечь или модифицировать, а СУБД при обработке SQL-

запроса самостоятельно решит, как его выполнить.


Создание таблицы «airlainer»

create table airlainer(

airlainer_code int primary key,

aircraft_model varchar (70) not null,

allowed_places int not null

);

Заполнениетаблицы «airlainer»

insert into airlainer

values (737, 'Boeing 737', 750)

(320, 'Airbus 320', 550)

(777, 'Boeing 777', 320)


1

5

3

.2 Триггеры

Процедуры в базах данных представляют собой наборы SQL-

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

Процедуры позволяют повысить производительность, обеспечить

безопасность данных, а также расширить возможности программирования.

Повышения производительности можно добиться путем создания

одной процедуры, и вызова ее вместо часто используемого запроса.

Процедуры позволяют ограничить или исключить непосредственный доступ

пользователей к таблицам базы данных, оставляя только разрешения

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

Триггер процедура, которая вызывается не пользователем, а каким-

либо провоцирующим событием в базе данных.

Скрипт триггера проверки пересечения времени работы над одним и

тем же объектом представлен ниже. (Остальные скрипты приведены в

приложении В).

Триггер, проверяющий, что в самолете не может быть больше мест, чем

максимально установленное кол-во производителем

create exception places_sum_e 'Превышено максимально разрешенное

кол-во мест!'


create trigger places_sum_t for board_has_class

active after insert or update

as

declare variable al_plac int;

declare variable aircrft int;

declare variable plac_sum int;

begin

aircrft = (select board.airlainer_code from board where new.board_number

=

board.board_number);


1

6

al_plac = (select allowed_places from airlainerwhere :aircrft =

airlainer_code);

plac_sum = (select SUM(board_has_class.places_in_class)

from board_has_class where board_has_class.board_number

new.board_number);

=

if(:plac_sum> :al_plac) then exception places_sum_e;

end

3

.3 Запросы

Задача базы данных хранить и выдавать информацию пользователю

или приложению, взаимодействующему с ней. При выборке данных

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

в этот раз нам понадобятся не DDL или DML запросы, а DQL запросы, точнее

единственная относящая к этому виду запросов команда SELECT.

Скрипт для вывода всех билетов и данных пассажиров, оформивших

билет.

select

ticket.ticket_id,

ticket.flight_number,

class.class_name,

ticket.sit_place,

passanger.surname, passanger.name from ticket left join passanger

on ticket.pasport = passanger.pasport left join class

on class.class_id = ticket.class_id


1

7

Заключение

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

1

2

3

4

. Была детально изучена и описана предметная область;

. Разработана концептуальная схема базы данных;

. Реализована база данных;