Changes between Version 8 and Version 9 of AdvancedApplicationDesign_v2


Ignore:
Timestamp:
09/19/25 19:56:19 (21 hours ago)
Author:
212028
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • AdvancedApplicationDesign_v2

    v8 v9  
    11= Материјализирани погледи =
    22
    3 === 1. Број казнети според линија секоја година ===
     3=== 1. Број казнети според линија за годинава во периодот есен ===
    44
    55{{{#!div
     
    77create materialized view kazni_po_linija_godisno as
    88select
    9     extract(year from kz.kz_datum) as godina,
    109    li.li_ime,
    1110    count(*) as broj_kazni
    1211from linija li
    13 join istanca_na_linija inl on inl.l_id = li.l_id
     12join instancanalinija inl on inl.li_id = li.li_id
    1413join kontroli ko on ko.inl_id = inl.inl_id
    1514join kazna kz on kz.kontrola_id = ko.kontrola_id
    16 group by godina, li.li_ime
    17 order by godina;
     15where extract(year from kz.kz_datum) = 2024
     16  and extract(month from kz.kz_datum) between 9 and 11
     17group by li.li_ime;
     18
    1819
    1920}}}
     
    6465}}}
    6566
    66 === 3. Број возења од линија за секоја година ===
     67=== 3. Број возења од линија за годинава во периодот есен ===
    6768
    6869{{{#!div
     
    7071create materialized view vozenja_po_linija_godisno as
    7172select
    72     extract(year from v.vozenje_start) as godina,
    7373    li.li_ime,
    7474    li.li_pravec,
    7575    count(v.vozenje_id) as broj_vozenja
    7676from linija li
    77 join instanca_na_linija inl on inl.li_id = li.li_id
     77join instancanalinija inl on inl.li_id = li.li_id
    7878join vozenje v on v.inl_id = inl.inl_id
    79 group by godina, li.li_ime, li.li_pravec
    80 order by godina;
    81 
    82 }}}
    83 }}}
    84 
    85 === 4. Број патници според постојка на дадена линија за секоја година ===
     79where extract(year from v.vozenje_start) = 2025
     80  and extract(month from v.vozenje_start) between 9 and 11
     81group by li.li_ime, li.li_pravec;
     82
     83}}}
     84}}}
     85
     86=== 4. Број патници според постојка на дадена линија за годинава во периодот есен ===
    8687
    8788{{{#!div
     
    8990create materialized view patnici_po_postojka_godisno as
    9091select
    91     extract(year from v.vozenje_start) as godina,
    9292    p.p_ime,
    9393    li.li_ime,
    9494    count(v.patnik_k_id) as broj_patnici
    9595from postojka p
    96 join postojka_na_linija pnl on pnl.p_id = p.p_id
     96join postojkanalinija pnl on pnl.p_id = p.p_id
    9797join vozenje v on v.pnl_id = pnl.pnl_id
    9898join patnik pa on pa.k_id = v.patnik_k_id
    9999join linija li on li.li_id = pnl.li_id
    100 group by godina, p.p_ime, li.li_ime
    101 order by godina, broj_patnici;
     100where extract(year from v.vozenje_start) = 2025
     101  and extract(month from v.vozenje_start) between 9 and 11
     102group by p.p_ime, li.li_ime
     103order by broj_patnici;
    102104
    103105}}}
     
    214216{{{#!div
    215217{{{#!sql
    216 create index idx_kazna_kz_datum_year on kazna (extract(year from kz_datum));
    217 }}}
    218 }}}
    219 како резултат на честото групирање и сортирање по година изведено од датумот на казната
     218create index idx_kazna_year_month оn kazna ((extract(year from kz_datum)),(extract(month from kz_datum)));
     219}}}
     220}}}
     221како резултат на филтрирањето според година и месец кога казната е напишана
    220222
    221223{{{#!div
     
    250252{{{#!div
    251253{{{#!sql
    252 create index idx_vozenje_staart_year on vozenje(extract(year from vozenje_start));
    253 }}}
    254 }}}
    255 како резултат на честото групирање и сортирање по година изведено од датумот на започнато возење
     254create index idx_vozenje_year_month on vozenje ((extract(year from vozenje_start)),(extract(month from vozenje_start)));
     255}}}
     256}}}
     257како резултат на филтрирање по година и месец на започнатото возење
    256258
    257259==== Индекси за {{{Postojka na linija}}} табелата ====
     
    281283како резултат на join и tb_id foreign key
    282284
    283 {{{#!div
    284 {{{#!sql
    285 create index idx_bilet_datum_na_kupuvanje_year on bilet(extract(year from b_datum_na_kupuvanje));
    286 }}}
    287 }}}
    288 како резултат на честото групирање и сортирање по година изведено од датумот на купениот булет
    289285
    290286= Тригери и фукниции =
     
    547543= Релациона алгебра =
    548544
    549 === 1. Број казнети според линија секоја година ===
    550 
    551 {{{#!div
    552 {{{#!sql
    553 τ_{godina, linija.li_ime} (
    554   π_{godina, linija.li_ime, broj_kazni} (
    555     γ_{EXTRACT_YEAR(kazna.kz_datum) → godina, linija.li_ime; COUNT(*) → broj_kazni} (
    556       linija ⨝ istanca_na_linija ⨝ kontroli ⨝ kazna
     545=== 1. Број казнети според линија годинава есенва ===
     546
     547{{{#!div
     548{{{#!sql
     549π_{li_ime, broj_kazni} (
     550  γ_{li_ime; COUNT(*) → broj_kazni} (
     551    σ_{EXTRACT_YEAR(kz_datum)=2024 ∧ 9≤EXTRACT_MONTH(kz_datum)≤11} (
     552      Linija ⨝ InstancaNaLinija ⨝ Kontroli ⨝ Kazna
    557553    )
    558554  )