1. Uvod

Do sada smo učili kako se u informacionom sistemu prepoznaju entiteti, njihovi atributi i veze između entiteta.

Na primer, u školskom sistemu možemo imati entitete:

  • UČENIK

  • NASTAVNIK

  • ODELJENJE

  • PREDMET

Za svaki entitet čuvamo određene podatke.

Međutim, ponekad možemo da uočimo da dva ili više entiteta imaju veliki broj zajedničkih osobina.

Na primer, učenik i nastavnik su različite vrste osoba, ali za oba možemo čuvati:

  • ime,

  • prezime,

  • datum rođenja,

  • adresu,

  • telefon.

Tada se postavlja pitanje:

Da li možemo zajedničke podatke da izdvojimo u jedan zajednički entitet?

Možemo.

Tako dolazimo do pojmova nadtip i podtip, odnosno, do pojmova generalizacija i specijalizacija.


2. Nadtip i podtip

Nadtip je opštiji entitet koji sadrži zajedničke osobine više specifičnih entiteta.

Podtip je specifičniji entitet koji pripada određenom nadtipu i, pored nasleđenih osobina, može imati i svoje posebne osobine.

Na primer:

                    OSOBA
                      |
             -------------------
             |                 |
          UČENIK           NASTAVNIK

Ovde su:

  • OSOBA – nadtip

  • UČENIK – podtip

  • NASTAVNIK – podtip

OSOBA predstavlja opšti pojam, dok su učenik i nastavnik njegove specifične vrste.


3. Zašto koristimo nadtip i podtip?

Pretpostavimo da ne koristimo nadtip.

Imali bismo entitete:

UČENIK

  • UcenikID

  • ime

  • prezime

  • datum_rođenja

  • adresa

  • telefon

  • odeljenje

NASTAVNIK

  • NastavnikID

  • ime

  • prezime

  • datum_rođenja

  • adresa

  • telefon

  • stručna_sprema

  • predmet

Primećujemo da se neki atributi ponavljaju:

  • ime

  • prezime

  • datum rođenja

  • adresa

  • telefon

Možemo ih izdvojiti u nadtip:

OSOBA

  • OsobaID

  • ime

  • prezime

  • datum_rođenja

  • adresa

  • telefon

A zatim napraviti podtipove:

UČENIK

  • broj_dnevnika

  • odeljenje

NASTAVNIK

  • stručna_sprema

  • predmet

Dobijamo:

                       OSOBA
              ----------------------
              OsobaID
              ime
              prezime
              datum_rođenja
              adresa
              telefon
                       |
              -----------------
              |               |
           UČENIK         NASTAVNIK
           --------       -----------
           odeljenje      stručna_sprema
           broj_dnevnika  predmet

4. Nasleđivanje atributa

Jedna od važnih osobina podtipa jeste da nasleđuje osobine nadtipa.

Ako OSOBA ima atribute:

  • OsobaID

  • ime

  • prezime

  • datum_rođenja

onda UČENIK kao podtip ima pristup tim osobinama.

Ne moramo ponovo da ih navedemo u podtipu.

UČENIK dodatno može imati:

  • broj_dnevnika

  • odeljenje

NASTAVNIK dodatno može imati:

  • stručnu_spremu

  • predmet

Zato možemo razmišljati ovako:

OSOBA
  ↓
zajednički podaci

UČENIK
  ↓
nasleđeni podaci + podaci specifični za učenika

NASTAVNIK
  ↓
nasleđeni podaci + podaci specifični za nastavnika

5. Kako prepoznajemo nadtip i podtip?

Jedno veoma korisno pitanje je:

Da li je X jedna vrsta Y?

Ako možemo da kažemo:

Učenik je osoba.

Nastavnik je osoba.

onda možemo razmišljati o modelu:

OSOBA
 ├── UČENIK
 └── NASTAVNIK

Drugi primer:

Automobil je vozilo.

Motocikl je vozilo.

Zato:

VOZILO
 ├── AUTOMOBIL
 └── MOTOCIKL

Treći primer:

Pas je životinja.

Mačka je životinja.

Možemo imati:

ŽIVOTINJA
 ├── PAS
 └── MAČKA

6. Generalizacija

Generalizacija je postupak u kome se zajedničke osobine više specifičnih entiteta izdvajaju u jedan opštiji entitet – nadtip.

Na primer, imamo:

UČENIK
- ime
- prezime
- adresa

NASTAVNIK
- ime
- prezime
- adresa

Zajedničke osobine izdvajamo:

             OSOBA
       ime
       prezime
       adresa
          /   \
         /     \
    UČENIK   NASTAVNIK

Dakle:

više specifičnih → jedan opšti

To je generalizacija.


7. Specijalizacija

Specijalizacija predstavlja obrnut način razmišljanja.

Krećemo od opšteg entiteta i izdvajamo njegove specifične vrste.

Na primer:

VOZILO
- proizvođač
- model
- godina_proizvodnje
- registarski_broj

Možemo ga specijalizovati na:

             VOZILO
             /     \
            /       \
     AUTOMOBIL    MOTOCIKL

Automobil može imati:

  • broj vrata

Motocikl može imati:

  • tip motocikla

Dakle:

jedan opšti → više specifičnih

To je specijalizacija.


8. Generalizacija i specijalizacija – razlika

Možemo ih posmatrati iz dva pravca.

Generalizacija - Polazimo od više specifičnih entiteta i pronalazimo ono što im je zajedničko.

UČENIK + NASTAVNIK
          ↓
        OSOBA

