Changes between Version 8 and Version 9 of AdvancedApplicationDesign_v2
- Timestamp:
- 09/19/25 19:56:19 (21 hours ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
AdvancedApplicationDesign_v2
v8 v9 1 1 = Материјализирани погледи = 2 2 3 === 1. Број казнети според линија секоја година===3 === 1. Број казнети според линија за годинава во периодот есен === 4 4 5 5 {{{#!div … … 7 7 create materialized view kazni_po_linija_godisno as 8 8 select 9 extract(year from kz.kz_datum) as godina,10 9 li.li_ime, 11 10 count(*) as broj_kazni 12 11 from linija li 13 join i stanca_na_linija inl on inl.l_id = li.l_id12 join instancanalinija inl on inl.li_id = li.li_id 14 13 join kontroli ko on ko.inl_id = inl.inl_id 15 14 join kazna kz on kz.kontrola_id = ko.kontrola_id 16 group by godina, li.li_ime 17 order by godina; 15 where extract(year from kz.kz_datum) = 2024 16 and extract(month from kz.kz_datum) between 9 and 11 17 group by li.li_ime; 18 18 19 19 20 }}} … … 64 65 }}} 65 66 66 === 3. Број возења од линија за секоја година===67 === 3. Број возења од линија за годинава во периодот есен === 67 68 68 69 {{{#!div … … 70 71 create materialized view vozenja_po_linija_godisno as 71 72 select 72 extract(year from v.vozenje_start) as godina,73 73 li.li_ime, 74 74 li.li_pravec, 75 75 count(v.vozenje_id) as broj_vozenja 76 76 from linija li 77 join instanca _na_linija inl on inl.li_id = li.li_id77 join instancanalinija inl on inl.li_id = li.li_id 78 78 join 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. Број патници според постојка на дадена линија за секоја година === 79 where extract(year from v.vozenje_start) = 2025 80 and extract(month from v.vozenje_start) between 9 and 11 81 group by li.li_ime, li.li_pravec; 82 83 }}} 84 }}} 85 86 === 4. Број патници според постојка на дадена линија за годинава во периодот есен === 86 87 87 88 {{{#!div … … 89 90 create materialized view patnici_po_postojka_godisno as 90 91 select 91 extract(year from v.vozenje_start) as godina,92 92 p.p_ime, 93 93 li.li_ime, 94 94 count(v.patnik_k_id) as broj_patnici 95 95 from postojka p 96 join postojka _na_linija pnl on pnl.p_id = p.p_id96 join postojkanalinija pnl on pnl.p_id = p.p_id 97 97 join vozenje v on v.pnl_id = pnl.pnl_id 98 98 join patnik pa on pa.k_id = v.patnik_k_id 99 99 join 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; 100 where extract(year from v.vozenje_start) = 2025 101 and extract(month from v.vozenje_start) between 9 and 11 102 group by p.p_ime, li.li_ime 103 order by broj_patnici; 102 104 103 105 }}} … … 214 216 {{{#!div 215 217 {{{#!sql 216 create index idx_kazna_ kz_datum_year on kazna (extract(year from kz_datum));217 }}} 218 }}} 219 како резултат на честото групирање и сортирање по година изведено од датумот на казната218 create index idx_kazna_year_month оn kazna ((extract(year from kz_datum)),(extract(month from kz_datum))); 219 }}} 220 }}} 221 како резултат на филтрирањето според година и месец кога казната е напишана 220 222 221 223 {{{#!div … … 250 252 {{{#!div 251 253 {{{#!sql 252 create index idx_vozenje_ staart_year on vozenje(extract(year from vozenje_start));253 }}} 254 }}} 255 како резултат на честото групирање и сортирање по година изведено од датумот на започнато возење254 create index idx_vozenje_year_month on vozenje ((extract(year from vozenje_start)),(extract(month from vozenje_start))); 255 }}} 256 }}} 257 како резултат на филтрирање по година и месец на започнатото возење 256 258 257 259 ==== Индекси за {{{Postojka na linija}}} табелата ==== … … 281 283 како резултат на join и tb_id foreign key 282 284 283 {{{#!div284 {{{#!sql285 create index idx_bilet_datum_na_kupuvanje_year on bilet(extract(year from b_datum_na_kupuvanje));286 }}}287 }}}288 како резултат на честото групирање и сортирање по година изведено од датумот на купениот булет289 285 290 286 = Тригери и фукниции = … … 547 543 = Релациона алгебра = 548 544 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 ⨝ kazna545 === 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 557 553 ) 558 554 )