Скрипти створення бази даних
Наведемо скрипт мови 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);