Скрипти створення бази даних

Наведемо скрипт мови SQL Oracle, який створює таблиці БД.

-- Створення таблиці SPECIALITY

CREATE TABLE SPECIALITY (

SPID integer CONSTRAINT spe_prk PRIMARY KEY,

Num char(20) CONSTRAINT spe_num_unq UNIQUE NOT NULL,

Name varchar(100) NOT NULL);

 

-- Створення таблиці EDU_PLAN

CREATE TABLE EDU_PLAN (

EPID integer CONSTRAINT edp_prk PRIMARY KEY,

Num char(8) CONSTRAINT edp_num_unq UNIQUE NOT NULL,

Ass_date date NOT NULL,

Prs varchar(40) NOT NULL,

SPID integer CONSTRAINT edp_spc_frk REFERENCES SPECIALITY(SPID) NOT NULL);

 

-- Створення таблиці COURSE

CREATE TABLE COURSE (

CUID integer CONSTRAINT crs_prk PRIMARY KEY,

Num number(1) CONSTRAINT crs_num_unq UNIQUE NOT NULL

CONSTRAINT crs_num_chk CHECK (Num IN (1,2,3,4,5,6)),

Descr varchar(255));

 

-- Створення таблиці QUALI_LEVEL

CREATE TABLE QUALI_LEVEL (

QLID integer CONSTRAINT qlv_prk PRIMARY KEY,

Name varchar(15) CONSTRAINT qvl_nam_unq UNIQUE NOT NULL

CONSTRAINT qvl_nam_chk CHECK

(Name IN (’бакалавр’, ’спеціаліст’, ’магістр’)),

Descr varchar(255),

CUID integer CONSTRAINT qvl_crs_frk REFERENCES COURSE(CUID) NOT NULL);

 

 

-- Створення таблиці PRAC_TYPE

CREATE TABLE PRAC_TYPE (

PTID integer CONSTRAINT prt_prk PRIMARY KEY,

Name varchar(15) CONSTRAINT prt_nam_unq UNIQUE NOT NULL

CONSTRAINT prt_nam_chk CHECK

(Name IN (’схемотехнічна’, ’ком­п’’ютерна’,

’тех­но­ло­гічна’, ’експ­лу­ата­ційна’,
’науково-дослідна’)),

Descr varchar(255));

 

-- Створення таблиці PLAN_PRACTICE

