= Нормализација и подобрувања на дизајнот на базата == Поделба на доменот според типот на евиденција Бидејќи нашиот модел го користи апликација којашто служи за различни евиденции од областа на реализација на избори, практично е невозможно да извршиме нормализација користејќи една табела во којашто ќе бидат сместени сите атрибути. Затоа решивме да ги прикажеме различните извештаи кои произлегуваат од различните сценарија на примена на моделот и како такви, парцијално да ги нормалзираме и така добиените ентитети да ги поврземе во целина. == 1. Евиденција за избирачки список ||= ЕМБГ (embg) =||= Име (g_ime) =||= Презиме (g_prezime) =||= Адреса идентификатор (a_id) =||= Улица (a_ulica) =||= Куќен број (a_broj) =||= Број влез (a_vlez) =||= Број стан (a_stan) =||= Број на документ за идентицикација (d_broj) =||= Датум на важност од (d_vazi_od) =||= Датум на важност до (d_vazi_do) =||= Издавач на документот (d_izdaden_od) =||= Гласачко место број(im_id) =||= Гласачко место (im_mesto) =||= Адреса идентификатор (a_id) =||= Улица (a_ulica_gm) =||= Куќен број (a_broj_gm) =||= Број влез (a_vlez_gm) =||= Број стан (a_stan_gm) =|| || 0101002000000 || Петар || Петрески || 123 || Коле Неделковски || 13 || 1 || 2 || A111111 || 2020-01-01 || 2025-01-01 || МВР Скопје || 1234 || ОУ Кочо Рацин || 768 || Македонија || 1 || || || || 0101002000000 || Петра || Петреска || 123 || Коле Неделковски || 13 || 1 || 2 || A222222 || 2020-01-01 || 2025-01-01 || МВР Скопје || 1234 || ОУ Кочо Рацин || 768 || Македонија || 1 || || || R = {embg, g_ime, g_prezime, a_id, a_ulica, a_broj, a_vlez, a_stan, d_broj, d_vazi_od, d_vazi_do, d_izdaden_od, im_id, im_mesto, a_id_gm, a_ulica_gm, a_broj_gm, a_vlez_gm, a_stan_gm} embg →g_ime, g_prezime, a_id, d_broj \\ a_id → a_ulica, a_broj, a_vlez, a_stan, im_id \\ a_id_gm → a_ulica_gm, a_broj_gm, a_vlez_gm, a_stan_gm \\ d_broj → d_vazi_od, d_vazi_do, d_izdaden_od \\ im_id → im_mesto, a_id_gm \\ само лево: \\ embg, лево и десно: \\ a_id, d_broj, im_id, a_id, gm само десно: \\ g_ime, g_prezime, a_ulica, a_broj, a_vlez, a_stan, d_vazi_od, d_vazi_do, d_izdaden_od, im_mesto, a_ulica_gm, a_broj_gm, a_vlez_gm, a_stan_gm {embg}+ = {g_ime, g_prezime, a_id, a_ulica, a_broj, a_vlez, a_stan, im_id, im_mesto, d_broj, d_vazi_od, d_vazi_do, d_izdaden_od, a_id_gm, a_ulica_gm, a_broj_gm, a_vlez_gm, a_stan_gm} = R \\ {embg} е единствен кандидат клуч и примарен клуч. Во вака дефинираната релација нема повеќекратни зависности, па оттука следува дека задоволува прва нормална форма. \\ Клучот на релацијата е составен од само еден атрибут, па парцијална зависност не е возможна, затоа, задоволува втора нормална форма. \\ ---- Не е во трета нормална форма поради: \\ d_broj → d_vazi_od, d_vazi_do, d_izdaden_od Декомпозиција: \\ R1 {d_broj, d_vazi_od, d_vazi_do, d_izdaden_od} – задоволува BCNF R2 {embg, g_ime, g_prezime, a_id, a_ulica, a_broj, a_vlez, a_stan, im_id, im_mesto, d_broj, a_id_gm, a_ulica_gm, a_broj_gm, a_vlez_gm, a_stan_gm} \\ embg →g_ime, g_prezime, a_id, d_broj \\ a_id → a_ulica, a_broj, a_vlez, a_stan, im_id \\ a_id_gm → a_ulica_gm, a_broj_gm, a_vlez_gm, a_stan_gm \\ im_id → im_mesto, a_id_gm \\ Не е во трета нормална форма поради: \\ im_id → im_mesto, a_id_gm \\ {im_id}+ = {im_mesto, a_id_gm, a_ulica_gm, a_broj_gm, a_vlez_gm, a_stan_gm} \\ R2_1 {im_id, im_mesto, a_id_gm, a_ulica_gm, a_broj_gm, a_vlez_gm, a_stan_gm} – задоволува втора нормална форма \\ im_id → im_mesto, a_id_gm \\ a_id_gm → a_ulica_gm, a_broj_gm, a_vlez_gm, a_stan_gm Не е во трета нормална форма поради: \\ a_id_gm → a_ulica_gm, a_broj_gm, a_vlez_gm, a_stan_gm \\ {a_id_gm}+ = {a_id_gm, a_ulica_gm, a_broj_gm, a_vlez_gm, a_stan_gm} \\ R2_1_1 = {a_id_gm, a_ulica_gm, a_broj_gm, a_vlez_gm, a_stan_gm} – задоволува BCNF \\ R2_1_2 = {im_id, im_mesto, a_id_gm} – задоволува BCNF R2_2 {embg, g_ime, g_prezime, a_id, a_ulica, a_broj, a_vlez, a_stan, d_broj, im_id} – задоволува втора нормална форма \\ embg →g_ime, g_prezime, a_id, d_broj \\ a_id → a_ulica, a_broj, a_vlez, a_stan, im_id Не е во трета нормална форма поради: \\ a_id → a_ulica, a_broj, a_vlez, a_stan, im_id \\ {a_id}+ = {a_id, a_ulica, a_broj, a_vlez, a_stan, im_id} R2_2_1 = {a_id, a_ulica, a_broj, a_vlez, a_stan}- задоволува BCNF \\ R2_2_2 = {embg, g_ime, g_prezime, a_id} – задоволува BCNF Конечно, првичната реализација се декомпонира на следните релации: R2_2_2 = {embg, g_ime, g_prezime, a_id} \\ R2_2_1 = {a_id, a_ulica, a_broj, a_vlez, a_stan} \\ R2_1_2 = {im_id, im_mesto, a_id*} *со оглед на тоа што адресите на избирачкото место и на граѓани се од ист домен, ја користиме истата релација на двете места \\ R1 {d_broj, d_vazi_od, d_vazi_do, d_izdaden_od} \\ == 2. Евиденција за поднесени приговори ||= ЕМБГ (embg) =||= Име (g_ime) =||= Презиме (g_prezime) =||= Адреса идентификатор =||= Улица (a_ulica) =||= Куќен број (a_broj) =||= Број влез (a_vlez) =||= Број стан (a_stan)s =||= Број на документ за идентицикација (d_broj) =||= Датум на важност од (d_vazi_od) =||= Датум на важност до (d_vazi_do) =||= Издавач на документот (d_izdaden_od) =||= Гласачко место број(im_id) =||= Гласачко место (im_mesto) =||= Адреса идентификатор =||= Улица (a_ulica) =||= Куќен број (a_broj) =||= Број влез (a_vlez) =||= Број стан (a_stan) =||= Број на приговорот (pr_id) =||= Тип проговор =||= Реализација на избори (ri_id) =||= Опис на приговорот (pr_opis) =||= Реализација на избори име (ri_ime) =||= Реализација на избори име (ri_datum) =||= Избори (i_id) =||= Избори име (i_ime) =|| || 0101002000000 || Петар || Петрески || 123 || Коле Неделковски || 13 || 1 || 2 || A111111 || 2020-01-01 || 2025-01-01 || МВР Скопје || 1234 || ОУ Кочо Рацин || 768 || Македонија || 1 || || || 1 || Граѓански || 1 || Прекршен јавен ред и мир поради хххх || Претседателски избори 2020 || || 1 || Претседателски избори || || 0101002000000 || Петра || Петреска || 123 || Коле Неделковски || 13 || 1 || 2 || A222222 || 2020-01-01 || 2025-01-01 || МВР Скопје || 1234 || ОУ Кочо Рацин || 768 || Македонија || 1 || || || 2 || Учеснички || 1 || Забележано неправилно однесување на комисијата || Претседателски избори 2020 || || 1 || Претседателски избори || R = {embg, g_ime, g_prezime, a_id, a_ulica, a_broj, a_vlez, a_stan, d_broj, d_vazi_od, d_vazi_do, d_izdaden, im_id, im_mesto, a_id_gm, a_ulica_gm, a_broj_gm, a_vlez_gm, a_stan_gm, pr_id, pr_tip, pr_opis, ri_id, ri_ime, ri_datum, i_id, i_ime} embg →g_ime, g_prezime, a_id, d_broj \\ a_id → a_ulica, a_broj, a_vlez, a_stan, im_id \\ a_id_gm → a_ulica_gm, a_broj_gm, a_vlez_gm, a_stan_gm \\ d_broj → d_vazi_od, d_vazi_do, d_izdaden_od \\ im_id → im_mesto, a_id_gm \\ pr_id → pr_opis, pr_tip, embg, im_id, ri_id \\ ri_id → ri_ime, ri_datum, i_id \\ i_id → i_ime \\ само лево: \\ pr_id лево и десно: \\ embg, a_id, d_broj, a_id_gm, im_id, ri_id, i_id само десно: \\ g_ime, g_prezime, a_ulica, a_broj, a_vlez, a_stan, d_vazi_od, d_vazi_do, d_izdaden_od, im_mesto, pr_opis, pr_tip, ri_ime, ri_datum, i_ime {pr_id}+ = {embg, g_ime, g_prezime, a_id, a_ulica, a_broj, a_vlez, a_stan, d_broj, d_vazi_od, d_vazi_do, d_izdaden, im_id, im_mesto, a_id_gm, a_ulica_gm, a_broj_gm, a_vlez_gm, a_stan_gm, pr_id, pr_tip, pr_opis, ri_id, ri_ime, ri_datum, i_id, i_ime} \\ {pr_id} е единствен кандидат клуч и примарен клуч. Во вака дефинираната релација нема повеќекратни зависности, па оттука следува дека задоволува прва нормална форма. \\ Клучот на релацијата е составен од само еден атрибут, па парцијална зависност не е возможна, затоа, задоволува втора нормална форма. ---- Не е во трета нормална форма поради: \\ d_broj → d_vazi_od, d_vazi_do, d_izdaden_od Декомпозиција \\ R1 {d_broj, d_vazi_od, d_vazi_do, d_izdaden_od} – задоволува BCNF \\ R2 {embg, g_ime, g_prezime, a_id, a_ulica, a_broj, a_vlez, a_stan, d_broj, im_id, im_mesto, a_id_gm, a_ulica_gm, a_broj_gm, a_vlez_gm, a_stan_gm, pr_id, pr_tip, pr_opis, ri_id, ri_ime, ri_datum, i_id, i_ime} \\ embg →g_ime, g_prezime, a_id, d_broj \\ a_id → a_ulica, a_broj, a_vlez, a_stan \\ a_id_gm → a_ulica_gm, a_broj_gm, a_vlez_gm, a_stan_gm \\ im_id → im_mesto, a_id_gm \\ pr_id → pr_opis, pr_tip, embg, im_id, ri_id \\ ri_id → ri_ime, ri_datum, i_id \\ i_id → i_ime \\ Не е во трета нормална форма поради: \\ im_id → im_mesto, a_id_gm \\ {im_id}+ = {im_mesto, a_id_gm, a_ulica_gm, a_broj_gm, a_vlez_gm, a_stan_gm} R2_1 {im_id, im_mesto, a_id_gm, a_ulica_gm, a_broj_gm, a_vlez_gm, a_stan_gm} – задоволува втора нормална форма \\ im_id → im_mesto, a_id_gm \\ a_id_gm → a_ulica_gm, a_broj_gm, a_vlez_gm, a_stan_gm Не е во трета нормална форма поради: \\ a_id_gm → a_ulica_gm, a_broj_gm, a_vlez_gm, a_stan_gm \\ {a_id_gm}+ = {a_id_gm, a_ulica_gm, a_broj_gm, a_vlez_gm, a_stan_gm} R2_1_1 = {a_id_gm, a_ulica_gm, a_broj_gm, a_vlez_gm, a_stan_gm} – задоволува BCNF \\ R2_1_2 = {im_id, im_mesto, a_id_gm} – задоволува BCNF R2_2 = {embg, g_ime, g_prezime, a_id, a_ulica, a_broj, a_vlez, a_stan, d_broj, im_id, pr_id, pr_tip, pr_opis, ri_id, ri_ime, ri_datum, i_id, i_ime} \\ embg →g_ime, g_prezime, a_id, d_broj \\ a_id → a_ulica, a_broj, a_vlez, a_stan \\ pr_id → pr_opis, pr_tip, embg, im_id, ri_id \\ ri_id → ri_ime, ri_datum, i_id \\ i_id → i_ime Не е во трета нормална форма поради: \\ a_id → a_ulica, a_broj, a_vlez, a_stan \\ {a_id}+ = {a_id, a_ulica, a_broj, a_vlez, a_stan} R2_2_1 = {a_id, a_ulica, a_broj, a_vlez, a_stan}- задоволува BCNF \\ R2_2_2 = {embg, g_ime, g_prezime, a_id, pr_id, pr_tip, pr_opis, ri_id, ri_ime, ri_datum, im_id, i_id, i_ime} – задоволува втора нормална форма \\ embg →g_ime, g_prezime, a_id, d_broj \\ pr_id → pr_opis, pr_tip, embg, im_id, ri_id \\ ri_id → ri_ime, ri_datum, i_id \\ i_id → i_ime Не е во трета нормална форма поради: \\ i_id → i_ime \\ {i_id}+ = {i_id, i_ime} R2_2_2_1 = {i_id, i_ime} – задоволува BCNF \\ R2_2_2_2 = {embg, g_ime, g_prezime, a_id, pr_id, pr_tip, pr_opis, ri_id, ri_ime, ri_datum, im_id, i_id} – задоволува втора нормална форма \\ embg →g_ime, g_prezime, a_id, d_broj \\ pr_id → pr_opis, pr_tip, embg, im_id, ri_id \\ ri_id → ri_ime, ri_datum, i_id Не е во трета нормална форма поради: \\ ri_id → ri_ime, ri_datum, i_id \\ {ri_id}+ = {ri_id, ri_ime, ri_datum, i_id} R2_2_2_2_1 = {ri_id, ri_ime, ri_datum, i_id} – задоволува BCNF \\ R2_2_2_2_2 = {embg, g_ime, g_prezime, a_id, pr_id, pr_tip, pr_opis} – задоволува втора нормална форма \\ embg →g_ime, g_prezime, a_id, d_broj \\ pr_id → pr_opis, pr_tip, embg, im_id, ri_id Не е во трета нормална форма поради: \\ embg →g_ime, g_prezime, a_id, d_broj \\ {embg}+ = {embg, g_ime, g_prezime, a_id, d_broj} R2_2_2_2_2_1 = {embg, g_ime, g_prezime, a_id, d_broj} – задоволува BCNF \\ R2_2_2_2_2_2 = {pr_opis, pr_tip, embg, im_id, ri_id} – задоволува BCNF == 3. Евиденција за пријавени кандидатури ||= ЕМБГ (embg) =||= Име (g_ime) =||= Презиме (g_prezime) =||= Адреса идентификатор =||= Улица (a_ulica) =||= Куќен број (a_broj) =||= Број влез (a_vlez) =||= Број стан (a_stan) =||= Број на документ за идентицикација (d_broj) =||= Датум на важност од (d_vazi_od) =||= Датум на важност до (d_vazi_do) =||= Издавач на документот (d_izdaden_od) =||= Гласачко место број(im_id) =||= Гласачко место (im_mesto) =||= Адреса идентификатор =||= Број на кандидатура (kan_id) =||= Опис на кандидатура (kan_opis) =||= Општина на кандидатура идентификатор (o_id) =||= Општина на кандидатура (o_ime) =||= Партија идентификатор =||= Партија име (p_id) =||= Улица (a_ulica) =||= Куќен број (a_broj) =||= Број влез (a_vlez) =||= Број стан (a_stan) =||= Реализација на избори (ri_id) =||= Реализација на избори име (ri_ime) =||= Реализација на избори име (ri_datum) =||= Избори (i_id) =||= Избори име (i_ime) =|| ||= 0101002000000 =||= Петар =||= Петрески =||= 123 =||= Коле Неделковски =||= 13 =||= 1 =||= 2 =||= A111111 =||= 2020-01-01 =||= 2025-01-01 =||= МВР Скопје =||= 1234 =||= ОУ Кочо Рацин =||= 768 =||= 1 =||= За подобра општина =||= 34 =||= Центар =||= 1 =||= Партија 1 =||= Партизанска =||= 1 =||= 1 =||= 1 =||= 1 =||= Локални избори 2020 =||= =||= 2 =||= Локални избори =|| ||= 0101002000000 =||= Петра =||= Петреска =||= 123 =||= Коле Неделковски =||= 13 =||= 1 =||= 2 =||= A222222 =||= 2020-01-01 =||= 2025-01-01 =||= МВР Скопје =||= 1234 =||= ОУ Кочо Рацин =||= 768 =||= 2 =||= За подобрување на државата =||= =||= =||= =||= =||= =||= =||= =||= =||= 1 =||= Претседателски избори 2020 =||= =||= 1 =||= Претседателски избори =|| R = {embg, g_ime, g_prezime, a_id, a_ulica, a_broj, a_vlez, a_stan, d_broj, d_vazi_od, d_vazi_do, d_izdaden_od, kan_id, kan_opis, o_id, o_ime, p_id, p_ime, a_id_p, a_ulica_p, a_broj_p, a_vlez_p, a_stan_p, ri_id, ri_ime, ri_datum, i_id, i_ime} embg → g_ime, g_prezime, a_id, d_broj \\ a_id → a_ulica, a_broj, a_vlez, a_stan \\ d_broj → d_vazi_od, d_vazi_do, d_izdaden_od \\ kan_id → kan_opis, embg, o_id, p_id, ri_id \\ p_id → p_ime, a_id_p \\ a_id_p → a_ulica_p, a_broj_p, a_vlez_p, a_stan_p \\ ri_id → ri_ime, ri_datum, i_id \\ i_id → i_ime \\ o_id → o_ime лево: \\ kan_id лево и десно: \\ embg, a_id, d_broj, p_id, a_id_p, ri_id, i_id, o_id десно: \\ g_ime, g_prezime, a_ulica, a_broj, a_vlez, a_stan, d_vazi_od, d_vazi_do, d_izdaden_od, kan_opis, p_ime, a_ulica_p, a_broj_p, a_vlez_p, a_stan_p, ri_ime, ri_datum, i_ime {kan_id}+ = {kan_opis, embg, o_id, p_id, ri_id, g_ime, g_prezime, a_id, d_broj, d_vazi_od, d_vazi_do, d_izdaden_od, a_ulica, a_broj, a_vlez, a_stan, p_ime, a_id_p, a_ulica_p, a_broj_p, a_vlez_p, a_stan_p, ri_ime, ri_datum, i_id, i_ime, o_ime} \\ {kan_id} е единствен кандидат клуч и примарен клуч. Во вака дефинираната релација нема повеќекратни зависности, па оттука следува дека задоволува прва нормална форма. \\ Клучот на релацијата е составен од само еден атрибут, па парцијална зависност не е возможна, затоа, задоволува втора нормална форма. \\ ---- R = {kan_id, kan_opis, embg, o_id, p_id, ri_id, g_ime, g_prezime, a_id, d_broj, d_vazi_od, d_vazi_do, d_izdaden_od, a_ulica, a_broj, a_vlez, a_stan, p_ime, a_id_p, a_ulica_p, a_broj_p, a_vlez_p, a_stan_p, ri_ime, ri_datum, i_id, i_ime, o_ime} \\ Не е во трета нормална форма поради: \\ d_broj → d_vazi_od, d_vazi_do, d_izdaden_od Декомпозиција: \\ R1 = {kan_id, kan_opis, embg, o_id, p_id, ri_id, g_ime, g_prezime, a_id, d_broj, a_ulica, a_broj, a_vlez, a_stan, p_ime, a_id_p, a_ulica_p, a_broj_p, a_vlez_p, a_stan_p, ri_ime, ri_datum, i_id, i_ime, o_ime} Не задоволува трета нормална форма поради тоа што постојат транзитивни зависности: \\ a_id → a_ulica, a_broj, a_vlez, a_stan Декомпозиција: \\ R1_1 = {kan_id, kan_opis, embg, o_id, p_id, ri_id, g_ime, g_prezime, a_id, d_broj, p_ime, a_id_p, a_ulica_p, a_broj_p, a_vlez_p, a_stan_p, ri_ime, ri_datum, i_id, i_ime, o_ime} Не задоволува трета нормална форма поради тоа што постојат транзитивни зависности: \\ a_id_p → a_ulica_p, a_broj_p, a_vlez_p, a_stan_p \\ Декомпозиција: \\ R1_1_1 = {kan_id, kan_opis, embg, o_id, p_id, ri_id, g_ime, g_prezime, a_id, d_broj, p_ime, a_id_p, ri_ime, ri_datum, i_id, i_ime, o_ime} \\ Не задоволува трета нормална форма поради тоа што постојат транзитивни зависности: \\ i_id → i_ime \\ Декомпозиција: R1_1_1_1 = {kan_id, kan_opis, embg, o_id, p_id, ri_id, ri_ime, ri_datum, g_ime, g_prezime, a_id, d_broj, p_ime, a_id_p, i_id, o_ime} Не задоволува трета нормална форма поради тоа што постојат транзитивни зависности: \\ ri_id → ri_ime, ri_datum, i_id Декомпозиција: \\ R1_1_1_1_1 = {kan_id, kan_opis, embg, o_id, p_id, ri_id, g_ime, g_prezime, a_id, d_broj, p_ime, a_id_p, o_ime} Не задоволува трета нормална форма поради тоа што постојат транзитивни зависности: \\ o_id → o_ime Декомпозиција: \\ R1_1_1_1_1_1 = {kan_id, kan_opis, embg, o_id, p_id, ri_id, g_ime, g_prezime, a_id, d_broj, p_ime, a_id_p} \\ Не задоволува трета нормална форма поради тоа што постојат транзитивни зависности: \\ p_id → p_ime, a_id_p Декомпозиција: \\ R1_1_1_1_1_1_1 = {kan_id, kan_opis, embg, o_id, p_id, ri_id, g_ime, g_prezime, a_id, d_broj} Не задоволува трета нормална форма поради тоа што постојат транзитивни зависности: \\ embg → g_ime, g_prezime, a_id, d_broj Декомпозиција: \\ R1_1_1_1_1_1_1_1 = {kan_id, kan_opis, embg, o_id, p_id, ri_id} – задоволува BCNF \\ R1_1_1_1_1_1_1_2 = {embg, g_ime, g_prezime, a_id, d_broj} – задоволува BCNF \\ R1_1_1_1_1_1_2 = {p_id, p_ime, a_id_p} – задоволува BCNF \\ R1_1_1_1_1_2 = {o_id, o_ime} – задоволува BCNF \\ R1_1_1_1_2 = {ri_id, ri_ime, ri_datum, i_id} – задоволува BCNF \\ R1_1_1_2 = {i_id, i_ime} – задоволува BCNF \\ R1_1_2 = {a_id_p, a_ulica_p, a_broj_p, a_vlez_p, a_stan_p} – задоволува BCNF \\ R1_2 = {a_id, a_ulica, a_broj, a_vlez, a_stan} – задоволува BCNF \\ R2 = {d_broj, d_vazi_od, d_vazi_do, d_izdaden_od} – задоволува BCNF \\