| | 1 | = Резиме на поправки и напредок = |
| | 2 | |
| | 3 | == DB_P1: Концептуален модел (ERD) == |
| | 4 | |
| | 5 | '''Статус:''' Прелиминарно во ред, со мала формална забелешка. |
| | 6 | |
| | 7 | '''Забелешка од евалуацијата:''' |
| | 8 | > „Прелиминарно е во ред, мала формална забелешка — концептот на надворешен клуч не постои во ЕРД, да се отстранат." |
| | 9 | |
| | 10 | '''Што е поправено:''' |
| | 11 | * Отстранети се сите ознаки за надворешен клуч (FK) од ER дијаграмот. |
| | 12 | * Во концептуалниот модел се прикажуваат само ентитети, атрибути и релации (врски) — без надворешни клучеви, бидејќи тие припаѓаат на логичкиот/физичкиот модел, не на концептуалниот. |
| | 13 | * Релациите меѓу ентитетите се претставени преку врски со кардиналност (1:1, 1:N, M:N), што е правилна нотација за ЕРД. |
| | 14 | |
| | 15 | '''Резултат:''' Концептуалниот модел е формално исправен и подготвен за одобрување. |
| | 16 | |
| | 17 | == DB_P2: Логички и физички дизајн, креирање на база (DDL) == |
| | 18 | |
| | 19 | '''Статус:''' Прелиминарно во ред, потребно е поставување на базата на факултетскиот сервер. |
| | 20 | |
| | 21 | '''Забелешка од евалуацијата:''' |
| | 22 | > „Прелиминарно во ред, за одобрување да се постави базата на факултетскиот сервер." |
| | 23 | |
| | 24 | '''Што е направено:''' |
| | 25 | * Логичкиот модел е изведен од концептуалниот и е целосно нормализиран (во BCNF). |
| | 26 | * Физичкиот дизајн е дефиниран со сите табели, колони, типови на податоци, примарни и надворешни клучеви. |
| | 27 | * DDL скриптата е креирана и успешно извршена локално. |
| | 28 | * Базата е поставена на факултетскиот сервер (develop.finki.ukim.mk) и е достапна за натамошна работа. |
| | 29 | * Сите 20 табели се креирани и populate-ирани со тест податоци. |
| | 30 | |
| | 31 | '''Резултат:''' Базата е поставена на факултетскиот сервер, што е предуслов за одобрување на фазата P2. |
| | 32 | |
| | 33 | == DB_P5: Нормализација == |
| | 34 | |
| | 35 | '''Статус:''' Поправено според барањата од евалуацијата. |
| | 36 | |
| | 37 | '''Забелешка од евалуацијата:''' |
| | 38 | > „Недостасува формална проверка дека примарниот клуч е навистина кандидат-клуч и дека нема друг кандидат-клуч, пред да биде прогласен за примарен клуч." |
| | 39 | |
| | 40 | '''Што е поправено:''' |
| | 41 | * Додаден е формален доказ дека избраниот примарен клуч е кандидат-клуч (уникатност + минималност). |
| | 42 | * Додаден е формален доказ дека не постои друг кандидат-клуч. |
| | 43 | * Додаден е алгоритмот за attribute closure за пресметка на затворање на атрибути. |
| | 44 | * Додаден е canonical cover на множеството функционални зависности. |
| | 45 | * За секоја табела (R1–R20) се експлицитно наведени: ФЗ што важат, кандидат-клуч, примарен клуч, нормална форма, lossless join тест и preservation of FDs. |
| | 46 | * Додадена е проверка во која нормална форма е денормализираната релација (1NF, но не 2NF). |
| | 47 | * Додадена е глобална проверка за preservation of FDs и lossless join. |
| | 48 | |
| | 49 | '''Резултат:''' Нормализацијата е формално комплетна и ги задоволува сите барања од InstructionsP5. |
| | 50 | |
| | 51 | == DB_P6: Комплексни извештаи од базата == |
| | 52 | |
| | 53 | '''Статус:''' Поправено според барањата од евалуацијата. |
| | 54 | |
| | 55 | '''Забелешка од евалуацијата:''' |
| | 56 | > „Во ред е, но се очекуваат значително покомплексни прашалници, со повеќе нивоа на вгнездување потпрашалници." |
| | 57 | |
| | 58 | '''Што е поправено:''' |
| | 59 | * Постоечките 8 извештаи (AdvancedReport1–8) се задржани како основни аналитички извештаи. |
| | 60 | * Додадени се 6 нови напредни извештаи (AdvancedReport9–14) со најмалку 3 нивоа на вгнездување: |
| | 61 | * AdvancedReport9 — Прогноза за потрошувачка на состојки (3 нивоа, CTE, IN (SELECT ... HAVING ... (SELECT AVG ...))) |
| | 62 | * AdvancedReport10 — Ефикасни келнери + топ производ (4 нивоа, 2 корелациони потпрашалници, потпрашалник во потпрашалник) |
| | 63 | * AdvancedReport11 — Анализа на кошничка (3 нивоа, self-join, IN (SELECT ... HAVING ...)) |
| | 64 | * AdvancedReport12 — Year-over-year споредба (3 нивоа, CTE, RANK, LEFT JOIN со поместување) |
| | 65 | * AdvancedReport13 — Аномалии во нарачки (3 нивоа, STDDEV, z-score, корелационен потпрашалник) |
| | 66 | * AdvancedReport14 — Прогноза на приходи (3 нивоа, REGR_SLOPE, REGR_INTERCEPT, generate_series, LEFT JOIN) |
| | 67 | * Сите функции се имплементирани како SQL функции (LANGUAGE sql) за да се избегнат проблеми со PL/pgSQL variable shadowing. |
| | 68 | * Сите функции се тестирани во DBeaver и работат со реалните податоци од базата. |
| | 69 | * За секој нов извештај е напишана и релациона алгебра. |
| | 70 | |
| | 71 | '''Резултат:''' Напредните извештаи целосно го адресираат барањето за покомплексни прашалници со повеќе нивоа на вгнездување. |
| | 72 | |
| | 73 | == Заклучок == |
| | 74 | |
| | 75 | Сите забелешки од евалуациите за фазите P1, P2, P5 и P6 се адресирани: |
| | 76 | |
| | 77 | || '''Фаза''' || '''Забелешка''' || '''Статус''' || |
| | 78 | || P1 || Надворешен клуч не постои во ЕРД || Поправено — отстранети FK ознаки || |
| | 79 | || P2 || Постави база на факултетски сервер || Направено — базата е поставена || |
| | 80 | || P5 || Формална проверка на кандидат-клуч || Поправено — додаден формален доказ || |
| | 81 | || P6 || Покомплексни прашалници со вгнездување || Поправено — додадени 6 нови извештаи || |