| 149 | **{export_id}+** = { export_id, session_id, export_format, file_name, filter_summary, export_date, user_id, filter_description, searched_at, profile_id, email, user_name, user_surname, password_hash, is_user_active, user_created_at, role_id, profile_created_at, username, role_name, role_description } – овој покривач не ги содржи сите атрибути од релацијата R-mega relation. |
| 150 | |
| 151 | **{punishment_id}+** = { punishment_id, report_id, value_unit, punishment_type, fine_to_pay, release_date, report_type, report_created_at, summary, person_id, location, resolved, crime_type_id, descriptive_punishment, severity_level, label, embg, name, surname, gender, date_of_birth, is_alive, date_of_death, address_of_living, contact_phone } – овој покривач повторно не ги содржи сите атрибути од релацијата R-mega relation. |
| 152 | |
| 153 | - [[span(style=color: #FF0000, Забелешка за punishment_id)]]: Покривачот на даден атрибут ги содржи само оние атрибути кои логички може да се пристапат преку него, не сите кои го содржат. Поради тоа, не ги вклучувам сите можни извештаи и нивните атрибути, бидејќи преку punishment_id може да се пристапи до criminal report и ентитетите кои се поврзани со овој извештај, се разбира, вклулувајќи ги сите нивните атрибути. |
| 154 | |
| 155 | **{r_d_id}+** = { r_d_id, diagnosis_id, report_id, added_on, short_description, therapy, is_chronic, severity, report_type, report_created_at, summary, person_id, next_control_date, doctor_id, embg, name, surname, gender, date_of_birth, is_alive, date_of_death, address_of_living, contact_phone, doctor_name, doctor_surname, specialization, years_of_experience, is_active } – овој покривач повторно не ги содржи сите атрибути од релацијата R-mega relation. |
| 156 | - [[span(style=color: #FF0000, Забелешка за r_d_id)]]: Како и punishment_id, така и тука се среќавам со истиот случај и решавам дека ќе ги додавам во покривачот сите оние атрибути кои може логички да се пристапат, не и сите можни reports. |
| 157 | |
| 158 | **{log_id}+** = { log_id, profile_id, change_description, changed_at, user_id, role_id, profile_created_at, username, role_name, role_description, email, user_name, user_surname, password_hash, is_user_active, user_created_at } – овој покривач повторно не ги содржи сите атрибути од релацијата R-mega relation. |
| 159 | |
| 160 | ''Потсетување: Овие функционални зависности се дефинирани по моја логика, без да го гледам ER дијаграмот кој го имам. Е сега, логички размислувам за тоа report_type кое предодредува кој тип на извештај-ентитет ќе се креира. Поради тоа, не одам на варијатната да ги пристапам сите можни атрибути преку report_id, туку си ги додавам оние кои сметам дека навистина би можеле да се пристапат преку покривачот ако се тргне од него. Иако сите атрибути се физички во иста мега-табела R, логички може да се пристапи само до оние кои имаат смисла, што сметам дека е правилно во мојот специфичен случај.'' |
| 161 | |
| 162 | Имајќи ги претходните покривачи, може да видиме дека ниту еден од нив не е комплетен (не ја опфаќа целосната мега релација), за да биде назначен кандидат клуч или супер клуч. Според правилата, може да се започне со комбинирање на истите, за да се добие некој кандидат клуч/супер клуч. |
| 163 | |
| 164 | **{export_id, punishment_id}+** = { export_id, session_id, export_format, file_name, filter_summary, export_date, user_id, filter_description, searched_at, profile_id, email, user_name, user_surname, password_hash, is_user_active, user_created_at, role_id, profile_created_at, username, role_name, role_description, punishment_id, report_id, value_unit, punishment_type, fine_to_pay, release_date, report_type, report_created_at, summary, person_id, location, resolved, crime_type_id, descriptive_punishment, severity_level, label, embg, name, surname, gender, date_of_birth, is_alive, date_of_death, address_of_living, contact_phone } – сепак не ги исполнува барањата, односно не ја содржи R-mega relation |
| 165 | |
| 166 | **{export_id, punishment_id, r_d_id}+** = { export_id, session_id, export_format, file_name, filter_summary, export_date, user_id, filter_description, searched_at, profile_id, email, user_name, user_surname, password_hash, is_user_active, user_created_at, role_id, profile_created_at, username, role_name, role_description, punishment_id, report_id, value_unit, punishment_type, fine_to_pay, release_date, report_type, report_created_at, summary, person_id, location, resolved, crime_type_id, descriptive_punishment, severity_level, label, embg, name, surname, gender, date_of_birth, is_alive, date_of_death, address_of_living, contact_phone, r_d_id, diagnosis_id, added_on, short_description, therapy, is_chronic, severity, next_control_date, doctor_id, doctor_name, doctor_surname, specialization, years_of_experience, is_active } – иако е доста блиску до R, сепак не ги исполнува барањата, односно не ја содржи целата релација |
| 167 | |
| 168 | **{export_id, punishment_id, r_d_id, log_id}+** = { export_id, session_id, export_format, file_name, filter_summary, export_date, user_id, filter_description, searched_at, profile_id, email, user_name, user_surname, password_hash, is_user_active, user_created_at, role_id, profile_created_at, username, role_name, role_description, punishment_id, report_id, value_unit, punishment_type, fine_to_pay, release_date, report_type, report_created_at, summary, person_id, location, resolved, crime_type_id, descriptive_punishment, severity_level, label, embg, name, surname, gender, date_of_birth, is_alive, date_of_death, address_of_living, contact_phone, r_d_id, diagnosis_id, added_on, short_description, therapy, is_chronic, severity, next_control_date, doctor_id, doctor_name, doctor_surname, specialization, years_of_experience, is_active, log_id, change_description, changed_at } – иако е доста блиску до R, сепак не ги исполнува барањата, односно не ја содржи целата релација |
| 169 | |
| 170 | Наидуваме на необична ситуација, каде доколку би тргнале од punishment_id и го земеме report_id како општо само report_id, кое може да е наменето за било кое од четирите reports, тогаш без никакви пречки веќе ќе ја имавме целосната релација бидејќи покривачот на punishment_id ќе ги содржеше остатокот од атрибути кои се потребни да добиеме супер клуч со комбинираната релација. Логички изведено, доколку тргнеме од punishment_id, може да стигнеме само до report_id ∈ CriminalReport, што е логично. Па така, не можеме да го земеме report_id кое е покриено од punishment_id за да дојдеме до Academic Report или Employment Report кое ќе го опфати и Institution, што би било решение за супер клуч. |
| 171 | |
| 172 | Бидејќи **punishment_id → report_id** важи само за криминални извештаи, а **r_d_id → report_id** само за медицински, потребно е да се додаде независно **report_id што ќе биде генеричко за сите можни работи кои може да се стигне од него, бидејќи нема потекло, туку е само report_id**. Со тоа ги опфаќам останатите атрибути кои фалат. Според „**Секој атрибут може да биде дел од кандидат клучот**“, може да се заклучи дека додавањето на report_id е правилно, во склоп на правилата за формирање на супер клучот во нашата шема. |
| 173 | |
| 174 | [[span(style="color:#FF0000") complete_closure = {log_id, export_id, punishment_id, r_d_id, report_id}]] |
| 175 | |