CREATE TABLE PLAN_PRACTICE (

PPID integer CONSTRAINT ppr_prk PRIMARY KEY,

Dur_type char(1) CONSTRAINT ppr_dtp_chk CHECK (Dur_type IN (’Д’,’Т’))

NOT NULL,

Duration NUMBER(3) NOT NULL,

QLID integer CONSTRAINT ppr_qvl_frk REFERENCES QUALI_LEVEL(QLID) NOT NULL,

CUID integer CONSTRAINT ppr_crs_frk REFERENCES COURSE(CUID) NOT NULL,

PTID integer CONSTRAINT ppr_prt_frk REFERENCES PRAC_TYPE(PTID) NOT NULL,

EPID integer CONSTRAINT ppr_edp_frk REFERENCES EDU_PLAN (EPID) NOT NULL,

CONSTRAINT ppr_crs_edp_unq UNIQUE (CUID, EPID);

 

-- Створення таблиці UNIVERSITY

CREATE TABLE UNIVERSITY (

UNID integer CONSTRAINT uni_prk PRIMARY KEY,

Short_name varchar(10),

Long_name varchar(50) CONSTRAINT uni_nam_unq UNIQUE NOT NULL,

Address varchar(50),

Rector varchar(30) CONSTRAINT uni_rec_unq UNIQUE NOT NULL);

 

-- Створення таблиці INSTITUTE

CREATE TABLE INSTITUTE (

INID integer CONSTRAINT ins_prk PRIMARY KEY,

Short_name varchar(10),

Long_name varchar(50) CONSTRAINT ins_nam_unq UNIQUE NOT NULL,

Director varchar(30) CONSTRAINT ins_rec_unq UNIQUE NOT NULL,

UNID integer CONSTRAINT ins_uni_frk REFERENCES UNIVERSITY(UNID));

 

-- Створення таблиці FACULTY

CREATE TABLE FACULTY (

FAID integer CONSTRAINT fac_prk PRIMARY KEY,

Short_name varchar(10),

Long_name varchar(50) CONSTRAINT fac_nam_unq UNIQUE NOT NULL,

Dean varchar(30) CONSTRAINT fac_rec_unq UNIQUE NOT NULL,

UNID integer CONSTRAINT fac_uni_frk REFERENCES UNIVERSITY(UNID),

INID integer CONSTRAINT fac_ins_frk REFERENCES INSTITUTE(INID),

FKType char(1) CONSTRAINT fac_fkt_chk CHECK (FKType IN (’У’, ’І’)));

 

-- Створення таблиці DEPARTMENT

CREATE TABLE DEPARTMENT (

DEID integer CONSTRAINT dep_prk PRIMARY KEY,

Short_name varchar(10),

Long_name varchar(50) CONSTRAINT dep_nam_unq UNIQUE NOT NULL,

Head varchar(30) CONSTRAINT dep_hed_unq UNIQUE NOT NULL,

FAID integer CONSTRAINT dep_fac_frk REFERENCES FACULTY(FAID) NOT NULL);

 

-- Створення таблиці STGROUP

CREATE TABLE STGROUP (

GRID integer CONSTRAINT grp_prk PRIMARY KEY,

Num char(5) NOT NULL,

Descr varchar(255),

DEID integer CONSTRAINT grp_dep_frk REFERENCES DEPARTMENT(DEID) NOT NULL,

CUID integer CONSTRAINT grp_crs_frk REFERENCES COURSE(CUID) NOT NULL);

 

-- Створення таблиці STUDENT

CREATE TABLE STUDENT (

STID integer CONSTRAINT std_prk PRIMARY KEY,

Last_name varchar(30) NOT NULL,

Name varchar(20) NOT NULL,

Patro_name varchar(20) NOT NULL,

Num char(10) CONSTRAINT std_num_unq UNIQUE NOT NULL,

Birthday date NOT NULL,

Year number(4) NOT NULL,

Country varchar(20) NOT NULL,

Contract char(1) CONSTRAINT prs_con_chk CHECK (Contract IN ( ’Т’, ’Н’)),

External char(1) CONSTRAINT prs_ext_chk CHECK (External IN ( ’Т’, ’Н’)),

GRID integer CONSTRAINT prs_grp_frk

REFERENCES STGROUP(GRID) NOT NULL);

-- Створення таблиці COMPANY

CREATE TABLE COMPANY (

COID integer CONSTRAINT com_prk PRIMARY KEY,

Num char(10) CONSTRAINT com_num_unq UNIQUE NOT NULL,

Name varchar(40) NOT NULL,

Head varchar(20) NOT NULL,

Post varchar(20) NOT NULL,

Address varchar(50));

 

-- Створення таблиці AGREEMENT

CREATE TABLE AGREEMENT (

AGID integer CONSTRAINT agr_prk PRIMARY KEY,

Num char(10) CONSTRAINT agr_num_unq UNIQUE NOT NULL,

Ass_date date NOT NULL,

St_num NUMBER(2) NOT NULL,

From_date date NOT NULL,

To_date date NOT NULL,

COID integer CONSTRAINT agr_crs_frk REFERENCES COMPANY(COID) NOT NULL,

FAID integer CONSTRAINT agr_fac_frk REFERENCES FACULTY(FAID) NOT NULL);

 

-- Створення таблиці TUTOR

CREATE TABLE TUTOR (

TUID integer CONSTRAINT tut_prk PRIMARY KEY,

Name varchar(30) NOT NULL,

Post varchar(20),

Address varchar(30),

Pas_ser char(2) NOT NULL,

Pas_num char(6) NOT NULL,

CONSTRAINT tut_ser_nmm_unk UNIQUE (Pas_ser, Pas_num));

 

-- Створення таблиці STUD_PRACTICE

CREATE TABLE STUD_PRACTICE (

SPID integer CONSTRAINT stp_prk PRIMARY KEY,

Duration number(2) NOT NULL,

In_date date NOT NULL,

Out_date date NOT NULL,

Mark number(1) CONSTRAINT stp_mrk_chk CHECK (Mark BETWEEN 1 AND 5),

STID integer CONSTRAINT stp_std_frk REFERENCES STUDENT(STID) NOT NULL,

TUFID integer CONSTRAINT stp_tuf_frk REFERENCES TUTOR(TUID) NOT NULL,

TUCID integer CONSTRAINT stp_tuc_frk REFERENCES TUTOR(TUID) NOT NULL,

AGID integer CONSTRAINT stp_agr_frk REFERENCES AGREEMENT(AGID),

PPID integer CONSTRAINT stp_prp_frk REFERENCES PLAN_PRACTICE(PPID) NOT NULL,

CONSTRAINT stp_std_prp_unk UNIQUE (STID, PPID));

 

-- Створення таблиці REPORT

CREATE TABLE REPORT (

REID integer CONSTRAINT rep_prk PRIMARY KEY,

Text CLOB (30K) NOT NULL,

SPID integer CONSTRAINT rep_stp_frk REFERENCES STUD_PRACTICE(SPID)

CONSTRAINT rep_stp_unq UNIQUE NOT NULL);