Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
4 курс (заочка) / Курсовая работа / Курсовая работа (АСУ Туристическая фирма).docx
Скачиваний:
63
Добавлен:
08.01.2022
Размер:
2.87 Mб
Скачать

2.3. Даталогическое проектирование бд

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

  • отсутствие дублируемой информации;

  • поддержание целостности данных при вставке, удалении или изменении записей;

  • возможность организации всех видов связи между отношениями 1:1, 1:M и M:M.

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

В реляционных базах данных (РБД) даталогическое проектирование приводит к разработке схемы БД, т.е. совокупности схем отношений, адекватно моделирующих объекты ПО и семантических связей между ними.

Основой анализа корректности схемы являются функциональные зависимости между атрибутами БД. Некоторые могут быть нежелательными.

В конце этого этапа должно быть получено описание схемы БД в терминах выбранной СУБД. Целью даталогического проектирования является построение корректной схемы БД, ориентированную на реляционную модель. Корректной называется схема БД, в которой отсутствуют нежелательные зависимости между атрибутами отношений.

Процесс разработки корректной схемы РБД и является даталогическим проектированием. Возможны 2-а способа:

  • Декомпозиция (разбиение);

  • Синтез;

Для перехода от инфологической модели к реляционной существует специальный алгоритм:

  1. каждой сущности ставится в соответствие отношение;

  2. каждому атрибуту сущности ставится в соответствие соответствующий атрибут соответствующего отношения;

  3. первичный ключ сущности становится PK соответствующего отношения, при этом атрибуты, входящие в PK, обязательны для заполнения (NOT NULL);

  4. в каждое отношение, соответствующее подчинённой сущности, добавляется набор атрибутов основной сущности, являющийся в ней первичным ключом. В отношении, соответствующее подчинённой сущности эти атрибуты становятся FK (внешним ключом);

  5. по умолчанию, все атрибуты, не входящие в PK, необязательны;

  6. для отражения категоризации сущностей возможны несколько вариантов;

  7. все связи М:М должны быть раскрыты;

Воспользуемся данным алгоритмом и опишем каждую сущность инфологической модели:

Отели:

  • Код отеля – int NOT NULL PK

  • Название – varchar(20) NOT NULL

  • Тип – varchar(20) NOT NULL

  • Город – varchar(20) NOT NULL

  • Телефон – int NOT NULL

  • Адрес – varchar(30) NOT NULL

Страны:

  • Код страны – int NOT NULL PK

  • Страна – varchar(20) NOT NULL

Туры:

  • Код тура – int NOT NULL PK

  • Тур – varchar(20) NOT NULL

  • Цена – int NOT NULL

  • Дата отправления – date NOT NULL

  • Город вылета – varchar(20) NOT NULL

  • Оператор – varchar(20) NOT NULL

  • Людей– int NOT NULL

  • Ночей – int NOT NULL

  • Код страны - int NOT NULL FK

  • Код отеля - int NOT NULL FK

Клиенты:

  • Код клиента – int NOT NULL PK

  • ФИО – varchar(50) NOT NULL

  • Паспортные данные – varchar(10) NOT NULL

  • Телефон – int NOT NULL

  • Эл. почта – varchar(50) NULL

  • Адрес – varchar(50) NOT NULL

Сотрудники:

  • Код сотрудника – int NOT NULL PK

  • ФИО – varchar(50) NOT NULL

  • Должность - varchar(30) NOT NULL

  • Дата рождения – date NOT NULL

  • Паспортные данные – varchar(10) NOT NULL

  • Телефон – int NOT NULL

  • Адрес – varchar(50) NOT NULL

  • Дата приема на работу – date NOT NULL

Продажи:

  • Код продажи – int NOT NULL PK

  • Дата продажи – date NOT NULL

  • Количество – int NOT NULL

  • Код клиента – int NOT NULL FK

  • Код сотрудника – int NOT NULL FK

  • Код тура– int NOT NULL FK

Возвраты:

  • Код возврата – int NOT NULL PK

  • Дата возврата – date NOT NULL

  • Количество – int NOT NULL

  • Причина – varchar(100) NOT NULL

  • Код клиента – int NOT NULL FK

  • Код сотрудника – int NOT NULL FK

  • Код тура– int NOT NULL

Исходя из приведённых выше отношений, построим схему получившейся БД (Рисунок 5).

Рис. 5. Даталогическая модель базы данных