Version 3 (modified by 10 months ago) ( diff ) | ,
---|
Нормализација и подобрувања на дизајнот на базата
Поделба на доменот според типот на евиденција
Бидејќи нашиот модел го користи апликација којашто служи за различни евиденции од областа на реализација на избори, практично е невозможно да извршиме нормализација користејќи една табела во којашто ќе бидат сместени сите атрибути. Затоа решивме да ги прикажеме различните извештаи кои произлегуваат од различните сценарија на примена на моделот и како такви, парцијално да ги нормалзираме и така добиените ентитети да ги поврземе во целина.
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