wiki:DatabaseCreation

Version 3 (modified by 231102, 4 days ago) ( diff )

--

Креирање и пополнување на базата

Опис

Во оваа фаза релациониот модел е имплементиран како физичка база на податоци во PostgreSQL. Чекорот се состои од две активности:

  1. Креирање на структурата (DDL) — табели, ограничувања, индекси, погледи и програмски рутини.
  2. Внес на податоци (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 ограничувања, редоследот на внес е одговорност на скриптата; за конзистентни идентификатори податоците се внесуваат по слоеви на зависност:

  1. Шифрарници (без зависности) — типови, статуси, валути, држави, академски степени, tip_atribut
  2. Основни ентитетиgradovilicekorisnici, организациски единици, банкарски/трансакциски сметки
  3. Оперативни податоци — работни позиции и ангажмани, предмети, акредитации, смерови, академски години и семестри, студенти
  4. Трансакциски/тест податоци — уписи, оценки, испити, финансиски обврски, наплати и плати

Забелешка: Табелата tmp_salary_truth е помошна (привремена) табела без примарен клуч, со индекс idx_truth_mapping. Во неа се чуваат очекуваните вредности за платите (true_bruto, true_odbivki, true_danok) и служи за валидација на пресметката во потсистемот за плати при тестирањето. Не е дел од продукцискиот модел.

Скрипти

Тип Опис Линк
DDL Структура на базата (табели, индекси, погледи, функции, процедури, trigger функции) DDL скрипта
DML Податоци за пополнување и тестирање на базата DML скрипта

Attachments (3)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.