Utisci korisnika

Zaista sam prijatno iznenađena vašom brigom za korisnike, i zahvaljujem vam se na maksimalnoj podršci. Što se tiče vaših usluga sve je jasno, ja se uvijek vraćam i nastaviću…

"Ovo je pravi vid doškolovavanja za sve one koji nemaju uslova za redovno školovanje ili su prezauzeti. Nije teško za one koji hoce . Uz vas je i moj sin od 9 godina nesto naučio.…


Kompletna lista utisaka

Testiranje online

Arhitektura računara

Za one koji žele da znaju više.

Windows OS

Ovo bi svakako trebalo da probate.

Odnosi s javnošću

Koliko znate PR?

Pogledajte još neke od testova

Newsletter

Ukoliko želite da Vas redovno obaveštavamo o novostima sa Link eLearning sajta prijavite se na našu newsletter listu.

Ime:

Prezime:

Email:


Anketa

Arhiva anketa

BAZA ZNANJA


Kurs: ECDL Access

Modul: Tabele

Autor:

Naziv jedinice: Veze između tabela


Materijali vezani uz ovu lekciju:

- Test veze između tabela
- Veze između tabela (PDF dokument)



Uspostavljanje veza između tabela

Veze koje postoje na nivou tabela imaju prioritet nad vezama koje su definisane na nivou upita. Ukoliko uspostavite vezu između dve tabele, Access će je automatski prepoznati kada sastavljate upit koji obuhvata polja iz više tabela. Veze između tabela mogu da se svrstaju u četiri grupe:

Jedan prema jedan – 1:1

Jedan prema više – 1:n

Više prema jedan – n:1

Više prema više – n:m

Veza tipa “jedan prema jedan” znači da jednom slogu iz jedne tabele odgovara tačno jedan slog iz druge tabele sa kojom je prva u vezi. Iako se retko koristi u sistemima za upravljanje bazama podataka, može da bude koristan način međusobnog povezivanja tabela. Dobre primere veza tipa “jedan prema jedan” nalazimo u većini aplikacija za fakturisanje; postoji datoteka pridružena fakturama koja sadrži podatke neophodne za izdavanje računa kupcu na adresu koja nije ista kao ona u datoteci s matičnim podacima o kupcu. Ta datoteka obično sadrži šifru kupca i dodatan skup polja za podatke o adresi.

Veza tipa “jedan prema više” omogućava povezivanje jednog sloga iz jedne tabele s više slogova u drugoj tabeli. Primer takve veze je zaposleni koji je potpisao više porudžbina ili kategorija koja obuhvata više proizvoda. U oba primera imamo veze tipa “jedan prema više”. Veza Employees–Orders (Zaposleni-Porudžbine) spaja šifru zaposlenog (primarni ključ tabele Employees) sa šifrom zaposlenog u tabeli Orders (koja postaje spoljni ključ tabele Orders).

Veza tipa “više prema jedan” (koja se često zove i veza s referentnom tabelom) pokazuje Accessu da je više slogova u jednoj tabeli povezano s jednim slogom u drugoj tabeli. Na primer, tabela Odrers (Porudžbine) i tabela Customers (Kupci) su povezane vezom više prema jedan, tj. više porudžbina je vezano za jednog kupca.

Veza tipa “više prema više” najteže se razume. U opštem slučaju, možete da je zamislite kao par veza tipa jedna prema više između dve tabele, kao što su veza između tabela Products (Proizvodi) i Orders (Porudžbine) u bazi podataka Northwind. Jedan proizvod može da se nađe na više porudžbina u isto vreme, što znači da postoji veza tipa “jedan prema više” između tabela Products i Orders. S druge strane, jedna porudžbina može da obuhvati više proizvoda, što je takođe veza tipa “jedan prema više”, ali od Orders prema Products. Ovakav par odvojenih, dvosmernih, veza tipa “jedan prema više” čini jednu vezu tipa “više prema više”. Po pravilu, takva veza se razbija na dve veze 1:n prema novoj tabeli koja se rađa između ove dve.

Slika 1. Tabele Products i Orders sa tabelom Order Details između njih

 

Veze se uspostavljaju kada kliknete na ikonicu Relationships ili izaberete tu opciju iz menija Tools. Ponudiće vam se izbor tabela koje povezujete. Kada izaberete tabele i kliknete Add i potom Close, pojaviće vam se tabele koje ćete povezati kao na primeru na slici 1. Spustićete primarni ključ jedne tabele u odgovarajući strani ključ druge tabele.

Brisanje veza

Veze brišete tako što ih izaberete i pritisnete Delete na tastaturi. Delete možete naći i u meniju Edit ili desnim klikom na vezu.

Referencijalni integritet

