Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Normalizacija 1. , 2. i 3 nf...

[es] :: Baze podataka :: Normalizacija 1. , 2. i 3 nf...

[ Pregleda: 5442 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

lonelyrider_44
Zrenjanin

Član broj: 42310
Poruke: 445
*.smin.my-its.net.



+20 Profil

icon Normalizacija 1. , 2. i 3 nf...20.12.2006. u 15:40 - pre 210 meseci
Jel moze neko da mi pojasni razliku izmedju druge i trece normalne forme prilikom normalizacije relacionog modela baze podataka? Kad sam vec kod toga,
zanima me kako bi neko ko zna, resio ovu relacionu semu tako da ona bude u 1. normalnoj formi...:
student(brind(podvuceno), ime, prezime, ocenamat,ocenasrp...)

Kako izvrsiti normalizaciju tako da ova sema bude samo u prvoj nf?
Unapred Hvala
U potpisu, amater
 
Odgovor na temu

chachka
Srđan Mijatov
Programer
BUS Computers
Kikinda

Član broj: 53780
Poruke: 576
*.dialup.neobee.net.

Sajt: www.baze-podataka.net


+4 Profil

icon Re: Normalizacija 1. , 2. i 3 nf...20.12.2006. u 23:17 - pre 210 meseci
Sema koju si poslao je u Boyce-Codd normalnoj formi, jer svi ne kljucni atributi funkcionalno zavise samo od celog kljuca. Ta sema se dalje ne moze normalizovati.

Verovatno ce biti sugerisano da uradis nesto poput:
Code:

CREATE TABLE studenti (
  brind CHAR(5) NOT NULL PRIMARY KEY,
  ime VARCHAR(15) NOT NULL,
  prezime VARCHAR(30) NOT NULL);

CREATE TABLE predmeti (
  oznaka_predmeta CHAR(3) NOT NULL PRIMARY KEY,
  ime_predmeta VARCHAR(40) NOT NULL);

CREATE TABLE pokazano_znanje (
  brind CHAR(5) NOT NULL,
  oznaka_predmeta CHAR(3) NOT NULL,
  ocena SMALLINT NOT NULL CHECK (ocena BETWEEN 6 AND 10),

  CONSTRAINT pk_pzn
    PRIMARY KEY (brind, oznaka_predmeta),
  CONSTRAINT fk_pzn_stu
    FOREIGN KEY (brind) REFERENCES studenti
    ON DELETE CASCADE ON UPDATE CASCADE,
  CONSTRAINT fk_pzn_pre
    FOREIGN KEY (oznaka_predmeta) REFERENCES predmeti
    ON DELETE RESTRICT ON UPDATE CASCADE);

, ali to uopste nije normalizacija tvoje seme vec sasvim drugaciji model!
"The best code is no code at all."
- Zidar (ES član)
"Biggest obstacle to learning
SQL is unlearning procedural
programming."
- Joe
Celko
"Minimize code, maximize data."
- A. Neil Pappalardo
 
Odgovor na temu

cicko
Mechanical engineer - freelancer
Vršac

Član broj: 7902
Poruke: 46
212.62.48.*

Sajt: www.echbergmanutech.dk


+2 Profil

icon Re: Normalizacija 1. , 2. i 3 nf...21.12.2006. u 10:15 - pre 210 meseci
Hvala na codu, ali meni treba vise teorijska pomoc, u smislu, kako normalizovati semu relacije u 1nf, 2nf, 3nf.
Kada je sema relacije u drugoj normalnoj formi, a kada u trecoj?
pozz
"Sva iskušenja, sva ispaštanja i sve patnje u životu mogu se meriti snagom i dužinom
nesanica koje ih prate." Ivo Andrić
 
Odgovor na temu

chachka
Srđan Mijatov
Programer
BUS Computers
Kikinda

Član broj: 53780
Poruke: 576
*.dialup.neobee.net.

Sajt: www.baze-podataka.net


+4 Profil

icon Re: Normalizacija 1. , 2. i 3 nf...21.12.2006. u 12:53 - pre 210 meseci
Prva normalna forma


Moje vidjenje prve normalne forme cu prikazati kroz dva primera, jer ma kako prosto zvucala, sustinski je teska za razumevanje, pogotovo sto SQL ne moze da je narusi.


Prvi primer:

Imamo relaciju
Osobe (sifra_osobe, ime_osobe, prezime_osobe, ime_prvog_deteta, ime_drugog_deteta, ime_treceg_deteta)
gde je sifra_osobe kljucni atribut.

Ova relacija ne narusava prvu normalnu formu.
Razlog: Imena atributa jasno naznacavaju da je redosled unosa imena dece bitan. Redosled navodjenja imena dece je ujedno i redosled rodjenja dece.
Podatak
Osobe (1, Pera, Peric, Laza, -, -)
nam govori da Pera Peric ima prvorodjeno dete Lazu, ali ne znamo da li ima jos dece.
S druge strane, podatak
Osobe (1, Laza, Peric, -, Mika, -)
nam govori da Laza Peric ima sigurno dvoje dece. Za prvo dete nemamo podatak o imenu, dok se drugo zove Mika.

U oba slucaja imamo ime samo jednog deteta, ali je interpretacija tog jednog imena razlicita. Zbog te razlicite interpretacije pocetna relacija Osobe ne narusava prvu normalnu formu!


Drugi primer:

Imamo relaciju
Osobe (sifra_osobe, ime_osobe, ime_deteta_1, ime_deteta_2, ime_deteta_3)
sa semantickim znacenjem da nam je redosled navodjenja imena dece NEBITAN.

Ova relacija narusava prvu normalnu formu.
Razlog:
Podaci:
Osobe (1, Pera, Peric, Laza, -, -)
Osobe (1, Pera, Peric, -, Laza, -)
Osobe (1, Pera, Peric, -, -, Laza)
nam govore apsolutno istu stvar - da Pera Peric ima barem jedno dete koje se zove Laza.
Dakle, Razliciti podaci imaju isto znacenje te stoga narusavaju prvu normalnu formu.


Druga normalna forma


Potreban uslov da se narusi druga normalna forma je da relacija ima kompozitni kljuc (sastavljen od vise atributa).

Sustina je da atribut ne sme da zavisi od dela kljucnih atributa.

Kroz primer. Imamo relaciju:
Pokazano_Znanje(sifra_studenta, ime_studenta, sifra_predmeta, ime_predmeta, ocena)
Kljucni atributi ove relacije su sifra_studenta + sifra_predmeta.
Ocena zavisi od celog kljuca, ali ime_studenta zavisi samo od sifre_studenta. Ime studenta nema nikave veze sa predmetom.

Imamo podatke
(1, Pera, 11, Matematika, 6)
(1, Mika, 12, Srpski, 6)
Postavlja se pitanje da li se student sa sifrom 1 zove Pera ili Mika?

Ova relacija narusava drugu normalnu formu.


Treca normalna forma


Sustina je da atribut ne sme da zavisi od ne kljucnog(kljucnih) atributa

Opet kroz primer. Imamo relaciju
Radnici (sifra_radnika, ime_radnika, prezime_radnika, ime_sektora, sediste_sektora)
gde je sifra_radnika kljucni atribut, a jedan sektor moze imati samo jedno sediste.

Imamo podatke
Radnici (1, Laza, Lazic, Odrzavanje, Subotica)
Radnici (2, Pera, Peric, Odrzavanje, Subotica)
i za sada je sve u redu, ali se pojavljuje podatak
Radnici (3, Mika, Mikic, Odrzavanje, Beograd)
Postavlja se pitanje da li je sediste sektora odrzavanja u Subotici ili u Beogradu? Ovde se pojavila anomalija unosa, ali se nad istom relacijom moze pojaviti i anomalija izmene i/ili brisanja.

Ova relacija narusava trecu normalnu formu jer sediste sektora zavisi iskljucivo od imena sektora, ali ne i od sifre radnika.


PS: Ako sam negde pogresio naci ce se vec neko da me ispravi.
"The best code is no code at all."
- Zidar (ES član)
"Biggest obstacle to learning
SQL is unlearning procedural
programming."
- Joe
Celko
"Minimize code, maximize data."
- A. Neil Pappalardo
 
Odgovor na temu

Scelle
Slavko Šćekić
Student, Računarski fakultet
Beograd

Član broj: 151761
Poruke: 174
212.200.65.*



Profil

icon Re: Normalizacija 1. , 2. i 3 nf...23.01.2008. u 20:12 - pre 197 meseci
Treća normalna forma (3NF):
Šema relacije je u 3NF ako je u 1NF (prvoj normalnoj formi) i ako je svako neprimarno obeležje u netranzitivnoj funkcionalnoj zavisnosti od svakog ključa.

Evo skolskog primjera:

Student({BRI, PRZ, IME, SOD, NAO},
{BRI -> PRZ+IME+SOD, SOD -> NAO}) (BRI funkcionalno odredjuje PRZ, IME, SOD a SOD odredjuje NAO)
Kljuc = {BRI}

Mozemo primijetiti da BRI -> SOD a SOD -> NAO, odnosno BRI -> NAO ali indirektno.
BRI -> NAO je tranzitivna funkcionalna zavisnost, sto znaci da ova sema relacije ne zadovoljava 3NF.

"Takozvani praktični ljudi bili bi korisni i zasluživali bi svaku pohvalu i poštovanje kad od te svoje praktičnosti ne bi hteli da naprave smisao života i razlog svoga opstanka, opravdanje za podjarmljivanje i terorisanje svih onih koji su lišeni toga praktičnog smisla, ali zato stvoreni za druge, možda više i bolje podvige."

Ivo Andric
 
Odgovor na temu

[es] :: Baze podataka :: Normalizacija 1. , 2. i 3 nf...

[ Pregleda: 5442 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.