Поради комплексноста на моделот на базата, речиси е невозможно да се стават сите податоци во една табела, па затоа проблемот на нормализација ќе го поделам на повеќе делови. Логична поделба на табелите е според улогите во системот: Возач, Кондуктер и Патник. Поради тоа што нема смисла целата апликација без корисниците (возач. кондуктер и патник) овие колони ќе бидат изоставени од споените табели со цел да се намали комплексноста Возачите имаат директна интеракција со табелата instanca_na_linija, а потоа има смисла да се соединат со табелите: avtobus, linija, postojka_na_linija, postojka, mesto и на тој начин да се добие табела која ќе ја наречеме: „Инстанци на линии со нивните постојки“ Кондуктерите имаат директна интеракција со табелата kontrola, а порао има смисла да се соединат со табелите: kazna, kazna_za_registriran, kazna_za_neregistriran, patnik во нова табела која ќе ја наречеме: „Контроли на инстнаци на линии со казни“ Патниците имаат директна интеракција со табелите: vozenje, bilet, kazna_za_registriran, а потоа има смисла да се спојуваат со табелите: vozenje, tip_bilet, instanca_na_linija, avtobus, linija, postojka_na_linija, postojka, mesto, во нова табела која ќе ја наречеме: „Реализирани возења со инстанци на линии“ == 1. Инстанци на линии со нивните постојки ||= inl_id=||= inl_datum_start=||= inl_datum_end=||= a_registracija=||= a_seriski_broj=||= a_broj_sedista=||= li_id=||= li_ime=||= li_pravec=||= pnl_id=||= pnl_reden_broj=||= p_id=||= p_ime=||= m_id=||= m_grad=||= m_opstina=||= m_ulica =|| ||1|| 16-10-2024 12:00:00 || 16-10-2024 13:00:00 || SK1234AA || SN-1234 || 30 || 1 || Line 1 || Sever kon Jug || 1 || 1 || 1 || Jugodrvo ||1 || Skopje || Centar || ulica 1|| ||1|| 16-10-2024 12:00:00 || 16-10-2024 13:00:00 || SK1234AA || SN-1234 || 30 || 1 || Line 1 || Sever kon Jug || 2 || 2 || 2 || Rekord || 2 || Skopje || Centar || ulica 2|| ||1|| 16-10-2024 12:00:00 || 16-10-2024 13:00:00 || SK1234AA || SN-1234 || 30 || 1 || Line 1 || Sever kon Jug || 3 || 3 || 3 || Deksion || 3 || Skopje || Gjorce || ulica 3|| ||2|| 16-10-2024 11:00:00 || 16-10-2024 13:00:00 || SK1234BB || SN-12345 || 30 || 2 || Line 2 || Istok kon Zapad || 4 || 1 || 4 || Dracevo || 4 || Skopje || Dracevo || ulica 11|| ||2|| 16-10-2024 11:00:00 || 16-10-2024 13:00:00 || SK1234BB || SN-12345 || 30 || 2 || Line 2 || Istok kon Zapad || 5 || 2 || 5 || City Mall || 5 || Skopje || Karposh || ulica 22|| ||2|| 16-10-2024 11:00:00 || 16-10-2024 13:00:00 || SK1234BB || SN-12345 || 30 || 2 || Line 2 || Istok kon Zapad || 6 || 3 || 3 || Deksion || 1 || Skopje || Gjorce || ulica 3|| **R** = { vozac_k_telefon, vozac_k_lozinka, vozac_k_adresa, vozac_k_email, vozac_k_ime, vozac_k_is_admin, vozac_k_id, vozac_plata, vozac_datum_na_vrabotuvanje, vozac_datum_prekin_vrab, inl_id, inl_datum_start, inl_datum_end, a_registracija, a_seriski_broj, a_broj_sedista, li_id, li_ime, li_pravec, pnl_id, pnl_reden_broj, p_id, p_ime, p_longitude, p_latitude } **inl_id** → inl_datum_start, inl_datum_end, a_registracija, li_id, vozac_k_id, a_broj_sedishta, a_seriski_broj, li_ime, li_pravec, vozac_k_telefon, vozac_k_lozinka, vozac_k_adresa, vozac_k_email, vozac_k_ime, vozac_k_is_admin, vozac_k_id, vozac_plata, vozac_datum_na_vrabotuvanje, vozac_datum_prekin_vrab **a_registracija** → a_seriski_broj, a_broj_sedista **li_id** → li_ime, li_pravec **pnl_id** → pnl_reden_broj, li_id, li_ime, li_pravec, p_id, p_ime, p_longitude, p_latitude **p_id** → p_ime, p_longitude, p_latitude **vozac_k_id** → vozac_k_telefon, vozac_k_lozinka, vozac_k_adresa, vozac_k_email, vozac_k_ime, vozac_k_is_admin, vozac_k_id, vozac_plata, vozac_datum_na_vrabotuvanje, vozac_datum_prekin_vrab ==== лево: pnl_id, inl_id ==== лево и десно: p_id, li_id, a_registracija, vozac_k_id ==== десно: inl_datum_start, inl_datum_end, a_seriski_broj, a_broj_sedista, li_ime, li_pravec, pnl_reden_broj, p_ime, vozac_k_telefon, vozac_k_lozinka, vozac_k_adresa, vozac_k_email, vozac_k_ime, vozac_k_is_admin, vozac_k_id, vozac_plata, vozac_datum_na_vrabotuvanje, vozac_datum_prekin_vrab, p_longitude, p_latitude **{pnl_id, inl_id}+** = { inl_datum_start, inl_datum_end, a_registracija, a_seriski_broj, a_broj_sedista, li_id, li_ime, li_pravec, pnl_reden_broj, p_id, p_ime, vozac_k_telefon, vozac_k_lozinka, vozac_k_adresa, vozac_k_email, vozac_k_ime, vozac_k_is_admin, vozac_k_id, vozac_plata, vozac_datum_na_vrabotuvanje, vozac_datum_prekin_vrab, p_longitude, p_latitude } **{pnl_id, inl_id}** e единствен кандидат клуч и е составен од два атрибута па сега треба да се проверат парцијални зависности. Задоволува прва нормална форма, но не и втора поради парцијални зависности. **pnl_id, inl_id** → li_id, li_ime, li_pravec **R1** = {pnl_id, inl_id, li_id} – е во втора нормлана форма **pnl_id, inl_id** → li_id **li_id** → li_ime, li_pravec **R1_1** = {pnl_id, inl_id, li_id} – е во BCNF **R1_2** = {li_id, li_ime, li_pravec} – е во BCNF **pnl_id** → pnl_reden_broj, li_id, p_id **R2** = {pnl_id, pnl_reden_broj, li_id, p_id} e во втора нормална форма **pnl_id** → pnl_reden_broj, li_id, p_id **p_id** → p_ime, p_pravec, p_longitude, p_latitude **li_id** → li_ime, li_pravec **R2_1** = {pnl_id, pnl_reden_broj, li_id, p_id} е во BCNF **R2_2** = {p_id, p_ime, p_pravec} е во BCNF **R2_3** = {m_id, m_grad, m_ulica, m_opstina} е во BCNF **R2_4** = { li_id, li_pravec, li_ime} е во BCNF **inl_id** → inl_datum_start, inl_datum_end, a_registracija, vozac_k_id, li_id **R3** = {inl_id, inl_datum_start, inl_datum_end, a_registracija, k_id, li_id} е во втора нормална форма **inl_id** → inl_datum_start, inl_datum_end, a_registracija, li_id **a_registracija** → a_seriski_broj, a_broj_sedishta **li_id** → li_ime, li_pravec **R3_1** = {inl_id, inl_datum_start, inl_datum_end, a_registracija, li_id} е во BCNF **R3_2** = {a_registracija, a_seriski_broj, a_broj_sedishta} е во BCNF **R3_3** = {li_id, li_ime, li_pravec} е во BCNF == 2. Контроли на инстнаци на линии со казни **R** = { kontrola_id, kontrola_datum, inl_id, inl_datum_start, inl_datum_end, a_registracija, li_id, li_pravec, li_ime, a_seriski_broj, a_broj_sedishta, pnl_id, pnl_reden_broj, p_id, p_ime, p_longitude, p_latitude, kondukter_k_id, kondukter_v_plata, kondukter_v_datum_na_vrab, kondukter_v_datum_prekin, kondukter_k_ime, kondukter_k_adresa, kondukter_k_telefon, kondukter_k_email, kondukter_k_embg, kondukter_k_is_admin, kondukter_k_lozinka, kz_id, kz_iznos, kz_plateno, kz_datum, kz_datum_plateno, kz_dokument, kontrola_id, patnik_k_id, patnik_k_ime, patnik_k_adresa, patnik_k_telefon, patnik_k_email, patnik_k_embg, patnik_k_is_admin, patnik_k_lozinka, kzn_telefon, kzn_ime, kzn_adresa, vozac_k_id, vozac_k_telefon, vozac_k_lozinka, vozac_k_adresa, vozac_k_email, vozac_k_ime, vozac_k_is_admin, vozac_k_id, vozac_plata, vozac_datum_na_vrabotuvanje, vozac_datum_prekin_vrab } **kontrola_id** → kontrola_datum, inl_id inl_datum_start, inl_datum_end, a_registracija, A-seriski_broj, a_broj_sedishta, vozac_k_id, vozac_k_telefon, vozac_k_lozinka, vozac_k_adresa, vozac_k_email, vozac_k_ime, vozac_k_is_admin, vozac_k_id, vozac_plata, vozac_datum_na_vrabotuvanje, vozac_datum_prekin_vrab, li_id, li_ime, li_pravec, kondukter_k_id, kondukter_k_id, kondukter_v_plata, kondukter_v_datum_na_vrab, kondukter_v_datum_prekin, kondukter_k_ime, kondukter_k_adresa, kondukter_k_telefon, kondukter_k_email, kondukter_k_embg, kondukter_k_is_admin, kondukter_k_lozinka, **kondukter_k_id** → v_plata, v_datum_na_vrab, v_datum_prekin, kondukter_k_ime, kondukter_k_adresa, kondukter_k_telefon, kondukter_k_email, kondukter_k_embg, kondukter_k_is_admin, kondukter_k_lozinka **vozac_k_id** → vozac_k_telefon, vozac_k_lozinka, vozac_k_adresa, vozac_k_email, vozac_k_ime, vozac_k_is_admin, vozac_k_id, vozac_plata, vozac_datum_na_vrabotuvanje, vozac_datum_prekin_vrab **patnik_k_id** → patnik_k_ime, patnik_k_adresa, patnik_k_telefon, patnik_k_email, patnik_k_embg, patnik_k_is_admin, patnik_k_lozinka **kz_id** → kz_iznos, kz_plateno, kz_datum, kz_datum_plateno, kz_dokument, kontrola_id, kontrola_datum, patnik_k_id, patnik_k_ime, patnik_k_adresa, patnik_k_telefon, patnik_k_email, patnik_k_embg, patnik_k_is_admin, patnik_k_lozinka, kzn_telefon, kzn_ime, kzn_adresa, kontrola_datum, inl_id inl_datum_start, inl_datum_end, a_registracija, A-seriski_broj, a_broj_sedishta, vozac_k_id, vozac_k_telefon, vozac_k_lozinka, vozac_k_adresa, vozac_k_email, vozac_k_ime, vozac_k_is_admin, vozac_k_id, vozac_plata, vozac_datum_na_vrabotuvanje, vozac_datum_prekin_vrab, li_id, li_ime, li_pravec, kondukter_k_id, kondukter_k_id, kondukter_v_plata, kondukter_v_datum_na_vrab, kondukter_v_datum_prekin, kondukter_k_ime, kondukter_k_adresa, kondukter_k_telefon, kondukter_k_email, kondukter_k_embg, kondukter_k_is_admin, kondukter_k_lozinka, **inl_id** → inl_datum_start, inl_datum_end, a_registracija, a_seriski_broj, a_broj_sedishta, li_id, li_ime, li_pravec, vozac_k_id, vozac_k_telefon, vozac_k_lozinka, vozac_k_adresa, vozac_k_email, vozac_k_ime, vozac_k_is_admin, vozac_k_id, vozac_plata, vozac_datum_na_vrabotuvanje, vozac_datum_prekin_vrab **a_registracija** → a_seriski_broj, a_broj_sedishta **li_id** → li_ime, li_pravec **pnl_id** → pnl_reden_broj, li_id, li_ime, li_pravec, p_id, p_ime, p_longitude, p_latitude **p_id** → p_ime, p_longitude, p_latitude ==== лево: kz_id, pnl_id ==== лево и десно: patnik_k_id, kondukter_k_id, kontrola_k_id, inl_id ==== десно: kontrola_datum, inl_datum_start, inl_datum_end, a_registracija, li_pravec, li_ime, a_seriski_broj, a_broj_sedishta, pnl_reden_broj, p_ime, p_longitude, p_latitude, kondukter_v_plata, kondukter_v_datum_na_vrab, kondukter_v_datum_prekin, kondukter_k_ime, kondukter_k_adresa, kondukter_k_telefon, kondukter_k_email, kondukter_k_embg, kondukter_k_is_admin, kondukter_k_lozinka, kz_iznos, kz_plateno, kz_datum, kz_datum_plateno, kz_dokument, patnik_k_ime, patnik_k_adresa, patnik_k_telefon, patnik_k_email, patnik_k_embg, patnik_k_is_admin, patnik_k_lozinka, kzn_telefon, kzn_ime, kzn_adresa, vozac_k_telefon, vozac_k_lozinka, vozac_k_adresa, vozac_k_email, vozac_k_ime, vozac_k_is_admin, vozac_k_id, vozac_plata, vozac_datum_na_vrabotuvanje, vozac_datum_prekin_vrab **{kz_id, pnl_id}** е едниствен кандидат клуч, ваквата релација задоволува прва нормлна форма но не и втора. Треба да се провери за парцијални зависности. **{kz_id, pnl_id}+** = {kontrola_datum, inl_datum_start, inl_datum_end, a_registracija, li_pravec, li_ime, a_seriski_broj, a_broj_sedishta, pnl_reden_broj, p_ime, p_longitude, p_latitude, kondukter_v_plata, kondukter_v_datum_na_vrab, kondukter_v_datum_prekin, kondukter_k_ime, kondukter_k_adresa, kondukter_k_telefon, kondukter_k_email, kondukter_k_embg, kondukter_k_is_admin, kondukter_k_lozinka, kz_iznos, kz_plateno, kz_datum, kz_datum_plateno, kz_dokument, patnik_k_ime, patnik_k_adresa, patnik_k_telefon, patnik_k_email, patnik_k_embg, patnik_k_is_admin, patnik_k_lozinka, kzn_telefon, kzn_ime, kzn_adresa, vozac_k_telefon, vozac_k_lozinka, vozac_k_adresa, vozac_k_email, vozac_k_ime, vozac_k_is_admin, vozac_k_id, vozac_plata, vozac_datum_na_vrabotuvanje, vozac_datum_prekin_vrab, patnik_k_id, kondukter_k_id, kontrola_k_id, inl_id} ==== Парцијални зависности: **kz_id** → kz_iznos, kz_plateno, kz_datum, kz_datum_plateno, kz_dokument, kontrola_id, kontrola_datum, patnik_k_id, patnik_k_ime, patnik_k_adresa, patnik_k_telefon, patnik_k_email, patnik_k_embg, patnik_k_is_admin, patnik_k_lozinka, kzn_telefon, kzn_ime, kzn_adresa, kontrola_datum, inl_id inl_datum_start, inl_datum_end, a_registracija, A-seriski_broj, a_broj_sedishta, vozac_k_id, vozac_k_telefon, vozac_k_lozinka, vozac_k_adresa, vozac_k_email, vozac_k_ime, vozac_k_is_admin, vozac_k_id, vozac_plata, vozac_datum_na_vrabotuvanje, vozac_datum_prekin_vrab, li_id, li_ime, li_pravec, kondukter_k_id, kondukter_k_id, kondukter_v_plata, kondukter_v_datum_na_vrab, kondukter_v_datum_prekin, kondukter_k_ime, kondukter_k_adresa, kondukter_k_telefon, kondukter_k_email, kondukter_k_embg, kondukter_k_is_admin, kondukter_k_lozinka **pnl_id** → pnl_reden_broj, li_id, li_ime, li_pravec, p_id, p_ime, p_longitude, p_latitude **R1** = {kz_id, kz_iznos, kz_plateno, kz_datum, kz_datum_plateno, kz_dokument, kontrola_id, kontrola_datum, patnik_k_id, patnik_k_ime, patnik_k_adresa, patnik_k_telefon, patnik_k_email, patnik_k_embg, patnik_k_is_admin, patnik_k_lozinka, kzn_telefon, kzn_ime, kzn_adresa, kontrola_datum, inl_id inl_datum_start, inl_datum_end, a_registracija, A-seriski_broj, a_broj_sedishta, vozac_k_id, vozac_k_telefon, vozac_k_lozinka, vozac_k_adresa, vozac_k_email, vozac_k_ime, vozac_k_is_admin, vozac_k_id, vozac_plata, vozac_datum_na_vrabotuvanje, vozac_datum_prekin_vrab, li_id, li_ime, li_pravec, kondukter_k_id, kondukter_k_id, kondukter_v_plata, kondukter_v_datum_na_vrab, kondukter_v_datum_prekin, kondukter_k_ime, kondukter_k_adresa, kondukter_k_telefon, kondukter_k_email, kondukter_k_embg, kondukter_k_is_admin, kondukter_k_lozinka} – е во втора нормална форма ==== Сега треба да се профери за транзитивни зависности. **kz_id** → kz_iznos, kz_plateno, kz_datum, kz_datum_plateno, kz_dokument, kontrola_id, kondukter_k_id, patnik_k_id, kzn_telefon, kzn_ime, kzn_adresa **R1_1** = {kz_id, kz_iznos, kz_plateno, kz_datum, kz_datum_plateno, kz_dokument, kontrola_id, kondukter_k_id, patnik_k_id, kzn_telefon, kzn_ime, kzn_adresa} – е во во BCNF **kontrila_id** → kontrola_datum, kondukter_k_id, inl_id **R1_2 **= {kontrila_id → kontrola_datum, kondukter_k_id, inl_id} - е во BCNF **kondukter_k_id** → kondukter_v_plata, kondukter_v_datum_na_vrab, kondukter_v_datum_prekin, kondukter_k_ime, kondukter_k_adresa, kondukter_k_telefon, kondukter_k_email, kondukter_k_embg, kondukter_k_is_admin, kondukter_k_lozinka **R1_3** = {kondukter_k_id → kondukter_v_plata, kondukter_v_datum_na_vrab, kondukter_v_datum_prekin, kondukter_k_ime, kondukter_k_adresa, kondukter_k_telefon, kondukter_k_email, kondukter_k_embg, kondukter_k_is_admin, kondukter_k_lozinka} – е во BCNF **patnik_k_id** → patnik_k_ime, patnik_k_adresa, patnik_k_telefon, patnik_k_email, patnik_k_embg, patnik_k_is_admin, patnik_k_lozinka **R1_4** = {patnik_k_id → patnik_k_ime, patnik_k_adresa, patnik_k_telefon, patnik_k_email, patnik_k_embg, patnik_k_is_admin, patnik_k_lozinka} – е во BCNF **inl_id** → inl_datum_start, inl_datum_end, a_registracija, vozac_k_id, li_id **R1_5** = {inl_id → inl_datum_start, inl_datum_end, a_registracija, vozac_k_id, li_id} – е во BCNF **vozac_k_id** → vozac_k_telefon, vozac_k_lozinka, vozac_k_adresa, vozac_k_email, vozac_k_ime, vozac_k_is_admin, vozac_k_id, vozac_plata, vozac_datum_na_vrabotuvanje, vozac_datum_prekin_vrab **R1_6** = {vozac_k_id → vozac_k_telefon, vozac_k_lozinka, vozac_k_adresa, vozac_k_email, vozac_k_ime, vozac_k_is_admin, vozac_k_id, vozac_plata, vozac_datum_na_vrabotuvanje, vozac_datum_prekin_vrab} – е во BCNF **a_registracija** → a_seriski_broj, a_broj_sedishta **R1_7** → {a_registracija → a_seriski_broj, a_broj_sedishta} – е во BCNF **li_id** → li_ime, li_pravec **R1_8** = {li_id → li_ime, li_pravec} – е во BCNF **R2** = {pnl_id, pnl_reden_broj, li_id, li_ime, li_pravec, p_id, p_ime, p_longitude, p_latitude} – е во втора нормална форма ==== Сега треба да се профери за транзитивни зависности. **pnl_id** → li_id, pnl_reden_broj, p_id **R2_1** = {pnl_id → li_id, pnl_reden_broj, p_id} – е во BCNF **li_id** → li_ime, li_pravec **R2_2** = {li_id , li_ime, li_pravec}- е во BCNF **p_id** → p_ime, p_longitude, p_latitude **R2_3** = {p_id, p_ime, p_longitude, p_latitude}- е во BCNF == 3. Реализирани возења со инстанци на линии **R** = { vozenje_id, vozenje_start, vozenje_end, vozenje_status, patnik_k_id, patnik_k_ime, patnik_k_adresa, patnik_k_telefon, patnik_k_email, patnik_k_embg, patnik_k_is_admin, patnik_k_lozinka , kacuva_pnl_id, inl_id, inl_datum_start, inl_datum_end, a_registracija, li_id, li_pravec, li_ime, a_seriski_broj, a_broj_sedishta, pnl_id, pnl_reden_broj, p_id, p_ime, p_longitude, p_latitude, b_id, b_datum_kupuvanje, b_status, tb_id, tb_trajnost, tb_ime, vozac_k_id, vozac_k_telefon, vozac_k_lozinka, vozac_k_adresa, vozac_k_email, vozac_k_ime, vozac_k_is_admin, vozac_k_id, vozac_plata, vozac_datum_na_vrabotuvanje, vozac_datum_prekin_vrab } **vozenje_id** → vozenje_start, vozenje_end, vozenje_status, patnik_k_id, patnik_k_ime, patnik_k_adresa, patnik_k_telefon, patnik_k_email, patnik_k_embg, patnik_k_is_admin, patnik_k_lozinka, kacuva_pnl_id, pnl_reden_broj, p_id, p_ime, li_id, li_ime, li_pravec, p_longitude, p_latitude, inl_id, vozac_k_id, vozac_k_telefon, vozac_k_lozinka, vozac_k_adresa, vozac_k_email, vozac_k_ime, vozac_k_is_admin, vozac_k_id, vozac_plata, vozac_datum_na_vrabotuvanje, vozac_datum_prekin_vrab, a_registracija, a_broj_sedishta, a_seriski_broj, b_id, b_datum_kupuvanje, b_status, tb_id, tb_trajnost, tb_ime **b_id** → b_datum_kupuvanje, b_status, tb_id, tb_trajnost, tb_ime **tb_id** → tb_trajnost, tb_ime **patnik_k_id** → patnik_k_ime, patnik_k_adresa, patnik_k_telefon, patnik_k_email, patnik_k_embg, patnik_k_is_admin, patnik_k_lozinka **vozac_k_id** → vozac_k_telefon, vozac_k_lozinka, vozac_k_adresa, vozac_k_email, vozac_k_ime, vozac_k_is_admin, vozac_k_id, vozac_plata, vozac_datum_na_vrabotuvanje, vozac_datum_prekin_vrab **p_id** → p_ime, p_longitude, p_latitude **li_id** → li_ime, li_pravec **kacuva_pnl_id** → pnl_reden_broj, p_id, p_ime, p_longitude, p_latitude, li_id, li_ime, li_pravec **a_registracija** → a_seriski_broj, a_broj_sedishta ==== лево: vozenje_id ==== лево и десно: b_id, tb_id, vozac_k_id, patnik_k_id, kacuva_pnl_id, p_id, li_id ==== десно: vozenje_start, vozenje_end, vozenje_status, patnik_k_ime, patnik_k_adresa, patnik_k_telefon, patnik_k_email, patnik_k_embg, patnik_k_is_admin, patnik_k_lozinka, inl_datum_start, inl_datum_end, a_registracija, li_pravec, li_ime, a_seriski_broj, a_broj_sedishta, pnl_reden_broj, p_ime, p_longitude, p_latitude, b_datum_kupuvanje, b_status, tb_trajnost, tb_ime, vozac_k_telefon, vozac_k_lozinka, vozac_k_adresa, vozac_k_email, vozac_k_ime, vozac_k_is_admin, vozac_k_id, vozac_plata, vozac_datum_na_vrabotuvanje, vozac_datum_prekin_vrab ==== Едниствен кандидат клуч е **vozenje_id**, составен е од еден атрибут така што нема парцијални зависности во оваа релација. **{vozenje_id}+** = {vozenje_start, vozenje_end, vozenje_status, patnik_k_ime, patnik_k_adresa, patnik_k_telefon, patnik_k_email, patnik_k_embg, patnik_k_is_admin, patnik_k_lozinka, inl_datum_start, inl_datum_end, a_registracija, li_pravec, li_ime, a_seriski_broj, a_broj_sedishta, pnl_reden_broj, p_ime, p_longitude, p_latitude, b_datum_kupuvanje, b_status, tb_trajnost, tb_ime, vozac_k_telefon, vozac_k_lozinka, vozac_k_adresa, vozac_k_email, vozac_k_ime, vozac_k_is_admin, vozac_k_id, vozac_plata, vozac_datum_na_vrabotuvanje, vozac_datum_prekin_vrab} – задоволува втора нормална форма. ==== Не е задоволена трета нормална форма поради транзитивни зависности. **vozenje_id** → vozenje_start, vozenje_end, vozenje_status, patnik_k_id, kacuva_pnl_id, inl_id, b_id **b_id** → b_datum_kupuvanje, b_status **tb_id** → tb_trajnost, tb_ime **patnik_k_id** → patnik_k_ime, patnik_k_adresa, patnik_k_telefon, patnik_k_email, patnik_k_embg, patnik_k_is_admin, patnik_k_lozinka **vozac_k_id** → vozac_k_telefon, vozac_k_lozinka, vozac_k_adresa, vozac_k_email, vozac_k_ime, vozac_k_is_admin, vozac_k_id, vozac_plata, vozac_datum_na_vrabotuvanje, vozac_datum_prekin_vrab **p_id** → p_ime, p_longitude, p_latitude **li_id** → li_ime, li_pravec **kacuva_pnl_id** → pnl_reden_broj, p_id, li_id **a_registracija** → a_seriski_broj, a_broj_sedishta **R1** = {b_id, b_status, b_datum_kupuvanje, tb_id} BCNF **R2** = {tb_id, tb_ime, tb_trajnost} BCNF **R3** = {vozenje_start, vozenje_end, vozenje_status, patnik_k_id, kacuva_pnl_id, inl_id, b_id} BCNF **R4** = {patnik_k_id, patnik_k_ime, patnik_k_adresa, patnik_k_telefon, patnik_k_email, patnik_k_embg, patnik_k_is_admin, patnik_k_lozinka} **R5** = {vozac_k_id → vozac_k_telefon, vozac_k_lozinka, vozac_k_adresa, vozac_k_email, vozac_k_ime, vozac_k_is_admin, vozac_k_id, vozac_plata, vozac_datum_na_vrabotuvanje, vozac_datum_prekin_vrab} **R6** = {p_id, p_ime, p_longitude, p_latitude} **R7** = {li_id, li_ime, li_pravec} **R8** = {kacuva_pnl_id, pnl_reden_broj, p_id, li_id} **R9** = {a_registracija, a_seriski_broj, a_broj_sedishta} == Дискусија: Може да се забележи дека со разгледување на проглемот на помали логички целини се доаѓа до истите ентитети. Како мала забелешка е тоа што кога се работи за атрибутите со префикси: **patnik, vozac, kondukter** се работи за истите атрибути кои се поделени во дисјунктни ентитети прво на: **Korisnik**, потоа на: **Vraboten, Patnik**, и на крај: **Vozac, Kondukter**. Моделот кој е искореистен за нормализација е оној од претходните фази на проектот со тоа што е изоставен ентитетот **Mesto**, поради тоа што во оваа фаза е забележано дека е несоодветен. На негово место додадени се атрибути за координати на ентитетот **Postojka**. Како ентитет кој не постои во оригиналниот модел а се појавува при нормализацијата е ентитетот добиен во првиот подпроблем со примарен клуч **{pnl_id, inl_id}**. Ваков ентитет е воведен во напредниот дизајн на апликацијата поради потребите на апликацијата.