| Version 3 (modified by , 4 days ago) ( diff ) |
|---|
Креирање и пополнување на базата
Опис
Во оваа фаза релациониот модел е имплементиран како физичка база на податоци во PostgreSQL. Чекорот се состои од две активности:
- Креирање на структурата (DDL) — табели, ограничувања, индекси, погледи и програмски рутини.
- Внес на податоци (DML) — пополнување на базата со податоци за тестирање на функционалноста.
Поделбата на сектори/модули е опишана во RelationalModel и не се повторува овде.
DDL — креирање на структурата
DDL скриптата (idontknow_script.sql) е напишана за PostgreSQL и креира:
- 119 табели — секоја со суроген примарен клуч
id(од секвенца прекуnextval) иuniqueограничувања таму каде е потребно - 11 индекси — секундарни B-tree индекси за чести пребарувања (на пр.
idx_korisnici_username,idx_studenti_indeks) - 9 погледи (
vw_) —vw_aktivni_upisani_kursevi,vw_ispitni_prijavi,vw_istorija_naplati,vw_otvoreni_finansiski_obvrski,vw_pregled_plati_period,vw_raspredelba_nastaven_kadar,vw_studentski_oceni,vw_vraboteni_karieren_pat,vw_vraboteni_prekrsoci_kvalifikacii - 3 функции (
fn_) —fn_otvoren_dolg,fn_prosek_student,fn_slobodni_mesta - 3 процедури (
pr_) —pr_generiraj_obvrski_za_semestar,pr_registriraj_naplata,pr_zapisi_student_na_kurs - 3 trigger функции (
trgf_) —trgf_azuriraj_otvorena_suma,trgf_kapacitet_kurs,trgf_validna_ocena
Користени типови на податоци: int4, varchar, numeric(14,2) за парични износи, timestamp(6), date, bool, text.
Опфат на DDL скриптата (важно):
- Нема
FOREIGN KEYограничувања — релациите се изведени преку колоните*_id, без наметнат референцијален интегритет на ниво на база. - Секвенците (
*_id_seq) се користат прекуnextval(...), но нивнитеCREATE SEQUENCEдефиниции не се дел од скриптата. - Дефинирани се trigger функциите (
trgf_), но немаCREATE TRIGGERврзувања за табелите. - Скриптата не содржи
INSERT— внесот на податоци е целосно одвоен во DML скриптата.
Внес на податоци (DML)
По креирањето на структурата, базата се пополнува со податоци преку DML скрипта. Бидејќи структурата нема foreign key ограничувања, редоследот на внес е одговорност на скриптата; за конзистентни идентификатори податоците се внесуваат по слоеви на зависност:
- Шифрарници (без зависности) — типови, статуси, валути, држави, академски степени,
tip_atribut - Основни ентитети —
gradovi→lice→korisnici, организациски единици, банкарски/трансакциски сметки - Оперативни податоци — работни позиции и ангажмани, предмети, акредитации, смерови, академски години и семестри, студенти
- Трансакциски/тест податоци — уписи, оценки, испити, финансиски обврски, наплати и плати
Забелешка: Табелата tmp_salary_truth е помошна (привремена) табела без примарен клуч, со индекс idx_truth_mapping. Во неа се чуваат очекуваните вредности за платите (true_bruto, true_odbivki, true_danok) и служи за валидација на пресметката во потсистемот за плати при тестирањето. Не е дел од продукцискиот модел.
Скрипти
| Тип | Опис | Линк |
| DDL | Структура на базата (табели, индекси, погледи, функции, процедури, trigger функции) | DDL скрипта |
| DML | Податоци за пополнување и тестирање на базата | DML скрипта |
Attachments (3)
- idontknow_ddl_script.sql (66.8 KB ) - added by 4 days ago.
- DDL.2.sql (75.2 KB ) - added by 4 days ago.
- DDL.sql (75.2 KB ) - added by 4 days ago.
Download all attachments as: .zip
