Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
laba2.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
376.83 Кб
Скачать

Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования

«Московский государственный технический университет имени Н.Э. Баумана»

(МГТУ им. Н.Э. Баумана)

ФАКУЛЬТЕТ: ИНФОРМАТИКА И СИСТЕМЫ УПРАВЛЕНИЯ

КАФЕДРА: КОМПЬЮТЕРНЫЕ СИСТЕМЫ И СЕТИ

Отчет по лабораторной работе №2

Дисциплина: Базы данных

Название лабораторной работы: Создание сложных форм и запросов

Студент гр. ИУ6 - 43 ______________ ____А. М. Куницкая_____

(Подпись, дата) (И.О. Фамилия)

Преподаватель __________________ ___М.А.Гаврилова___

(Подпись, дата) (И.О. Фамилия)

Москва, 2017

Цель:

  1. Получить навыки работы с подстановками и масками.

  2. Получить навыки работы со сложными запросами и формами.

Задания для выполнения :

  1. Создание пользователя и его схемы.

  2. Проектирование схемы базы данных

  3. Перенос схемы БД из SQL Data Modeler в SQL Developer

  4. Добавление данных в таблицы

  5. Представления

        1. Создание пользователя и его схемы.

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

        1. Проектирование схемы базы данных

Разработать фрагмент базы данных системы бронирования авиационных билетов, то есть для автоматизации первого бизнес процесса бронирования – выбор маршрута путешествия. Итак, клиент задает город вылета и город назначения, определяет дату перелета и указывает дату обратного перелета, если таковой необходим. Система подбирает подходящие рейсы по маршруту перелета и показывает их клиенту для выбора.

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

Сначала надо определиться с сущностями «клиент» и «заказ». Создайте схему с полным набором полей.

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

CREATE TABLE Аэр

(

Ид NUMBER NOT NULL ,

Назв CHAR (25 CHAR) ,

Гор NUMBER NOT NULL

) ;

ALTER TABLE Аэр ADD CONSTRAINT Аэр_PK PRIMARY KEY ( Ид ) ;

CREATE TABLE Гор

(

Кодгор NUMBER NOT NULL ,

Наз_р CHAR (25 CHAR) ,

Наз_а CHAR (25 CHAR) ,

Страна CHAR (25 CHAR)

) ;

ALTER TABLE Гор ADD CONSTRAINT Гор_PK PRIMARY KEY ( Кодгор ) ;

CREATE TABLE Зак

(

Кодзак NUMBER NOT NULL ,

Клиент NUMBER NOT NULL ,

Д_зак DATE ,

Стат_зак VARCHAR2 (4000) ,

Д_выл DATE ,

Г_выл NUMBER NOT NULL ,

Г_прил NUMBER NOT NULL ,

Д_выл_обр_рей DATE ,

Д_выл_пр_рей DATE

) ;

ALTER TABLE Зак ADD CONSTRAINT Зак_PK PRIMARY KEY ( Кодзак ) ;

CREATE TABLE Кл

(

Кодпут NUMBER NOT NULL ,

Фамилия CHAR (25 CHAR) ,

Имя CHAR (25 CHAR) ,

Отчество CHAR (25 CHAR) ,

Тип_док CHAR (25 CHAR) ,

Ном_док NUMBER ,

Др DATE ,

Эл_адр CHAR (25 CHAR) ,

Тел NUMBER

) ;

ALTER TABLE Кл ADD CONSTRAINT Кл_PK PRIMARY KEY ( Кодпут ) ;

CREATE TABLE Пер

( Код_пер CHAR (25 CHAR) NOT NULL , Назв CHAR (25 CHAR)

) ;

ALTER TABLE Пер ADD CONSTRAINT Пер_PK PRIMARY KEY ( Код_пер ) ;

CREATE TABLE Рей

(

Ид NUMBER NOT NULL ,

Код_пер CHAR (25 CHAR) NOT NULL ,

Рейс NUMBER ,

Н_рейс CHAR (25 CHAR) NOT NULL ,

Т_выл DATE ,

Т_прил DATE ,

А_выл NUMBER NOT NULL ,

А_прил NUMBER NOT NULL

) ;

