Dodatak: Atribut i jedinstveni identifikator
1. Uvod
Na prethodnom času naučili smo šta su entitet i instanca.
Na primer, u školskoj bazi možemo da imamo entitet: UČENIK
Jedna njegova instanca može biti: Marko Marković
Ali sada se postavlja novo pitanje:
Koje podatke treba da čuvamo o Marku Markoviću?
Možemo čuvati:
-
ime,
-
prezime,
-
datum rođenja,
-
adresu,
-
odeljenje,
-
broj telefona,
-
e-mail adresu...
Ovi podaci opisuju učenika.
2. Šta je atribut?
Atribut je osobina ili karakteristika entiteta o kojoj želimo da čuvamo podatke.
Jednostavno rečeno:
Atribut opisuje entitet.
Na primer, za entitet: UČENIK možemo imati atribute: ime, prezime, datum rođenja, adresa, odeljenje.
Možemo predstaviti:
UČENIK
/ | \
ime prezime datum rođenja
Dakle:
UČENIK je entitet.
ime, prezime i datum rođenja su atributi tog entiteta.
3. Primer iz svakodnevnog života
Zamislite automobil.
Automobil ima različite osobine:
-
marku,
-
model,
-
boju,
-
godinu proizvodnje,
-
broj motora.
Ako pravimo bazu podataka o automobilima, možemo imati:
AUTOMOBIL
Atributi:
-
marka,
-
model,
-
boja,
-
godina proizvodnje.
Dakle:
AUTOMOBIL
|
+-- marka
+-- model
+-- boja
+-- godina proizvodnje
4. Entitet i atribut nisu isto
Ovo je jedna od najvažnijih stvari koju treba razumeti.
Pogledajmo:
UČENIK
ime
prezime
datum rođenja
U ovom primeru:
-
UČENIK je entitet;
-
ime je atribut;
-
prezime je atribut;
-
datum rođenja je atribut.
Zapamtiti:
Entitet je ono o čemu čuvamo podatke.
Atribut je podatak koji opisuje entitet.
5. Primer – knjiga
U biblioteci imamo entitet: KNJIGA
Koje osobine knjiga možemo čuvati?
Na primer:
-
naslov,
-
ISBN,
-
godina izdanja,
-
broj strana,
-
izdavač.
Dakle:
| Entitet | Atributi |
|---|---|
| KNJIGA | naslov |
| ISBN | |
| godina izdanja | |
| broj strana | |
| izdavač |
6. Primer – proizvod
U internet prodavnici možemo imati entitet: PROIZVOD
Atributi mogu biti:
-
naziv proizvoda,
-
cena,
-
proizvođač,
-
kategorija,
-
opis,
-
količina na stanju.
Na primer:
PROIZVOD
| Atribut | Vrednost |
|---|---|
| naziv | Laptop Lenovo |
| cena | 75000 |
| proizvođač | Lenovo |
| kategorija | Računari |
Ovde treba primetiti još nešto.
naziv je atribut.
Laptop Lenovo je vrednost tog atributa.
Dakle:
Atribut je osobina, a vrednost atributa je konkretan podatak za određenu instancu.
7. Atribut i vrednost atributa
Ovo možemo prikazati ovako:
Entitet: UČENIK
Instanca: Marko Marković
| Atribut | Vrednost |
|---|---|
| Ime | Marko |
| Prezime | Marković |
| Odeljenje | III-2 |
| Datum rođenja | 15. 3. 2009. |
Ovde su:
-
Ime – atribut;
-
Marko – vrednost atributa;
-
Prezime – atribut;
-
Marković – vrednost atributa;
-
Odeljenje – atribut;
-
III-2 – vrednost atributa.
8. Zašto su nam potrebni atributi?
Bez atributa ne bismo znali dovoljno o entitetima.
Ako imamo samo:
UČENIK
ne znamo ništa o konkretnom učeniku.
Ako dodamo:
-
ime,
-
prezime,
-
datum rođenja,
-
odeljenje,
onda možemo opisati učenika mnogo preciznije.
Zato atributi omogućavaju da opišemo karakteristike instanci entiteta.
9. Koliko atributa može imati entitet?
Ne postoji jedan isti broj atributa za svaki entitet.
Broj atributa zavisi od toga koje podatke sistem treba da čuva.
Na primer:
BOJA
možda ima samo:
-
naziv boje.
Ali:
UČENIK
može imati mnogo atributa:
-
ime,
-
prezime,
-
datum rođenja,
-
adresa,
-
telefon,
-
e-mail,
-
odeljenje...
Važno je da ne dodajemo podatke koji nam nisu potrebni.
10. Kako biramo atribute?
Kada određujemo atribute, postavljamo pitanje:
Koje osobine ovog entiteta su nam potrebne u sistemu?
Na primer, ako pravimo bazu za biblioteku:
KNJIGA
potrebni su nam:
-
naslov,
-
autor,
-
godina izdanja,
-
ISBN.
Ali možda nam nije potreban podatak:
-
boja korica.
To zavisi od namene baze.
Dakle:
Atribut biramo prema potrebama sistema.
11. Problem: kako razlikovati instance?
Sada dolazimo do veoma važnog problema.
Pretpostavimo da u školi imamo dva učenika:
Marko Marković
i
Marko Marković
Obojica su u različitim odeljenjima.
Ako u bazi imamo samo:
-
ime,
-
prezime,
ne možemo pouzdano znati na kog Marka Markovića mislimo.
Slično može da se desi i sa knjigama.
Možemo imati više knjiga sa istim naslovom.
Na primer, postoji mnogo knjiga koje se zovu: „Ana Karenjina“
Kako ćemo razlikovati jednu knjigu od druge?
Potreban nam je podatak koji će jednoznačno identifikovati svaku instancu.
12. Jedinstveni identifikator
Jedinstveni identifikator je atribut ili skup atributa koji jednoznačno određuje jednu instancu entiteta.
Jednostavnije:
Jedinstveni identifikator omogućava da tačno znamo o kojoj instanci govorimo.
Na primer, učenicima možemo dodeliti:
UcenikID
-
101
-
102
-
103
-
104
Tada možemo imati:
| UcenikID | Ime | Prezime |
|---|---|---|
| 101 | Marko | Marković |
| 102 | Ana | Jovanović |
| 103 | Marko | Marković |
| 104 | Nikola | Petrović |
Iako imamo dva učenika sa istim imenom i prezimenom, UcenikID ih razlikuje.
13. Primer identifikatora
Posmatrajmo:
UČENIK
Atributi:
-
UcenikID
-
ime
-
prezime
-
datum rođenja
-
odeljenje
Možemo označiti:
UcenikID → jedinstveni identifikator
Dok su:
ime, prezime, datum rođenja, odeljenje → ostali atributi
14. Zašto ime i prezime nisu dobar identifikator?
Na prvi pogled možemo pomisliti:
„Ime i prezime su dovoljni.“
Ali nisu.
Možemo imati:
Marko Marković
i
Marko Marković
To mogu biti dve različite osobe.
Čak i ako trenutno u jednoj školi nema dva učenika sa istim imenom i prezimenom, to pravilo nije dovoljno pouzdano.
Zato se često uvodi poseban identifikator:
UcenikID
Njegova vrednost je jedinstvena za svakog učenika.
15. Primer – knjiga
Za entitet:
KNJIGA
možemo imati:
-
KnjigaID
-
naslov
-
godina izdanja
-
ISBN
-
izdavač.
Na primer:
| KnjigaID | Naslov | Godina |
|---|---|---|
| 1 | Ana Karenjina | 2018 |
| 2 | Ana Karenjina | 2022 |
| 3 | Mali princ | 2019 |
Naslov nije nužno dovoljan da jednoznačno odredi konkretnu knjigu.
KnjigaID može služiti kao jedinstveni identifikator.
16. Jedinstveni identifikator može biti i nešto što već postoji
Ne mora uvek da se pravi poseban broj.
Ako neki postojeći podatak već pouzdano i jedinstveno identifikuje objekat, može se koristiti kao identifikator.
Na primer, kod knjige možemo koristiti:
ISBN
ISBN identifikuje konkretno izdanje knjige.
Kod proizvoda možemo imati:
šifru proizvoda
Kod zaposlenog možemo imati:
broj zaposlenog
Međutim, u bazama se često koristi i poseban identifikator, na primer:
UcenikID
KnjigaID
ProizvodID
17. Identifikator mora biti jedinstven
Ako koristimo:
UcenikID
onda dve različite instance ne smeju imati isti identifikator.
Na primer:
| UcenikID | Ime | Prezime |
|---|---|---|
| 1 | Marko | Marković |
| 2 | Marko | Marković |
| 3 | Ana | Jovanović |
Ovo je dozvoljeno.
Ali:
| UcenikID | Ime | Prezime |
|---|---|---|
| 1 | Marko | Marković |
| 1 | Ana | Jovanović |
nije dobro ako UcenikID treba da bude jedinstveni identifikator.
Jedna vrednost identifikatora mora pripadati samo jednoj instanci.
18. Jedinstveni identifikator i primarni ključ
U relacionim bazama podataka jedinstveni identifikator se često realizuje kao:
PRIMARY KEY – primarni ključ
Na primer:
UČENIK
+----------+--------+----------+
| UcenikID | Ime | Prezime |
+----------+--------+----------+
| 1 | Marko | Marković |
| 2 | Ana | Jovanović|
| 3 | Nikola | Petrović|
+----------+--------+----------+
UcenikID može biti primarni ključ tabele.
Na ovom času je dovoljno da razumemo ideju.
Detaljnije o primarnom ključu i ključevima radićemo kada budemo povezivali konceptualni i logički model.
19. Entitet – atribut – vrednost – identifikator
Sada možemo povezati sve pojmove koje smo naučili.
Posmatrajmo:
Marko Marković, učenik III-2
On je jedna instanca entiteta:
UČENIK
Entitet ima atribute:
-
UcenikID
-
ime
-
prezime
-
odeljenje
Konkretne vrednosti mogu biti:
| Atribut | Vrednost |
|---|---|
| UcenikID | 101 |
| ime | Marko |
| prezime | Marković |
| odeljenje | III-2 |
UcenikID služi kao jedinstveni identifikator.
Možemo zapamtiti:
ENTITET → UČENIK
INSTANCA → Marko Marković
ATRIBUT → ime
VREDNOST ATRIBUTA → Marko
IDENTIFIKATOR → 101
20. Još jedan primer – automobil
Entitet:
AUTOMOBIL
Atributi:
-
AutomobilID
-
marka
-
model
-
boja
-
godina proizvodnje
Jedna instanca:
AutomobilID = 25
marka = Toyota
model = Corolla
boja = bela
godina proizvodnje = 2022
Dakle:
| Pojam | Primer |
|---|---|
| Entitet | AUTOMOBIL |
| Instanca | konkretna Toyota Corolla |
| Atribut | marka |
| Vrednost atributa | Toyota |
| Identifikator | 25 |
21. Kako prepoznati atribute?
Kada imamo entitet, postavimo pitanje:
Koje osobine tog entiteta treba da poznajemo?
Na primer:
ENTITET: UČENIK
Pitamo:
-
Kako se zove?
-
Koje je prezime?
-
Kada je rođen?
-
Kom odeljenju pripada?
-
Koji je njegov identifikator?
Odgovori nam daju moguće atribute.
22. Primer – biblioteka
Za entitet:
ČLAN
mogući atributi su:
-
ClanID
-
ime
-
prezime
-
adresa
-
telefon
-
e-mail.
Za entitet:
KNJIGA
mogući atributi su:
-
KnjigaID
-
naslov
-
ISBN
-
godina izdanja
-
izdavač.
Za entitet:
AUTOR
mogući atributi su:
-
AutorID
-
ime
-
prezime
-
godina rođenja.
23. Važno pravilo
Ne treba praviti atribut od svega što možemo zamisliti.
Atribut treba da bude:
-
potreban sistemu,
-
smislen za taj entitet,
-
jasno definisan,
-
pogodan za čuvanje određene vrednosti.
Na primer, za entitet UČENIK:
ime – ima smisla.
prezime – ima smisla.
datum rođenja – ima smisla.
omiljena boja – možda ima smisla, ali samo ako je sistemu taj podatak potreban.
Zato projektant baze ne pita samo:
„Šta mogu da čuvam?“
već:
„Šta treba da čuvam?“
24. Kratak pregled
Do sada smo naučili:
Entitet - Objekat ili pojam o kome čuvamo podatke.
Primer: UČENIK
Instanca - Jedan konkretan primer entiteta.
Primer: Marko Marković
Atribut - Osobina koja opisuje entitet.
Primer: ime
Vrednost atributa - Konkretan podatak za jednu instancu.
Primer: Marko
Jedinstveni identifikator - Podatak koji jednoznačno određuje jednu instancu.
Primer: UcenikID = 101
25. Sve zajedno
Možemo prikazati:
ENTITET
UČENIK
|
-----------------------
| | |
Atribut Atribut Atribut
UcenikID ime prezime
| | |
101 Marko Marković
|
identifikator
Ovde:
-
UČENIK je entitet;
-
101 je identifikator konkretne instance;
-
ime je atribut;
-
Marko je vrednost atributa;
-
prezime je atribut;
-
Marković je vrednost atributa.
26. Pitanja za proveru znanja
-
Šta je atribut?
-
Šta je vrednost atributa?
-
Koja je razlika između entiteta i atributa?
-
Navedite pet atributa entiteta UČENIK.
-
Navedite pet atributa entiteta KNJIGA.
-
Šta je jedinstveni identifikator?
-
Zašto ime i prezime nisu uvek dobar identifikator?
-
Zašto je važno da identifikator bude jedinstven?
-
Šta može biti identifikator učenika?
-
Šta može biti identifikator knjige?
-
Šta je primarni ključ?
-
Objasnite razliku između atributa i vrednosti atributa.