Changes between Version 3 and Version 4 of DatabaseCreation


Ignore:
Timestamp:
06/15/26 03:37:34 (2 days ago)
Author:
231102
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • DatabaseCreation

    v3 v4  
    55Во оваа фаза релациониот модел е имплементиран како физичка база на податоци во '''PostgreSQL'''. Чекорот се состои од две активности:
    66
    7  1. '''Креирање на структурата (DDL)''' — табели, ограничувања, индекси, погледи и програмски рутини.
    8  2. '''Внес на податоци (DML)''' — пополнување на базата со податоци за тестирање на функционалноста.
    9 
    10 Поделбата на сектори/модули е опишана во [attachment:RelationalModel.txt RelationalModel] и не се повторува овде.
     7 1. '''Креирање на структурата (DDL)''' — табели, ограничувања.
     8 2. '''Внес на податоци (DML)''' — пополнување на базата со податоци.
    119
    1210=== DDL — креирање на структурата ===
     
    1513
    1614 * '''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`
    2215
    2316Користени типови на податоци: `int4`, `varchar`, `numeric(14,2)` за парични износи, `timestamp(6)`, `date`, `bool`, `text`.
    2417
    2518'''Опфат на DDL скриптата (важно):'''
    26  * Нема `FOREIGN KEY` ограничувања — релациите се изведени преку колоните `*_id`, без наметнат референцијален интегритет на ниво на база.
     19 * `FOREIGN KEY` ограничувања — релациите се изведени преку колоните `*_id`, со референцијален интегритет на ниво на база.
    2720 * Секвенците (`*_id_seq`) се користат преку `nextval(...)`, но нивните `CREATE SEQUENCE` дефиниции не се дел од скриптата.
    28  * Дефинирани се trigger функциите (`trgf_`), но нема `CREATE TRIGGER` врзувања за табелите.
    29  * Скриптата не содржи `INSERT` — внесот на податоци е целосно одвоен во DML скриптата.
    3021
    3122=== Внес на податоци (DML) ===
    3223
    33 По креирањето на структурата, базата се пополнува со податоци преку DML скрипта. Бидејќи структурата нема foreign key ограничувања, редоследот на внес е одговорност на скриптата; за конзистентни идентификатори податоците се внесуваат по слоеви на зависност:
     24По креирањето на структурата, базата се пополнува со податоци преку DML скрипта. Редоследот на внес е согласно со зависностите на надворешните клучеви на табелите; за конзистентни идентификатори податоците се внесуваат по слоеви на зависност:
    3425
    3526 1. '''Шифрарници''' (без зависности) — типови, статуси, валути, држави, академски степени, `tip_atribut`
     
    3829 4. '''Трансакциски/тест податоци''' — уписи, оценки, испити, финансиски обврски, наплати и плати
    3930
    40 '''Забелешка:''' Табелата `tmp_salary_truth` е помошна (привремена) табела без примарен клуч, со индекс `idx_truth_mapping`. Во неа се чуваат очекуваните вредности за платите (`true_bruto`, `true_odbivki`, `true_danok`) и служи за валидација на пресметката во потсистемот за плати при тестирањето. Не е дел од продукцискиот модел.
    41 
    4231=== Скрипти ===
    4332
    4433|| '''Тип''' || '''Опис''' || '''Линк''' ||
    4534|| DDL || Структура на базата (табели, индекси, погледи, функции, процедури, trigger функции) || [attachment:idontknow_script.sql DDL скрипта] ||
    46 || DML || Податоци за пополнување и тестирање на базата || [attachment:idontknow_dml.sql DML скрипта] ||