Pored definisanja veza između tabela u Accessovoj bazi podataka, možete da zadate i određena pravila koja će obezbediti određeni stepen tačnosti podataka u tabelama. Na primer, ne biste želeli da dozvolite brisanje sloga iz tabele Customers (Kupci) ako u tableli Orders (Porudžbine) postoje slogovi koji su povezani s njim (odnosno, ne možete dozvoliti brisanje kupca, ako u tabeli Orders postoje “njegove” porudžbine). Kada biste izbrisali slog o određenom kupcu bez  predhodnog brisanja sloga o porudžbinama koje mu pripadaju, u sistemu bi se pojavile porudžbine bez kupca. Ta vrsta problema može u potpunosti da ugrozi referencijalni integritet baze podataka.

Referencijalni integritet važi samo za ključna polja tabela; kad god se doda, izmeni ili izbriše polje primarnog ili spoljnog ključa, proverava se očuvanost referencijanog integriteta. Ukoliko bi izmena sadržaja ključnog polja bila uzrok raskidanja veza između tabela, kaže se da je time narušen referencijalni integritet. Moguće je podesiti opcije tako da referencijalni integritet određene relacije bude automatski obezbeđen.

Postojanje veze između tabela se definiše u posebnom prozoru baze podataka koji se naziva Relationship Builder. Njega možete da otvorite izborom stavke menija Tools/Relationship ili da pritisnete dugme Relationships na paleti sa alatkama. Pojavljuje se glavni prozor Relatoinships u kome možete da dodate tabele i uspostavljate veze između njih.

Na ekranu se pojavljuje nova paleta sa alatkama koja mu je pridružena. Kada ga prvi put otvorite, prozor Relationships je prazan. Tabele dodajete na jedan od sledećih načina:

·         Dodajte tabele pre nego što se pokrene alatka Relationship Builder, u okviru za dijalog koji joj prethodi

·         Na paleti sa alatkama pritisnite dugme Show Tables

·         Sa linije menija izaberite Relatioships / Show Table

·         U prozoru Relationships pritisnite desni taster miša otvorite pop-up meni i izaberite Show Table u meniju.

Pošto postavite tabele u prozor Relationships, spremni ste da uspostavite veze između njih. Da biste to uradili, izaberite u jednoj tabeli polje koje će služiti kao povezujuće i prevucite ga na odgovarajuće polje u tabeli s kojom želite da uspostavite vezu.

Da biste uspostavili vezu između dve tabele, uradite sledeće:

·         Pritisnite polje CategoryID u tabeli Categories

·         Držeći pritisnut taster miša, pomerite pokazivač u prozor tabele Products

·         Prevucite ikonu za biranje polja na polje CategoryID u tabeli Products. Access otvara okvir za dijalog Edit Relationships koji je prikazan na slici.

·         Izborom opcije dugme Create uspostavljate novu vezu. Access zatvara okvir za dijalog i povlači liniju između tabela Categories i Products.

 

 

Slika 2. Kreiranje relacije (veze) između tabela Categories i Products

Okvir za dijalog Edit Relationships nudi više opcija za vezu između tabela Pets i Visits. Slika prikazuje taj okvir za dijalog i opcije koje nudi. U njemu se vidi koja je tabela primarna tabela u vezi i da li je obezbeđen referencijalni integritet (čekiramo Enforce Referential Integrity). Okvir za dijalog vam pokazuje i vrstu veze (“jedan prema jedan” ili “jedan prema više”) i omogućava da zadate da li su dozvoljena lančana ažuriranja i brisanja (automatske izmene ključa ili brisanja povezanih slogova) u povezanim tabelama, kada je zadato očuvanje referencijalnog integriteta.

Kada u okviru za dijalog Edit Relationships zadate opciju Enforce Referential Integrity, Access vam omogućava da potvrdite i opciju Cascade Update Related Fields (lančano ažuriranje povezanih polja). Ova opcija pokazuje Accessu da je korisniku dozvoljeno da menja sadržaj povezujućeg polja, odnosno polja primarnog ključa u primarnoj tabeli (šifru kategorije – CategoryID).

Ukoliko u okviru za dijalog Edit Relationships zadate opciju Enforce Referential Integrity, Access vam omogućava da potvrdite i opciju Cascade Delete Related Recordes  (lančano brisanje povezanih slogova). Biranjem ove opcije nalažete Accessu da, ukoliko korisnik pokuša da izbriše slog u primarnoj tabeli, a u tabeli detetu postoje slogovi koji su s njim povezani, najpre mora da izbriše sve povezane slogove u tabeli detetu, pa tek onda i slog u primarnoj tabeli.


Smatrate da je ova lekcija korisna?  Preporučite je. Broj preporuka:6


Molimo Vas unesite svoje podatke i dobićete pristup besplatnim lekcijama.

Ime: 
Prezime: 
Email: