Changes between Version 1 and Version 2 of DatabaseProgramming


Ignore:
Timestamp:
05/28/26 23:22:33 (3 weeks ago)
Author:
231151
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • DatabaseProgramming

    v1 v2  
    11= DatabaseProgramming
     2
     3== Materialized Views
     4[attachment:MaterializedViews.sql]
     5
     6== Functions
     7[attachment:Functions.sql]
     8
     9== Procedures
     10[attachment:Procedures.sql]
     11
     12== Triggers
     13[attachment:Triggers.sql]
     14
     15== Materialized Views Explained
     16**1. mv_fuel_consumption** - Потрошувачка на гориво
     17        •       Го следи целото горивно досие за секое возило. За секое возило ги брои вкупните пристигнувања, вкупните литри и трошоци, просечните вредности по пристигнување, датумот на последно пристигнување и посебно потрошувачката само во последните 30 дена (и литри и трошоци). Ги вклучува сите возила дури и ако немаат ниту едно пристигнување.
     18**2. mv_passenger_complaints** - Жалби по патник
     19        •       За секој патник го брои вкупниот број на поднесени жалби и го памети датумот на последната жалба. Ги вклучува и патниците без ниедна жалба.
     20**3. mv_revenue_by_route** - Финансиски извештај по линија
     21        •       За секоја линија/рута ги прикажува: агенцијата, вкупниот број патувања, бројот на продадени билети, бруто-приходот (сума на сите цени), реално наплатениот приход односно само completed плаќањата и просечната цена на билет. Откажаните и рефундираните билети се исклучени.
     22**4. mv_trip_delays** - Доцнења по патување
     23        •       За секое патување со регистрирано доцнење ги прикажува: датумот, рутата, возилото, возачот, вкупниот број записи за доцнење, вкупните и просечните минути доцнење, максималното доцнење и сите причини споени во еден текст. Патувањата без доцнење не се прикажуваат.
     24**5. mv_vehicle_occupany_stats** - Патници по возило
     25        •       За секое возило го пресметува просечниот и максималниот број на патници врз основа на логираните записи во capacity_log, заедно со вкупниот број на тие записи.
     26
     27== Functions Explained
     28
     29== Procedures Explained
     30**1. add_trip** - Додавање ново возење
     31        •       Креира ново возење со зададен идентификатор, рута, возило, возач, датум, почетно и крајно време и опционален наслов. Возењето се внесува со статус scheduled.
     32**2. buy_ticket** - Купување билет
     33        •       Купува билет за патник на одредено возење. Ако е зададено тарифно правило, цената ја пресметува преку calculate_ticket_price, инаку ја зема base_price од типот на билет. Билетот се внесува со статус valid.
     34**3. report_delay** - Евидентирање доцнење и известување патници
     35        •       Го запишува доцнењето во delay_log, го менува статусот на возењето во delayed и автоматски испраќа pending нотификација до сите патници со валиден билет за тоа возење.
     36**4. assign_discount_to_passenger** - Доделување попуст на патник
     37        •       Му доделува попуст на патник со зададен датум на истекување. Пред внесување проверува дали патникот веќе го има тој попуст активен.
     38**5. complete_trip** - Завршување возење
     39        •       Го завршува возењето со проверка дали е во статус in_progress. По потврда го менува статусот на возењето во completed и ги означува сите валидни билети како used.
     40**6. refund_ticket** - Враќање билет
     41        •       Го рефундира билетот со проверка дали постои и дали е во статус valid. По потврда го менува статусот на билетот во refunded и го ажурира поврзаното плаќање исто така во refunded.
     42**7. schedule_driver** - Закажување распоред за возач
     43        •       Му закажува смена на возач за одреден датум со почетно и крајно време. Пред внесување проверува дали возачот веќе има закажано за тој датум.
     44
     45== Triggers Explained