= Нормализација и подобрувања на дизајнот на базата == Поделба на доменот според типот на евиденција Бидејќи нашиот модел го користи апликација којашто служи за различни евиденции од областа на реализација на избори, практично е невозможно да извршиме нормализација користејќи една табела во којашто ќе бидат сместени сите атрибути. Затоа решивме да ги прикажеме различните извештаи кои произлегуваат од различните сценарија на примена на моделот и како такви, парцијално да ги нормалзираме и така добиените ентитети да ги поврземе во целина. == 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 \\ \\ \\ == 4. Кандидатски листи \\ ||= Кандидатска листа идентификатор (kl_id) =||= Кандидатска листа име (kl_ime) =||= Изборна единица кандидатура идентификатор (ie_id) =||= Изборна единица на кандидатура (ie_ime) =||= Изборна единица број на пратеници (ie_broj_pratenici) =||= Општина на кандидатура идентификатор (o_id) =||= Општина на кандидатура (o_ime) =||= Партија идентификатор (p_id) =||= Партија име (p_ime) =||= Улица (a_ulica) =||= Куќен број (a_broj) =||= Број влез (a_vlez) =||= Број стан (a_stan) =||= Реализација на избори идентификатор (ri_id) =||= Реализација на избори име (ri_ime) =||= Реализација на избори датум (ri_datum) =||= Избори идентификатор (i_id) =||= Избори име (i_ime) =|| || 1 || За почиста средина || || || || 34 || Центар || 1 || Партија 1 || Партизанска || 1 || 1 || 1 || 1 || Локални избори 2020 || 2020-05-01 || 2 || Локални избори || || 2 || Победува ме || 1 || Изборна единица 1 || 20 || || || || || || || || || 1 || Претседателски избори 2020 || 2020-06-01 || 1 || Претседателски избори || \\ R = {kl_id, kl_ime, ie_id, ie_ime, ie_broj_pratenici, o_id, o_ime, p_id, p_ime, a_id, a_ulica, a_broj, a_vlez, a_stan, ri_id, ri_ime, ri_datum, i_id, i_ime} \\ Множество функциски зависности: \\ kl_id → kl_ime, p_id, o_id, ri_id, ie_id \\ ie_id → ie_ime, ie_broj_pratenici \\ o_id → o_ime \\ p_id → p_ime, a_id \\ a_id → a_ulica, a_broj, a_vlez, a_stan \\ ri_id → ri_ime, ri_datum, i_id \\ i_id → i_ime \\ Појавување на атрибутите во функциските зависности само лево: kl_id лево и десно: p_id, o_id, ri_id, ie_id, a_id, i_id само десно: kl_ime, ie_ime, ie_broj_pratenici, o_ime, p_ime, a_ulica, a_broj, a_vlez, a_stan, ri_ime, ri_datum, i_ime Според претходната анализа, се обидуваме да го провериме kl_id како кандидат клуч: {kl_id}+ = {kl_id, kl_ime, ie_id, ie_ime, ie_broj_pratenici, o_id, o_ime, p_id, p_ime, a_id, a_ulica, a_broj, a_vlez, a_stan, ri_id, ri_ime, ri_datum, i_id, i_ime} {kl_id} е единствен кандидат клуч и примарен клуч. Во вака дефинираната релација нема повеќекратни зависности, па оттука следува дека задоволува прва нормална форма. Клучот на релацијата е составен од само еден атрибут, па парцијална зависност не е возможна, затоа, задоволува втора нормална форма. ----------------------------- Претходно дефинираната релација не е во трета нормална форма поради тоа што постои транзитивна зависност: i_id → i_ime {i_id}+ = {i_id, i_ime} Декомпозиција R1 и R2 R1 = {i_id, i_ime} – задоволува BCNF R2 = {kl_id, kl_ime, ie_id, ie_ime, ie_broj_pratenici, o_id, o_ime, p_id, p_ime, a_id, a_ulica, a_broj, a_vlez, a_stan, ri_id, ri_ime, ri_datum, i_id} – задоволува втора нормална форма Множество функциски зависности кај R2: kl_id → kl_ime, p_id, o_id, ri_id, ie_id ie_id → ie_ime, ie_broj_pratenici o_id → o_ime p_id → p_ime, a_id a_id → a_ulica, a_broj, a_vlez, a_stan ri_id → ri_ime, ri_datum, i_id R2 не е во трета нормална форма поради тоа што постои транзитивна зависност: ri_id → ri_ime, ri_datum, i_id {ri_id}+ = {ri_id, ri_ime, ri_datum, i_id} Декомпозиција R2_1 и R2_2 R2_1 = {ri_id, ri_ime, ri_datum, i_id} – задоволува BCNF R2_2 = {kl_id, kl_ime, ie_id, ie_ime, ie_broj_pratenici, o_id, o_ime, p_id, p_ime, a_id, a_ulica, a_broj, a_vlez, a_stan, ri_id} – задоволува втора нормална форма Множество функциски зависности кај R2_2: kl_id → kl_ime, p_id, o_id, ri_id, ie_id ie_id → ie_ime, ie_broj_pratenici o_id → o_ime p_id → p_ime, a_id a_id → a_ulica, a_broj, a_vlez, a_stan R2_2 не е во трета нормална форма поради тоа што постои транзитивна зависност: 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 и R2_2_2 R2_2_1 = {a_id, a_ulica, a_broj, a_vlez, a_stan} – задоволува BCNF R2_2_2 = {kl_id, kl_ime, ie_id, ie_ime, ie_broj_pratenici, o_id, o_ime, p_id, p_ime, a_id, ri_id} – задоволува втора нормална форма Множество функциски зависности кај R2_2_2: kl_id → kl_ime, p_id, o_id, ri_id, ie_id ie_id → ie_ime, ie_broj_pratenici o_id → o_ime p_id → p_ime, a_id R2_2_2 не е во трета нормална форма поради тоа што постои транзитивна зависност: p_id → p_ime, a_id {p_id}+ = {p_id, p_ime, a_id} Декомпозиција R2_2_2_1 и R2_2_2_2 R2_2_2_1 = {p_id, p_ime, a_id} – задоволува BCNF R2_2_2_2 = {kl_id, kl_ime, ri_id, ie_id, ie_ime, ie_broj_pratenici, o_id, o_ime} – задоволува втора нормална форма Множество функциски зависности кај R2_2_2_2: kl_id → kl_ime, p_id, o_id, ri_id, ie_id ie_id → ie_ime, ie_broj_pratenici o_id → o_ime R2_2_2_2 не е во трета нормална форма поради тоа што постои транзитивна зависност: o_id → o_ime {o_id}+ = {o_id, o_ime} Декомпозиција R2_2_2_2_1 и R2_2_2_2_2 R2_2_2_2_1 = {o_id, o_ime} – задоволува BCNF R2_2_2_2_2 = {kl_id, kl_ime, ri_id, ie_id, ie_ime, ie_broj_pratenici, o_id} – задоволува втора нормална форма Множество функциски зависности кај R2_2_2_2: kl_id → kl_ime, p_id, o_id, ri_id, ie_id ie_id → ie_ime, ie_broj_pratenici R2_2_2_2_2 не е во трета нормална форма поради тоа што постои транзитивна зависност: ie_id → ie_ime, ie_broj_pratenici {ie_id}+ = {ie_id, ie_ime, ie_broj_pratenici} Декомпозиција R2_2_2_2_2_1 и R2_2_2_2_2_2 R2_2_2_2_2_1 = {ie_id, ie_ime, ie_broj_pratenici} – задоволува BCNF R2_2_2_2_2_2 = {kl_id, kl_ime, ie_id, o_id, ri_id} – задоволува BCNF Конечно, првичната реализација се декомпонира на следните релации (сите се во BCNF): R1 = {i_id, i_ime} R2_1 = {ri_id, ri_ime, ri_datum, i_id} R2_2_1 = {a_id, a_ulica, a_broj, a_vlez, a_stan} R2_2_2_1 = {p_id, p_ime, a_id} R2_2_2_2_1 = {o_id, o_ime} R2_2_2_2_2_1 = {ie_id, ie_ime, ie_broj_pratenici} R2_2_2_2_2_2 = {kl_id, kl_ime, ie_id, o_id, ri_id} \\ == 5. Коалициони партнери ||= Партија идентификатор (p_id) =||= Партија име (p_ime) =||= Улица (a_ulica) =||= Куќен број (a_broj) =||= Број влез (a_vlez) =||= Број стан (a_stan) =||= Коалиција идентификатор (koa_id) =||= Коалиција име (koa_ime) =||= Коалиција мото (koa_moto) =||= Општина на коалиција идентификатор (o_id) =||= Општина на коалиција (o_ime) =||= Изборна единица на коалиција идентификатор (ie_id) =||= Изборна единица на коалиција (ie_ime) =||= Реализација на избори идентификатор (ri_id) =||= Реализација на избори име (ri_ime) =||= Реализација на избори датум (ri_datum) =||= Избори идентификатор (i_id) =||= Избори име (i_ime) =|| || 1 || Партија 1 || Партизанска || 1 || 1 || 1 || 1 || Коалиција 1 || Заедно сме посилни || || || 1 || Изборна единица 1 || 1 || Локални избори 2020 || 2020-05-01 || 2 || Локални избори || || 2 || Партија 2 || Илинден || 2 || 1 || 3 || 1 || Коалиција 1 || Заедно сме посилни || || || 1 || Изборна единица 1 || 1 || Претседателски избори 2020 || 2020-06-01 || 2 || Претседателски избори || || 3 || Партија 1 || Партизанска || 1 || 1 || 1 || 1 || Коалиција 2 || Мото || 24 || Карпош || || || || || || || || || 3 || Партија 3 || Коле Неделковски || 37 || || || || Коалиција 2 || Мото || 24 || Карпош || || || || || || || || \\ R = {p_id, p_ime, a_id, a_ulica, a_broj, a_vlez, a_stan, koa_id, koa_ime, koa_moto, o_id, o_ime, ie_id, ie_ime, ri_id, ri_ime, ri_datum, i_id, i_ime} Множество функциски зависности: p_id → p_ime, a_id a_id → a_ulica, a_broj, a_vlez, a_stan koa_id → koa_ime, koa_moto, o_id, ri_id, ie_id o_id → o_ime ie_id → ie_ime ri_id → ri_ime, ri_datum, i_id i_id → i_ime Појавување на атрибутите во функциските зависности само лево: p_id, koa_id лево и десно: a_id, o_id, ri_id, ie_id, ri_id, i_id само десно: p_ime, a_ulica, a_broj, a_vlez, a_stan, koa_ime, koa_moto, o_ime, ie_ime, ri_ime, ri_datum, i_ime Според претходната анализа, се обидуваме да го провериме {pr_id, koa_id} како кандидат клуч: {p_id, koa_id}+ = {p_id, p_ime, a_id, a_ulica, a_broj, a_vlez, a_stan, koa_id, koa_ime, koa_moto, o_id, o_ime, ie_id, ie_ime, ri_id, ri_ime, ri_datum, i_id, i_ime} = R {p_id, koa_id} е единствен кандидат клуч и примарен клуч Во вака дефинираната релација нема повеќекратни зависности, па оттука следува дека задоволува прва нормална форма. --------------------- Претходно дефинираната релација не е во втора нормална форма поради тоа што постои парцијална зависност: p_id → p_ime, a_id {p_id}+ = {p_id, p_ime, a_id, a_ulica, a_broj, a_vlez, a_stan} Декомпозиција R1 и R2 R1 = {p_id, p_ime, a_id, a_ulica, a_broj, a_vlez, a_stan} – задоволува втора нормална форма Множество функциски зависности кај R1: p_id → p_ime, a_id a_id → a_ulica, a_broj, a_vlez, a_stan Претходно дефинираната релација не е во трета нормална форма поради тоа што постои транзитивна зависност: a_id → a_ulica, a_broj, a_vlez, a_stan {а_id}+ = {а_id, a_ulica, a_broj, a_vlez, a_stan} Декомпозиција R1_1 и R1_2 R1_1 = {а_id, a_ulica, a_broj, a_vlez, a_stan} – задоволува BCNF R1_2 = {p_id, p_ime, a_id} – задоволува BCNF R2 = {koa_id, koa_ime, koa_moto, o_id, o_ime, ie_id, ie_ime, ri_id, ri_ime, ri_datum, i_id, i_ime} – задоволува втора нормална форма Множество функциски зависности кај R2: koa_id → koa_ime, koa_moto, o_id, ri_id, ie_id o_id → o_ime ie_id → ie_ime ri_id → ri_ime, ri_datum, i_id i_id → i_ime Претходно дефинираната релација не е во трета нормална форма поради тоа што постои транзитивна зависност: o_id → o_ime {o_id}+ = {o_id, o_ime} Декомпозиција R2_1 и R2_2 R2_1 = {o_id, o_ime} – задоволува BCNF R2_2 = {koa_id, koa_ime, koa_moto, o_id, ie_id, ie_ime, ri_id, ri_ime, ri_datum, i_id, i_ime} – задоволува втора нормална форма Множество функциски зависности кај R2_2: koa_id → koa_ime, koa_moto, o_id, ri_id, ie_id ie_id → ie_ime ri_id → ri_ime, ri_datum, i_id i_id → i_ime Претходно дефинираната релација не е во трета нормална форма поради тоа што постои транзитивна зависност: ie_id → ie_ime {ie_id}+ = {ie_id, o_ime} Декомпозиција R2_2_1 и R2_2_2 R2_2_1 = {ie_id, o_ime} – задоволува BCNF R2_2_2 = {koa_id, koa_ime, koa_moto, o_id, ri_id, ri_ime, ri_datum, i_id, i_ime} Множество функциски зависности кај R2_2_2: koa_id → koa_ime, koa_moto, o_id, ri_id, ie_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 и R2_2_2_2 R2_2_2_1 = {i_id, i_ime} – задоволува BCNF R2_2_2_2 = {koa_id, koa_ime, koa_moto, o_id, ri_id, ri_ime, ri_datum, i_id} – задоволува втора нормална форма Множество функциски зависности кај R2_2_2_2: koa_id → koa_ime, koa_moto, o_id, ri_id, ie_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 и R2_2_2_2_2 R2_2_2_2_1 = {ri_id, ri_ime, ri_datum, i_id} – задоволува BCNF R2_2_2_2_2 = {koa_id, koa_ime, koa_moto, o_id, ri_id} – задоволува BCNF R2_2 = {p_id, koa_id} – задоволува BCNF Конечно, првичната реализација се декомпонира на следните релации (сите се во BCNF): R1_1 = {а_id, a_ulica, a_broj, a_vlez, a_stan} R1_2 = {p_id, p_ime, a_id} R2_1 = {o_id, o_ime} R2_2 = {p_id, koa_id} R2_2_1 = {ie_id, o_ime} R2_2_2_1 = {i_id, i_ime} R2_2_2_2_1 = {ri_id, ri_ime, ri_datum, i_id} R2_2_2_2_2 = {koa_id, koa_ime, koa_moto, o_id, ri_id} == 6. Членови на комисии - избирачки одбори ||= ЕМБГ (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) =||= Комисија идентификатор =||= Реализација на избори (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 || || || 1 || 1 || Локални избори 2020 || 2020-06-01 || 2 || Локални избори || || 0101003000000 || Петра || Петреска || 123 || Коле Неделковски || 13 || 1 || 2 || A222222 || 2020-01-01 || 2025-01-01 || МВР Скопје || 1234 || ОУ Кочо Рацин || 768 || Македонија || 1 || || || 1 || 1 || Локални избори 2020 || 2020-06-01 || 2 || Локални избори || || 0202002000000 || Марко || Марковски || 563 || Мајка Тереза || 29 || 1 || 3 || A311111 || 2020-01-01 || 2025-01-01 || МВР Скопје || 2768 || ОУ Киро Глигоров || 143 || Васил Ѓоргов || 17 || || || 2 || 1 || Претседателски избори 2020 || 2020-05-01 || 1 || Претседателски избори || || 0301003000000 || Марија || Петреска || 789 || Франклин Рузвелт || 67 || 2 || 6 || A232222 || 2020-01-01 || 2025-01-01 || МВР Скопје || 1234 || ОУ Киро Глигоров || 143 || Васил Ѓоргов || 17 || || || 2 || 1 || Претседателски избори 2020 || 2020-05-01 || 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_im, a_ulica_im, a_vlez_im, a_stan_im, kom_id, 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_im → a_ulica_im, a_broj_im, a_vlez_im, a_stan_im d_broj → d_vazi_od, d_vazi_do, d_izdaden_od im_id → im_mesto, a_id_im ri_id → ri_ime, ri_datum, i_id i_id → i_ime kom_id → ri_id, im_id Појавување на атрибутите во функциските зависности само лево: embg, kom_id лево и десно: a_id, d_broj, im_id, ri_id, i_id, a_id_im десно: g_ime, g_prezime, a_ulica, a_broj, a_vlez, a_stan, ri_ime, ri_datum, im_mesto, d_vazi_od, d_vazi_do, d_izdaden_od, a_ulica_im, a_broj_im, a_vlez_im, a_stan_im Според претходната анализа, се обидуваме да го провериме {embg, kom_id} како кандидат клуч: {embg, kom_id}+ = {g_ime, g_prezime, a_id, d_broj , a_ulica, a_broj, a_vlez, a_stan, im_id, im_mesto, a_id_im, kom_id , a_ulica_im, a_broj_im, a_vlez_im, a_stan_im , ri_id , ri_ime, ri_datum, i_id , i_ime, d_vazi_od, d_vazi_do, d_izdaden_od} {embg, kom_id} е единствен кандидат клуч и примарен клуч. Во вака дефинираната релација нема повеќекратни зависности, па оттука следува дека задоволува прва нормална форма. ----------------------------- Претходно дефинираната релација не е во втора нормална форма поради тоа што постои парцијална зависност: embg → g_ime, g_prezime, a_id, d_broj, a_ulica, a_broj, a_vlez, a_stan, d_vazi_od, d_vazi_do, d_izdaden_od Декомпозиција R1 и R2 R1 = {emgb, kom_id, ri_id, im_id, im_mesto, a_id_im, a_ulica_im, a_broj_im, a_vlez_im, a_stan_im, ri_ime, ri_datum, i_id, i_ime} Множество функциски зависности кај R1: a_id_im → a_ulica_im, a_broj_im, a_vlez_im, a_stan_im im_id → im_mesto, a_id_im ri_id → ri_ime, ri_datum, i_id i_id → i_ime kom_id → ri_id, im_id Претходно дефинираната релација не е во втора нормална форма поради тоа што постои парцијална зависност: kom_id → ri_id, im_id, im_mesto, a_id_im, a_ulica_im, a_broj_im, a_vlez_im, a_stan_im, ri_ime, ri_datum, i_id, i_ime Декомпозиција R1_1 и R1_2 R1_1 = {embg, kom_id} – задоволува BCNF R1_2 = {kom_id, ri_id, im_id, im_mesto, a_id_im, a_ulica_im, a_broj_im, a_vlez_im, a_stan_im, ri_ime, ri_datum, i_id, i_ime} - задоволува втора нормална форма Множество функциски зависности кај R1_2: a_id_im → a_ulica_im, a_broj_im, a_vlez_im, a_stan_im im_id → im_mesto, a_id_im ri_id → ri_ime, ri_datum, i_id i_id → i_ime kom_id → ri_id, im_id R1_2 не е во трета нормална форма поради тоа што постои транзитивна зависност: im_id → im_mesto, a_id_im Декомпозиција R1_2_1 и R1_2_2 R1_2_1 = {kom_id, ri_id, ri_ime, ri_datum, i_id, i_ime, im_id} Множество функциски зависности кај R1_2_1: ri_id → ri_ime, ri_datum, i_id i_id → i_ime kom_id → ri_id, im_id R1_2_1 не е во трета нормална форма поради тоа што постои транзитивна зависност: ri_id → ri_ime, ri_datum Декомпозиција R1_2_1_1 и R1_2_1_2 R1_2_1_1 = {kom_id, ri_id, i_id, i_ime, im_id} R1_2_1_1 не е во трета нормална форма поради тоа што постои транзитивна зависност: i_id → i_ime Декомпозиција R1_2_1_1_1 и R1_2_1_1_2 R1_2_1_1_1 = {kom_id, ri_id, i_id, im_id} – задоволува BCNF R1_2_1_1_2 = {i_id, i_ime} – задоволува BCNF R1_2_1_2 = {ri_id, ri_ime, ri_datum} – задоволува BCNF R1_2_2 = {im_id, im_mesto, a_id_im, a_ulica_im, a_broj_im, a_vlez_im, a_stan_im} Множество функциски зависности кај R1_2_2: a_id_im → a_ulica_im, a_broj_im, a_vlez_im, a_stan_im im_id → im_mesto, a_id_im R1_2_2 не е во трета нормална форма поради тоа што постои транзитивна зависност: a_id_im → a_ulica_im, a_broj_im, a_vlez_im, a_stan_im Декомпозиција R1_2_2_1 и R1_2_2_2 R1_2_2_1 = {im_id, im_mesto, a_id_im} – задоволува BCNF R1_2_2_2 = {a_id_im, a_ulica_im, a_broj_im, a_vlez_im, a_stan_im} – задоволува BCNF R2 = {embg, g_ime, g_prezime, a_id, d_broj, a_ulica, a_broj, a_vlez, a_stan, d_vazi_od, d_vazi_do, d_izdaden_od} Множество функциски зависности кај R2: 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 R2 нема парцијални зависности, задоволува второ ниво. Но, има транзитивни зависности и поради тоа не задоволува трето ниво. a_id → a_ulica, a_broj, a_vlez, a_stan Декомпозиција R2_1 и R2_2 R2_1 = {embg, g_ime, g_prezime, a_id, d_broj, d_vazi_od, d_vazi_do, d_izdaden_od} Множество функциски зависности кај R2_1: embg → g_ime, g_prezime, a_id, d_broj d_broj → d_vazi_od, d_vazi_do, d_izdaden_od R2_1 не е во трета нормална форма поради тоа што постои транзитивна зависност: d_broj → d_vazi_od, d_vazi_do, d_izdaden_od Декомпозиција R2_1_1 и R2_1_2 R2_1_1 = {embg, g_ime, g_prezime, a_id, d_broj} – задоволува BCNF R2_1_2 = {d_broj, d_vazi_od, d_vazi_do, d_izdaden_od} – задоволува BCNF R2_2 = {a_id, a_ulica, a_broj, a_vlez, a_stan} – задоволува BCNF Конечно, првичната реализација се декомпонира на следните релации (сите се во BCNF): R1_1 = {embg, kom_id} R2_2 = {a_id, a_ulica, a_broj, a_vlez, a_stan} R2_1_1 = {embg, g_ime, g_prezime, a_id, d_broj} R2_1_2 = {d_broj, d_vazi_od, d_vazi_do, d_izdaden_od} R1_2_1_2 = {ri_id, ri_ime, ri_datum} R1_2_2_1 = {im_id, im_mesto, a_id_im} R1_2_2_2 = {a_id_im, a_ulica_im, a_broj_im, a_vlez_im, a_stan_im} R1_2_1_1_1 = {kom_id, ri_id, i_id, im_id} R1_2_1_1_2 = {i_id, i_ime} == 7. Излезност на граѓаните на реализација на избори ||= ЕМБГ (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) =||= Реализација на избори (ri_id) =||= Реализација на избори име (ri_ime) =||= Реализација на избори име (ri_datum) =||= Избори (i_id) =||= Избори име (i_ime) =||= Учество во на избори идентификатор (ug_id) =||= Време на гласање (ug_vreme) =|| || 0101002000000 || Петар || Петрески || 123 || Коле Неделковски || 13 || 1 || 2 || A111111 || 2020-01-01 || 2025-01-01 || МВР Скопје || 1234 || ОУ Кочо Рацин || 768 || Македонија || 1 || || || 1 || Локални избори 2020 || 2020-05-01 || 2 || Локални избори || 43578 || 2020-05-01 13:38:37 || || 0201002000000 || Петра || Петреска || 123 || Коле Неделковски || 13 || 1 || 2 || A222222 || 2020-01-01 || 2025-01-01 || МВР Скопје || 1234 || ОУ Кочо Рацин || 768 || Македонија || 1 || || || 1 || Претседателски избори 2020 || 2020-06-01 || 1 || Претседателски избори || 82134 || 2020-06-01 17:18:11 || \\ 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, ri_id, ri_ime, ri_datum, i_id, i_ime, ug_id, ug_vreme} Множество функциски зависности: 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 ri_id → ri_ime, ri_datum, i_id i_id → i_ime ug_id → ug_vreme, embg, ri_id, im_id Појавување на атрибутите во функциските зависности само лево: ug_id лево и десно: a_id, d_broj, im_id, a_id_gm, embg, i_id, ri_id само десно: 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, ri_datum, i_ime, ug_vreme Според претходната анализа, се обидуваме да го провериме ug_id како кандидат клуч: {ug_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_od, im_id, im_mesto, a_id_gm, a_ulica_gm, a_broj_gm, a_vlez_gm, a_stan_gm, ri_id, ri_ime, ri_datum, i_id, i_ime, ug_id, ug_vreme} = R {ug_id} е единствен кандидат клуч и примарен клуч. Во вака дефинираната релација нема повеќекратни зависности, па оттука следува дека задоволува прва нормална форма. Клучот на релацијата е составен од само еден атрибут, па парцијална зависност не е возможна, затоа, задоволува втора нормална форма. --------------------- Претходно дефинираната релација не е во трета нормална форма поради тоа што постои транзитивна зависност: d_broj → d_vazi_od, d_vazi_do, d_izdaden_od Декомпозиција R1 и R2 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, ri_id, ri_ime, ri_datum, i_id, i_ime, ug_id, ug_vreme} Множество функциски зависности кај R2: 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 ri_id → ri_ime, ri_datum, i_id i_id → i_ime ug_id → ug_vreme, embg, ri_id, im_id R2 не е во трета нормална форма поради тоа што постои транзитивна зависност: 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 и R2_2 R2_1 {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_id_gm → a_ulica_gm, a_broj_gm, a_vlez_gm, a_stan_gm R2_1 не е во трета нормална форма поради тоа што постои транзитивна зависност: 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 и R2_1_2 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, a_id_gm, ri_id, ri_ime, ri_datum, i_id, i_ime, ug_id, ug_vreme} Множество функциски зависности кај R2_2: embg →g_ime, g_prezime, a_id, d_broj a_id → a_ulica, a_broj, a_vlez, a_stan ri_id → ri_ime, ri_datum, i_id i_id → i_ime ug_id → ug_vreme, embg, ri_id, im_id R2_2 не е во трета нормална форма поради тоа што постои транзитивна зависност: 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 и R2_2_2 R2_2_1 = {a_id, a_ulica, a_broj, a_vlez, a_stan} - задоволува BCNF R2_2_2 = {embg, g_ime, g_prezime, a_id, im_id, a_id_gm, ri_id, ri_ime, ri_datum, i_id, i_ime, ug_id, ug_vreme} – задоволува втора нормална форма Множество функциски зависности кај R2_2_2: embg →g_ime, g_prezime, a_id, d_broj ri_id → ri_ime, ri_datum, i_id i_id → i_ime R2_2_2 не е во трета нормална форма поради тоа што постои транзитивна зависност: i_id → i_ime {i_id}+ = {i_id, i_ime} Декомпозиција R2_2_2_1 и R2_2_2_2 R2_2_2_1 = {i_id, i_ime} – задоволува BCNF R2_2_2_2 = {embg, g_ime, g_prezime, a_id, im_id, a_id_gm, ri_id, ri_ime, ri_datum, i_id, ug_id, ug_vreme} – задоволува втора нормална форма Множество функциски зависности кај R2_2_2_2: embg →g_ime, g_prezime, a_id, d_broj ri_id → ri_ime, ri_datum, i_id ug_id → ug_vreme, embg, ri_id, im_id R2_2_2_2 не е во трета нормална форма поради тоа што постои транзитивна зависност: ri_id → ri_ime, ri_datum, i_id {ri_id}+ = {ri_id, ri_ime, ri_datum, i_id} Декомпозиција R2_2_2_2_1 и R2_2_2_2_2 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, im_id, a_id_gm, ri_id, ug_id, ug_vreme} – задоволува втора нормална форма Множество функциски зависности кај R2_2_2_2_2: embg →g_ime, g_prezime, a_id, d_broj ug_id → ug_vreme, embg, ri_id, im_id R2_2_2_2_2 не е во трета нормална форма поради тоа што постои транзитивна зависност: 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 и R2_2_2_2_2_2 R2_2_2_2_2_1 = {embg, g_ime, g_prezime, a_id, d_broj} – задоволува BCNF R2_2_2_2_2_2 = {ug_id, ug_vreme, embg, ri_id, im_id} – задоволува BCNF Конечно, првичната реализација се декомпонира на следните релации (сите се во BCNF): R1 {d_broj, d_vazi_od, d_vazi_do, d_izdaden_od} R2_1_1 = {a_id_gm, a_ulica_gm, a_broj_gm, a_vlez_gm, a_stan_gm} R2_1_2 = {im_id, im_mesto, a_id_gm} R2_2_1 = {a_id, a_ulica, a_broj, a_vlez, a_stan} R2_2_2_1 = {i_id, i_ime} R2_2_2_2_1 = {ri_id, ri_ime, ri_datum, i_id} R2_2_2_2_2_1 = {embg, g_ime, g_prezime, a_id, d_broj} R2_2_2_2_2_2 = {ug_id, ug_vreme, embg, ri_id, im_id} == 8. Резултати од избори со кандидатури ||= Глас идентификатор (gl_id) =||= Реализација на избори (ri_id) =||= Реализација на избори име (ri_ime) =||= Реализација на избори датум (ri_datum) =||= Избори (i_id) =||= Избори име (i_ime) =||= Код за идентификација (id_kod_kod) =||= Број на кандидатура (kan_id) =||= ЕМБГ на кандидатот (embg) =||= Име на кандидатот (g_ime) =||= Презиме на кандидатот (g_prezime) =||= Опис на кандидатура (kan_opis) =||= Општина на кандидатура идентификатор (o_id) =||= Општина на кандидатура (o_ime) =||= Партија идентификатор =||= Партија име (p_id) =||= Улица (a_ulica) =||= Куќен број (a_broj) =||= Број влез (a_vlez) =||= Број стан (a_stan) =||= Гласачко место број(im_id) =||= Гласачко место (im_mesto) =||= Адреса идентификатор =||= Улица (a_ulica) =||= Куќен број (a_broj) =||= Број влез (a_vlez) =||= Број стан (a_stan) =|| || 1 || 1 || Локални избори 2020 || 2020-05-01 || 2 || Локални избори || 79277d6c-c7ff-4627-a4de-9ef34400540a || 1 || 0101002000000 || Петар || Петрески || За подобра општина || 34 || Центар || 1 || Партија 1 || Партизанска || 1 || 1 || 1 || 1234 || ОУ Кочо Рацин || 768 || Македонија || 1 || || || || 2 || 1 || Претседателски избори 2020 || 2020-06-01 || 1 || Претседателски избори || d0b6a837-6f6a-41f5-a0bb-4d3a53bc00c9 || 2 || 0101002000001 || Петра || Петреска || За подобрување на државата || || || || || || || || || 1234 || ОУ Кочо Рацин || 768 || Македонија || 1 || || || \\ R = {gl_id, ri_id, ri_ime, ri_datum, i_id, i_ime, id_kod_kod, embg, g_ime, g_prezime, kan_id, kan_opis, o_id, o_ime, p_id, a_ulica, a_broj, a_vlez, a_stan, 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 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 o_id → o_ime ri_id → ri_ime, ri_datum, i_id i_id → i_ime gl_id → ri_id, kan_id, im_id, id_kod_kod kan_id → kan_opis, embg, o_id, p_id, ri_id p_id → p_ime, a_id Појавување на атрибутите во функциските зависности само лево: gl_id лево и десно: embg, a_id, d_broj, a_id_gm, im_id, ri_id, i_id, gl_id, p_id, o_id, a_ulica_gm, a_broj_gm, a_vlez_gm, a_stan_gm, im_mesto, ri_ime, ri_datum, i_ime, kan_opis, p_ime само десно: g_ime, g_prezime, a_ulica, a_broj, a_vlez, a_stan, o_ime Според претходната анализа, се обидуваме да го провериме gl_id како кандидат клуч: {gl_id}+ = {egl_id, ri_id, ri_ime, ri_datum, i_id, i_ime, id_kod_kod, embg, g_ime, g_prezime, kan_opis, o_id, o_ime, p_id, a_ulica, a_broj, a_vlez, a_stan, im_id, im_mesto, a_id_gm, a_ulica_gm, a_broj_gm, a_vlez_gm, a_stan_gm} = R {gl_id} е единствен кандидат клуч и примарен клуч. Во вака дефинираната релација нема повеќекратни зависности, па оттука следува дека задоволува прва нормална форма. Клучот на релацијата е составен од само еден атрибут, па парцијална зависност не е возможна, затоа, задоволува втора нормална форма. ------------------------------------- Претходно дефинираната релација не е во трета нормална форма поради тоа што постои транзитивна зависност: 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} Декомпозиција R1 и R2 R1 {im_id, im_mesto, a_id_gm, a_ulica_gm, a_broj_gm, a_vlez_gm, a_stan_gm} – задоволува втора нормална форма Множество функциски зависности кај R1: 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} Декомпозиција R1_1 и R1_2 R1_1 = {a_id_gm, a_ulica_gm, a_broj_gm, a_vlez_gm, a_stan_gm} – задоволува BCNF R1_2 = {im_id, im_mesto, a_id_gm} – задоволува BCNF R2 {gl_id, ri_id, ri_ime, ri_datum, i_id, i_ime, id_kod_kod, embg, g_ime, g_prezime, kan_opis, o_id, o_ime, p_id, a_ulica, a_broj, a_vlez, a_stan, im_id} – задоволува втора нормална форма Множество функциски зависности кај R2: embg →g_ime, g_prezime a_id → a_ulica, a_broj, a_vlez, a_stan o_id → o_ime ri_id → ri_ime, ri_datum, i_id i_id → i_ime gl_id → ri_id, kan_id, im_id, id_kod_kod kan_id → kan_opis, embg, o_id, p_id, ri_id p_id → p_ime, a_id Претходно дефинираната релација не е во трета нормална форма поради тоа што постои транзитивна зависност: a_id → a_ulica, a_broj, a_vlez, a_stan {a_id}+ = {a_id, a_ulica, a_broj, a_vlez, a_stan} Декомпозиција R2_1 и R2_2 R2_1 = {a_id, a_ulica, a_broj, a_vlez, a_stan}- задоволува BCNF R2_2 = {gl_id, ri_id, ri_ime, ri_datum, i_id, i_ime, id_kod_kod, embg, g_ime, g_prezime, kan_opis, o_id, o_ime, p_id, a_id, im_id} – задоволува втора нормална форма Множество функциски зависности кај R2_2: embg →g_ime, g_prezime o_id → o_ime ri_id → ri_ime, ri_datum, i_id i_id → i_ime gl_id → ri_id, kan_id, im_id, id_kod_kod kan_id → kan_opis, embg, o_id, p_id, ri_id p_id → p_ime, a_id Претходно дефинираната релација не е во трета нормална форма поради тоа што постои транзитивна зависност: i_id → i_ime {i_id}+ = {i_id, i_ime} Декомпозиција R2_2_1 и R2_2_2 R2_2_1 = {i_id, i_ime} – задоволува BCNF R2_2_2 = {gl_id, ri_id, ri_ime, ri_datum, i_id, id_kod_kod, embg, g_ime, g_prezime, kan_opis, o_id, o_ime, p_id, a_id, im_id} – задоволува втора нормална форма Множество функциски зависности кај R2_2_2: embg →g_ime, g_prezime o_id → o_ime ri_id → ri_ime, ri_datum, i_id gl_id → ri_id, kan_id, im_id, id_kod_kod kan_id → kan_opis, embg, o_id, p_id, ri_id p_id → p_ime, a_id Претходно дефинираната релација не е во трета нормална форма поради тоа што постои транзитивна зависност: ri_id → ri_ime, ri_datum, i_id {ri_id}+ = {ri_id, ri_ime, ri_datum, i_id} Декомпозиција R2_2_2_1 и R2_2_2_2 R2_2_2_1 = {ri_id, ri_ime, ri_datum, i_id} – задоволува BCNF R2_2_2_2 = {gl_id, ri_id, id_kod_kod, embg, g_ime, g_prezime, kan_opis, o_id, o_ime, p_id, a_id, im_id} – задоволува втора нормална форма Множество функциски зависности кај R2_2_2_2: embg →g_ime, g_prezime o_id → o_ime gl_id → ri_id, kan_id, im_id, id_kod_kod kan_id → kan_opis, embg, o_id, p_id, ri_id p_id → p_ime, a_id Претходно дефинираната релација не е во трета нормална форма поради тоа што постои транзитивна зависност: p_id → p_ime, a_id {p_id}+ = {p_id, p_ime, a_id} Декомпозиција R2_2_2_2_1 и R2_2_2_2_2 R2_2_2_2_1 = {p_id, p_ime, a_id} – задоволува BCNF R2_2_2_2_2 = {gl_id, ri_id, id_kod_kod, embg, g_ime, g_prezime, kan_opis, o_id, o_ime, p_id, a_id, im_id} – задоволува втора нормална форма Множество функциски зависности кај R2_2_2_2_2: embg →g_ime, g_prezime o_id → o_ime gl_id → ri_id, kan_id, im_id, id_kod_kod kan_id → kan_opis, embg, o_id, p_id, ri_id Претходно дефинираната релација не е во трета нормална форма поради тоа што постои транзитивна зависност: o_id → o_ime {o_id}+ = {o_id, o_ime} Декомпозиција R2_2_2_2_2_1 и R2_2_2_2_2_2 R2_2_2_2_2_1 = {o_id, o_ime} – задоволува BCNF R2_2_2_2_2_2 = {gl_id, ri_id, id_kod_kod, embg, g_ime, g_prezime, kan_opis, o_id, p_id, a_id, im_id} – задоволува втора нормална форма Множество функциски зависности кај R2_2_2_2_2_2: embg →g_ime, g_prezime gl_id → ri_id, kan_id, im_id, id_kod_kod kan_id → kan_opis, embg, o_id, p_id, ri_id Претходно дефинираната релација не е во трета нормална форма поради тоа што постои транзитивна зависност: embg →g_ime, g_prezime {embg}+ = {embg, g_ime, g_prezime} Декомпозиција R2_2_2_2_2_2_1 и R2_2_2_2_2_2_2 R2_2_2_2_2_2_1 = {embg, g_ime, g_prezime} – задоволува BCNF R2_2_2_2_2_2_2 = {gl_id, ri_id, id_kod_kod, embg, kan_opis, o_id, p_id, im_id} – задоволува втора нормална форма Множество функциски зависности кај R2_2_2_2_2_2_2: gl_id → ri_id, kan_id, im_id, id_kod_kod kan_id → kan_opis, embg, o_id, p_id Претходно дефинираната релација не е во трета нормална форма поради тоа што постои транзитивна зависност: kan_id → kan_opis, embg, o_id, p_id, ri_id {kan_id}+ = {kan_id, kan_opis, embg, o_id, p_id} Декомпозиција R2_2_2_2_2_2_2_1 и R2_2_2_2_2_2_2_2 R2_2_2_2_2_2_2_1 = {kan_id, kan_opis, embg, o_id, p_id, ri_id} – задоволува BCNF R2_2_2_2_2_2_2_2 = {gl_id, ri_id, id_kod_kod, im_id} – задоволува BCNF Поради сензитивност на доменот и потребите на апликацијата, атрибутот id_kod_kod се издвојува во посебен ентитет R2_2_2_2_2_2_2_2_1 = {id_kod_kod} – задоволува BCNF Конечно, првичната реализација се декомпонира на следните релации (сите се во BCNF): R1_1 = {a_id_gm, a_ulica_gm, a_broj_gm, a_vlez_gm, a_stan_gm} R1_2 = {im_id, im_mesto, a_id_gm} R2_1 = {a_id, a_ulica, a_broj, a_vlez, a_stan} R2_2_1 = {i_id, i_ime} R2_2_2_1 = {ri_id, ri_ime, ri_datum, i_id} R2_2_2_2_1 = {p_id, p_ime, a_id} R2_2_2_2_2_1 = {o_id, o_ime} R2_2_2_2_2_2_1 = {embg, g_ime, g_prezime} R2_2_2_2_2_2_2_1 = {kan_id, kan_opis, embg, o_id, p_id, ri_id} R2_2_2_2_2_2_2_2 = {gl_id, ri_id, id_kod_kod, im_id} R2_2_2_2_2_2_2_2_1 = {id_kod_kod} == 9. Резултати од избори со кандидатски листи ||= Глас идентификатор (gl_id) =||= Реализација на избори (ri_id) =||= Реализација на избори име (ri_ime) =||= Реализација на избори датум (ri_datum) =||= Избори (i_id) =||= Избори име (i_ime) =||= Код за идентификација (id_kod_kod) =||= Број на кандидатура (kan_id) =||= ЕМБГ на кандидатот (embg) =||= Име на кандидатот (g_ime) =||= Презиме на кандидатот (g_prezime) =||= Опис на кандидатура (kan_opis) =||= Општина на кандидатура идентификатор (o_id) =||= Општина на кандидатура (o_ime) =||= Партија идентификатор =||= Партија име (p_id) =||= Улица (a_ulica) =||= Куќен број (a_broj) =||= Број влез (a_vlez) =||= Број стан (a_stan) =||= Гласачко место број(im_id) =||= Гласачко место (im_mesto) =||= Адреса идентификатор =||= Улица (a_ulica) =||= Куќен број (a_broj) =||= Број влез (a_vlez) =||= Број стан (a_stan) =|| || 1 || 1 || Локални избори 2020 || 2020-05-01 || 2 || Локални избори || 79277d6c-c7ff-4627-a4de-9ef34400540a || 1 || 0101002000000 || Петар || Петрески || За подобра општина || 34 || Центар || 1 || Партија 1 || Партизанска || 1 || 1 || 1 || 1234 || ОУ Кочо Рацин || 768 || Македонија || 1 || || || || 2 || 1 || Претседателски избори 2020 || 2020-06-01 || 1 || Претседателски избори || d0b6a837-6f6a-41f5-a0bb-4d3a53bc00c9 || 2 || 0101002000001 || Петра || Петреска || За подобрување на државата || || || || || || || || || 1234 || ОУ Кочо Рацин || 768 || Македонија || 1 || || || \\ R = {gl_id, ri_id, ri_ime, ri_datum, i_id, i_ime, id_kod_kod, embg, g_ime, g_prezime, kl_id, kl_opis, o_id, o_ime, p_id, a_ulica, a_broj, a_vlez, a_stan, im_id, im_mesto, a_id_gm, a_ulica_gm, a_broj_gm, a_vlez_gm, a_stan_gm} Множество функциски зависности: 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 o_id → o_ime ri_id → ri_ime, ri_datum, i_id i_id → i_ime gl_id → ri_id, kan_id, im_id, id_kod_kod kl_id → kl_opis, o_id, p_id, ie_id, ri_id p_id → p_ime, a_id Појавување на атрибутите во функциските зависности само лево: gl_id лево и десно: embg, a_id, d_broj, a_id_gm, im_id, ri_id, i_id, gl_id, p_id, o_id, a_ulica_gm, a_broj_gm, a_vlez_gm, a_stan_gm, im_mesto, ri_ime, ri_datum, i_ime, kan_opis, p_ime само десно: g_ime, g_prezime, a_ulica, a_broj, a_vlez, a_stan, o_ime Според претходната анализа, се обидуваме да го провериме gl_id како кандидат клуч: {gl_id}+ = {egl_id, ri_id, ri_ime, ri_datum, i_id, i_ime, id_kod_kod, embg, g_ime, g_prezime, kan_opis, o_id, o_ime, p_id, a_ulica, a_broj, a_vlez, a_stan, im_id, im_mesto, a_id_gm, a_ulica_gm, a_broj_gm, a_vlez_gm, a_stan_gm} = R {gl_id} е единствен кандидат клуч и примарен клуч. Во вака дефинираната релација нема повеќекратни зависности, па оттука следува дека задоволува прва нормална форма. Клучот на релацијата е составен од само еден атрибут, па парцијална зависност не е возможна, затоа, задоволува втора нормална форма. ------------------------------------- Претходно дефинираната релација не е во трета нормална форма поради тоа што постои транзитивна зависност: 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} Декомпозиција R1 и R2 R1 {im_id, im_mesto, a_id_gm, a_ulica_gm, a_broj_gm, a_vlez_gm, a_stan_gm} – задоволува втора нормална форма Множество функциски зависности кај R1: im_id → im_mesto, a_id_gm a_id_gm → a_ulica_gm, a_broj_gm, a_vlez_gm, a_stan_gm R1 не е во трета нормална форма поради тоа што постои транзитивна зависност: 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} Декомпозиција R1_1 и R1_2 R1_1 = {a_id_gm, a_ulica_gm, a_broj_gm, a_vlez_gm, a_stan_gm} – задоволува BCNF R1_2 = {im_id, im_mesto, a_id_gm} – задоволува BCNF R2 {gl_id, ri_id, ri_ime, ri_datum, i_id, i_ime, id_kod_kod, kl_id, kl_opis, o_id, o_ime, p_id, a_ulica, a_broj, a_vlez, a_stan, im_id} – задоволува втора нормална форма Множество функциски зависности кај R2: a_id → a_ulica, a_broj, a_vlez, a_stan o_id → o_ime ri_id → ri_ime, ri_datum, i_id i_id → i_ime gl_id → ri_id, kan_id, im_id, id_kod_kod kl_id → kl_opis, o_id, p_id, ie_id, ri_id p_id → p_ime, a_id R2 не е во трета нормална форма поради тоа што постои транзитивна зависност: a_id → a_ulica, a_broj, a_vlez, a_stan {a_id}+ = {a_id, a_ulica, a_broj, a_vlez, a_stan} Декомпозиција R2_1 и R2_2 R2_1 = {a_id, a_ulica, a_broj, a_vlez, a_stan} - задоволува BCNF R2_2 = {gl_id, ri_id, ri_ime, ri_datum, i_id, i_ime, id_kod_kod, kl_id, kl_opis, o_id, o_ime, p_id, a_id, im_id} – задоволува втора нормална форма Множество функциски зависности кај R2_2: o_id → o_ime ri_id → ri_ime, ri_datum, i_id i_id → i_ime gl_id → ri_id, kan_id, im_id, id_kod_kod kl_id → kl_opis, o_id, p_id, ie_id, ri_id p_id → p_ime, a_id R2_2 не е во трета нормална форма поради тоа што постои транзитивна зависност: i_id → i_ime {i_id}+ = {i_id, i_ime} Декомпозиција R2_2_1 и R2_2_2 R2_2_1 = {i_id, i_ime} – задоволува BCNF R2_2_2 = {gl_id, ri_id, ri_ime, ri_datum, i_id, id_kod_kod, kl_id, kl_opis, o_id, o_ime, p_id, a_id, im_id} – задоволува втора нормална форма Множество функциски зависности кај R2_2_2: o_id → o_ime ri_id → ri_ime, ri_datum, i_id gl_id → ri_id, kan_id, im_id, id_kod_kod kl_id → kl_opis, o_id, p_id, ie_id, ri_id p_id → p_ime, a_id R2_2_2 не е во трета нормална форма поради тоа што постои транзитивна зависност: ri_id → ri_ime, ri_datum, i_id {ri_id}+ = {ri_id, ri_ime, ri_datum, i_id} Декомпозиција R2_2_2_1 и R2_2_2_2 R2_2_2_1 = {ri_id, ri_ime, ri_datum, i_id} – задоволува BCNF R2_2_2_2 = {gl_id, ri_id, id_kod_kod, kl_id, kl_opis, o_id, o_ime, p_id, a_id, im_id} – задоволува втора нормална форма Множество функциски зависности кај R2_2_2_2: o_id → o_ime gl_id → ri_id, kan_id, im_id, id_kod_kod kl_id → kl_opis, o_id, p_id, ie_id, ri_id p_id → p_ime, a_id R2_2_2_2 не е во трета нормална форма поради тоа што постои транзитивна зависност: p_id → p_ime, a_id {p_id}+ = {p_id, p_ime, a_id} Декомпозиција R2_2_2_2_1 и R2_2_2_2_2 R2_2_2_2_1 = {p_id, p_ime, a_id} – задоволува BCNF R2_2_2_2_2 = {gl_id, ri_id, id_kod_kod, kl_id, kl_opis, o_id, o_ime, p_id, a_id, im_id} – задоволува втора нормална форма Множество функциски зависности кај R2_2_2_2_2: o_id → o_ime gl_id → ri_id, kl_id, im_id, id_kod_kod kl_id → kl_opis, o_id, p_id, ie_id, ri_id R2_2_2_2_2 не е во трета нормална форма поради тоа што постои транзитивна зависност: o_id → o_ime {o_id}+ = {o_id, o_ime} Декомпозиција R2_2_2_2_2_1 и R2_2_2_2_2_2 R2_2_2_2_2_1 = {o_id, o_ime} – задоволува BCNF R2_2_2_2_2_2 = {gl_id, ri_id, id_kod_kod, embg, g_ime, g_prezime, kan_opis, o_id, p_id, a_id, im_id} – задоволува втора нормална форма Множество функциски зависности кај R2_2_2_2_2_2: gl_id → ri_id, kl_id, im_id, id_kod_kod kl_id → kl_opis, o_id, p_id, ie_id, ri_id R2_2_2_2_2_2 не е во трета нормална форма поради тоа што постои транзитивна зависност: kl_id → kl_opis, o_id, p_id, ri_id, ie_id {kl_id}+ = {kl_id, kl_opis, ie_id, o_id, p_id, ri_id} Декомпозиција R2_2_2_2_2_2_1 и R2_2_2_2_2_2_2 R2_2_2_2_2_2_1 = {kl_id, kl_opis, ie_id, o_id, p_id, ri_id} – задоволува BCNF R2_2_2_2_2_2_2 = {gl_id, ri_id, id_kod_kod, im_id} – задоволува BCNF Поради сензитивност на доменот и потребите на апликацијата, атрибутот id_kod_kod се издвојува во посебен ентитет R2_2_2_2_2_2_2_1 = {id_kod_kod} – задоволува BCNF Конечно, првичната реализација се декомпонира на следните релации (сите се во BCNF): R1_1 = {a_id_gm, a_ulica_gm, a_broj_gm, a_vlez_gm, a_stan_gm} – задоволува BCNF R1_2 = {im_id, im_mesto, a_id_gm} – задоволува BCNF R2_1 = {a_id, a_ulica, a_broj, a_vlez, a_stan} - задоволува BCNF R2_2_1 = {i_id, i_ime} – задоволува BCNF R2_2_2_1 = {ri_id, ri_ime, ri_datum, i_id} – задоволува BCNF R2_2_2_2_1 = {p_id, p_ime, a_id} – задоволува BCNF R2_2_2_2_2_1 = {o_id, o_ime} – задоволува BCNF R2_2_2_2_2_2_1 = {kl_id, kl_opis, ie_id, o_id, p_id, ri_id} – задоволува BCNF R2_2_2_2_2_2_2 = {gl_id, ri_id, id_kod_kod, im_id} – задоволува BCNF R2_2_2_2_2_2_2_1 = {id_kod_kod} – задоволува BCNF ----------------------------------------------------------------------------------------------- Резултантните релации добиени после нормализацијата: *Сите задоволуваат BCNF adresi R1(a_id, a_ulica, a_broj, a_vlez, a_stan) opstini R2(o_id, o_ime) prigovori R3(pr_id, pr_opis, pr_tip, embg, im_id, ri_id) izbiracki_mesta R4(im_id, im_mesto, a_id) komisii R5(kom_id, ri_id, i_id, im_id) izborni_edinici R6(ie_id, ie_ime, ie_broj_pratenic) kandidatski_listi R7(kl_id, kl_ime, ie_id, o_id, ri_id) glas R8(gl_id, ri_id, id_kod_kod, im_id) gragjani (Се користи embg наместо g_id) R9(embg, g_ime, g_prezime, a_id, d_broj) kodovi (Поради сензитивност на доменот и потребите на апликацијата, атрибутот id_kod_kod се издвојува во посебен ентитет) R10(id_kod_kod, kod_vazi_do) izbori R11(i_id, i_ime) realizacii_na_izbori R12(ri_id, ri_ime, ri_datum, i_id) kandidaturi R13(kan_id, kan_opis, embg, o_id, p_id, ri_id) dokumenti_za_identifikacija R14(d_broj, d_vazi_od, d_vazi_do, d_izdaden_od) partii R15(p_id, p_ime, a_id)