Relacijski podatkovni model

Iz E-študij, proste zakladnice študentskega znanja

Skoči na: navigacija, iskanje

Relacijski podatkovni model sodi med površinske podatkovne modele. Uporablja se za predstavitev podatkovne baze na konceptualnem in zunanjem nivoju in kot sredstvo za specifikacijo ustreznih (konceptualnih in zunanjih) shem.

Vsebina

O relacijskem podatkovnem modelu

  • Pojavi se leta 1970, predlaga ga Edgar Codd.
  • Pomeni revolucijo, nadomesti starejše modele.
  • Model PB, ki temelji na relacijskem modelu, je predstavljena z množico relacij, kjer je vsaka relacija tabela z vrsticami in stolpci.
  • Je zelo enostaven za razumevanje:
  • Tudi neizkušeni lahko razumejo vsebino podatkovne baze;
  • Na voljo so enostavni vendar močni jeziki za poizvedovanje po vsebini PB.

Terminologija

Pri relacijskem modelu uporabljamo določeno terminologijo:

Lastnosti

  • Ime relacije je enolično. V logični enoti (odvisno od SUPB, praviloma gre za shemo) podatkovne baze ni dveh relacij z enakim imenom
  • Vsaka celica tabele (polje), ki predstavlja relacijo, vsebuje natančno eno atomarno vrednost
  • Vsak atribut relacije ima enolično ime. V isti relaciji ni dveh atributov, ki bi imela isto ime
  • Vrednosti nekega atributa so vse iz iste domene
  • Vsaka n-terica relacije je enolična v relaciji ni dveh enakih n-teric.
  • Vrstni red atributov v relaciji je nepomemben.
  • Vrstni red n-teric v relaciji je nepomemben.

  • formalno definiran na matematičnih strukturah - relacijah
  • ne ukvarja se s fizično realizacijo shranjevanja podatkov (fizična podatkovna neodvisnost)
  • relacije so predstavjene s tabelami, ki so človeku dobro razumljive

Relacijska podatkovna baza je sestavljena iz množice tabel. Vsaka tabela je sestavjena iz dveh delov: čelne vrstice (relacijska shema) in podatkovnih vrstic (relacija). Čelna vrstica pojasnjuje pomen posameznih stolpcev v tabeli. Tabele se na osnovi kompatibilnih pomenov stolpcev lahko med seboj povezujejo in tvorijo nove relacije (tabele). Tako so poleg tabel, ki so fizično prisotne v relacijski podatkovni bazi, uporabniku na voljo tudi navidezne tabele, ki se tvorijo s pomočjo povpraševalnih jezikov.

Relacija

Matematična osnova relacijskega modela je relacija, ki je podmnožica kartezijskega produkta liste domen:

nad listo domen: D1, D2, ... Dn definiramo relacijo r:

(pri čemer lahko za poljubna x in y (znotraj 1 do n) velja ix = iy)

Vsaka izmed domen igra v relaciji določeno vlogo. Pomembno je tudi mesto na katerem nastopa: ker lahko ista domena v relaciji nastopa večkrat ima vsaka njena pojavitev drugačno vlogo.

Relacijo lahko imenujemo tudi množico urejenih n-teric.

V relacijskih podatkovnih baz nas zanimajo samo relacije, katerih moč m je končno število (m < ∞)

Atributi

Relacija v podatkovni bazi predstavlja model dogajanja ali stanja v svetu. Vsaka n-terica relacije predstavlja neko entiteto, povezavo entitet ali pa kar oboje. Za vse te predstave uporabimo skupno ime objekt.

Posamezno lasnost objekta imenujemo atribut. Atribut je definiran kot preslikava množice objektov O v pripadajočo domeno Di. V večini praktičnih primerov se omejimo na atribute tipa funkcija - v tem primeru pravimo, da se relacija nahaja v 1. normalni formi in jo lahko predstavimo z dvodimenzionalno tabelo (v nasprotnem primeru bi potrebovali večdimenzionalne strukture).

Relacijo, ki se nahaja v 1. normalni formi zapišemo kot: r = { (A1(o), A2(o), ... Am(o)): o ∈ O }

Če se dva objekta preslikata v iste vrednosti domen (imata enake lastnosti), potem sta v relaciji predstavljeni z isto n-terico.

Relacijska shema

Relacijska shema je sestavljena iz oznake relacije (npr. R) in liste atributov s pripadajočimi domenami (velikokrat zapis poenostavimo tako, da domene izpustimo)

primer:

R (A1 : D1, A2 : D2, ... Am : Dn)
poenostavljen zapis:
R (A1, A2, ... Am)

Definiramo še funkcijo Sh: Relacija → Shema ( R = Sh(r) ).

