Changes between Version 1 and Version 2 of DatabaseProgramming


Ignore:
Timestamp:
06/15/26 23:16:58 (10 hours ago)
Author:
231102
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • DatabaseProgramming

    v1 v2  
    456456
    457457Капацитетот мора да издржи и конкурентни уписи — двајца студенти што истовремено го земаат последното место. Проверка само во процедура би била race-condition бидејќи двете трансакции би виделе слободно место; тригерот со заклучување на редот на реализацијата ги сериализира таквите инсерти. Процедурата `pr_zapisi_student_na_kurs` сепак повикува `fn_slobodni_mesta` однапред за љубезна порака, но тригерот е последната, непробивна одбрана.
     458
     459== Како се тестирано (сите со ROLLBACK, без траен ефект)
     460
     461|| Тест || Резултат ||
     462||---||---||
     463|| `fn_prosek_student(1)` || 8.00 ||
     464|| `fn_otvoren_dolg(2, 1)` || 74925.00 ||
     465|| `fn_slobodni_mesta(1)` || 100 ||
     466|| П1: наплата 5000 за корисник 2 || 1 алокација, долг 74925→69925, статус → Delumno platena (Т2) ||
     467|| П2: студент со долг || блокирано со јасна порака ||
     468|| П2: студент без долг || упис креиран (UPISAN) ||
     469|| П3: непостоечки семестар || „Нема активен ценовник" ||
     470|| Т1: 150 поени / оценка на POLOZENO || двете одбиени ||
     471|| Т3: упис над капацитет || одбиен ||
     472
     473Напомена: целосниот тек на П3 не е извршен врз живата база бидејќи содржи `COMMIT` (не може да се врати со ROLLBACK) и би генерирал ~13.000 реални обврски; валидационата патека е тестирана.
     474