Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
База данных - Продажа автобусных билетов.doc
Скачиваний:
114
Добавлен:
02.05.2014
Размер:
1.01 Mб
Скачать

5.2 Спецификация ограничений и правил поддержания целостности

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

5.3 Sql-код для создания реляционной модели

В данном подразделе разрабатан SQL-код для создания реляционной модели.

CREATE TABLE Персона_пассажир

(Документ_серия CHAR (10) NOT NULL PRIMARY KEY,

Документ_вид документа CHAR (20) NOT NULL,

ФИО_Фамилия CHAR (20) NOT NULL,

ФИО_Имя CHAR (20) NOT NULL,

ФИО_Отчество CHAR (20) NOT NULL,

Адрес CHAR (30),

Номер_телефона INTEGER NOT NULL,

FOREIGN KEY (Номер_телефона) REFERENCES Телефон (Номер),

UPDATE OF Телефон CASCADES,

DELETE OF Телефон RESTRICTED) ;

CREATE TABLE Продажа

(Документ_серия пассажира CHAR (10) NOT NULL,

Код кассира CHAR (6) NOT NULL,

Номер билета CHAR (6) NOT NULL,

FOREIGN KEY (Документ_серия пассажира) REFERENCES

Персона_пассажир (Документ_серия),

FOREIGN KEY (Код кассира) REFERENCES

Персона_сотрудник_кассир (Код),

FOREIGN KEY Номер билета REFERENCES Билет,

UPDATE OF Персона_пассажир CASCADES,

DELETE OF Персона_пассажир RESTRICTED,

UPDATE OF Персона_сотрудник_кассир CASCADES,

DELETE OF Персона_сотрудник_кассир RESTRICTED,

UPDATE OF Билет CASCADES,

DELETE OF Билет RESTRICTED);

CREATE TABLE Возврат

(Документ_серия пассажира CHAR (10) NOT NULL,

Код кассира CHAR (6) NOT NULL,

Номер билета CHAR (6) NOT NULL,

FOREIGN KEY (Документ_серия пассажира) REFERENCES

Персона_пассажир (Документ_серия),

FOREIGN KEY (Код кассира) REFERENCES

Персона_сотрудник_кассир (Код),

FOREIGN KEY Номер билета REFERENCES Билет,

UPDATE OF Персона_пассажир CASCADES,

DELETE OF Персона_пассажир RESTRICTED,

UPDATE OF Персона_сотрудник_кассир CASCADES,

DELETE OF Персона_сотрудник_кассир RESTRICTED,

UPDATE OF Билет CASCADES,

DELETE OF Билет RESTRICTED);

CREATE TABLE Бронирование

(Номер брони CHAR (6) NOT NULL PRIMARY KEY,

Срок выкупа DATE NOT NULL,

Документ_серия пассажира CHAR (10) NOT NULL,

Код кассира CHAR (6) NOT NULL,

Номер билета CHAR (6) NOT NULL,

FOREIGN KEY (Документ_серия пассажира) REFERENCES

Персона_пассажир (Документ_серия),

FOREIGN KEY (Код кассира) REFERENCES

Персона_сотрудник_кассир (Код),

FOREIGN KEY Номер билета REFERENCES Билет,

UPDATE OF Персона_пассажир CASCADES,

DELETE OF Персона_пассажир RESTRICTED,

UPDATE OF Персона_сотрудник_кассир CASCADES,

DELETE OF Персона_сотрудник_кассир RESTRICTED,

UPDATE OF Билет CASCADES,

DELETE OF Билет RESTRICTED);

CREATE TABLE Телефон

(Номер INTEGER NOT NULL PRIMARY KEY,

Код CHAR (6),

Тип CHAR (10));

CREATE TABLE Билет

(Номер билета CHAR (6) NOT NULL PRIMARY KEY,

Номер места INTEGER,

Цена REAL NOT NULL,

Номер рейса CHAR (6) NOT NULL,

FOREIGN KEY Номер рейса REFERENCES Рейс,

UPDATE OF Рейс CASCADES,

DELETE OF Рейс RESTRICTED) ;

CREATE TABLE Касса

(Номер кассы INTEGER NOT NULL PRIMARY KEY,

Вид кассы CHAR (20));

CREATE TABLE Персона_сотрудник_кассир

(Код CHAR (6) NOT NULL PRIMARY KEY,

ФИО_Фамилия CHAR (20) NOT NULL,

ФИО_Имя CHAR (20) NOT NULL,

ФИО_Отчество CHAR (20) NOT NULL,

Паспорт_серия CHAR (10) NOT NULL,

Паспорт_номер CHAR (10) NOT NULL,

Адрес CHAR (30) NOT NULL,

Номер телефона INTEGER NOT NULL,

Номер кассы INTEGER NOT NULL,

FOREIGN KEY (Номер телефона) REFERENCES Телефон (Номер),

FOREIGN KEY Номер кассы REFERENCES Касса,

UPDATE OF Телефон CASCADES,

DELETE OF Телефон RESTRICTED,

UPDATE OF Касса CASCADES,

DELETE OF Касса RESTRICTED);

CREATE TABLE Персона_сотрудник_администратор

(Код CHAR (6) NOT NULL PRIMARY KEY,

ФИО_Фамилия CHAR (20) NOT NULL,

ФИО_Имя CHAR (20) NOT NULL,

ФИО_Отчество CHAR (20) NOT NULL,

Паспорт_серия CHAR (10) NOT NULL,

Паспорт_номер CHAR (10) NOT NULL,

Адрес CHAR (30) NOT NULL,

Номер телефона INTEGER NOT NULL,

FOREIGN KEY (Номер телефона) REFERENCES Телефон (Номер),

FOREIGN KEY Номер приказа REFERENCES Место работы,

UPDATE OF Телефон CASCADES,

DELETE OF Телефон RESTRICTED);

