Iz 2.razreda -> Kardinalnost veza u bazama podataka
kardinalnost veze:
1. 1 : 1 ___ VLASNIK – BROJ TELEFONA
2. 1 : M ___ NASTAVNIK – PREDMET
3. M : M ___ OSOBA – PASOŠ
___ KUPAC – MODEL AUTOMOBILA
___ UTAKMICA – GRAD DOMAĆIN
Kardinalnost veza u bazama podataka
Uvod
U bazama podataka podaci su organizovani u tabele (relacije). Međutim, tabele retko postoje potpuno nezavisno jedna od druge. Najčešće između njih postoji određena veza (relationship).
Na primer:
-
učenik pripada odeljenju,
-
nastavnik predaje predmet,
-
kupac kupuje proizvod.
Da bismo opisali odnos između tabela koristi se pojam kardinalnost veze.
Kardinalnost pokazuje koliko instanci jedne relacije može biti povezano sa instancama druge relacije.
Najčešće postoje tri vrste kardinalnosti:
-
Jedan prema jedan (1 : 1)
-
Jedan prema više (1 : M)
-
Više prema više (M : M)
1. Veza jedan prema jedan (1 : 1)
Kod veze 1 : 1, jednom zapisu iz prve tabele odgovara najviše jedan zapis iz druge tabele.
Primer
OSOBA – PASOŠ
Jedna osoba može imati jedan pasoš, a jedan pasoš pripada samo jednoj osobi.
Primer tabela:
Osoba
| ID_Osobe | Ime |
|---|---|
| 1 | Marko |
| 2 | Ana |
Pasoš
| Broj_Pasoša | ID_Osobe |
|---|---|
| RS123456 | 1 |
| RS987654 | 2 |
Ovde postoji odnos:
1 osoba → 1 pasoš
Gde se koristi?
Koristi se kada želimo da razdvojimo podatke koji logički pripadaju zajedno, ali ne moraju biti u istoj tabeli.
Na primer:
-
osoba – pasoš,
-
zaposleni – službena kartica,
-
automobil – broj šasije.
2. Veza jedan prema više (1 : M)
Kod veze 1 : M, jedan zapis iz prve tabele može biti povezan sa više zapisa iz druge tabele.
Primer
VLASNIK – BROJ TELEFONA
Jedan vlasnik može imati više telefonskih brojeva.
| ID_Vlasnika | Ime |
|---|---|
| 1 | Marko |
| ID_Broja | Telefon | ID_Vlasnika |
|---|---|---|
| 1 | 064111111 | 1 |
| 2 | 065222222 | 1 |
Ovde važi:
1 vlasnik → više telefona
ali:
1 telefon → samo jedan vlasnik
Kako se realizuje u bazi?
U relaciji koja je na strani više (M) dodaje se strani ključ (foreign key).
Na primer: Tabela Telefon sadrži ID_Vlasnika.
3. Veza više prema više (M : M)
Kod veze M : M, više zapisa iz jedne tabele može biti povezano sa više zapisa iz druge tabele.
Primer
KUPAC – MODEL AUTOMOBILA
Jedan kupac može kupiti više modela automobila.
Jedan model automobila može kupiti više kupaca.
Na primer:
Kupac Marko kupio je:
-
Fiat Tipo
-
Opel Astra
Isti model Fiat Tipo mogu kupiti i drugi kupci.
Dakle:
više kupaca ↔ više modela automobila
Problem
Relacione baze podataka ne podržavaju direktno vezu M : M.
Rešenje – posredna tabela
Uvodi se treća tabela.
Primer:
Kupac
| ID_Kupca | Ime |
|---|---|
| 1 | Marko |
Automobil
| ID_Automobila | Model |
|---|---|
| 1 | Fiat Tipo |
Kupovina
| ID_Kupca | ID_Automobila |
|---|---|
| 1 | 1 |
Tabela Kupovina povezuje kupca i automobil.
Pregled kardinalnosti
| Kardinalnost | Objašnjenje | Primer |
|---|---|---|
| 1 : 1 | Jedan zapis odgovara jednom zapisu | Osoba – Pasoš |
| 1 : M | Jedan zapis odgovara većem broju zapisa | Vlasnik – Broj telefona |
| M : M | Više zapisa povezano sa više zapisa | Kupac – Model automobila |
Kako lako prepoznati kardinalnost?
Postavite pitanje:
„Koliko elemenata sa jedne strane može biti povezano sa jednom instancom druge strane?“
Primer:
Jedan kupac može kupiti koliko automobila? → više
Jedan model može imati koliko kupaca? → više
Rezultat:
M : M
Zaključak
Kardinalnost veza predstavlja način opisivanja odnosa između tabela u bazi podataka. Razumevanje kardinalnosti je važno jer utiče na projektovanje baze i način povezivanja podataka.
Najvažnije je zapamtiti:
-
1 : 1 → jedan sa jednim
-
1 : M → jedan sa više
-
M : M → više sa više
Pravilno određivanje kardinalnosti omogućava kreiranje kvalitetne i logički organizovane baze podataka.