Specijalizacija - Polazimo od opšteg entiteta i razdvajamo ga na specifične vrste.

        OSOBA
        ↓   ↓
    UČENIK NASTAVNIK

U praksi se oba postupka koriste za izgradnju kvalitetnog modela baze podataka.


9. Nadtip i podtip nisu obična veza

Ako pogledamo primer:

UČENIK ─── pripada ─── ODELJENJE

Ovde imamo običnu vezu između dva entiteta.

Ali:

          OSOBA
         /     \
    UČENIK    NASTAVNIK

ne znači:

učenik „ima“ osobu

ili:

učenik „pripada“ osobi.

Ovde važi:

Učenik je osoba.

Nastavnik je osoba.

Dakle, govorimo o odnosu „JE“, a ne o običnoj poslovnoj vezi.


10. Još jedan primer – zaposleni

U preduzeću svi zaposleni imaju:

  • ID zaposlenog

  • ime

  • prezime

  • datum zaposlenja

Ali mogu postojati različite vrste zaposlenih.

Na primer:

                 ZAPOSLENI
                     |
             ----------------
             |              |
         NASTAVNIK       ADMINISTRATOR

Nastavnik može imati:

  • predmet

Administrator može imati:

  • nivo pristupa

Zajednički podaci pripadaju nadtipu ZAPOSLENI.


11. Podtip može imati svoje atribute

Podtip ne mora imati samo jedan atribut.

Na primer:

                  VOZILO
             ---------------
             VoziloID
             proizvođač
             model
             godina
                    |
          ----------------------
          |                    |
      AUTOMOBIL            MOTOCIKL
      broj_vrata           zapremina
      broj_sedišta         tip

Zajednički atributi su u nadtipu VOZILO.

Specifični atributi su u odgovarajućem podtipu.


12. Da li svaki sličan entitet treba da bude podtip?

Ne.

Samo zato što dva entiteta imaju neke zajedničke atribute ne znači automatski da moramo praviti nadtip.

Potrebno je razmišljati o značenju podataka i pravilima informacionog sistema.

Na primer:

KUPAC
ZAPOSLENI

mogu imati:

  • ime

  • prezime

  • telefon

  • adresu

Ali to samo po sebi nije dovoljno da kažemo da jedan mora biti podtip drugog entiteta.

Pitanje je:

Da li je KUPAC jedna vrsta ZAPOSLENOG?

Nije.

Zato ovde ne postoji odnos nadtip–podtip samo zbog zajedničkih atributa.


13. Jednostavan postupak rešavanja zadatka

Kada dobijemo opis sistema, možemo koristiti sledeći postupak:

Korak 1 - Pronađi moguće entitete.

Korak 2 - Uporedi njihove atribute.

Korak 3 - Pronađi zajedničke osobine.

Korak 4 - Postavi pitanje:  "Da li je jedan entitet vrsta drugog?"

Korak 5 - Ako jeste, razmotri nadtip i podtip.

Korak 6 - Zajedničke atribute postavi u nadtip.

Korak 7 - Specifične atribute postavi u odgovarajuće podtipove.


14. Primer – biblioteka

Biblioteka ima članove.

Član može biti:

  • učenik

  • nastavnik

  • spoljni član.

Za svakog člana čuvamo:

  • ČlanID

  • ime

  • prezime

  • telefon

Za učenika dodatno:

  • odeljenje

Za nastavnika dodatno:

  • predmet

Za spoljnog člana:

  • firma

Mogući model:

                     ČLAN
             ------------------
             ČlanID
             ime
             prezime
             telefon
                    |
        ---------------------------
        |            |            |
     UČENIK      NASTAVNIK    SPOLJNI ČLAN
     odeljenje    predmet       firma

15. Zaključak

U ovoj lekciji naučili smo:

  • šta je nadtip;

  • šta je podtip;

  • šta je generalizacija;

  • šta je specijalizacija;

  • kako se izdvajaju zajednički atributi;

  • kako podtip nasleđuje osobine nadtipa;

  • kako prepoznajemo odnos „JE“;

  • kako razlikujemo nadtip–podtip od obične veze između entiteta.

Najvažnije je zapamtiti:

Nadtip predstavlja opštu kategoriju, a podtip njenu specifičnu vrstu.

Na primer:

              OSOBA
             /     \
            /       \
        UČENIK    NASTAVNIK

Učenik je osoba.

Nastavnik je osoba.

To je osnovna ideja generalizacije i specijalizacije.


Pitanja za proveru znanja

  1. Šta je nadtip?

  2. Šta je podtip?

  3. Šta je generalizacija?

  4. Šta je specijalizacija?

  5. Koje osobine se nalaze u nadtipu?

  6. Da li podtip može imati svoje atribute?

  7. Šta znači da podtip nasleđuje osobine nadtipa?

  8. Kako možemo prepoznati odnos nadtip–podtip?

  9. Koja je razlika između odnosa „JE“ i obične veze?

  10. Navedi primer nadtipa i najmanje dva podtipa.


Zadatak

Za svaki od sledećih primera odrediti mogući nadtip i podtipove:

A

  • AUTOMOBIL

  • MOTOCIKL

  •  

B

  • UČENIK

  • NASTAVNIK

  • OSOBA

C

  • PAS

  • MAČKA

  • ŽIVOTINJA

D

  • STUDENT

  • PROFESOR

  • OSOBA

D

  • DOMAR

  • PROFESOR

  • ZAPOSLENI

Za svaki primer navesti:

  1. nadtip;

  2. podtipove;

  3. najmanje tri zajednička atributa;

  4. najmanje jedan specifičan atribut za svaki podtip.

Last modified: Monday, 26 October 2026, 9:31 AM