wiki:Normalization

Version 6 (modified by 212005, 3 weeks 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 е едиствен атрибут кој што се наоѓа само на левата страна од функционалните зависности, ја добиваме следната канонична покривка:

{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} е единствен кандидат клуч и примарен клуч.

Според дефиницијата за 1НФ која гласи:

„Сите атрибути треба да бидат атомски (елементарни) Релација во 1НФ не може да има атрибут чија вредност е

  • множество од вредности;
  • терки вредности (вгнездени релации)“

Во вака дефинираната релација нема повеќекратни зависности и атрибути и нема вгнездени релации, па оттука следува дека задоволува прва нормална форма.

Според дефиницијата на Silberschatz, Korth и Sudarshan: „R е во 2НФ, акко секој атрибут A од R задоволува еден од следните два критериуми:

  • е дел од некој кандидат клуч
  • не е парцијално зависен од некој кандидат клуч“

Клучот на релацијата е составен од само еден атрибут, па парцијална зависност не е возможна, затоа, задоволува втора нормална форма.


Декомпозиција до највисока можна нормална форма

Следно, целта е да ја доведеме релацијата R до највисоката можна нормална форма. Имајки ја во предвид дефиницијата на Codd за трета нормална форма која гласи: „Ниту еден непримарен атрибут од R не е транзитивно зависен од примарниот клуч“, лесно можеме да забележиме транзитивна зависност како на пример оваа:

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 и R2_2.

Оттука за R2_1 добиваме: 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

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 на R2_1_1 и R2_1_2, лесно можеме да забележиме дека и двете релации задоволуваат BCNF според тоа што:
R која што е 1НФ е во БКНФ ако за секоја нетривијална функциска зависност (за секоја детерминанта) X → Y,
X е супер клуч (множество атрибути што на единствен начин определува други атрибути, а при тоа не треба да е минимално такво множество).

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 за која знаеме дека задоволува втора нормална форма.

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 и R2_2_2 за кои може да забележиме дека задоволуваат BCNF според претходно споментата дефиниција.

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)

Note: See TracWiki for help on using the wiki.