Podatkovne baze 1

Načrtovanje podatkovnih baz

</span>


Zgradba/arhitektura podatkovnih baz

Zgradbo podatkovnih baz opisuje trinivojska arhitektura ANSI-SPARC.


Podatkovna neodvisnost


Problemi pri načrtovanju podatkovnih baz

</span>


Ključ uspeha je v sodelovanju z uporabniki!

Pri sodelovanju morajo načrtovalci podatkovnih baz in uporabniki govoriti ‘isti’ jezik, sicer pride do večjih razhajanj med dejanskimi in realiziranimi nalogami.

w:500px w:500px


Nivoji načrtovanja


Koraki načrtovanja


Konceptualni nivo načrtovanja

Izhodišče:


Celovit pristop h konceptualnemu načrtovanju


Zbiranje podatkov


Predstavitev podatkov

</span>


Primer

Naziv entitetnega tipa Opis Sinonim Število entitet
Profesor Pedagoški delavec, ki je nosilec enega ali več predmetov Pedagoški delavec Vsaka katedra ima enega ali več profesorjev
Izpitni rok Datum, na katerega je za nek predmet in določeno ciljno skupino (letnik, smer, …) razpisan izpitni rok Rok, pisni izpit, kolokvij Na leto se razpiše okrog 300 pisnih izpitov; vsak predmet mora imeti vsaj tri roke letno
     

</span>


Odnosi med entitetami

(angl. relationship, včasih rečemo tudi relacija)

</span>


Odnosi ena na ena (1:1)


Odnosi ena na več (1:n)


Odnosi več na več (m:n)


Konceptualni nivo načrtovanja

Postopek:


Primer opisa sistema


ER diagram

(angl. entity-relationship diagram, tudi entitetno-odnosni diagram)

h:350px

</span>


Orodja


Entitetni tip - primeri risanja

w:400px

w:400px

</span>

w:400px

</span> </span>


Števnosti odnosov


Vranja notacija

(angl. crow’s foot notation)


Logični nivo načrtovanja


Identifikacija tabel

</span>


Integritetne omejitve


Logični model - primer

oseba   (#id_osebe, ime, priimek, starost, kraj_rojstva->kraj(id_kraja))
moski   (#id_osebe->oseba(id_osebe), vojaski_cin)
zenska  (#id_osebe->oseba(id_osebe), dekliski_priimek)
kraj    (#id_kraja, ime, prebivalstvo, drzava->drzava(id_drzave))
drzava  (#id_drzave, ime, prebivalstvo)
bivanje (#id_osebe->oseba(id_osebe), #id_kraja->kraj(id_kraja), leta)

Anomalije in normalizacija podatkov


Napake in potrata prostora

</span>


Rešitev


Zgled

</span>

</span> </span>

</span>


Kaj želimo doseči?

</span>


Funkcijske odvisnosti in ključi

</span>


Prva normalna oblika (1NF)


Dekompozicija

Predmet Profesor
Seminar I J. Moder
Analiza III B. Novak
Računalništvo II K. Perko
Fizika M. Jazbec

</span>

Predmet $\to$ Smer
Seminar I Pedagoška
Analiza III Teoretična
Analiza III Uporabna
Računalništvo II Uporabna
Fizika Pedagoška
Fizika Uporabna
Fizika Teoretična

</span> </span>


Druga normalna oblika (2NF)


Dekompozicija


Tretja normalna oblika (3NF)


Dekompozicija


Primer ustvarjanja baze


Konceptualni model

</span>

</span> </span>


Logični model (SQLite)

CREATE TABLE film (
  id         integer  PRIMARY KEY AUTOINCREMENT,
  naslov     text     NOT NULL,
  leto       integer  NOT NULL CHECK (leto > 1900),
  dolzina    integer  NOT NULL CHECK (dolzina > 0),
  UNIQUE (naslov, leto)
);

CREATE TABLE dvorana (
  id         integer  PRIMARY KEY AUTOINCREMENT,
  kapaciteta integer  NOT NULL CHECK (kapaciteta > 0) 
);

CREATE TABLE spored (
  id         integer  PRIMARY KEY AUTOINCREMENT,
  film       integer  NOT NULL REFERENCES film(id),
  dvorana    integer  NOT NULL REFERENCES dvorana(id),
  termin     datetime NOT NULL,
  UNIQUE (dvorana, termin)
);

</span>