Version 6 (modified by 6 days ago) ( diff ) | ,
---|
Нормализација и подобрувања на дизајнот на базата
Подобро именување на атрибути
status од табела Room_Request -> request_status status од табела Document -> document_status
R = { u_id, phone_number, first_name, last_name, email, pass, faculty_name, year_of_studies, is_exempt, gender, p_id, amount, payment_date, student_id, payment_month, d_id, d_comment, d_name, document_status,
upload_date, file_path, emp_id, block_id, num_available_rooms, room_number, is_available, capacity, request_status, roommate_email, requested_time, start_date, end_date}
Определување на функциски зависности
u_id -> phone_number, first_name, last_name, email, pass
email -> u_id, phone_number, first_name, last_name, pass ( транзитивна вредност па ја отфрлам )
student_id -> u_id, phone_number, first_name, last_name, email, pass, faculty_name, year_of_studies, is_exempt, gender
emp_id -> ( претставува редундантна вредност, исти атрибути како u_id -> ...)
p_id -> amount, payment_date, payment_month, student_id
d_id -> d_comment, d_name, d_status, upload_date, file_path, emp_id, student_id
block_id -> num_available_rooms
room_number, block_id -> is_available, capacity
room_number, block_id, student_id -> status, roommate_email, employee_id, requested_time
student_id, room_num, block_id -> start_date, end_date
Кандидати за примарен клуч
- u_id
- p_id
- d_id
- room_number - како дел од композитен клуч
- block_id
За да го избереме примарниот клуч треба да одбереме кандидати кои ги покриваат сите атрибути од десно
u_id += { phone_number, first_name, last_name, email, pass } -> Ги содржи податоците само за корисниците на системот
p_id += { amount, payment_date, payment_month, student_id } -> Ги содржи податоците за плаќање и за корисникот кој го извршил плаќањето
d_id += { d_comment, d_name, d_status, upload_date, file_path, emp_id, student_id } -> Ги содржи податоците за документот кој го поставил студентот и вработениот кој го прегледал
Единствен избор за примарен клуч на целата релација R би бил (u_id, p_id, d_id, room_number, block_id)
Сега R е во прва нормализирана форма односно ги исполнува условите сите атрибути да се атомски, нема колони кои се повторуваат и има примарен клуч кој ги покрива сите атрибути.