CREATE TABLE Должность

(Код должности CHAR (6) NOT NULL PRIMARY KEY,

Название должности CHAR (20));

CREATE TABLE Карьера

(Номер статьи CHAR (6) NOT NULL PRIMARY KEY,

Дата назначения DATE NOT NULL,

Код должности CHAR (6) NOT NULL,

FOREIGN KEY Код должности REFERENCES Должность,

UPDATE OF Должность CASCADES,

DELETE OF Должность RESTRICTED);

CREATE TABLE Место работы

(Номер приказа CHAR (6) NOT NULL PRIMARY KEY,

Дата приема DATE NOT NULL,

Дата увольнения DATE NOT NULL ,

Номер статьи CHAR (6) NOT NULL,

Код организации CHAR (6) NOT NULL,

Код персоны_сотрудника_кассира CHAR (6) NOT NULL,

Код персоны_сотрудника_администратора CHAR (6) NOT NULL,

FOREIGN KEY Номер статьи REFERENCES Карьера,

FOREIGN KEY Код организации REFERENCES Организация,

FOREIGN KEY (Код персоны_сотрудника_кассира) REFERENCES

Персона_сотрудник_кассир (код),

FOREIGN KEY (Код персоны_сотрудника_ администратора)

REFERENCES Персона_сотрудник_администратор (код),

UPDATE OF Карьера CASCADES,

DELETE OF Карьера RESTRICTED,

UPDATE OF Организация CASCADES,

DELETE OF Организация RESTRICTED);

UPDATE OF Персона_сотрудник_кассир CASCADES,

DELETE OF Персона_сотрудник_кассир RESTRICTED);

UPDATE OF Персона_сотрудник_администратор CASCADES,

DELETE OF Персона_сотрудник_администратор RESTRICTED);

CREATE TABLE Организация

(Код организации CHAR (6) NOT NULL PRIMARY KEY,

Название организации CHAR (20));

CREATE TABLE Персона_приемщик заказа

(Код CHAR (6) NOT NULL PRIMARY KEY,

ФИО_Фамилия CHAR (20) NOT NULL,

ФИО_Имя CHAR (20) NOT NULL,

ФИО_Отчество CHAR (20) NOT NULL,

Шифр транспортного предприятия CHAR (6) NOT NULL,

FOREIGN KEY (Шифр транспортного предприятия) REFERENCES

Транспортное предприятие (Шифр),

UPDATE OF Транспортное предприятие CASCADES,

DELETE OF Транспортное предприятие RESTRICTED);

CREATE TABLE Транспортное предприятие

(Шифр CHAR (6) NOT NULL PRIMARY KEY,

Название CHAR (20));

CREATE TABLE Заказ

(Номер заказа CHAR (6) NOT NULL PRIMARY KEY,

Дата заказа DATE NOT NULL,

Код администратора CHAR (6) NOT NULL,

Код приемщика заказа CHAR (6) NOT NULL,

Номер транспортного средства CHAR (6) NOT NULL,

FOREIGN KEY (Код администратора) REFERENCES

Персона_сотрудник_администратор (код)

FOREIGN KEY (Код приемщика заказа) REFERENCES

Персона_приемщик заказа (код),

FOREIGN KEY (Номер транспортного средства) REFERENCES

Транспортное средство (Номер),

UPDATE OF Персона_сотрудник_администратор CASCADES,

DELETE OF Персона_сотрудник_администратор RESTRICTED,

UPDATE OF Персона_приемщик заказа CASCADES,

DELETE OF Персона_приемщик заказа RESTRICTED,

UPDATE OF Транспортное средство CASCADES,

DELETE OF Транспортное средство RESTRICTED);

CREATE TABLE Справочник транспортных средств

(Код CHAR(6) NOT NULL PRIMARY KEY,

Марка CHAR (20));

CREATE TABLE Транспортные средства

(Номер CHAR (6) NOT NULL PRIMARY KEY,

Вид CHAR (20),

Код CHAR (6) NOT NULL,

Номер рейса CHAR (6) NOT NULL,

FOREIGN KEY Код REFERENCES Справочник транспортных

средств,

FOREIGN KEY Номер рейса REFERENCES Рейс,

UPDATE OF Справочник транспортных средств CASCADES,

DELETE OF Справочник транспортных средств RESTRICTED,

UPDATE OF Рейс CASCADES,

DELETE OF Рейс RESTRICTED);

CREATE TABLE Рейс

(Номер рейса CHAR (6) NOT NULL PRIMARY KEY,

Дата DATE NOT NULL,

Водитель CHAR (20) NOT NULL,

Время фактическое REAL NOT NULL,

Номер выезда CHAR (6) NOT NULL,

FOREIGN KEY Номер выезда REFERENCES Выезд,

UPDATE OF Выезд CASCADES,

DELETE OF Выезд RESTRICTED);

CREATE TABLE Выезд

(Номер выезда CHAR (6) NOT NULL PRIMARY KEY,

Время по расписанию REAL NOT NULL,

Номер маршрута CHAR (6) NOT NULL,

FOREIGN KEY Номер маршрута REFERENCES Маршрут,

UPDATE OF Маршрут CASCADES,

DELETE OF Маршрут RESTRICTED);

CREATE TABLE Маршрут

(Номер маршрута CHAR (6) NOT NULL PRIMARY KEY,

Пункт назначения CHAR (20) NOT NULL,

Расстояние CHAR (10) NOT NULL);

Соседние файлы в предмете Базы данных