Changes between Version 3 and Version 4 of DatabaseCreation
- Timestamp:
- 06/15/26 03:37:34 (2 days ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
DatabaseCreation
v3 v4 5 5 Во оваа фаза релациониот модел е имплементиран како физичка база на податоци во '''PostgreSQL'''. Чекорот се состои од две активности: 6 6 7 1. '''Креирање на структурата (DDL)''' — табели, ограничувања, индекси, погледи и програмски рутини. 8 2. '''Внес на податоци (DML)''' — пополнување на базата со податоци за тестирање на функционалноста. 9 10 Поделбата на сектори/модули е опишана во [attachment:RelationalModel.txt RelationalModel] и не се повторува овде. 7 1. '''Креирање на структурата (DDL)''' — табели, ограничувања. 8 2. '''Внес на податоци (DML)''' — пополнување на базата со податоци. 11 9 12 10 === DDL — креирање на структурата === … … 15 13 16 14 * '''119 табели''' — секоја со суроген примарен клуч `id` (од секвенца преку `nextval`) и `unique` ограничувања таму каде е потребно 17 * '''11 индекси''' — секундарни B-tree индекси за чести пребарувања (на пр. `idx_korisnici_username`, `idx_studenti_indeks`)18 * '''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`19 * '''3 функции (`fn_`)''' — `fn_otvoren_dolg`, `fn_prosek_student`, `fn_slobodni_mesta`20 * '''3 процедури (`pr_`)''' — `pr_generiraj_obvrski_za_semestar`, `pr_registriraj_naplata`, `pr_zapisi_student_na_kurs`21 * '''3 trigger функции (`trgf_`)''' — `trgf_azuriraj_otvorena_suma`, `trgf_kapacitet_kurs`, `trgf_validna_ocena`22 15 23 16 Користени типови на податоци: `int4`, `varchar`, `numeric(14,2)` за парични износи, `timestamp(6)`, `date`, `bool`, `text`. 24 17 25 18 '''Опфат на DDL скриптата (важно):''' 26 * Нема `FOREIGN KEY` ограничувања — релациите се изведени преку колоните `*_id`, без наметнатреференцијален интегритет на ниво на база.19 * `FOREIGN KEY` ограничувања — релациите се изведени преку колоните `*_id`, со референцијален интегритет на ниво на база. 27 20 * Секвенците (`*_id_seq`) се користат преку `nextval(...)`, но нивните `CREATE SEQUENCE` дефиниции не се дел од скриптата. 28 * Дефинирани се trigger функциите (`trgf_`), но нема `CREATE TRIGGER` врзувања за табелите.29 * Скриптата не содржи `INSERT` — внесот на податоци е целосно одвоен во DML скриптата.30 21 31 22 === Внес на податоци (DML) === 32 23 33 По креирањето на структурата, базата се пополнува со податоци преку DML скрипта. Бидејќи структурата нема foreign key ограничувања, редоследот на внес е одговорност на скриптата; за конзистентни идентификатори податоците се внесуваат по слоеви на зависност:24 По креирањето на структурата, базата се пополнува со податоци преку DML скрипта. Редоследот на внес е согласно со зависностите на надворешните клучеви на табелите; за конзистентни идентификатори податоците се внесуваат по слоеви на зависност: 34 25 35 26 1. '''Шифрарници''' (без зависности) — типови, статуси, валути, држави, академски степени, `tip_atribut` … … 38 29 4. '''Трансакциски/тест податоци''' — уписи, оценки, испити, финансиски обврски, наплати и плати 39 30 40 '''Забелешка:''' Табелата `tmp_salary_truth` е помошна (привремена) табела без примарен клуч, со индекс `idx_truth_mapping`. Во неа се чуваат очекуваните вредности за платите (`true_bruto`, `true_odbivki`, `true_danok`) и служи за валидација на пресметката во потсистемот за плати при тестирањето. Не е дел од продукцискиот модел.41 42 31 === Скрипти === 43 32 44 33 || '''Тип''' || '''Опис''' || '''Линк''' || 45 34 || DDL || Структура на базата (табели, индекси, погледи, функции, процедури, trigger функции) || [attachment:idontknow_script.sql DDL скрипта] || 46 || DML || Податоци за пополнување и тестирање на базата || [attachment:idontknow_dml.sql DML скрипта] ||
