- •Міністерство освіти і науки україни
- •1. Стратегія автоматизації предметної області 3
- •1. Стратегія автоматизації предметної області
- •1.1. Загальні положення
- •1.2. Мета, цілі та задачі створення бази даних
- •1.3. Вимоги до інформаційного забезпечення
- •2. Аналіз предметної області
- •2.1. Загальні положення системного аналізу по
- •2.2. Загальні положення проходження практики
- •2.3. Системний аналіз предметної області
- •2.3.1. Сутність Навчальний план
- •2.3.2. Сутність Запланована практика
- •2.3.3. Сутність Вид практики
- •2.3.4. Сутність Кваліфікаційний рівень
- •2.3.5. Сутність Спеціальність
- •2.3.6. Сутність Курс
- •2.3.7. Сутність вуз
- •2.3.8. Сутність Інститут
- •2.3.9. Сутність Факультет
- •2.3.10. Сутність Кафедра
- •2.3.11. Сутність Група
- •2.3.12. Сутність Студент
- •2.3.13. Сутність База практики
- •2.3.14. Сутність Договір
- •2.3.15. Сутність Керівник
- •2.3.16. Сутність Практика студента
- •2.3.17. Сутність Звіт
- •2.4. Інформаційно-довідкові задачі
- •3. Концептуальне моделювання предметної області
- •3.1. Теоретичні положення концептуального моделювання
- •3.2. Мова er—моделювання по
- •3.2. Побудова концептуальної моделі проходження практики студентами
- •4. Логічне та фізичне проектування бази даних
- •4.1. Логічне проектування
- •Institute
- •4.2. Фізичне проектування
- •4.2.1. Скрипти створення бази даних
- •4.2.2. Інформаційно–пошукові запити
- •4.2.2.1.Інформаційні запити, що пов’язані з проходженням практики
- •4.2.2.2.Інформація організаційного характеру
- •4.2.2.3.Інформація про керівників практики
- •Висновки
4.2. Фізичне проектування
База даних спроектована для її збереження у СКБД Oracle, яка підтримує реляційну модель даних і є об’єкто-реляційною СКБД. Ця СКБД має дуже розвинені можливості по створенню та супроводу баз даних, оскільки володіє найбільш розвиненою системою типів даних, можливостями індексування полів, що дозволяє одержувати доступ до даних за мінімальний час, а також функціями по забезпеченню підтримки цілісності даних між реляційними таблицями, що дозволяє розробнику мінімізувати тимчасові витрати на створення бази даних, а кінцевому користувачеві витрати на підтримку цілісності збережених даних і одержання даних з бази даних. Робота з базою даних підтримується за допомогою реляційної мови запитів SQL.
Логічна модель бази даних легко відображається в реляційну фізичну модель, оскільки логічна модель була побудована з використанням реляційної структури даних. Крім того, логічна модель була приведена у третю нормальну форму, тому усі відношення представляються у фізичній моделі окремими таблицями. Ніякі злиття відношень в одну таблицю для підвищення ефективності виконання окремих класів запитів не виконуються у зв’язку з тим, що такі класи запитів не були знайдені. У результаті отримано сімнадцять таблиць реляційної бази даних, де кожне відношення прямо відповідає окремій таблиці, атрибути кожного відношення стають полями цієї таблиці, а первинні ключі відношень стають первинними ключами таблиць.
4.2.1. Скрипти створення бази даних
Наведемо скрипт мови 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);