19.10. Domen, tipovi atributa i ograničenja nad podacima
1. Uvod
Prilikom projektovanja baze podataka potrebno je odrediti koji podaci će se čuvati, kakve vrednosti ti podaci mogu imati i koja pravila moraju da poštuju.
Na primer, u školskoj bazi podataka čuvaju se podaci o učenicima, njihovim ocenama, datumima rođenja i odeljenjima. Međutim, nije dozvoljeno da ocena bude 8, da datum rođenja bude neispravan ili da dva učenika imaju isti broj dosijea ako je taj broj određen kao jedinstven.
Da bi se sprečile takve greške, pri projektovanju baze podataka definišu se domeni, tipovi atributa i ograničenja nad podacima.
2. Domen atributa
Domen atributa je skup dozvoljenih vrednosti koje neki atribut može da ima.
Svaki atribut opisuje određeno svojstvo entiteta. Domen određuje koje vrednosti tog svojstva imaju smisla i smeju da se koriste.
Na primer, u bazi podataka škole atribut Ocena predstavlja ocenu učenika. Ako se čuva zaključna ocena, njegove dozvoljene vrednosti su celi brojevi od 1 do 5.
Primeri domena:
|
Atribut |
Domen – dozvoljene vrednosti |
|---|---|
|
|
Tekstualne vrednosti |
|
|
Ispravni datumi |
|
|
Celi brojevi od 1 do 5 |
|
|
Nenegativni celi brojevi, prema pravilima evidencije |
|
|
Oznake odeljenja koja postoje u školi |
Domen nije uvek samo skup vrednosti određen tipom podatka. Na primer, atribut Ocena može biti celobrojnog tipa, ali to ne znači da su sve celobrojne vrednosti dozvoljene. Broj 12 jeste ceo broj, ali nije dozvoljena zaključna ocena u srednjoj školi.
Zato je važno razlikovati tip podatka od domena atributa.
-
Tip podatka određuje vrstu vrednosti koja se čuva, na primer ceo broj, tekst ili datum.
-
Domen određuje koje su konkretne vrednosti dozvoljene za dati atribut.
3. Tipovi atributa
Atributi predstavljaju svojstva entiteta. U zavisnosti od načina na koji su organizovani i koliko vrednosti mogu imati, razlikujemo nekoliko tipova atributa.
3.1. Jednostavni i složeni atributi
Jednostavan atribut predstavlja svojstvo koje se u datom modelu ne razlaže na manje smislene delove.
Primeri:
-
Pol -
Ocena -
DatumRodjenja
Složeni atribut može se razložiti na više manjih atributa koji predstavljaju njegove delove.
Na primer, atribut Adresa može se sastojati od sledećih delova:
-
Ulica -
Broj -
Mesto -
PostanskiBroj
Umesto da se cela adresa čuva kao jedna tekstualna vrednost, njeni delovi mogu se predstaviti zasebnim atributima.
ADRESA
Razlaganje je korisno kada je potrebno pretraživati ili obrađivati pojedinačne delove podatka. Na primer, moguće je pronaći sve učenike iz određenog mesta bez izdvajanja tog podatka iz cele adrese.
3.2. Jednovrednosni i viševrednosni atributi
Jednovrednosni atribut za jednu instancu entiteta ima jednu vrednost.
Primeri:
-
DatumRodjenjaučenika; -
BrojDosijeaučenika; -
Nazivjednog odeljenja.
Viševrednosni atribut za jednu instancu entiteta može imati više vrednosti.
Na primer, jedna osoba može imati dva broja telefona: privatni i poslovni. U tom slučaju, Telefon se može posmatrati kao viševrednosni atribut.
Viševrednosni atribut može se predstaviti posebnim skupom podataka ili posebnom tabelom u relacionoj bazi podataka.
3.3. Izvedeni atributi
Izvedeni atribut je atribut čija se vrednost može izračunati na osnovu drugih sačuvanih podataka.
Primer: starost učenika može se izračunati na osnovu datuma rođenja i trenutnog datuma.
Ako baza podataka već sadrži atribut DatumRodjenja, starost se može izračunavati kada je potrebna, umesto da se trajno čuva kao poseban podatak.
Ovakav pristup sprečava zastarevanje podataka. Kada učenik napuni još jednu godinu, datum rođenja ostaje isti, a izračunata starost se automatski menja u skladu sa trenutnim datumom.
Izvedena vrednost ne mora uvek da se izračunava u trenutku prikaza. U nekim sistemima se čuva radi efikasnosti, ali tada je potrebno voditi računa o njenoj tačnosti i ažuriranju.
4. Ograničenja nad podacima
Ograničenja nad podacima predstavljaju pravila koja određuju koje vrednosti smeju da se unesu i kakvi odnosi između podataka moraju da postoje.
Njihova svrha je da obezbede tačnost, potpunost i međusobnu usklađenost podataka u bazi.
4.1. Ograničenje domena
Vrednost atributa mora pripadati dozvoljenom domenu.
Primer: atribut Ocena može imati vrednosti od 1 do 5.
|
Uneta vrednost |
Da li je dozvoljena? |
|---|---|
|
1 |
Da |
|
3 |
Da |
|
5 |
Da |
|
0 |
Ne |
|
8 |
Ne |
|
|
Ne, ako se ocena čuva kao broj |
Ovo ograničenje sprečava unos vrednosti koje nisu dozvoljene za dati atribut.
4.2. Obaveznost vrednosti
Neki atributi moraju imati unetu vrednost.
Na primer, u evidenciji učenika ime i prezime mogu biti obavezni podaci. Ako su definisani kao obavezni, zapis ne može biti prihvaćen bez tih vrednosti.
U relacionim bazama podataka obaveznost se često ostvaruje ograničenjem NOT NULL.
Treba razlikovati obaveznost od praznog teksta: vrednost može biti tekstualna, ali ne sme biti izostavljena ako je atribut obavezan.
4.3. Jedinstvenost
Ograničenje jedinstvenosti znači da određena vrednost ili kombinacija vrednosti ne sme da se ponavlja u više zapisa, kada je tako definisano pravilima baze.
Na primer, svaki učenik može imati jedinstven broj dosijea.
|
BrojDosijea |
Učenik |
|---|---|
|
101 |
Ana Petrović |
|
102 |
Marko Jovanović |
|
103 |
Jelena Nikolić |
Ako bi drugi učenik dobio broj dosijea 101, nastao bi problem jer bi se isti broj odnosio na dva učenika.
Jedinstvenost omogućava pouzdano razlikovanje zapisa.
4.4. Referencijalni integritet
Referencijalni integritet obezbeđuje da veza između podataka bude ispravna.
Na primer, tabela Ucenik može sadržati oznaku odeljenja kojem učenik pripada, dok se podaci o odeljenjima čuvaju u tabeli Odeljenje.
Ako u tabeli Odeljenje postoje oznake II-1, II-2 i II-3, učenik ne može biti povezan sa odeljenjem II-9 ako ono ne postoji u evidenciji.
U relacionoj bazi podataka ovaj odnos se obično ostvaruje pomoću stranog ključa (foreign key).
Referencijalni integritet sprečava da se u bazi pojave veze prema nepostojećim zapisima.
4.5. Poslovna pravila
Pored prethodnih ograničenja, mogu postojati i posebna pravila koja proizlaze iz načina rada organizacije.
Primeri:
-
datum završetka kursa ne može biti pre datuma početka;
-
broj održanih časova ne može biti negativan;
-
učenik može biti raspoređen samo u odeljenje koje postoji u školskoj evidenciji.
Takva pravila zavise od konkretne baze podataka i poslovnog okruženja.
5. Primer – baza podataka škole
Posmatrajmo deo baze podataka koji čuva podatke o učenicima.
|
Atribut |
Primer vrednosti |
Pravilo |
|---|---|---|
|
|
125 |
Mora biti jedinstven |
|
|
Milica |
Obavezna vrednost |
|
|
15. 4. 2010. |
Mora biti ispravan datum |
|
|
4 |
Mora pripadati dozvoljenom domenu |
|
|
II-2 |
Mora odgovarati postojećem odeljenju |
U ovom primeru svaki atribut ima određenu ulogu. Domen određuje dozvoljene vrednosti, tip atributa opisuje način predstavljanja svojstva, a ograničenja sprečavaju unos neispravnih ili međusobno neusaglašenih podataka.
Kada se ova pravila pravilno definišu, baza podataka postaje pouzdanija i lakša za održavanje.
6. Rešeni zadaci
Zadatak 1 - Atribut Ocena može imati vrednosti 1, 2, 3, 4 i 5. U bazu je pokušan unos vrednosti 7. Koje pravilo je prekršeno?
Rešenje: Prekršeno je ograničenje domena. Vrednost 7 nije u skupu dozvoljenih vrednosti atributa Ocena.
Zadatak 2 - Atribut Adresa sastoji se od ulice, broja, mesta i poštanskog broja.. Kojoj vrsti atributa pripada?
Rešenje: To je složeni atribut, jer se može razložiti na više manjih atributa.
Zadatak 3 - Jedan učenik ima privatni i poslovni broj telefona. Kojoj vrsti atributa pripada Telefon?
Rešenje: To je viševrednosni atribut, jer jedna osoba može imati više vrednosti tog svojstva.
Zadatak 4 - U tabeli Ucenik dva učenika imaju isti broj dosijea, iako je taj broj određen kao jedinstven. Koje ograničenje je prekršeno?
Rešenje: Prekršeno je ograničenje jedinstvenosti.
Zadatak 5 - Učeniku je dodeljeno odeljenje II-8, ali u tabeli Odeljenje ne postoji zapis za to odeljenje. Koje pravilo je prekršeno?
Rešenje: Prekršen je referencijalni integritet, jer učenik upućuje na nepostojeće odeljenje.
7. Zadaci za samostalni rad
-
Navedi po jedan primer jednostavnog i složenog atributa.
-
Objasni razliku između jednovrednosnog i viševrednosnog atributa.
-
Zašto je starost učenika primer izvedenog atributa?
-
Navedi tri dozvoljene i dve nedozvoljene vrednosti za atribut
BrojCasova, uz pretpostavku da broj časova mora biti ceo broj od 0 do 10. -
Objasni zašto broj dosijea učenika treba da bude jedinstven.
-
U tabeli
Uceniknalazi se oznaka odeljenjaIII-5, ali takvo odeljenje ne postoji u tabeliOdeljenje. Objasni u čemu je problem. -
Za atribut
DatumRodjenjanavedi njegov tip podatka, primer domena i jedno ograničenje koje bi trebalo primeniti.
...