230 likes | 463 Views
Relaciona baza podataka. Baza podataka se sastoji iz više tabela koje su u relaciji (medjusobno povezane). Prilikom kreiranja baze podataka poželjno je kreirati veći broj tabela sa manje obeležja (polja).
E N D
Relaciona baza podataka • Baza podataka se sastoji iz više tabela koje su u relaciji (medjusobnopovezane). • Prilikom kreiranja baze podataka poželjno je kreirati veći broj tabela sa manjeobeležja (polja).
Kad god u tabeli postoji ponavljanje jednog dela podataka, potrebno je kolone u kojima se podaci ponavljaju izdvojitiu novu tabelu, dodeliti im ključ (npr. u obliku broja), a u osnovnoj tabeli ostaviti strani ključ. • Ovaj postupak se naziva proces normalizacije podataka.
Prvi zadatak je razdvojiti podatke na tabele. Jedan od načina na koji posmatramo podatke je da uočimo one koji se ponavljaju: Za svaku knjigu koju je napisao Stiven King moramo da ponovimo sve podatke koji su vezani za njega. Isto to važi i za Klajva Barkera.
Očigledno je da ćemo izdvojiti podatke o piscima u zasebnu tabelu i kasnije ćemo pozivati te podatke preko njihovog ključa. Drugim rečima, pokušaćemo da bazu dovedemo u formu sličnu ovoj:
Što se tiče samih polja koja su nam data, odmah možemo da ih rasporedimo u ove dve tabele, na sledeći način: Sledeći korak je određivanje primarnog ključa.
Primarni ključ (Primary key) • Povezivanje je moguće samo ako tabele sadrže zajednička polja (ključna polja za povezivanje moraju biti istog tipa ). • Uloga ključnih polja je jednoznačana identifikacija slogova • Primarni ključ (Primary key) je polje (ili polja) čiji je sadržaj u svakom zapisu jedinstven (ne sme da sadrži duplikate). • Primarni ključ odredjuje korisnik prilikom definisanja strukture tabele.
Potrebno je: • u strukturi aktivne tabele izabrati polje • u Toolbaru kliknuti na dugme Primary Key ili desni klik. • u suprotnom Access će sam odrediti polje za primarni ključ i to obično polje ID tipa Autonumber • .
Strani ključ (Foreign key) je polje (ili polja) koji je jednak vrednosti primarnog ključa druge tabele.
Pošto ne možemo sa sigurnošću da tvrdimo da se nikada neće pojaviti dve knjige istog naslova ili dva pisca istog imena, moraćemo sami da odredimo dva nova polja koja će biti primarni ključevi za tabele. • U ovom slučaju smo se odlučili da: • primarni ključ za tabelu KNJIGE bude autonumber (Access će sam unositi vrednosti u tabeli), dok će • primarni ključ u tabeli PISCI biti tekstualnog tipa, veličine 1 • (znači samo jedan znak, odnosno slovo - u praksi bi ovako nešto bilo teško izvodljivo zbog mogućeg velikog broja pisaca, ali za ovaj naš primer je prihvatljivo).
Vrste relacija • 1:1(One to one)Svaki slog iz prve tabele može imati samo jedan odgovarajući u drugoj tabeli i obrnuto. • 1:N(One to many) Najčešće korišćena relacija. Jednom slogu iz prve tabele može se pridružiti više slogova druge tabele • N:N(Many to many) Predstavlja kombinaciju relacija 1:n i n:1 uz pomoć treće tabele koja sadrži strane ključeve iz prve dve tabele.
Konačno, moramo nekako da povežemo ove dve tabele. U najvećem broju slučajeva koristimo veze tipa jedan-prema-više. Ova veza podrazumeva dodavanje novog polja (stranog ključa) u jednoj od tabela koje će se povezivati sa primarnim ključem druge tabele. Veza jedan-prema-jedan bi podrazumevala da jednom redu prve tabele odgovara tačno jedan red druge tabele, pri čemu bi se povezivali primarni ključevi. Pošto očigledno nije slučaj da imamo tačno jednu knjigu od jednog pisca, ovde će se koristiti veza jedan-prema-više. Naša situacija je da imamo VIŠE knjiga koje je pisao JEDAN pisac. Po pravilu, tabela koja sadrži strani ključ može imati VIŠE podataka koji se odnose na JEDAN podatak iz druge tabele. To znači da će tabela KNJIGE imati strani ključ koji se povezuje sa primarnim ključem iz tabele PISCI. Strani ključ mora biti istog tipa kao primarni ključ sa kojim se povezuje. Tako dodajemo polje PISAC u tabelu KNJIGE, koje je istog tipa kao polje ID iz tabele PISCI.
Integritet podataka (Integrity) • Obezbedjivanje ispravnosti veza izmedju podatka (tabela) u bazi.
Referencijalni integritet • Obezbeđuje očuvanje veza između tabela. • Važi isključivo za ključna polja tabela. • On se proverava kad god se doda, izmeni ili izbriše polje primarnog ili spoljnog ključa.
Enforce Referential Integrity) se postavlja u prozoru Edit Relationships
Ako zadate tu opciju, moći ćete da zadate i opcije: • Cascade Update Related Fields (lančano ažuriranje povezanih polja) Korisniku je dozvoljeno da menja sadržaj povezujućih polja, odnosno polja primarnog ključa u primarnoj tabeli. U tom slučaju stare vrednosti zamenjuje novim u svim povezanim zapisima druge tabele. Ukoliko ova opcija nije potvrđena ne možete da menjate sadržaj polja primarnog ključa u primarnoj tabeli koja je povezana sa drugom tabelom.
Cascade Delete Related Records (lančano brisanje povezanih zapisa) ukoliko korisnik pokuša da izbriše zapis uprimarnoj tabeli, a u tabeli sa kojom je povezana primarna postoje zapisi koji su sa tim zapisom povezani, najpre mora da izbriše sve povezane zapise u tabeli sa kojom je povezana primarna, pa tek onda i zapis u primarnoj tabeli. Da biste koristili ovu opciju morate da zadate lančano brisanje povezanih polja u svim vezama baze podataka u kojima učestvuje određena tabela.