wiki:Normalization

Нормализација и подобрувања на дизајнот на базата

Поделба на доменот според типот на евиденција

Бидејќи нашиот модел го користи апликација којашто служи за различни евиденции од областа на реализација на избори, практично е невозможно да извршиме нормализација користејќи една табела во којашто ќе бидат сместени сите атрибути. Затоа решивме да ги прикажеме различните извештаи кои произлегуваат од различните сценарија на примена на моделот и како такви, парцијално да ги нормалзираме и така добиените ентитети да ги поврземе во целина.

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

Last modified 2 months ago Last modified on 03/13/24 19:49:20
Note: See TracWiki for help on using the wiki.