Ni treba posebej poudarjati, da posamezni relaciji pripada samo ena relacijska shema, medtem ko lahko ista relacijska shema opisuje več relacij.

Ponavadi privzamemo, da relacijska shema ne more vsebovati enako imenovanih atributov, če pa jih vsebuje, jih razlikujemo s pomočjo njihovih pozicijskih indeksov v shemi.

Dve relaciji, ki se razlikujeta med seboj le v vrstnem redu komponent relacijske sheme, sta z matematičnega stališča sicer različni, po pomenu (informacijski vsebini) pa ju obravnavamo kot ekvivalentni.

Funkcionalne odvisnosti

Relacija je model nekega stanja v poslovni domeni → njena vsebina ne more biti poljubna.

Realne omejitve ne omogočajo, da bi bili odnosi v svetu kakršnikoli; možna so le določena stanja.

Odvisnosti so sredstvo, s katerim lahko v relacijskem modelu povemo, katere vrednosti relacij so veljavne in katere sploh ne morejo obstajati.

Poznamo več vrst odvisnosti:

  • Funkcionalne odvisnosti (functional dependency)
  • Večvrednostne odvisnosti (multivalued dependency)
  • Stične odvisnosti (join dependency)

Obravnavali bomo funkcionalne odvisnosti


Predpostavimo, da obstaja relacijska shema R z množico atributov, katere podmnožici sta X in Y.

V relacijski shemi R velja X → Y (X funkcionalno določa Y oziroma Y je funkcionalno odvisen od X), če v nobeni relaciji, ki pripada shemi R, ne obstajata dve n-terici, ki bi se ujemali v vrednostih atributov X in se ne bi ujemali v vrednostih atributov Y.

Množico funkcionalnih odvisnosti, ki veljajo med atributi funkcionalne sheme R in v vseh njenih relacijah, označimo s F

X → Y  F   r ( Sh(r) = R   t,  u (t  r in u  r in t.X = u.X  t.Y = u.Y )

kjer

t.X, u.X, t.Y in u.Y označujejo vrednosti atributov X oziroma Y v n-tericah t oziroma u.

Primeri

Imamo relacijo s shemo

Izpit( VpŠt, Priimek, Ime, ŠifraPredmeta, Datum izpita, OcenaPisno, OcenaUstno)

z naslednjim pomenom:

Študent z vpisno številko VpŠt ter priimkom Priimek in imenom Ime je na DatumIzpita opravljal izpit iz predmeta s šifro ŠifraPredmeta. Dobil je oceno OcenaPisno in OcenaUstno.

Funkcionalne odvisnosti relacijske sheme Izpit so:

F  { VpŠt → (Priimek, Ime), (VpŠt, ŠifraPredmeta, DatumIzpita) → (OcenaPisno, OcenaUstno) }  





Relacija je model stanja v svetu, v katerem veljajo tudi določene omejitve. Zaradi teh omejitev pogosto naletimo na relacijo, v kateri niso možne vse kombinacije, ki so definirane s kartezičnim produktom ustreznih domen. V relaciji torej obstajajo določne omejitve, ki jih pri opisu relacijskega modela imenujemo odvisnosti. Poznamo več vrst odvisnosti (funkcionalne, večvrednostne, sitčne).

Funkcionalna odvisnost nad relacijsko shemo R in dvema podmnožicama atributov te sheme (X in Y): X funkcionalno določa Y ali X → Y, če v nobeni relaciji z relacijsko shemo R, ne moreta obstajati dve n-terici, ki bi se ujemali v vrednosti atributov X in ne ujemali v vrednosti atributov Y.

Trivialna odvisnost: X → X vedno velja.

Ključ

Imamo relacijsko shemo R z atributi A1, A2, ... Am. X je podmnožica { A1, A2, ... Am }. X je ključ relacijske sheme R, če velja:

X → A1, A2, ... Am in
ne obstaja Y ⊃ X in Y tudi funkcionalno določa A1, A2, ... Am.

Pojmi

  • primarni ključ
v relacijski shemi je lahko več ključev; iz praktičnih razlogov imenujemo enega izmed njih primarni ključ
  • super ključ
vsaka množica atributov, v kateri je vsebovan ključ
  • tuji ključ
atribut relacije, ki povezuje to relacijo z vrednostmi primarnega ključa druge relacije

Povpraševalni jeziki

Povpraševalni jeziki omogočajo uporabniku relacijske podatkovne baze dostop do podatkov tabel. Osnovani so na dveh matematičnih modelih: relacijski algebri (postopkovni jezik) ali pa na relacijskem računu (nepostopkovni jezik). Primer povpraševalnega jezika je SQL (Structured Query Language), ki je osnovan na relacijskem računu.

Osebna orodja
Imenski prostori
Različice
Dejanja
navigacija

Tiskanje/izvoz
orodja