Програмирање база на податоци
Членови на тим:
- Aлександар Тодороски 231153
- Антонио Трајковски 231156
- Вељко Аџиќ 231267
Тригери
1. trg_check_contract
Овој тригер се извршува пред додавање или ажурирање на ред во sportsperson_contract. Доколку клубот на новиот договор е национална репрезентација и спортистот не е од таа држава фрла грешка. Исто така, осигурува дека спортистот има најмногу еден договор за национална репрезентација и најмногу еден активен договор за стандарден клуб.
2. trg_check_team_roster
Овој тригер врши проверка на team_roster пред секое додавање или ажурирање. Се проверува дека бројот на играчи не го надминува дозволениот капацитетот, новододадениот играч има активен договор во целото времетраење на дуелот и дека не е дел од друга екипа за тој дуел.
3. trg_check_team_sport_and_rep
Тригерот врши валидација пред додавање или ажурирање на ред во duel. Се проверува дали клубовите на тимовите постојат, се осигурува дуелот да е против две национални репрезентации или два обични тима. Дополнително проверува за секој тим дали нивната федерација е активна до датумот на дуелот, и проверува дали тимовите играат во соодветна спортска категорија за тој дуел.
Функции
Освен функциите што се користат во тригери, единствена друга функција во овој систем е valid_date_range. Таа се користи да провери дали внесен опсег на датуми е валиден.
Погледи
1. Статистика за тим во сезона
Погледот season_standing покажува статистика за секој тим во рамки на една сезона. За секој имаме во која сезона и кој период учествувал, во кое натпреварување, во колку натпревари ома одиграно, колку поени има освоено, колку гола има постигнато и колку гола има примено. Сето ова е подредено по бројот на поени, бројот на постигнати голови, и според разлика на примени и постигнати голови.
2. Месечен приход на клуб
Овој поглед ни дава преглед на приходите, трошоците и профит за еден спортски клуб. Дополнително, може да се прегледа бројот на активни спонзорства и активни договори со играчи за даден клуб. Осигурува целосна транспарентност за финансиите за секој клуб.
3. Идни дуели
upcoming_duels е поглед кој дава преглед за идни дуели што се закажани. Имаме можност да се прегледа датумот и времето на дуелот, кој ќе се натпреварува, во кој спорт, каде ќе се одигрува и какво во натпреварување е дуелот. Сето ова е подредено по име на натпреварот.
4. Слободни локации
Погледот free_locations е наменет да помогне при барање на слободни локации за одреден период за одржување на натпревар. Тука имаме пример каде се бараат слободни локации во Република Македонија кои имаат капацитет од 10.000 или повеќе и се слободни на 10.05.2026 помеѓу 16.00 и 21.00 часот.
5. Освоени поени за секој натпревар
Овој поглед ни дава преглед колку поени освои секој играч за секој натпревар и за секој тим. Резултатот го подредува според бројот на поени освоени во опаѓачки редослед.
6. Работна историја на судија
Погледот referee_work ни дава преглед во работата на одреден судија. Ни дава име и презиме на судијата, држава на потекло, за која категорија може да суди, во колку дуели има судено, датумот на првиот дуел во кој судел и бројот на закажани дуели во кој суди.
7. Статистика за тим
team_stats е поглед кој враќа информации за одреден тим (име на тимот, спортска категорија и држава), имиња на сегашни тренери на тимот, бројот на активни договори, број на идни дуели и датумот на следниот закажан дуел.
8. Податоци за дуел
Погледот duel_history дава детален преглед на историјата на одреден дуел. Ни доставува податоци за кога и каде се изигрува дуелот, имињата на домаќин и противник тим, резултатот од дуелот, играчи што освоиле поен за домаќин и за противник, играчи кои добиле црвен картон, имиња играчи од екипите, и имиња на судиите.
9. Црвени картони
get_red_cards е поглед кој ни прикажува кои играчи го напуштиле дуелот пред да заврши (односно добиле црвен картон или направиле голем прекршок). Како резултат добиваме детален преглед за секој дуел и тимовите на тој дуел, секој играч кои завршил порано, за кој тим играл, кога почнал дуелот и колку траел, кога играчот завршил и колку минути пропуштил.
10. Историја на играч
Погледот player_career_history ни дава детален преглед за одреден играч за кој клуб играл, за која држава играл, период на договорот со тој клуб, статус на договорот, месечната исплата, вкупен број на договори и неговата биографија.
Процедури
1. Регистрација на спортист
Оваа процедура ни овозможува да се регистрира нов спортист. Ги валидира внесените податоци и креира нови записи во person и sportsperson. Оваа процедура ја отстранува потребата за проверка и валидација на влезни податоци од апликацијата и за одржување на наследството sportsperson од person.
2. Регистрација на тренер
Процедурата register_coach ни овозможува да се регистрира нов тренер каде извршува валидација на влезните податоци и го одржува наследството на coach од person. Целта на процедурата е да ја отстранува потребата за проверка и валидација на влезни податоци од апликацијата и за одржување на наследството.
3. Регистрација на судија
Со оваа процедура може да се регистрира нов судија каде се валидираат влезните податоци и се одржува наследството на referee од person. Процедурата има цел да ја отстрани потребата за проверка и валидација на влезни податоци од апликацијата и за одржување на наследството.
4. Додавање нов договор
add_contract е процедура која се користи за додавање или обновување на договор на играч. Прво се проверува дали постои играч, дали се валидни почетен и краен датум, дали е валидна сумата, и доколку се помине оди на додавање договор. Ако играчот има активен договор со неопределен рок, или договор што завршил, се проверува валидноста на клубот и дополнително почетниот датум да е по завршниот датум на стариот договор, се затвора стариот договор и се додава нов. Ако играчот нема претходен договор се прескокнуваат овие проверки и само се додава новиот договор во системот.
5. Позајмување играч
Процедурата borrow_player овозможува позајмување на играчи од еден клуб во друг. Тука како основни проверки имаме дали времето е соодветно, дали играчот постои, дали клубовите постојат. Потоа се проверува дали играчот има договор со клубот и дополнително дали е валиден периодот за позајмување. Ако поминат сите проверки, ќе се заврши стариот договор, ќе се креира нов договор со позајмувачкиот клуб, и ќе се креира нов договор со стариот клуб кој почнува од датумот на завршување на позајмувањето до стариот завршен датум.
6. Промоција на спортист во тренер
promote_sportsperson_to_coach е процедура која ни помага еден играч да се промовира во тренер. Се проверува дали играчот постои, да не е веќе промовиран, дали постои федерација и да нема активен договор. Ако се поминат сите проверки се креира нов тренер во системот.
7. Создавање нова сезона
start_new_season е процедура која помага при започнување на нова сезона за одредена лига. Прво се вршат проверки за годината и лигата, потоа се додаваат новите датуми за почеток и крај на сезоната, ја додаваме сезоната во главната табела и другите табели што зависат од неа. Дополнително, автоматски се креираат тимови во сезоната, се креираат натпревари и се генерираат дуели.
8. Презакажување на дуел
reschedule_duel е процедура која има улога да презакаже дуел. Извршува валидација на влезните податоци (дали постои дуел, дали е валидно новото време), а потоа се вршат дополнителни проверки дали судијата, домаќинот и противникот се слободни тој период, ако се тогаш се ажурира почетокот на дуелот.
9. Доделување судија на дуел
Процедурата assign_referee_for_duel овозможува доделување на судија на одреден дуел. Откако се изврши проверка дали дадениот дуел постои, се одбира случаен судија кој е слободен во периодот на дуелот. Доколку дуелот е дел од натпревар се бара судија од федерација која го организира натпреварот. Ако се најде судија се додава нов запис во refereeing_duel. Оваа процедура ја отстранува потребата апликацијата да бара и доделува судија за некој натпревар.
10. Додавање спонзорство на тим
add_sponsorship_to_team е процедура која е задолжена за додавање спонзорства на одреден тим. Се земаат името на тимот и на спонзорот и се проверуваат дали постојат, се проверува дали сумата е позитивна, дали периодот на спонзорство е валиден и се проверува дали тој тим со тој спонзор има активно спонзорство во тој период. Ако поминат сите проверки тогаш се додава ново спонзорство за тој тим.
11. Преименување спортски клуб
Процедурата rename_sport_club има улога да го смени името на одреден спортски клуб и сите негови клубови кои го користат името на клубот. Се извршуваат проверки дали постои клубот, дали е репрезентација (каде не смее да се промени името на национална репрезентација), и се проверува дали постои клуб со новото име во таа држава. Ако сите проверки поминат се ажурира записот во sport_club и се ажурираат имињата на сите тимови во тој клуб да го содржат новото име на клубот.
Attachments (25)
- trg_1.png (106.6 KB ) - added by 5 days ago.
- trg_2.png (136.0 KB ) - added by 5 days ago.
- trg_3.png (203.5 KB ) - added by 5 days ago.
- fn_1.png (13.9 KB ) - added by 5 days ago.
- pr_reg_sportsperson.png (146.7 KB ) - added by 5 days ago.
- pr_reg_referee.png (158.7 KB ) - added by 5 days ago.
- pr_add_contract.png (177.0 KB ) - added by 5 days ago.
- pr_borrow_player.png (185.1 KB ) - added by 5 days ago.
- pr_promote_sportsperson_to_coach.png (86.5 KB ) - added by 5 days ago.
- pr_start_new_season.png (566.4 KB ) - added by 5 days ago.
- pr_reg_coach.png (159.7 KB ) - added by 5 days ago.
- pr_reschedule_duel.png (182.7 KB ) - added by 5 days ago.
- pr_assign_referee_for_duel.png (158.6 KB ) - added by 5 days ago.
- pr_add_sponsorship_to_team.png (122.9 KB ) - added by 5 days ago.
- pr_rename_sport_club.png (114.1 KB ) - added by 5 days ago.
- v_season_standing.png (122.6 KB ) - added by 5 days ago.
- v_monthly_income_for_club.png (71.9 KB ) - added by 5 days ago.
- v_upcoming_duels.png (77.9 KB ) - added by 5 days ago.
- v_free_locations.png (60.7 KB ) - added by 5 days ago.
- v_top_scorers_on_competition.png (59.8 KB ) - added by 5 days ago.
- v_referee_work.png (65.3 KB ) - added by 5 days ago.
- v_team_stats.png (116.8 KB ) - added by 5 days ago.
- v_duel_history.png (231.3 KB ) - added by 5 days ago.
- v_get_red_cards.png (82.3 KB ) - added by 5 days ago.
- v_player_career_history.png (83.9 KB ) - added by 5 days ago.

