ALTER TABLE Рей ADD CONSTRAINT Рей_PK PRIMARY KEY ( Ид ) ;

ALTER TABLE Аэр ADD CONSTRAINT Аэр_Гор_FK FOREIGN KEY ( Гор ) REFERENCES Гор ( Кодгор ) ;

ALTER TABLE Зак ADD CONSTRAINT Зак_Гор_FK FOREIGN KEY ( Г_выл ) REFERENCES Гор ( Кодгор ) ;

ALTER TABLE Зак ADD CONSTRAINT Зак_Гор_FKv1 FOREIGN KEY ( Г_прил ) REFERENCES Гор ( Кодгор ) ;

ALTER TABLE Зак ADD CONSTRAINT Зак_Кл_FK FOREIGN KEY ( Клиент ) REFERENCES Кл ( Кодпут ) ;

ALTER TABLE Рей ADD CONSTRAINT Рей_Аэр_FK FOREIGN KEY ( А_выл ) REFERENCES Аэр ( Ид ) ;

ALTER TABLE Рей ADD CONSTRAINT Рей_Аэр_FKv1 FOREIGN KEY ( А_прил ) REFERENCES Аэр ( Ид ) ;

ALTER TABLE Рей ADD CONSTRAINT Рей_Пер_FK FOREIGN KEY ( Код_пер ) REFERENCES Пер ( Код_пер ) ;

CREATE SEQUENCE Аэр_Ид_SEQ START WITH 1 MINVALUE 1 MAXVALUE 1000 NOCACHE ORDER ;

CREATE OR REPLACE TRIGGER Аэр_Ид_TRG BEFORE

INSERT ON Аэр FOR EACH ROW WHEN (NEW.Ид IS NULL) BEGIN :NEW.Ид := Аэр_Ид_SEQ.NEXTVAL;

END;

/

CREATE SEQUENCE Гор_Кодгор_SEQ START WITH 1 MINVALUE 1 MAXVALUE 1000 NOCACHE ORDER ;

CREATE OR REPLACE TRIGGER Гор_Кодгор_TRG BEFORE

INSERT ON Гор FOR EACH ROW WHEN (NEW.Кодгор IS NULL) BEGIN :NEW.Кодгор := Гор_Кодгор_SEQ.NEXTVAL;

END;

/

CREATE SEQUENCE Зак_Кодзак_SEQ START WITH 1 MINVALUE 1 MAXVALUE 1000 NOCACHE ORDER ;

CREATE OR REPLACE TRIGGER Зак_Кодзак_TRG BEFORE

INSERT ON Зак FOR EACH ROW WHEN (NEW.Кодзак IS NULL) BEGIN :NEW.Кодзак := Зак_Кодзак_SEQ.NEXTVAL;

END;

/

CREATE SEQUENCE Кл_Кодпут_SEQ START WITH 1 MINVALUE 1 MAXVALUE 1000 NOCACHE ORDER ;

CREATE OR REPLACE TRIGGER Кл_Кодпут_TRG BEFORE

INSERT ON Кл FOR EACH ROW WHEN (NEW.Кодпут IS NULL) BEGIN :NEW.Кодпут := Кл_Кодпут_SEQ.NEXTVAL;

END;

/

CREATE SEQUENCE Рей_Ид_SEQ START WITH 1 MINVALUE 1 MAXVALUE 1000 NOCACHE ORDER ;

CREATE OR REPLACE TRIGGER Рей_Ид_TRG BEFORE

INSERT ON Рей FOR EACH ROW WHEN (NEW.Ид IS NULL) BEGIN :NEW.Ид := Рей_Ид_SEQ.NEXTVAL;

END;

/

CREATE SEQUENCE Рей_Рейс_SEQ START WITH 1000 MINVALUE 1000 MAXVALUE 9999 NOCACHE ORDER ;

CREATE OR REPLACE TRIGGER Рей_Рейс_TRG BEFORE

INSERT ON Рей FOR EACH ROW WHEN (NEW.Рейс IS NULL) BEGIN :NEW.Рейс := Рей_Рейс_SEQ.NEXTVAL;

END;

/

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]