Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Архив3 / kurs (2) / kurs / Курсовая_БД.docx
Скачиваний:
12
Добавлен:
07.08.2013
Размер:
85 Кб
Скачать
☆
  1. Структура данных

Таблица 1. flights (Рейсы)

Имя

Тип

NOT NULL

Описание

Fid

NUMBER(2)

•

Id рейса, первичный ключ

Fnum

NUMBER(4)

•

Номер рейса

Fname

VARCHAR(50)

•

Название рейса

Fdata

DATE

•

Дата отправления рейса

Таблица 2. airplanes (Самолёты)

Имя

Тип

NOT NULL

Описание

Aid

NUMBER(3)

•

Id самолёта, первичный ключ

F_id

NUMBER(3)

•

Id рейса

Acapacity

NUMBER(4)

•

Вместимость самолёта

avialines

VARCHAR(50)

Название авиалинии

3. Скрипт создания таблиц (create_tables.Sql)

Назначение: создание таблиц в БД требуемой структуры (см. Таблица 1 и Таблица 2) ,а также последовательности seq , необходимых для генерации значений первичных ключей.

Результат:

Рис 1. Таблица flights

Рис 2. Таблица airplanes

3.1 Скрипт create_table.Sql

DROP TABLE for_trigger;

DROP TABLE airplanes;

DROP TABLE flights;

DROP SEQUENCE seq;

CREATE TABLE airplanes(

aid NUMBER(3) NOT NULL PRIMARY KEY,

f_id NUMBER(3) NOT NULL, -- flights id

acapacity NUMBER(4) NOT NULL,

avialines VARCHAR(30)

);

CREATE TABLE flights(

fid NUMBER(2) NOT NULL PRIMARY KEY,

fnum NUMBER(4) NOT NULL,

fname VARCHAR(50) NOT NULL,

fdata DATE NOT NULL

);

ALTER TABLE airplanes ADD CONSTRAINT out_key

FOREIGN KEY (f_id) REFERENCES flights(fid);

CREATE TABLE for_trigger(

ID NUMBER(3) not null primary key,

tuser VARCHAR2(50),

tdata DATE

);

CREATE SEQUENCE seq;

4. Скрипт pack1

CREATE OR REPLACE PACKAGE pack1 IS

PROCEDURE fill_tables;

PROCEDURE clear_tables;

END pack1;

/

CREATE OR REPLACE PACKAGE BODY pack1 IS

PROCEDURE fill_tables IS

BEGIN

INSERT INTO flights VALUES(1, 303, 'London-Paris', TO_DATE('12.01.2013','DD.MM.YYYY'));

INSERT INTO flights VALUES(2, 201, 'Paris-London', TO_DATE('13.01.2013','DD.MM.YYYY'));

INSERT INTO flights VALUES(3, 202, 'Berlin-London', TO_DATE('14.01.2013','DD.MM.YYYY'));

INSERT INTO flights VALUES(4, 301, 'London-Berlin', TO_DATE('12.01.2013','DD.MM.YYYY'));

INSERT INTO flights VALUES(5, 302, 'Berlin-Rome', TO_DATE('11.01.2013','DD.MM.YYYY'));

INSERT INTO flights VALUES(6, 203, 'Rome-London', TO_DATE('27.12.2012','DD.MM.YYYY'));

INSERT INTO flights VALUES(7, 304, 'Rome-Berlin', TO_DATE('28.12.2012','DD.MM.YYYY'));

INSERT INTO airplanes VALUES(1, 1, 600, 'EuropeAL');

INSERT INTO airplanes VALUES(2, 7, 500, 'FranceAL');

INSERT INTO airplanes VALUES(3, 4, 600, 'GermanAL');

INSERT INTO airplanes VALUES(4, 3, 400, 'EuropeAL');

INSERT INTO airplanes VALUES(5, 4, 500, 'GermanAL');

INSERT INTO airplanes VALUES(6, 1, 700, 'EuropeAL');

INSERT INTO airplanes VALUES(7, 5, 500, 'GermanAL');

COMMIT;

END;

PROCEDURE clear_tables IS

BEGIN

DELETE FROM airplanes;

DELETE FROM flights;

END;

END pack1;

/

BEGIN

pack1.clear_tables;

pack1.fill_tables;

END;

Соседние файлы в папке kurs