Changes between Version 14 and Version 15 of DatabaseProgramming
- Timestamp:
- 05/21/26 15:43:45 (5 days ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
DatabaseProgramming
v14 v15 18 18 - Резултат: табела со колони - flight1_Number, flight1_Departure, flight1_Arrival, connection, layoverMinutes, flight2_Number, flight2_Departure, flight2_Arrival 19 19 20 Оваа функција пронаоѓа лет од аеродром со код !DepartureCode до аеродром со код !ArrivalCode на датум Date. Многу дестинации и рути помеѓу два аеродроми во реални авиокомпании немаат директни летови, туку најчесто се поврзани. Со функцијата Connecting Flights овозможено е пронаоѓање на некои поврзани летови при што се нуди информација и за аеродромот каде се поврзуваат и времето на чекање. Функцијата враќа само два поврзани лета поради тоа што во реалното функционирање на авиокомпании се употребуваат хабови (аердроми кои имаат летови до речиси сите понудени дестинации) - со ова се избегнува потребата од поврзување на повеќе летовисо што се подобрува искуството на корисниците.20 Оваа функција пронаоѓа лет од аеродром со код !DepartureCode до аеродром со код !ArrivalCode на датум Date. Многу дестинации и рути помеѓу два аеродроми во реални авиокомпании немаат директни летови, туку најчесто се поврзани. Со функцијата Connecting Flights овозможено е пронаоѓање на некои поврзани летови, при што се нуди информација и за аеродромот каде се поврзуваат и времето на чекање. Функцијата враќа само два поврзани лета поради тоа што во реалното функционирање на авиокомпании се употребуваат хабови (аердроми кои имаат летови до речиси сите понудени дестинации) - со ова се избегнува потребата од поврзување на повеќе летови, со што се подобрува искуството на корисниците. 21 21 22 22 [attachment:ConnectingFlights.sql] … … 27 27 - Резултат: табела со колони - FlightID, FlightNumber, Departure, Arrival, HoursFromOriginal, SeatClass, AvailableSeats 28 28 29 Оваа функција наоѓа алтернативни летови од одреден лет при откажување. Како аргументи ги прима ID на откажаниот лет преку чии податоци знае како да пребара нови летови и максималниот број на часови до полетувањето на новиот пронајден лет. За секој лет се прикажуваат деталикако и бројот на слободни седишта од секоја класа.29 Оваа функција наоѓа алтернативни летови од одреден лет при откажување. Како аргументи ги прима ID на откажаниот лет, преку чии податоци знае како да пребара нови летови, и максималниот број на часови до полетувањето на новиот пронајден лет. За секој лет се прикажуваат детали, како и бројот на слободни седишта од секоја класа. 30 30 31 31 [attachment:FindAlternativeFlights.sql] … … 36 36 - Резултат: табела со колони - EmployeeId, Name, Surname, DateOfBirth, Rolе 37 37 38 Оваа функција враќа детални податоци за вработените на секој лет - лични податоци како иулога на летот (пилот, копилот или стјуардеса).38 Оваа функција враќа детални податоци за вработените на секој лет - лични податоци, како и нивната улога на летот (пилот, копилот или стјуардеса). 39 39 40 40 [attachment:GetFlightCrew.sql] … … 47 47 - Параметри: TicketId (ID на карта), BaggageTypeId (ID на тип на багаж), Weight (тежина на багаж), Height (висина на багаж), Length (должина на багаж), Width (ширина на багаж) 48 48 49 Оваа процедура се употребува за додавање на багаж на одредена карта. Кога патникот сака да додаде нов багаж на својата карта за одреден лет процедурата ги проверува соодветно валидноста на летот, картатакако и димензиите во споредба со одбраниот тип на багаж. По проверките за валидација се додава нова редица во табелата Baggage.49 Оваа процедура се употребува за додавање на багаж на одредена карта. Кога патникот сака да додаде нов багаж на својата карта за одреден лет, процедурата ги проверува соодветно валидноста на летот, картата, како и димензиите во споредба со одбраниот тип на багаж. По проверките за валидација се додава нова редица во табелата Baggage. 50 50 51 51 [attachment:AddBaggage.sql] … … 55 55 - Параметри: !TicketID (ID на картата), !SeatID (ID на седиштето на конкретен лет) 56 56 57 Оваа процедура се употребува за доделување на слободно седиште на некој патник на даден лет. Се проверува дали посто и летот и картата на корисникот, дали корисникот веќе се има качено на авионот (картата има статус Boarded), дали веќе е доделено тоа седиште на таа карта, дали седиштето припаѓа на истиот лет со картата, дали се совпаѓа со избраната класа и дали е веќе резервирано. Доколку не е во табелата Ticket се ажурира полето SeatID, и на атрибутот Reserved воSeat му се доделува вредност true.57 Оваа процедура се употребува за доделување на слободно седиште на некој патник на даден лет. Се проверува дали постојат летот и картата на корисникот, дали корисникот веќе се има качено на авионот (картата има статус Boarded), дали веќе е доделено тоа седиште на таа карта, дали седиштето припаѓа на истиот лет со картата, дали се совпаѓа со избраната класа, и дали е веќе резервирано. Доколку не е, во табелата Ticket се ажурира полето SeatID, и на атрибутот Reserved во табелата Seat му се доделува вредност true. 58 58 59 59 [attachment:AssignSeat.sql] … … 63 63 - Параметри: !TicketID (ID на картата) 64 64 65 Оваа процедура сетира статус на картата - Boarded. Се прават претходно проверки дали картата не е Boarded и дали веќе е !CheckedIn. Исто така се проверува дали е започнат процесот на чекирање (од 8 часа до 45 минути до полетување). Исто такадоколку нема доделено седиште, системот автоматски му доделува седиште од иста класа како со картата на патникот.65 Оваа процедура сетира статус на картата - Boarded. Пред да се направи тоа, се прават проверки дали картата не е Boarded и дали веќе е !CheckedIn. Исто така, се проверува дали е започнат процесот на чекирање (од 8 часа до 45 минути до полетување). Исто така, доколку нема доделено седиште, системот автоматски му доделува седиште од иста класа како со картата на патникот. 66 66 67 67 [attachment:CheckInTicket.sql] … … 71 71 - Параметри: !TicketID (ID на картата) 72 72 73 Оваа процедура сетира статус на картата - Boarded. Се прават претходно проверки дали картата е !CheckedIn и дали веќе е Boarded. Исто такасе проверува дали е дозволен влез на авионот (од 1 час до 15 минути до полетување).73 Оваа процедура сетира статус на картата - Boarded. Пред да се направи тоа, се прават проверки дали картата е !CheckedIn и дали веќе е Boarded. Исто така, се проверува дали е дозволен влез на авионот (од 1 час до 15 минути до полетување). 74 74 75 75 [attachment:Board.sql] … … 79 79 - Параметри: !FlightID (ID на летот), CancellationReason (причина за откажување) 80 80 81 Со оваа процедура вработените во авиокомпанијата можат да откажат одреден лет и да наведат причина за истото. Се вршат проверки дали летот постои, дали е веќе откажан или дали е веќе полетан. Доколку поминат проверките се менува статусот на летот во Cancelled, се додава нова колона во табелата !CancelledFlight и се менува статусот на сите карти за тој лет во Cancelled.81 Со оваа процедура вработените во авиокомпанијата можат да откажат одреден лет и да наведат причина за истото. Се вршат проверки дали летот постои, дали е веќе откажан или дали е веќе полетан. Доколку поминат проверките, се менува статусот на летот во Cancelled, се додава нова колона во табелата !CancelledFlight и се менува статусот на сите карти за тој лет во Cancelled. 82 82 83 83 [attachment:CancelFlight.sql] … … 95 95 - Параметри: PassangerID (ID на патникот), FlightID (ID на летот), SeatClassID (ID на класата седиште), SeatID (ID на резервирано седиште), ReservationID (ID на резервација) 96 96 97 Со оваа процедура овозможено екупување на билет за одреден лет. Потребно е да се внесат корисникот, летот, класата, резервацијата и незадолжително може да се внесе и резервирано седиште доколку корисникот сака да го резервира однапред (дополнителната цена се додава на вкупната цена на билетот). Се прават проверки дали постои летот, дали е дозволено купување на билет (треба да има повеќе од 3 часа време до полетување), дали летот е откажан и слично. На крај, се пресметува цената на билетот според растојанието и класата и се додава нова редица во колоната Ticket.97 Со оваа процедура е овозможено купување на билет за одреден лет. Потребно е да се внесат корисникот, летот, класата, резервацијата и незадолжително може да се внесе и резервирано седиште доколку корисникот сака да го резервира однапред (дополнителната цена се додава на вкупната цена на билетот). Се прават проверки дали постои летот, дали е дозволено купување на билет (треба да има повеќе од 3 часа време до полетување), дали летот е откажан и слично. На крај, се пресметува цената на билетот според растојанието и класата и се додава нова редица во колоната Ticket. 98 98 99 99 [attachment:PurchaseTicket.sql] … … 104 104 === Award Mile Points 105 105 106 При слетување на неко и лет (ажурирање на статусот на лет во Arrived) на секој патнике кој се качил на авионот (поседува карта со статус Boarded) добива поени според растојанието на летот како и класата на седиште.106 При слетување на некој лет (ажурирање на статусот на лет во Arrived) на секој патник кој се качил на авионот (поседува карта со статус Boarded) му се доделуваат поени според растојанието на летот и класата на седиштето. 107 107 108 108 [attachment:AwardMilePoints.sql] … … 122 122 === Update Airplane Flight Hours 123 123 124 Кога статусот на некој лет се променува во Arrived, вкупниот број на летани часови на авионот се зголемуваат за растојанието поминато.124 Кога статусот на некој лет се менува во Arrived, вкупниот број на часови на летање на авионот се зголемуваат за времето кое било потребно да се помине растојанието од почетната до крајната дестинација на летот. 125 125 126 126 [attachment:UpdateAirplaneFlightHours.sql] … … 128 128 === Update Last Maintenance 129 129 130 При извршување на сервис на некој авион (додавање на редица во табела ра Maintenance), потребно е атрибутот !LastMaintenance на авионот да се ажурира на ID на новиот сервис.130 При извршување на сервис на некој авион (додавање на редица во табелата Maintenance), потребно е атрибутот !LastMaintenance на авионот да се ажурира на ID на новиот сервис. 131 131 132 132 [attachment:UpdateLastMaintenance.sql]
