- •Курсовая работа
- •Содержание
- •Постановка задачи
- •Структура данных
- •3. Скрипт создания таблиц (create_tables.Sql)
- •3.1 Скрипт create_table.Sql
- •4. Скрипт pack1
- •Описание процедур и функций
- •6. Предоставление привилегий (grants.Sql)
- •Выводы о проделанной работе
- •Литература
- •Приложение a. Листинги файлов paсk2.Sql
- •My_trigg.Sql
- •My_view.Sql
Структура данных
Таблица 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;