== Релациска шема (со мапирачка трансформација) === Ознаки - Примарните клучеви се означени со bold и underline - Надворешните клучеви се означени со bold и * до заграда стои на кои табели референцираат - Задолжителни атрибути, односно not null со bold === Табели - Users('''__user_id__''', '''user_username''', '''user_password''', '''user_phone_number''' ,'''user_name''', '''user_surname''', '''user_email, user_role''' ) - Employee('''__user_id__*'''(Users),'''employee_id''') - Client('''__user_id__*'''(Users),'''client_id''') - Genre('''__genre_id__''', '''genre_name''') - Movie('''__movie_id__''', '''movie_name''', '''movie_age_category''','''movie_production''', '''movie_film_director''', '''movie_cast''','''movie_time_duration''') - Firm('''__firm_id__''', '''firm_city''', '''firm_adress''', '''firm_name''') - Auditorium('''__auditorium_id__''','''firm_id*'''(Firm),'''auditorium_name''', '''auditorium_capacity''') * Секундарен клуч: firm_id е референца кон Firm и има not null constraint поради тотално учество на Auditorium во релацијата has - Movieprojection('''__projection_id__''','''movie_id*'''(Movie), '''projection_movie_start''', '''projection_movie_end''', '''projection_screening_date''', '''projection_type''', '''projection_price''') * Секундарен клуч: movie_id е референца кон Movie и има not null constraint поради тотално учество на MovieProjection во релацијата has - Works_in ('''__firm_id__*'''(Firm),'''__user_id__*'''(Employee),'''works_from''',works_to) * Композитен примарен клуч:(firm_id,user_id) - Payment_type('''__payment_id__''', '''payment_type''') - Payment('''__payment_id__''','''payment_type_id*'''(Payment_type),'''user_id*'''(Client),'''reservation_id*'''(Reservation),'''payment_date''') * Секундарен клуч: payment_type_id е референца кон Payment_type и има not null constraint поради тотално учество на Payment во релацијата is * Секундарен клуч: user_id е референца кон Client и има not null constraint поради тотално учество на Paymentt во релацијата pays * Секундарен клуч: reservation_id е референца кон Reservation и има not null constraint поради тотално учество на Payment во релацијата for - Seat('''__seat_id__''','''__auditorium_id__*'''(Auditorium),'''seat_number''', '''seat_row_number''') * Композитен примарен клуч:(seat_id, auditorium_id) * Слаб клуч клуч: seat_id * Секундарен клуч: auditorium_id е референца кон Auditorium и има not null constraint поради тотално учество на Seat во релацијата inside. - Reservation('''__reservation_id__''','''payment_type_id*'''(Payment_type),'''user_id*'''(Client),'''(seat_id,auditorium_id)*'''(Seat),'''projection_id*'''(MovieProjection),'''reservation_end_date''') * Секундарен клуч: payment_type_id е референца кон Payment_type и има not null constraint поради тотално учество на Reservation во релацијата paid * Секундарен клуч: user_id е референца кон Client и има not null constraint поради тотално учество на Reservation во релацијата has * Секундарен клуч: projection_id е референца кон MovieProjection и има not null constraint поради тотално учество на Reservation во релацијата for * Секундарен клуч: (seat_id,auditorium_id) е референца кон Seat и има not null constraint поради тотално учество на Reservation во релацијата for - Controles ('''__user_id__*'''(Employee),'''__projection_id__*'''(MovieProjection)) * Композитен примарен клуч:(employee_id, projection_id) - Is('''__movie_id__*'''(Movie),'''__genre_id__*'''(Genre)) * Композитен примарен клуч:(movie_id, genre) - Gives('''__projection_id___*'''(MovieProjection),'''__auditorium_id__*'''(Auditorium),'''seat_limitation''') * Композитен примарен клуч:(projection_id, auditorium_id) == DDL скрипта за бришење на табелите и креирање на табелите '''[attachment:kreiranje.sql]''' == DML скрипта за полнење на табелите со податоци '''[attachment:polnenje.sql]''' == Релациски дијаграм изваден од DBeaver [[Image(wiki:RelationalDesign:schema1.png)]]