== E-R Дијаграм [[Image(wiki:ERModel:version5.0.png)]] == Податочни побарувања **//Ентитети//** \\ 1. //User// - Ентитет кој чува податоци за секој регистриран корисник, од овој ентитет произлегуваат 2 други ентитети \\ • user_id - нумерички тип (примарен клуч) • username - текстуален тип (задолжителен атрибут) - password - текстуален тип (задолжителен атрибут) • email - текстуален тип • phone_number - текстуален тип • name - текстуален тип (задолжителен атрибут) • surname - текстуален тип (задолжителен атрибут) • role - текстуален тип 2. //Client// - Ентитет кој произлегува од User, и го наследува неговиот примарен клуч \\ - client_id - нумеричка вредност (кандидат клуч) 3. //Employee// - Ентитет кој произлегува од User, и го наследува неговиот примарен клуч \\ - employee_id - нумеричка вредност (кандидат клуч) 4. //Movie// - Ентитет кој чува податоци за филмот \\ - movie_id - нумерички тип (примарен клуч) - movie_name - текстуален тип (задолжителен атрибут) - movie_time_duration - текстуален тип (задолжителен атрибут) - cast - текстуален тип (задолжителен атрибут) - film_director - текстуален тип (задолжителен атрибут) - production - текстуален тип (задолжителен атрибут) - age_category - текстуален тип (задолжителен атрибут) 5. //Genre// - Ентитет во кој ќе се чуваат податоци за жанрот на филмот\\ - genre_id - нумерички тип (примарен клуч) - genre_name - текстуален тип (задолжителен атрибут) 6. //MovieProjection// - Ентитет во кој ќе се чуваат податоци за проекцијата на еден филм \\ - projection_id - нумерички тип (примарен клуч) - movie_start - нумерички тип (задолжителен атрибут) - movie_end - нумерички тип (задолжителен атрибут) - price - нумерички тип (задолжителен атрибут) - projection_type - текстуален тип (задолжителен атрибут) - screening_date - датум тип (задолжителен атрибут) 7. //Firm// - Ентитет во кој ќе се чуваат податоци за фирмата \\ - firm_id - нумерички тип (примарен клуч) - firm_city - текстуален тип (задолжителен атрибут) - firm_address - текстуален тип (задолжителен атрибут) - firm_name - текстуален тип (задолжителен атрибут) 8. //Auditorium// - Ентитет во кој ќе се чуваат податоци за сала \\ - auditorium_id - нумерички тип (примарен клуч) - auditorium_name - текстуален тип (задолжителен атрибут) - auditorium_capacity - нумерички тип (задолжителен атрибут) 9. //Reservation// - Ентитет во кој ќе се чуваат податоци за резервацијата \\ - reservation_id - нумерички тип (примарен клуч) - reservation_date - датум тип (задолжителен атрибут) 10. //Payment// - Ентитет во кој ќе се чуваат податоци за плаќање \\ - payment_id - нумерички тип (примарен клуч) - payment_date - датум тип (задолжителен атрибут) 11. //Payment_type// - Ентитет во кој ќе се чуваат податоци за начинот на плаќање \\ - payment_type_id - нумерички тип (примарен клуч) - payment_type - текстуален тип (задолжителен атрибут) 12. //Seat// - Слаб ентитет во кој ќе се чуваат податоци за седиште \\ - seat_id - нумерички тип (примаерен клуч) - seat_number - нумерички тип (задолжителен атрибут) **//Релации//** \\ 1. //pays// - 1:N релација помеѓу ентитет Client и ентитет Payment ,со тотално учество од страна на Payment која покажува дали дадениот клиент има платено. \\ 2. //has// - 1:N релација помеѓу ентитет Client и ентитет Reservation со тотално учество од двете страни ,која покажува дека една резервација може да има еден клиент, а еден клиент може да направи повеќе резервации \\ 3. //works_in// - N:N релација помеѓу ентитет Firm и ентитет Employee, која покажува дека една фирма може да има повеќе вработени, кои можат да работат во повеќе фирми. Содржи атрибути “works_from” i “works_to” кои означуваат од кога до кога трае вработувањето \\ 4. //controls// - N:N релација помеѓу ентитет Emplоyee и ентитет Movie Projection, која покажува дека повеќе проекции на филмови можат да бидат додавани од повеќе вработени \\ 5. //has// - 1:N релација помеѓу ентитет Movie и ентитет Movie Projection со тотално учество од страна на Movie Projection, која покажува дека еден филм може да биде прикажуван во повеќе проекции, но проекцијата прикажува точно еден филм \\ 6. //is// - N:N релација помеѓу ентитет Movie и ентитет Genre, која покажува дека еден филм може да припаѓа на повеќе жанрови, а и дека еден жанр може да има повеќе филмови под своја категорија \\ 7. //inside// - 1:N слаба релација помеѓу ентитет Auditorium и ентитет Seat со тотално учество од страна Seat, бидејќи не може да постои Seat ако не постои Auditorium која ни кажува колку седишта има во една сала и е слаба релација затоа што бројот на слободни седишта може да се менува \\ 8. //has// - 1:N релација помеѓу ентитет Auditorium и ентитет Firm со тотално учество од страна на Auditorium, која покажува колку кино сали се во сопственост на таа фирма, а истата таа сала може да припаѓа само на една фирма \\ 9. //gives// - N:M релација помеѓу ентитет Auditorium и ентитет Movie Projection сo тотално учество од страна на Movie Projection , која покажува дека не може да се одржи филмска проекција без соодветна сала ,која ни кажува кои филмови се емитуваат во една назначена сала, и точна бројка за дозволен број на седишта со помош на атрибутот 'seat_limitation'. Истата сала може да има повеќе проекции \\ 10. //for// - 1:N релација помеѓу ентитет Seat и ентитет Reservation со тотално учество од страна на Reservation ,која покажува дека мора да се одбере соодветно слободно седиште, што означува дека истото може да се искористи за различни резервации во повеќе наврати.Односно за таа резервација важи точно едно седиште \\ 11. //for// - 1:N релација помеѓу ентитет Movie Projection и ентитет Reservation со тотално учество од страна на Reservation, која покажува дека може да се направат повеќе резервации за една филмска проекција \\ 12. //for// - 1:1 релација помеѓу ентитет Payment и ентитет Reservation,со тотално учество од страна на Payment , која покажува дека за една резервација мора да се плати само еднаш. \\ 13. //is// - 1:N релација помеѓу ентитет Payment_type и ентитет Payment ,со тотално учество од страна на Payment , која покажува дека мора да се одбере начин на плаќање. \\ 14. //paid// - 1:N релација помеѓу ентитет Payment_type и ентитет Reservation,со тотално учество од страна на Reservation, која покажува дека е платено за точно една резервација. \\ == Историјат '''[attachment:version_1.png Верзија 1]''' -креирани сите ентитети со сите нивни атрибути и меѓусебни релации '''[attachment:version2.png Верзија 2]''' -по консултации со асистентот делот со регистрација беше целосно променет и поправена грешка во нотацијата, на неколку места каде што се 1:1 релации беа променети во 1:N релации, седиште беше променето во слаб ентиет од аудиториум, исто така беше додаден и нов ентиет жанрови кај филмови '''[attachment:version3.0.png Верзија 3]''' -релацијата помеѓу филм и жанр променета во N:N, исто така и помеѓу вработен и фирма променето во N:N со тоа што ќе се додаде и атрибути од кога до кога трае вработувањето, тоталните учества беа ревидирани и кардиналноста на релацијата помеѓу проекција и филм е променета во обратна насока како што треба '''[attachment:version4.0.png Верзија 4]''' - комплетно реконструиран делот за плаќање во однос на направените нарачки и начинот за плаќање на истите, додаден атрибут за ограничување на бројка на седиште на релацијата 'gives' и истата релација од 1:N e променета во N:N. Исто така додадени се дополнителни атрибути на ентитетите 'Movie Projection' и 'Movie'. '''[attachment:version5.0.png Верзија 5]'''