Professional Documents
Culture Documents
Gradivo zbp1 1
Gradivo zbp1 1
ZBIRKE PODATKOV 1
Delovno gradivo
Zbirke podatkov 1
2
Zbirke podatkov 1
3
KAZALO
KAZALO ..................................................................................................................... 3
UVOD .......................................................................................................................... 5
PREGLED POJMOV ................................................................................................................. 6
OSNOVE ZBIRK PODATKOV.................................................................................. 16
RAZVOJ PODATKOVNIH SISTEMOV ......................................................................................... 18
ZBIRKA PODATKOV .............................................................................................................. 22
ARHITEKTURA ZP IN PODATKOVNA NEODVISNOST.................................................................. 31
JEZIKI IN PRIHODNOST ZBIRK PODATKOV ............................................................................... 38
SUZP - SISTEM ZA UPRAVLJANJE ZBIRKE PODATKOV ............................................................. 40
UPORABNIKI ZP IN ORODJA .................................................................................................. 50
RAZVOJ APLIKACIJ ZA DELO Z ZP .......................................................................................... 59
KONCEPTUALNO MODELIRANJE ......................................................................... 70
OBLIKOVANJE KONCEPTUALNEGA MODELA ............................................................................ 70
MODEL E-R ........................................................................................................................ 76
RELACIJSKI PODATKOVNI MODEL ...................................................................... 93
RELACIJSKI MODEL PODATKOV ............................................................................................. 93
PRESLIKAVA MODELA E-R V RELACIJSKI MODEL ................................................................... 106
NORMALIZACIJA ................................................................................................................ 111
STRUKTURIRANI POVPRAŠEVALNI JEZIK (SQL) ............................................. 127
SQL DDL (DATA DESCRIPTION LANGUAGE) ........................................................................ 128
SQL DCL (DATA CONTROL LANGUAGE) ............................................................................. 136
SQL DML (DATA MANIPULATION LANGUAGE) ..................................................................... 138
POIZVEDBE S PRIMER ELEMENTI (QBE) ........................................................... 155
UPORABA POIZVEDB .......................................................................................................... 156
DOLOČANJE POGOJEV ....................................................................................................... 160
UPORABA IZRAČUNLJIVIH POLJ ........................................................................................... 166
POIZVEDBA S PARAMETROM ............................................................................................... 168
KALKULACIJE NAD SKUPINAMI PODATKOV (GRUPIRANJE) ...................................................... 168
POIZVEDBE S SPREMEMBO (AKCIJSKE POIZVEDBE) .............................................................. 170
VIRI IN LITERATURA ............................................................................................. 175
Zbirke podatkov 1
4
Zbirke podatkov 1
5
UVOD
Zbirke podatkov (podatkovna baza; ZP) postajajo vse bolj nepogrešljiv del kateregakoli
računalniško podprtega poslovnega ali tehničnega sistema. Besedna zveza podatkovna
baza je bolj ali manj dobesedni prevod ameriškega izraza database in ne odraža pravega
pomena originala. Po slovensko bi morali govoriti o podatkovni osnovi, s čimer bi še veliko
bolj približali pravemu pomenu, saj gre za tisto osnovo, ki omogoča izvajanje vseh mogočih
uporabniških programov, ki morajo za svoje izvajanje podatke od nekod črpati. Podatkovna
osnova (opis okolja s pomočjo podatkov) je običajno namreč tisti temelj, ki omogoča
komunikacijo z okoljem.
Za področje tradicionalne avtomatske obdelave podatkov (AOP) je značilno, da so podatki
shranjeni v obliki datotek, katerih »lastniki« so funkcionalne enote, na katere je organizacija
razdeljena. Vsaki enoti pripada množica datotek, ki predstavljajo podatkovno osnovo, na
kateri temelji njeno delovanje. Zaradi težnje po podatkovni samozavestnosti skrbi vsaka
enota za svoje datoteke, ki jih vzdržuje in obdeluje s svojimi uporabniškimi programi ter si jih
praviloma ne deli z drugimi enotami. Tipični problemi, ki izhajajo iz take privatizacije
podatkov in programov, so:
neustrezna predstavitev modela organizacije in njenega okolja,
nemoč odgovoriti na vnaprej nepredvidena vprašanja,
oteženo prilagajanje podatkov spremembam v okolju,
vprašljiva kvaliteta podatkov.
Datotečno shranjevanje podatkov omejuje možnosti predstavitve modela organizacije in
njenega okolja v naravni, za uporabnike razumljivi obliki. Povezava podatkov iz različnih
datotek v smiselno celoto je izvedena preko uporabniških programov. Model torej ni
sestavljen le s podatki, pač pa je v veliki meri zakodiran tudi v uporabniške programe.
Modeliranje je tako odvisno tudi od programerjev in njihovega razumevanja pomena
podatkov v datotekah.
Nekaterih vidikov modela se zaradi po enotah ločenih in ne povezljivih datotek preprosto ne
da predstaviti in tako ni mogoče poiskati podatkov, ki sicer obstajajo v datotekah, za
oblikovanje odgovora na preprosta vprašanja. Če sama povezljivost ni problem, pa je ob
naprej nepredvidenih vprašanjih težava v tem, da bi bilo potrebno za iskanje odgovora razviti
ustrezen uporabniški program, pred tem pa seveda ugotoviti, v katerih datotekah, ki lahko
pripadajo različnim enotam v organizaciji, se podatki nahajajo. Vse to je težko izvesti v
realnem času - namreč do takrat, ko je ukrepanje na osnovi zahtevanega odgovora še
smiselno oziroma pravočasno.
Beležke
Zbirke podatkov 1
6
Če naj človek ukrepa na osnovi podatkov, mora iz njih pridobiti najprej ustrezno informacijo,
pri čemer mora natanko vedeti, kaj ti podatki pomenijo. V datotekah so tipično shranjene le
vrednosti, na kaj se te vrednosti nanašajo oziroma kaj pomenijo pa je preprosto prepuščeno
njihovemu interpretiranju v stilu "Saj to je pa vsem jasno!". Ker ene in iste podatke uporablja
več ljudi, jih morajo vsi razumeti pravilno in na enak način, saj napačna interpretacija pomeni
tudi napačno ukrepanje.
Shranjevanje podatkov v zbirki podatkov odpravlja večino slabosti in pomanjkljivosti, uvaja
pa seveda nekatere nove probleme, kot sta npr. zaupnost in sočasna uporaba podatkov.
Pregled pojmov
O podatkih
Vtise, ki jih človek sprejema s svojimi čutili iz sveta v katerem živi, s pomočjo svojega znanja
ovrednoti ter si tako dopolnjuje svoje znanje – svoj miselni model sveta, ki se nanaša tako na
fizično obstoječi svet kakor tudi na svet idej.
Posameznikov ali skupinski pogled na svet so ljudje že od nekdaj zapisovali in s tem
omogočili dostop do lastnega, tujega oziroma skupnega znanja. Če se pri zapisovanju
uporablja konvencija, ki omogoča jedrnato predstavitev dejstev, pravimo takim zapisom
podatki.
Podatek je predstavitev nekega dejstva na formaliziran način, ki je dogovorjen s konvencijo
in primeren za komunikacijo, interpretacijo ter obdelavo s strani človeka ali stroja. Podatek je
diskreten, če se pri njegovi predstavitvi uporabljajo simboli, ali pa analogen, če se za
predstavitev uporablja kakšna fizikalna veličina. Podatku se lahko pripiše pomen le v
določenem kontekstu.
Informacija je pomen (spoznanje), ki ga človek pripiše podatkom s pomočjo znanih
konvencij, ki so uporabljene pri njihovi predstavitvi. Podatki posredujejo informacijo
prejemniku, katerega sprejemna struktura je konsistentna z izbrano predstavitvijo podatkov
in modelom sveta, na katerega se nanašajo.
Osnovne komponente podatkovnega sistema so človek, program, podatki in računalnik. Z
razvojem strojne in programske opreme se je odnos med njimi spreminjal. V prvem obdobju
je bil v središču pozornosti računalnik (stroj), ki so se mu prilagajale ostale tri komponente. S
programsko revolucijo je prešla pozornost na program (programski jezik), ki se je
približeval človeku in postal bolj neodvisen od računalnika. Po podatkovni revoluciji je
največ pozornosti posvečene podatkom, ki so se kot pred tem programi, približevali človeku
in postali razmeroma neodvisni od strojne in programske opreme.
Zbirka podatkov
Zbirka podatkov (ZP) je model okolja, ki služi kot osnova za sprejemanje odločitev in
izvajanje akcij, in je mehanizirana, večuporabniška, formalno definirana in centralno
nadzorovana zbirka podatkov.
Upravljanje ZP, ki ga izvaja sistem za upravljanje zbirke podatkov (SUZP; SUPB; DBMS),
zajema zagotavljanje razpoložljivosti podatkov in nadzor nad uporabo podatkov, v katerega
okvir sodi skrb za celovitost podatkov, uporabo podatkov v skladu z njihovim namenom in
uporabnost podatkov tudi v prihodnje. Razpoložljivost podatkov pomeni, da je zagotovljen
učinkovit dostop vsem uporabnikom sočasno do vseh vrst podatkov in to ves čas. Celovitost
podatkov v ZP se zagotavlja s preverjanjem vhodnih podatkov ob ažuriranjih ZP,
obnavljanjem ZP v primerih nesreč, nadzorom nad sočasnim dostopom do podatkov, in
sočasnim ažuriranjem vseh kopij podatkov v ZP, če le-te obstajajo. Za zagotovitev pravilne
Zbirke podatkov 1
7
Zbirke podatkov 1
8
metapodatkovni procesor,
predprevajalniki.
SUZP se lahko nahaja v istem računalniku kot uporabniški programi, lahko pa se nahaja v
samostojnem podatkovnem strežniku, ki je preko hitre komunikacijske poti povezan z enim
ali več računalniškimi sistemi, na katerih se izvajajo uporabniški programi.
Zbirka podatkov je lahko shranjena zgolj v enem strežniku, lahko pa je porazdeljena preko
več strežnikov. Od stopnje porazdelitvene transparentnosti je odvisno, ali dojema uporabnik
zbirko podatkov kot enotno, ali pa se zaveda njene porazdelitve, ki jo mora potem pri
povpraševanju tudi upoštevati.
Fizična zbirka podatkov
Podatkovni del zbirke podatkov sestavljata fizična in metazbirka podatkov. V obliki fizičnih
datotek se shranjujeta v zunanjem pomnilniku, ki je v današnjem času najpogosteje
diskovni pomnilnik. Za dostop do fizičnih datotek v znanjem pomnilniku skrbi operacijski
sitem.
Elementarne pomnilniške enote v diskovnem pomnilniku so sektorji, od katerih se vsak
nahaja na določenem cilindru, določeni površini in ima določen odmik od začetka sledi, na
kateri leži. Sektorji se grupirajo v dodelitvene enote, ki so najmanjši deli diskovnega
pomnilnika, ki se lahko dodelijo posamezni fizični datoteki. Diskovni pomnilnik je razdeljen na
del, ki vsebuje podatke o diskovni enoti, na del, ki vsebuje dodelitveno tabelo, na del, ki
vsebuje datotečni seznam na disku shranjenih fizičnih datotek, in del, ki je razdeljen na
dodelitvene enote, v katerih so shranjene fizične datoteke. S stališča SUZP je fizična
datoteka sestavljena iz enako velikih fizičnih blokov, katerih vsak obsega enega ali več
sektorjev oziroma eno ali več dodelitvenih enot. V notranjem pomnilniku je vsaki aktivni
fizični datoteki prirejenih eden ali več datotečnih vmesnikov v velikosti fizičnega bloka, preko
katerih se izvaja dostop do datoteke.
Logična datoteka je množica logičnih zapisov istega tipa, ki s pomočjo podatkovnih
elementov opisujejo enakovrstna dejstva. Tip zapisa je formalizem, s pomočjo katerega se
lahko oblikujejo in berejo zapisi pripadajočega tipa. S tipom zapisa je predstavljena struktura
zapisov ter vrsta in oblika podatkovnih elementov, ki sestavljajo zapise. Zapisi so lahko
spremenljive ali nespremenljive dolžine.
Podatkovne elemente, na osnovi katerih je možna identifikacija posameznih zapisov,
imenujemo ključ zapisa, ki obsega enega ali več podatkovnih elementov navedenih v tipu
zapisa. Ključ je lahko razločevalen ali nerazločevalen, služi pa tudi za urejanje zapisov v
fizičnih datotekah.
Logični zapisi se s pomočjo fizičnih zapisov shranjujejo v fizičnih datotekah. Fizični zapisi
so po strukturi lahko enaki logičnim zapisom, lahko pa vsebujejo tudi dodatne
(meta)podatkovne elemente. Fizični zapisi se zapisujejo v naslovljiva polja, na katera so
razdeljeni fizični bloki. Posamezna polja lahko vsebujejo zapise ali pa so prosta
(nezasedena). Če je pomemben naslov polja, v katerem je shranjen posamezen zapis,
potem je zapis vezan na polje, v nasprotnem primeru pa nevezan.
Osnovne operacije nad zapisi v fizičnih datotekah so iskanje zapisov po datoteki, dodajanje
zapisov v datoteko, ter brisanje in spreminjanje v datoteki obstoječih zapisov. Zapise lahko
iščemo po vrednosti poljubne kombinacije podatkovnih elementov, pri čemer je iskanje po
vrednosti ključa najhitreje izvedljivo, ker je podprto z datotečno organizacijo. Iščemo jih lahko
tudi s pomočjo naslovov polj ali skupin polj, v katerih naj bi se nahajali.
Najpreprostejša datotečna organizacija je neurejena datoteka, pri kateri ni predpisa, ki bi
urejal lego zapisov v njej. V zaporedni datoteki so zapisi urejeni po vrednosti ključa – ključ
Zbirke podatkov 1
9
predhodnega zapisa mora biti manjši ali enak ključu naslednika. Zaporedje je lahko urejeno s
fizičnim zaporedjem zapisov v datoteki ali pa s kazalci.
V razpršenih datotekah urejajo lego zapisov v njih razpršilne funkcije. Zapisom se lahko
prirejajo polja ali pa skupine polj. Pri statičnem razprševanju se število skupin ne spreminja,
pri dinamičnem pa se prilagaja zasedenosti datoteke z zapisi. Pri razpršenih datotekah je
možen hiter dostop do posameznih zapisov.
Indeks je datoteka, ki s pomočjo sistema kazalcev omogoča hiter dostop do zapisov z njo
indeksirane osnovne datoteke in tudi zaporedni dostop do zapisov nezaporedne datoteke. Z
ozirom na to ali si indeksirani vsi zapisi osnovne datoteke ali ne, je indeks lahko gost ali
redek. Če je indeksiranje izvedeno po ključu, je indeks primaren, sicer pa sekundaren. V
primeru, ko je tudi indeks indeksiran, govorimo o večnivojskem indeksiranju. V primeru, ko se
indeks prilagaja vsebini indeksirane datoteke, je indeksiranje dinamično, sicer pa statično.
Podatkovni modeli
Podoba sveta je človekova predstava o svetu, v katerem živi, in ki vključuje tudi njega
samega. Človekovo modeliranje sveta s zbirko podatkov temelji na podobi sveta, ki jo je
možno opisati s propozicijami, ki predstavljajo posamezni dogodek ali stanje.
Entiteta je tisti najmanjši del, ki ga lahko ločimo ali ga želimo ločiti od drugih delov podobe
sveta, in je predstavnik posamezne stvari ali dogajanja, ki obstaja ali mislimo, da obstaja v
svetu. Entitete, ki obstajajo, imenujemo participativne entitete, in so udeleženke v dogodkih,
entitete pa, ki se dogajajo, imenujemo predikatne entitete.
Entitete pripadajo entitetnim tipom, ki se delijo na naravne tipe in tipe z ozirom na vlogo.
Entitetnemu tipu pripada entitetna množica, ki je časovno spremenljiva. Entitete
poimenujemo s pomočjo besed, ki jih imenujemo entitetna imena. Entitetna imena so
podatki.
Za vse dogodke, ki pripadajo določenemu dogodkovnemu tipu, veljajo določene
zakonitosti. Pravilo predstavlja veljavno in nespremenljivo zakonitost o razmerjih med
entitetami v dogodkih določenega tipa. Pravila se delijo na preslikovalna in vrednostna.
Za modeliranje podobe sveta s zbirko podatkov se uporabljajo podatkovni modeli.
Obsegajo podatkovno strukturo, operacije nad podatkovno strukturo in integritetne omejitve.
Pri modeliranju s zbirko podatkov se na konceptualnem in zunanjem nivoju uporabljajo
logični modeli, na notranjem nivoju pa fizični modeli. Logične modele delimo na površinske in
globinske. Med površinske podatkovne modele, ki so zapisno orientirani, štejemo relacijski,
mrežni in hierarhični podatkovni model. Poglavitni globinski modeli so podatkovni model
»entiteta – razmerje«, binarni podatkovni modeli, podatkovni modeli na osnovi semantičnih
mrež in infološki podatkovni modeli.
Beležke
Zbirke podatkov 1
10
na n-teričnem relacijskem računu, kar uvršča SQL med nepostopkovne jezike. SQL je
primeren za interaktivno rabo, njegovi ukazi pa so tudi ugnezdeni v programske jezike.
Mrežni podatkovni model
Podatkovni strukturi, v kateri nastopajo med seboj povezani zapisi, pravimo mreža. Njena
osnovna gradnika sta zapis in set. Povezave med zapisi so določene s funkcijo S, ki
preslikuje zapise enega tipa v zapise drugega tipa. S sme biti totalna ali parcialna funkcija
in je v mreži predstavljena s seti. Set je urejena množica zapisov, ki jo sestavljajo lastnik
(zapis enega tipa) in člani (zapisi drugega tipa). Posamezen zapis je lahko sočasno lastnik
enega ali več setov in član enega ali več setov, lahko pa, da ne nastopa v nobenem setu.
Posebne vrste set je sistemski set, ki služi za ureditev in zaporedni dostop do zapisov
določenega tipa.
Mrežna shema pojasnjuje obliko in pomen zapisov ter njihovih povezav v mreži. Sestavljajo
jo deklaracije tipov zapisov in tipov setov. Deklaracija tipa zapisa obsega ime tipa, imena in
zaporedje podatkovnih elementov ter navedbo ključa, ki je lahko razločevalen ali
nerazločevalen. Deklaracija tipa seta obsega ime tipa seta, ime tipa lastnikov, ime tipa
članov ter navedbe urejenosti setov, vrste članstva in načina včlanjevanja v sete. Set je lahko
urejen z zaporedjem dodajanja članov vanj ali po vrednosti ključa članov. Članstvo v setu je
lahko fiksno, obvezno ali opcijsko. Način včlanjevanja članov v set je lahko ročen ali
avtomatičen.
Vrednostne integritetne omejitve so v mrežni shemi specificirane s pomočjo tipov
podatkovnih elementov v zapisih, preslikovalne omejitve pa s pomočjo deklaracije ključa
zapiskov in deklaracije vrste članstva v setih.
Operacije nad mrežo se dele v operacije za iskanje, ažuriranje in včlanjevanje zapisov.
Zapis se lahko poišče s pomočjo specifikacije vrednosti ključa (ali kakega drugega
podatkovnega elementa) ali s pomočjo setov (povezav med zapisi). Z ozirom na tekoči zapis
lahko poiščemo njegovega predhodnika ali naslednika v okviru specificiranega seta. Zapisu
članu lahko poiščemo lastnika seta, prav tako pa tudi prvi ali zadnji zapis v tekočem setu.
Zapis lahko dodamo mreži, na podlagi poiskanega naslova zapisa pa preberemo,
ažuriramo ali izbrišemo iz mreže. Brisanje se lahko nanaša le na tekoči zapis, lahko pa
prizadene kaskadno tudi člane njegovih setov. Zapisi se z ozirom na vrsto članstva lahko v
sete včlanijo, se iz njih izčlanijo ali pa prečlanijo iz enega v drugi set istega tipa.
Operacije nad mrežo se lahko izvedejo uspešno ali neuspešno. Kako se je operacija izvedla,
sporoča SUZP preko statusnega polja, ki ga mora uporabniški program po zaključku vsake
operacije nad zbirko podatkov preveriti.
Beležke
Zbirke podatkov 1
12
transakcijske nesreče, ki jih odkrijejo uporabniški programi sami, transakcijske nesreče, ki jih
odkrijeta SUZP ali pa operacijski sistem, sistemske nesreče in diskovne nesreče. Prvi dve
vrsti nesreč sta lokalnega značaja, vplivata le na posamezno transakcijo, drugi dve vrsti pa
prizadeneta vse trenutno aktivne transakcije.
Množico ažuriranj, ki povzroče prehod zbirke podatkov iz enega veljavnega stanja v drugo,
imenujemo transakcija. Ažuriranja zbirke podatkov, ki sestavljajo transakcijo, se morajo
izvesti vsa ali pa niti eno. Transakcija se prične z operacijo Začetek transakcije, zaključi pa
se uspešno z ukazom Pomni, ali pa neuspešno z ukazom Pozabi. Transakcija v času
svojega obstoja prehaja iz ene faze v drugo in je v začetku aktivna transakcija, nato postane
uspešna ali ponesrečena transakcija, konča pa kot uspešno ali neuspešno zaključena
transakcija.
Podatki, ki jih obdeluje transakcijski program, se kot fizična zbirka podatkov nahajajo na
disku in kot delovni podatki v notranjem pomnilniku. Pomnilniški ukazi, ki jih v okviru
transakcij izvaja transakcijski program, so PoiščiPreberi, ki priredi delovni spremenljivki
vrednost podatka na disku, Spremeni, ki priredi podatku vrednost delovne spremenljivke,
Dodaj, ki na disk doda podatek z vrednostjo delovne spremenljivke, in Izbriši, ki iz diska
izbriše podatek. Omenjene ukaze podpirata operacija PreberiBlok, ki prenese fizični blok z
diska v datotečni vmesnik, in IzpišiBlok, ki prenese fizični blok iz vmesnika na disk.
Obnavljanje zbirke podatkov temelji na zapisovanju redundantnih podatkov, kot so dvojna
zbirka podatkov, kopija zbirke podatkov, ki omogoča obnovitev celotne zbirke podatkov,
vhodni transakcijski podatki, ki omogočajo ponovno izvajanje transakcij, stare vrednosti
podatkov pred ažuriranjem, ki omogočajo razveljavitev ažuriranj, in nove vrednosti podatkov
po ažuriranju, ki omogočajo uveljavitev ažuriranj. Vhodni transakcijski podatki ter stare in
nove vrednosti podatkov se beležijo v dnevnik.
Dvojna zbirka podatkov temelji na podvojenem zapisovanju fizične zbirke podatkov v dva
ločena diskovna pomnilnika. Zagotavlja dobro zaščito pred diskovnim nesrečami ter
neprekinjeno dostopnost zbirke podatkov, saj je v času obnavljanja ene kopije na voljo
druga.
Obnavljanje s senčnimi stranmi služi za obnovitev zbirke podatkov po transakcijskih
nesrečah. Temelji na zapisovanju ažuriranih fizičnih blokov na dotlej neuporabljen prostor na
disku, pri čemer se ohranjajo tudi prvotni fizični bloki. V primeru transakcijske nesreče
obsega zbirka podatkov prvotne bloke. Če se transakcija uspešno zaključi, pa se vanjo
vključijo namesto prvotnih ažurirani bloki.
Obnavljanje z dnevnikom in kopijo temelji na občasni izdelavi kopije zbirke podatkov, s
katero lahko zbirko podatkov v primeru diskovne nesreče obnovimo v takratno veljavno
stanje, ter pisanju dnevnika, v katerega se zapisujejo podatki, s katerimi je možno s kopijo
obnovljeno zbirko podatkov obnoviti v zadnje veljavno stanje tik pred podatkovno nesrečo.
Dnevnik pa lahko vsebuje tudi podatke, s katerimi je možno vse v trenutku nesreče
prekinjene transakcije ponovno izvesti. Pri odloženem ažuriranju se nove vrednosti
Beležke
Zbirke podatkov 1
14
Beležke
Zbirke podatkov 1
16
V tem primeru se morajo podatki o izostankih dijaka hraniti trajno (ne le v času obdelave
podatkov).
Trajno hranjenje informacije ali podatka oziroma trajna informacija je informacija, katere
življenjski čas je daljši od življenjskega časa enega procesa (poenostavljeno gledano izvedbe
programa).
Implementacija trajnosti podatkov:
klasični način - podatki se zapisujejo v binarne ali tekstovne datoteke,
uporaba zbirke podatkov (ZP) in sistema za upravljanje s zbirko podatkov
(SUZP) - podatki se zapisujejo v zbirko podatkov, SUZP pa omogoča dostop do ZP
in varuje njeno vsebino.
Zbirke podatkov 1
17
Aplikacija 1
Aplikacija n
Beležke
Zbirke podatkov 1
18
Aplikacija 1
Aplikacija n
Prednosti uporabe ZP
SUZP sam odkriva in preprečuje napake.
Programiranje se poenostavi in se prestavi na višji nivo abstrakcije.
SUZP je vmesnik med operacijskim sistemom in aplikacijskimi programi oziroma
uporabniki.
Koda SUZP-ja je testirana in dobro optimizirana.
SUZP-ji imajo vgrajene rutine za razvrščanje in iskanje podatkov, za upravljanje z
izrabo datotečnih izravnalnikov (bufferjev), za shranjevanje datotek, statistične
funkcije, …
SUZP je optimiziran za delo z velikimi količinami podatkov in podpira
večuporabniško okolje. Ima vgrajene varnostne funkcije, ki preprečujejo dostop do
podatkov nepooblaščenim osebam in tudi mehanizme, ki zagotavljajo zaščito
podatkov v primeru porušitve sistema ter obnavljanje sistema.
ZP je dostopna le s pomočjo SUZP. Omogočeno je skrivanje ali prikrivanje internih
sprememb znotraj zbirke podatkov uporabnikom in uporabniškim programom.
Vodilo abstraktnih podatkovnih tipov je možnost implementacije sprememb na
nižjem nivoju in hkrati ohranjanje vmesnika proti višjem nivoju.
Zbirke podatkov 1
19
Beležke
Zbirke podatkov 1
20
Bistvo modela:
► ZP se uporabnikom predstavi kot množica podatkov, ki so organizirani v tabelah;
► uporabniki relacijskega sistema se ne obremenjujejo s strukturo shranjevanja;
► striktno ločevanje med logičnim in fizičnim pogledom na podatke.
Za tabele Codd vpelje naziv relacija.
Poizvedbe se podajo v visoko-nivojskih jezikih. S tem se doseže večja učinkovitost
programerjev.
Posledica uvedbe relacijskega modela podatkov: razvili so zmogljiv deklarativni
jezik, namenjen delu s zbirko podatkov imenovan Structured Query Language.
Glavni razvijalci sistemov za upravljanje z relacijsko ZP so podjetje IBM in različne
univerze.
Komercialne uspešnice:
► INGRES, ki je bil razvit na University of California, Barkley,
► System R (ki je pozneje prerasel v DB2), razvit v IBM San Jose laboratorijih.
V 80-ih letih relacijski model postane osrednji in najbolj razširjen model podatkov.
Še danes (v poslovnem okolju) prevladujejo zbirke podatkov, ki temeljijo na
relacijskem modelu.
80. leta zaznamuje razvoj porazdeljenih zbirk podatkov.
Zbirke podatkov 1
21
Beležke
Zbirke podatkov 1
22
Lahko pomaga tudi pri iskanju in odpravljanju podvojenih virov v organizaciji. S tem
posredno pomaga tudi zmanjšanju stroškov organizacije.
Slabosti uporabe ZP
Cena potrebne programske opreme. Sistemi za upravljanje zbirke podatkov, ki ne
sodijo med prosto dostopno programsko opremo, so praviloma dragi. Pri prosto
dostopnih SUZP-jih pa moramo natančno prebrati licenčne pogoje.
Odvisnost od proizvajalca/dobavitelja SUZP-ja.
Zahteva čas za učenje in privajanje na sistem.
Šibke točke SUZP-ja (lahko) vplivajo na šibkost ZP (optimizacija kode, varnost).
Računalniški sistem, na katerem bo nameščen SUZP, mora biti zmogljivejši.
Praviloma se uporabljajo večprocesorski sistemi, ki imajo veliko RAM-a in zelo hitre
trde diske.
Zbirka podatkov
Opredelitev termina Zbirka podatkov
Zbirka podatkov je osnova, na kateri temelji celotno delovanje organizacije.
Uspešnost delovanja organizacije je odvisna od znanja, znanje pridobimo iz informacij,
informacije pridobimo iz podatkov, podatke pa hranimo v ZP (‘neskončna zanka’).
Poenostavljeno gledano je zbirka podatkov zelo velika shramba prej vnesenih podatkov, ki
zadošča določenim pogojem
Pogoji zagotavljajo celovitost podatkov in učinkovitost delovanja. Tako zbirka podatkov
prispeva k uspešnejšem delu uporabnikov.
Podatkovni sistem
Podatkovni sistem je računalniško podprt sistem, ki s pomočjo sistema za upravljanje zbirke
podatkov omogoča uporabo in upravljanje s podatki, ki so shranjeni v zbirki podatkov.
Da bi podatkovni sistem deloval, so potrebni:
strojna in komunikacijska oprema,
programska oprema: operacijski sistem, sistem za upravljanje zbirke podatkov,
uporabniške aplikacije,
zbirka podatkov, ki jo sestavljata opisi podatkov (meta podatki oziroma opisi
podatkov) in fizični podatki (vrednosti podatkovnih elementov),
administrator ZP,
uporabniki ZP.
Uporabniške
aplikacije
Administrator ZP
Sistem za
Upravljanje
Zbirke
Podatkov
Zbirka Podatkov
Sheme ZP Stanje ZP
(opisi ZP) (fizični podatki)
Beležke
Zbirke podatkov 1
24
ZP ZP
ZP
ZP ZP
ZP
Zbirke podatkov 1
25
Strukturiranost podatkov
Podatki v ZP so strukturirani. To pomeni, da ustrezajo vnaprej opredeljeni strukturi.
Strukturiranost podatkov omogoča kompleksnejša vrednotenja stanja zbirke podatkov.
Premislek: Kaj bi se zgodilo, če imamo v ZP zapisane le stavke v naravnem jeziku (tekst)?
Podatkovni sistemi, ki več vedo o podatkih, ponujajo uporabnikom boljše storitve in s tem
bolje podpirajo delo uporabnikov.
Shema zbirke podatkov
Shema ZP je formalna definicija strukture vsebine zbirke podatkov in opredeli vsa možna
stanja zbirke podatkov. Definirana je le enkrat in sicer pri kreiranju ZP.
Sprememba sheme že kreirane ZP včasih povzroča težave. Zato je pomembno dobro in
temeljito načrtovanje sheme zbirke podatkov. Pozneje bo potrebno narediti manj sprememb
sheme ZP in upravitelj zbirke podatkov bo imel manj težav.
Kot sinonim za shemo zbirke podatkov se uporablja izraz metazbirka podatkov (to so
podatki o podatkih).
Poenostavljena primerjava z višjimi programskimi jeziki: shema zbirke ustreza deklaraciji
strukture, stanje zbirke pa ustreza trenutni vrednosti spremenljivke.
Povzetek
Zbirka podatkov je zbirka logično povezanih podatkov.
Za delovanje ZP potrebujemo:
► podatkovni del ZP (podatke + opise podatkov),
► programsko opremo (SUZP),
► kadre: administratorja (upravitelja) ZP in uporabnike.
Prednosti uporabe ZP
► Podvajanje podatkov je nadzorovano.
Beležke
Zbirke podatkov 1
26
ZP
ZP
ZP
Zbirke podatkov 1
27
Beležke
Zbirke podatkov 1
28
Množica informacij.
uporabniška aplikacija.
operacijski sistem.
SUZP.
Zbirke podatkov 1
29
ni dovoljeno.
prevajalnik.
uporabniška aplikacija.
operacijski sistem.
Zbirka podatkov je vir podatkov in informacij, ki jih uporabniki uporabljajo pri odločanju.
DA
NE
NE
Beležke
Zbirke podatkov 1
30
NE
NE
Zbirke podatkov 1
31
NE
NE
Beležke
Zbirke podatkov 1
32
ZP
Konceptualni nivo
Vsebuje celovito informacijo o vsebini in strukturi zbirke podatkov.
Opisani so podatki in povezave med podatki v ZP.
Konceptualna shema vsebuje le logične podatke o ZP.
Vsaka ZP ima le 1 konceptualno shemo.
Konceptualna shema:
► odraža potrebe uporabnikov,
► je popolnoma neodvisna od SUZP-ja in strojne opreme.
Opomba: Vsaka izmed zunanjih shem sloni na enem delu konceptualne sheme. Zato vsi
podatki, ki jih prikažemo na zunanjem nivoju, morajo biti zajeti ali izpeljani iz podatkov,
opisanih na konceptualnem nivoju.
Zbirke podatkov 1
33
Notranji nivo
Opisuje fizično predstavitev ZP v računalniku.
Opisuje KAKO so podatki shranjeni v ZP, opisi zajemajo:
► podatkovne strukture
► datotečne organizacije,
► indekse, ...
Kakovost notranje sheme določa performanse ZP in optimalnost izrabe prostora na disku!
Notranja shema je odvisna od SUZP-ja!
Opomba: Pod notranjim nivojem obstaja še fizični nivo, s katerim upravlja OS na osnovi
navodil, ki jih dobi od SUZP-ja. Ločitev funkcij med SUZP-jem in OS na fizičnem nivoju ni
striktno določena in se med sistemi zelo razlikuje.
Preslikave med shemami ZP
Preslikave izvaja SUZP. SUZP preverja tudi skladnost med nivoji.
Samodejno izvajanje preslikav s strani SUZP-ja zagotavlja neodvisnost med posameznimi
nivoji opisov ZP!
Beležke
Zbirke podatkov 1
34
Podatkovna neodvisnost
Podatek je sam po sebi neodvisen resurs (načeloma neodvisen od programov oz. aplikacij,
ki ga uporabljajo). Ena od glavnih pridobitev uporabe zbirk podatkov in SUZP-jev =
neodvisnost aplikacij od podatkov!
SUZP
ZP ZP
P
odatkovna neodvisnost
Podatkovna neodvisnost (na splošno) pomeni imunost oz. odpornost višjega nivoja na
spremembe, ki se zgodijo na nižjem nivoju opisov ZP. Obstajata 2 vrsti podatkovne
neodvisnosti:
Zbirke podatkov 1
35
fizična,
logična.
Fizična podatkovna neodvisnost
Predstavlja neodvisnost konceptualne sheme od sprememb v notranji shemi. Programi ne
smejo biti odvisni od načinov shranjevanja podatkov in obratno: strukturo podatkovne
datoteke ne sme narekovati aplikacijski program.
Fizična podatkovna neodvisnost zmanjšuje potrebo po vzdrževanju:
programov,
konceptualnega modela ZP.
Logična podatkovna neodvisnost
Zagotavlja neodvisnost zunanjih shem od sprememb v konceptualni shemi. Omogoča
spreminjanje konceptualne sheme, ne da bi pri tem morali nujno spremeniti tudi zunanje
sheme.
Uporaba:
Logična podatkovna neodvisnost zagotavlja starim aplikacijskim programom
neodvisnost od novo-dodanih podatkov, ki jih ti programi ne potrebujejo.
Logično podatkovno neodvisnost lahko uporabimo tudi pri integraciji prej
razdeljenih / različnih zbirk podatkov.
Beležke
Zbirke podatkov 1
36
Arhitektura - vprašanja
Podvojeno shranjevanje podatkov v ZP
je dovoljeno, lahko je nenadzorovano.
ni dovoljeno.
uporabniška aplikacija.
SQL.
Zbirke podatkov 1
37
NE
NE
NE
NE
Beležke
Zbirke podatkov 1
38
NE
NE
NE
Zbirke podatkov 1
39
Prihodnost ZP je zagotovljena!
Razširitve in razvoj v smeri podpore odločanju:
Podatkovno skladiščenje (data warehousing),
OLAP sistemi (on-line analytical processing),
Podatkovno rudarjenje (Data Mining).
Razširitve in razvoj v smeri drugačnih zvrsti podatkov:
Iskalni stroji (Search Engine),
Prostorske zbirke (Spatial databases),
Tekstovne in multimedijske zbirke,
...
Beležke
Zbirke podatkov 1
40
ZP
SUZP
ZP
Definicije SUZP:
SUZP je programska oprema, ki uporabnikom omogoča definiranje, kreiranje in
vzdrževanje ZP in hkrati zagotavlja nadzorovan dostop do ZP.
SUZP je programska oprema, ki ravna z vsemi dostopi do podatkov v ZP in je odgovorna za
izvajanje postopkov preverjanja avtorizacij uporabnikov in veljavnosti podatkov.
SUZP je zbirka programov, ki:
omogoča kreiranje nove ZP in definiranje njene strukture,
omogoča učinkovito poizvedovanje in spreminjanje podatkov,
varuje podatke pred nesrečami in neavtoriziranimi dostopi,
nadzoruje sočasen dostop večjega števila uporabnikov do podatkov.
Arhitektura SUZP
Arhitektura SUZP je dokaj kompleksna. V osnovi je sestavljen in štirih osnovnih modulov:
Zbirke podatkov 1
41
Beležke
Zbirke podatkov 1
42
SUZP
ZP ZP
Moduli SUZP
Zbirke podatkov 1
43
Beležke
Zbirke podatkov 1
44
Funkcije SUZP
SUZP izvaja vrsto funkcij. Glavne funkcije SUZP so:
Manipuliranje s podatki
Omogoča uporabnikom in uporabniškim aplikacijam izvedbo osnovnih operacij nad
podatki: branje, spreminjanje, dodajanje in brisanje podatkov.
Izvajanje transakcij
Transakcija je zaporedje ukazov zbirke podatkov, ki se izvede kot ena celota
(atomarna enota) po principu 'vse ali nič'.
Transakcija se mora izvesti do konca ali pa se sploh ne sme izvesti.
V primeru porušitve sistema pred koncem izvedbe transakcije SUZP zagotovi, da
se ob naslednjem zagonu SUZP-ja obnovi sistem (podatki) v prejšnje stanje - to je
da se vse spremembe prekličejo ('zavrtijo nazaj' / 'rolled back'.
Če se pa sistem poruši po izvedbi transakcije (stanje = izvršeno / committed),
SUZP zagotavlja, da so vse spremembe shranjene v zbirki podatkov.
Zaščita podatkov
Vgrajeni varnostni mehanizmi, ki omogočajo nastavljanje (dodeljevanje) različnih
dostopnih pravic uporabnikom do različnih podatkov in tudi skrbi za delovanje /
upoštevanje teh pravic.
Sledenje dogodkov
SUZP beleži vse dogodke / dostope do podatkov v zbirki podatkov, izdela pregled
in statistiko dostopov.
Beležke
Zbirke podatkov 1
46
3. Performanse in skalabilnost.
7. Znanje ljudi.
8. Podpora varnosti:
verjetnost, da obstajajo hrošči, ki omogočijo hackerjem vdor v sistem,
Zbirke podatkov 1
47
Uvedba standardov.
Beležke
Zbirke podatkov 1
48
SUZP - vprašanja
Kateri modul SUZP-ja interpretira stavke SQL DDL?
Procesor poizvedb
Upravitelj transakcij.
Upravitelj izravnalnika.
Upravitelj datotek.
Zbirke podatkov 1
49
zmogljivost SUZP.
TCO.
uporabniška aplikacija.
operacijski sistem.
Beležke
Zbirke podatkov 1
50
Java.
DB2.
MS SQL Server.
SQL.
Oracle.
SUZP omogoča izdelavo arhivskih kopij, vendar preprečuje kakršno koli drugo podvajanje
podatkov.
DA
NE
NE
NE
NE
NE
Uporabniki ZP in orodja
Glavne skupine uporabnikov ZP:
Zbirke podatkov 1
51
ZP
SUZP
Zbirka
podatkov
Beležke
Zbirke podatkov 1
52
Zbirke podatkov 1
53
Načrtovalec ZP
Definira vsebino in strukturo zbirke podatkov.
Opredeli omejitve in funkcije zbirke podatkov.
Komunicira s končnimi uporabniki.
Poglobljeno pozna potrebe uporabnikov.
Uporablja orodja CASE.
Beležke
Zbirke podatkov 1
54
Aplikacijski programer
Piše programe – uporabniške aplikacije za (največkrat) naivne uporabnike.
Včasih izdeluje tudi spletne vmesnike.
Pozna in uporablja:
► (vsaj en) programski jezik iz 3. ali 4. generacije programskih jezikov(C++, Java,
PHP, …),
► jezik SQL,
► razvojna orodja (RAD) in
► semantiko sheme zbirke podatkov.
Del programa, ki se nanaša na delo z ZP, je (načeloma) napisan v DML jeziku (kliče
izvajanje DML stavkov). Temu pravimo, da so DML stavki vgrajeni (embedded) v kodo, ki je
napisana v jeziku gostitelja (host language).
Programer ima pravico vpogleda v shemo zbirke podatkov, vendar NIKOLI nima pravice
spreminjanja sheme!
Primer vključevanja SQL DML stavka v pascalski (Delphi) program
// sestavljamo poizvedbo (query)
Query1.Sql.Clear;
Query1.Sql.Add('Select * from Kandidat');
Query1.Sql.Add('Where Priimek=:p');
Query1.ParamByName('p').Value:=Edit1.Text;
// zahtevano izvajanje poizvedbe
Query1.Open;
// prikaz podatkov
DataSource1.DataSet:=Query1;
Primer vključevanja SQL DML stavka v ASP program (skripto)
<%
dim con
‘odpremo povezavo z ZP
set con=Server.CreateObject("ADODB.connection")
con.open("Avto")
dim rs
‘sestavimo in poženemo ppoizvedbo
set rs=con.execute("Select * from Vozilo")
‘prikažemo rezultate
response.write rs.fields("ID_vozila") & " "
response.write rs.fields("Znamka") & "<br>"
%>
Zbirke podatkov 1
55
Zbirke podatkov 1
56
Zbirke podatkov 1
57
Uporabniki ZP - vprašanja
Pravica kreiranja in spreminjanja shem (opisov podatkov) je namenjena
končnim uporabnikom
programerjem
upravitelju ZP
upravitelju ZP in programerjem
administrator ZP
SUZP
administrator podatkov
končni uporabnik
programer.
sofisticirani uporabniki.
SUZP.
Beležke
Zbirke podatkov 1
58
aplikacijski programer.
administrator podatkov.
NE
DA
NE
NE
Zbirke podatkov 1
59
NE
NE
Beležke
Zbirke podatkov 1
60
SUZP
SUZP
Zbirke podatkov 1
61
Dvonivojska arhitektura
Pri dvonivojski arhitekturi aplikacij pride do ločevanja programskih modulov. Program, ki
omogoča in nadzoruje dostop do ZP je nameščen na podatkovnem strežniku, pri odjemalcih
pa so nameščene le uporabniške aplikacije.
Beležke
Zbirke podatkov 1
62
SUZP
ZP
ZP
Trinivojska arhitektura
Pri trinivojski arhitekturi se pojavi dodatni t.i. aplikacijski strežnik, na katerem je nameščena
uporabniška aplikacija. To povzroči dodatno razbremenitev odjemalčevega sistema.
Zbirke podatkov 1
63
SUZP
ZP
ZP
Beležke
Zbirke podatkov 1
64
Zbirke podatkov 1
65
N-nivojska arhitektura
Večina današnjih spletnih aplikacij sloni na uporabi n-nivojske arhitekture aplikacij 'odjemalec
- strežnik'. Poleg podatkovnega in aplikacijskega strežnika ta arhitektura vključuje še spletni
strežnik. Tako je odjemalčev sistem maksimalno razbremenjen. N-nivojska arhitektura je
omogočila silovit razvoj mobilnega poslovanja.
SUZP
ZP
ZP
Glavni problem delovanja v omrežnem okolju je visoka stopnja ranljivosti sistema. Zato je
potrebno zagotoviti kompleksno (večnivojsko) varovanje. Varnostni nivoji in načini varovanja:
omrežni nivo: za dostop se uporablja uporabniško ime in geslo;
aplikacijski nivo: uporabljajo se varnostni mehanizmi, vgrajeni v aplikacijo;
nivo podatkovnega strežnika: za vsakega uporabnika ali skupino uporabnikov
kreirajo njihove ‘vloge' in se jim dodelijo ustrezna dovoljenja za dostop do podatkov,
varna komunikacija med odjemalcem in strežnikom (uporaba enkripcije /
dekripcije podatkov, certifikatov).
Beležke
Zbirke podatkov 1
66
Zbirke podatkov 1
67
podatkovni strežnik
aplikacijski strežnik.
odjemalec.
rahlo povečale.
ostale nespremenjene.
rahlo zmanjšale.
bistveno zmanjšale.
Beležke
Zbirke podatkov 1
68
aplikacijskih strežnikov.
odjemalčevih postaj.
transakcij.
homogene ZP.
NE
NE
NE
Zbirke podatkov 1
69
NE
NE
NE
NE
Beležke
Zbirke podatkov 1
70
KONCEPTUALNO MODELIRANJE
Postopek izdelave ZP
Problemi načrtovanja ZP
Pri načrtovanju zbirke podatkov se razvijalci soočajo z vrsto težav:
Nepoznavanje področja
► Načrtovalec problemskega področja načeloma ne pozna. Zato se mora najprej
seznaniti in potem podrobno spoznati domeno problema in bodoče aplikacije.
Zbirke podatkov 1
71
Pravila in izjeme
► Poleg pravil v realnem svetu obstaja tudi veliko izjem. Realni svet in njegovo okolje
sta dinamična sistema, ki se pogosto spreminjata. Načrtovalec pri svojem delu mora
upoštevati vsa pravila in tudi vse izjeme. Hkrati mora narediti sistem dovolj
fleksibilno shemo, ki bo prilagojena bodočim spremembam.
Velikost
► Načrti ZP so pogosto zelo kompleksni. Zato so za človeka (načrtovalca) težko
obvladljivi.
Pri sodelovanju morajo načrtovalci ZP in uporabniki govoriti 'isti' jezik, sicer pride do večjih
razhajanj med dejanskimi in realiziranimi nalogami.
Beležke
Zbirke podatkov 1
72
Postopek izdelave ZP
Postopek izdelave ZP poteka po naslednjih fazah:
zbiranje in analiza zahtev uporabnikov,
konceptualno načrtovanje,
izbira SUZP,
logično načrtovanje,
fizično načrtovanje,
implementacija ZP.
Izbira
SUZP-ja
Odvisno od SUZP-ja
Faze izdelave ZP
Zbirke podatkov 1
73
V začetni fazi lahko pride do napačnega razumevanja realnega sveta, zato zahteva temeljito
sodelovanje načrtovalcev z uporabniki.
2. Konceptualno načrtovanje
Cilj te faze je izdelati konceptualni načrt oz. konceptualno shemo ZP. Konceptualni načrt
zajema tudi omejitve, ki se nanašajo na podatke. Za predstavitev konceptualnega načrta se
uporabljajo:
entitetno - relacijski diagrami,
diagrami razredov (UML notacija) in
diagrami objekt-vloga (Object-role model).
4. Logično načrtovanje
Izvede se transformacija: konceptualne sheme v podatkovni model, ki ga podpira izbrani
SUZP. Opravi se tudi natančen pregled dobljene logične sheme, iščejo se morebitne napake
ali pomanjkljivosti modela.
Pred prehodom v naslednjo fazo je potrebno preveriti, ali je ZP normalizirana (preverimo
funkcionalne odvisnosti med atributi, ali obstaja nepotrebno podvajanje podatkov, ...).
Beležke
Zbirke podatkov 1
74
Oblikovanje - vprašanja
Zbirka konceptov, ki se uporablja pri opisu strukture zbirke podatkov je
SUZP.
podatkovni model.
podatek.
relacija.
Interpreterji.
CASE orodja.
HTML urejevalniki
Zbirke podatkov 1
75
za dokumentiranje ZP.
NE
Beležke
Zbirke podatkov 1
76
Model E-R
Značilnosti modela E-R
Avtor je Peter Pin-Shan Chen (l. 1976).
Za E-R model je značilna semantična usmerjenost - usmerjen v pomensko
predstavitev realnega sveta. Za predstavitev se uporablja izrazna grafična notacija,
kar omogoča boljši pregled nad strukturo podatkov. Preslikava med realnim svetom
in podatkovnim modelom je nazorna. Zato omogoča dobro komunikacijo z
uporabniki, ki jih lažje jih vključimo v proces izdelave in validacije načrta zbirke
podatkov.
Osnovni konstrukti modela E-R
Med osnovne konstrukte modela E-R štejemo:
entiteto in entitetni tip;
atribut in tip podatkovnega elementa;
entitetni identifikator (ključ entitetnega tipa);
razmerje med entitetnimi tipi in tip (števnost) razmerja;
močne in šibke tipe entitet.
Entiteta in entitetni tip
Entiteta
Entitete so objekti (osebki) iz realnega sveta o katerih zbiramo, obdelujemo in
hranimo podatke in informacije. Primeri entitet:
človek Miha Novak, knjiga Vojna in mir, tečaj Angleščina 1, avto Ford Fiesta, ...
Pomembno: mora obstajati možnost razlikovanja med posameznimi entitetami! (Vsaka
entiteta mora imeti neko lastnost, po kateri lahko enolično opredelimo posamezno entiteto).
Tej lastnosti pravimo tudi entitetni identifikator ali ključ entitete.
Entitetni tip
Entitetni tip je predstava o množici podobnih entitet. Podobnost entitete določamo
glede na vrste informacij, ki jih želimo hraniti o entitetah. Entitetni tip je abstraktna
predstavitev entitet, ki imajo enake atribute.
Atribut, tip podatkovnega elementa
Atribut
Atribut je lastnost ali značilnost neke entitete ali razmerja med entitetami. Vrednost
atributa je podatkovni element nekega podatkovnega tipa (niz, število, ...) in ga je
možno prikazati v neki vidni ali slišni obliki (zaslonski prikaz, natisnjena oblika, zvok
...).
► Opcijski atribut - atribut, katerega vrednost je lahko tudi NULL.
► Enovrednostni atributi - atributi neke entitete, ki imajo le eno vrednost (ime,
datum rojstva, kraj rojstva, ....).
► Večvrednostni atributi - atributi neke entitete, ki imajo lahko tudi več vrednosti (e-
mail, telefon, ...). Opomba: za potrebe relacijske zbirke podatkov, ki ne dovoljuje
Zbirke podatkov 1
77
Simboli v diagramu E-R - teoretično, orodja CASE uporabljajo nekoliko spremenjene simbole
Beležke
Zbirke podatkov 1
78
Zbirke podatkov 1
79
Minimalne števnosti so izpuščene, strani za predstavitev števnosti sta glede na entitetna tipa
zamenjani.
Beležke
Zbirke podatkov 1
80
Zbirke podatkov 1
81
Beležke
Zbirke podatkov 1
82
Zbirke podatkov 1
83
Beležke
Zbirke podatkov 1
84
moramo dodati atribut še atribut zaporedna_st, sicer nek učitelj ne more večkrat poučevati
isti tečaj.
Zbirke podatkov 1
85
Dvoumnost modela se izkaže pri poizvedbi: V katerem oddelku dela Miha Novak?
Zbirke podatkov 1
86
Chasm trap
Chasm past je zajeta v modelu, ki nakazuje obstoj razmerja med entitetnimi tipi, vendar ne
obstaja pot med posameznimi konkretnimi entitetami. Pojavlja se, ko na poti med dvema
povezanima entitetama obstaja razmerje z delno udeležbo.
Zbirke podatkov 1
87
nima ključa.
Denimo, da je šibki entitetni tip X povezan z svojim 'nadrejenim' močnim entitetnim tipom Y.
Ključ šibkega entitetnega tipa X je
enak ključu močnega entitetnega tipa Y.
Denimo, da imamo dva entitetna tipa: Ime_osebe in Oseba, ki sta povezana z razmerjem
'pripada' ('ime_osebe' pripada 'osebi'). Števnost tega razmerja je:
ena proti mnogo.
poljubna.
Beležke
Zbirke podatkov 1
88
Denimo, da imamo dva entitetna tipa: Ime_osebe in Oseba, ki sta povezana z razmerjem
'pripada' ('ime_osebe' pripada 'osebi'). Udeležba entitetnega tipa Oseba v razmerju 'pripada'
do entitetnega tipa Ime je
delna.
totalna.
nedoločljiva.
Denimo, da je entitetni tip Oseba povezan sam z seboj z refleksivno relacijo 'je_otrok'
('oseba' je otrok 'osebe'). Števnost tega razmerja je:
ena proti mnogo.
Denimo, da je entitetni tip Oseba povezan sam z seboj z refleksivno relacijo 'je_otrok'
('oseba' je otrok 'osebe'). Udeležba entitetnega tipa Oseba v refleksivnem razmerju
'ima_otroka' v vlogi starša je
delna.
totalna.
nedoločljiva.
Zbirke podatkov 1
89
Denimo, da je entitetni tip Oseba povezan sam z seboj z refleksivno relacijo 'je_otrok'
('oseba' je otrok 'osebe'). Udeležba entitetnega tipa Oseba v refleksivnem razmerju
'ima_otroka' v vlogi otroka je
delna.
popolna.
nedoločljiva.
Razmerje R povezuje močan entitetni tip X z šibkim entitetnim tipom Y. Katera od navedenih
števnosti razmerja je neveljavna?
1:1
M:N
1:M
da je nedvoumen.
da je razumljiv.
Beležke
Zbirke podatkov 1
90
Grafična predstavitev modela E-R modela ni standardizirana. Osnovni koncepti modela se,
odvisno od izbranega orodja, lahko predstavijo na različne načine.
DA
NE
NE
NE
NE
NE
Zbirke podatkov 1
91
NE
NE
Dva različna entitetna tipa imata lahko enega ali več atributov z enakimi imeni.
DA
NE
NE
NE
Močan entitetni tip je vedno povezan vsaj z enim šibkim entitetnim tipom.
DA
NE
Beležke
Zbirke podatkov 1
92
Značilnost šibkega entitetnega tipa je, da je vedno povezan vsaj z enim močnim entitetnim
tipom.
DA
NE
NE
Zbirke podatkov 1
93
Beležke
Zbirke podatkov 1
94
Odgovor: SUZP neposredno podpira relacijski (in/ali) objektni model (ne pa tudi modela E-
R).
Koncepti relacijskega modela
Osnovni koncepti relacijskega modela podatkov so:
relacija in atributi,
shema relacijske zbirke podatkov,
stanje relacije,
vrednosti in zaloge vrednosti atributov,
atomarnost vrednosti atributov,
domene.
Zbirka podatkov
Relacija in atributi
Relacija in atributi:
Relacija je predstavljena s tabelo. Atributi so predstavljeni s stolpci tabele.
Relacijska ZP je sestavljena iz 1 ali več tabel.
Tabela je sestavljena iz 1 ali več stolpcev.
V tabeli je zapisanih 0, 1 ali več vrstic - t.i. n-teric relacije. Opomba: za n-terica se
uporablja tudi angleški izraz 'tuple'.
Vrednosti podatkovnih elementov so zapisane v presečišču vrstic in stolpcev. To so
vrednosti atributov za določeno n-terico.
Relacija (matematično gledano) = množica n-teric. Iz tega dejstva sledi, da:
► je vrstni red vrstic znotraj tabele (načeloma) nedefiniran in
► v relaciji (ker gre za množico elementov) ni podvajanj n-teric (vrstic).
Opomba: Večina današnjih SUZP-jev dovoljuje podvajanje vrstic tabele, dokler le-ta nima
definiranega ključa.
RM ne zahteva in ne opredeljuje nobene posebne podatkovne strukture za fizično
shranjevanje podatkov. Tabele oziroma relacije predstavljalo le logični pogled na podatke.
Zbirke podatkov 1
95
Zbirke podatkov 1
96
Stanje relacije
Stanje relacije je primerek podane relacijske sheme. Opredeljeno je z množico vrstic, ki so
zapisane v relaciji. Vzorčna tabela Dijaki ima trenutno 5 vrstic. Stanje relacije je lahko:
legalno (dovoljeno) - vrednosti vseh atributov so skladne z opredeljenimi
integritetnimi omejitvami ali
nelegalno (nedovoljeno).
Za legalnost stanja relacije v praksi skrbi SUZP.
Za vpogled v stanje relacije uporabljamo notacijo:
tabela.Ai ali tabela[Ai].
Formalno zapisane vrednosti četrte vrstice tabele Dijak:
Dijaki.IDDijak ='10205'
Dijaki.Priimek='Mlinar'
Dijaki.Ime='Mateja'
Dijaki.Razred='G2A'
Dijaki.Telefon='01-123-333'
Vrednosti in zaloge vrednosti atributov
Vnosi v tabelo (podatki) so podatkovne vrednosti iz neke določene zaloge vrednosti, ki je
opredeljena za vsak podatek posebej. Izbor možnih zalog vrednosti določa SUZP; različni
SUZP-ji ponujajo različne tipe podatkov. Osnovni tipi podatkov so nizi znakov, števila (cela,
realna), datum, čas, valuta, binarni podatki, …
Relacijski podatkovni model je neodvisen od katerekoli konkretne izbire podatkovnih tipov!
Pri opredelitvi relacijskega modela je množica tipov le parameter sheme.
Razširitve nekaterih sodobnih SUZP-jev omogočajo uporabnikom definiranje novih
podatkovnih tipov – to je lastnost predvsem sodobnih OR sistemov.
Atomarnost vrednosti atributov
En vnos podatka v tabelo je atomaren (nedeljiv) podatek. Klasični relacijski model ne
dovoljuje uvajanja struktur in večvrednostnih vrednosti atributov. To pomeni, da vsaka celica
v tabeli lahko vsebuje le eno število, niz znakov, datum ... Podpora kompleksnim vrednostim
(množice, seznami, zapisi, gnezdene tabele, ...) je značilna za objektno-relacijske sisteme.
Opomba: v resnici obstajajo kompleksne strukture, katerih kompleksnost je s pomočjo
vgrajenih funkcij uporabnikom prikrita; primer: DATE, TEXT(n), DATETIME, ... V teh primerih
je deljivost vrednosti atributov vidna šele na nivoju vrednosti podatkov in ne na nivoju
samega podatkovnega modela.
Zbirke podatkov 1
97
Domene
Domena je okrajšano ime za standardne tipe podatkov. Za domeno lahko opredelimo tudi
dodatne integritetne omejitve: zahtevan podatek, le pozitivna vrednost, .... Domene
zagotavljajo:
enoličnost in konsistentnost podatkovnih tipov in
boljše razumevanje strukture ZP.
Primeri:
// Primer kreiranja domene za podatek Številka vaje v zbirki podatkov FireBird
Create Domain "Zap_st_vaje" As Smallint NOT NULL Check (>0);
Zbirke podatkov 1
98
Oris tabele
Tabelarična predstavitev
Formalna notacija
Formalna notacija predstavi ime relacije oz. tabele, ki ji v oklepajih sledi le seznam atributov.
Po potrebi lahko dodamo tudi podatkovne tipe stolpcev. Primarni ključ relacije podčrtamo.
Opcijske atribute označimo z o. Tuje ključe označimo na naslednji način:
ime_atributa→ime_starševske_tabele.
Primeri:
Oseba(EMSO, Priimek, Ime, Telefono)
Izpit(StudentID→Student, PredmetID→Predmet, Datum, Ocena)
Obiskuje(DijakID→Dijak, KrozekID→Krozek)
Vaja(Kategorija, Številka_vaje, Opis, Max_št_točk)
Rezultati(DijakID→Dijak, (Kategorija, Številka_vaje)→Vaja, Datum,
Dosežene_točke)
vrstico tabele.
tabelo.
Zbirke podatkov 1
99
atribut.
podatkovni model.
podatek.
informacija.
relacija.
Beležke
Zbirke podatkov 1
100
Pravilo, ki določa da se vrednost enega atributa mora pojaviti v nekem drugem atributu, se
imenuje
tranzitivna odvisnost.
normalna forma.
Kako se imenuje skupina enega ali več atributov, ki enolično identificira vrstico tabele?
Ključ.
Determinanta.
N-terica.
Relacija.
primarni ključ.
kandidat za ključ.
zunanji ključ.
Zbirke podatkov 1
101
Vrednost je neznana
Katera od navedenih lastnost ne sodi med značilnosti tabel, ki so hkrati tudi relacije?
V polja tabele lahko zapišemo le nedeljive vrednosti.
Lastnost, ki ima enolično vrednost za vsako entiteto in jo dodamo relaciji, da bi dobili primarni
ključ se imenuje
sestavljeni ključ.
kandidat za ključ.
generični ključ.
zunanji ključ.
Beležke
Zbirke podatkov 1
102
Dodajanje zapisov.
Brisanje zapisov.
Spreminjanje zapisov.
Datum_rojstva
Spol
atributov.
vrstic.
tabel.
polj.
Zbirke podatkov 1
103
vpišemo NULL.
vpišemo presledek.
vpišemo null.
Podana je relacijska shema relacije Dijak (Dijak_ID, Priimek, Ime, Telefono). Katere od
naslednjih zapisov bo pri dodajanju SUZP zavrnil in zakaj?
Dijak_ID Priimek Ime Telefon
1022 Kralj 123-33-45
Babnik Tilen
1023 Kralj Tina 334-34-34
1024 Kralj Tina
1023 Kos Darko 443-32-32
Dana je tabela:
Izdelek
IDIzdelek Ime Cena Dobavitelj
0324 Fanta 180SIT ABC
0444 Cocta 170SIT CCC
1323 Frupi 190SIT CCC
1333 Fruc 120SIT CCC
V formalni notaciji zapišite:
a) relacijsko shemo tabele
b) vrednosti podatkovnih elementov, ki ste jih prebrali v prvi vrstici tabele
Beležke
Zbirke podatkov 1
104
NE
NE
NE
NE
NE
NE
Ključ relacije je en ali več atributov relacije, ki jih uporabljamo za enolično identifikacijo ene
n-terice relacije.
DA
NE
Zbirke podatkov 1
105
DA
NE
Vrednost NULL lahko uporabimo v vseh opcijskih atributih ne glede na osnovni tip podatka
atributa.
DA
NE
NE
NE
NE
V zbirki podatkov imamo lahko več atributov, ki so opisani z istim podatkovnim tipom.
DA
NE
Beležke
Zbirke podatkov 1
106
DA
NE
NE
NE
Zbirke podatkov 1
107
Model E-R
Mode E-R ima 2 močna entitetna tipa in en šibki entitetni tip. Zato moramo narediti 3
relacijske sheme.
Relacijski model
Potovalna_agencija – relacija, ki predstavlja močno entiteto
Potovalna_agencija(AgencijaID:A20, ImeA:A20, Naslov:A20o, url:A20o)
Katalog – relacija, ki predstavlja močno entiteto
Katalog(KatalogID:A5, ImeKataloga:A20, AgencijaID→Potovalna_agencija:A20)
Vsebina – relacija, ki predstavlja šibko entiteto
Vsebina(ZapSt:N, KatalogID→Katalog:A5, Opis:A20, Opomba:A20o)
Preslikava razmerja
Način preslikave razmerja v relacijsko shemo je določen s števnostjo razmerja. Glede na
števnost razmerja: 1:M, M:N ali 1:1 je potrebno uporabiti ustrezno pravilo.
Beležke
Zbirke podatkov 1
108
Model E-R
Model E-R ima tri močne entitetne tipe (Igralec, Film in Nagrada) in dve razmerji s števnostjo
M:N (Igra in Dobi). Zato moramo v relacijskem modelu narediti pet relacijskih shem.
Relacijski model
Igralec - relacija, ki predstavlja močan entitetni tip
Igralec(IgralecID:N, Priimek:A20, Ime:A20)
Film - relacija, ki predstavlja močan entitetni tip
Film(FilmID:N, Ime_filmao:A20)
Nagrada - relacija, ki predstavlja močan entitetni tip
Nagrada(NagradaID:A4, ImeNagrade:A20, Opiso:A20)
Zbirke podatkov 1
109
Igra - relacija, ki predstavlja razmerje s števnostjo M:N (razmerje ima svoj atribut Vloga )
Igra(IgralecID→Igralec:N, FilmID→Film:N, Vlogao:A20)
Dobi - relacija, ki predstavlja razmerje s števnostjo M:N (razmerje nima lastnih atributov)
Dobi(IgralecID→Igralec:N, FilmID→Film:N, NagradaID→Nagrada:A4)
Model E-R
Beležke
Zbirke podatkov 1
110
Ima(DelavecID→Delavec, PMestoID→Parkirno_mesto)
ali
Ima(DelavecID→Delavec, PMestoID→Parkirno_mesto)
Tretja varianta
Če imamo razmerje 1:1 s popolno udeležbo obeh entitet v razmerju (na obeh straneh je
kardinalnost (1,1)), potem za obe entiteti in razmerje kreiramo le eno skupno relacijo, v kateri
združimo atribute obeh entitet. V tem primeru imamo dva kandidata za ključ relacije. To sta
ključa povezanih entitetnih tipov. Za ključ relacije izberemo samo enega. Možni rešitvi:
Delavec(DelavecID, PMestoID)
ali
Parkirno_mesto(PMestoID, DelavecID)
Ta rešitev ni ravno priporočljiva, ker v primeru brisanja podatkov o delavcu, hkrati izgubimo
tudi podatke o parkirnem mestu in obratno.
Oglejte si E-R diagram, ki prikazuje model ZP, v kateri hranimo podatke o prosilcih za
službo.
Na osnovi modela določite shemo relacijske ZP (shemo zapišite v formalni notaciji).
Katere tabele predstavljajo močne entitetne tipe?
Katere tabele predstavljajo šibke entitetne tipe?
Katere tabele predstavljajo razmerja?
Kateri atributi so opcijski?
Zbirke podatkov 1
111
Normalizacija
Normalizacija ZP
Pri izdelavi načrta ZP se načrtovalci pogosto vprašajo:
'Kako naj izmerim oz. ocenim kakovost logičnega načrta ZP?'
'Kako naj "vem", ali je načrt ZP dober?'
'Kako naj preverim kakovost načrta?'
Kot pomoč pri načrtovanje kakovostne ZP, se uporabljajo različna vodila:
Neformalna vodila:
► Upoštevanje semantike atributov.
► Zmanjševanje (omejevanje) podvajanja vrednosti v vrsticah tabele.
► Zmanjševanje (omejevanje) števila opcijskih atributov (NULL).
► Preprečevanje ‘sumljivih’ zapisov.
► ...
Formalno vodilo:
► S postopkom normalizacije se načrt ZP transformira vsaj do 3NF ali BC normalne
forme.
Neformalna vodila
Neformalno vodilo - semantika atributov
Posledica grupiranja atributov pri ustvarjanju relacij je tudi pridruževanje določenega pomena
(semantike) posameznemu atributu. Pri tem je potrebno upoštevati nasvete:
relacije načrtujte tako, da bo enostavno pojasniti njen pomen;
ne kombinirajte (mešajte) atributov različnih tipov entitet v eni relaciji.
Primer 'slabe' relacije: Delavec (Davčna_st, Priimek, Ime, Naslov, Ime_Oddelka,
Vodja_oddelka, Naslov oddelka)
Relacija vsebuje atribute entitetnega tipa Delavec (njegovo davčno številko, priimek, ime,
naslov in oddelek, v katerem dela) in atribute entitetnega tipa Oddelek (oddelek, vodjo
oddelka in naslov oddelka).
Beležke
Zbirke podatkov 1
112
Zbirke podatkov 1
113
Beležke
Zbirke podatkov 1
114
Nasveti:
ZP načrtujte tako, da se ne more pojaviti nobena od anomalij pri dodajanju, brisanju
ali modificiranju podatkov.
Če pride do katerekoli anomalije, poskrbite, da vse aplikacije, ki dostopajo do ZP
posodobijo vsebino zbirke tako, da ohranijo integriteto (celovitost) podatkov. To je
sicer težja naloga, ker zahteva dobro koordinacijo z vsemi programerji, ki pišejo
uporabniške aplikacije.
Zbirke podatkov 1
115
Seznam pošt
Poštna št. Država
1000 Slovenija
2000 Slovenija
3006 Italija
Beležke
Zbirke podatkov 1
116
Zbirke podatkov 1
117
Le na osnovi vrednosti atributa Delovno mesto ne moremo enolično opredeliti vrednost atributa DelavecID.
Beležke
Zbirke podatkov 1
118
Zbirke podatkov 1
119
Beležke
Zbirke podatkov 1
120
DijakID->Ime,KrajRojstva in
KrajRojstva->DržavaRojstva // Atribut Država rojstva je tranzitivno odvisna od
DijakID preko atributa KrajRojstva
Povzetek:
Poznavanje funkcionalnih odvisnosti predstavlja osnovo za izvedbo postopka
normalizacije ZP.
Funkcionalna odvisnost opisuje razmerje med atributi relacije. Funkcionalne
odvisnosti lahko določimo le, če poznamo pomen podatkov in poslovna pravila v
modeliranem okolju (scenarij).
Funkcionalno odvisnost predstavimo v notaciji A -> B. Atribut B je funkcionalno
odvisen od atributa A oziroma atribut A je determinanta atributa B.
Funkcionalne odvisnosti niso komutativne.
Vrste funkcionalnih odvisnosti:
Delna funkcionalna odvisnost: atribut je odvisen le od dela ključa.
Polna funkcionalna odvisnost: atribut je odvisen od celotnega ključa.
Tranzitivna funkcionalna odvisnost: atribut je odvisen od ključa preko posrednega
atributa, ki ni ključ.
Postopek normalizacije
Kaj je normalizacija?
Vsebinsko gledano je normalizacija postopek,ki pomaga pri doseganje boljše kakovosti
načrta zbirke podatkov.
Tehnično gledano je normalizacija proces, ki vodi relacijsko shemo ZP skozi zaporedje
testov. Z vsakim testom preverimo, ali so izpolnjeni določeni pogoji. Za relacijsko shemo, ki
ustreza določenim pogojem pravimo, da je v določeni normalni formi. Sheme relacij, ki ne
zadoščajo pogojem, razdelimo na več manjših relacij tako, da dobljene relacije ustrezajo
predpisanim zahtevam.
Zbirke podatkov 1
121
Postopek normalizacije
Posledice normalizacije
Večina posledic izvedbe postopka normalizacije ZP je pozitivnih:
zmanjša se redundanca (podvajanje) podatkov,
v normalizirani zbirki manj pogosto prihaja do anomalij med podatki oz.
normalizirana ZP jih samodejno izloča,
Beležke
Zbirke podatkov 1
122
Zbirke podatkov 1
123
Beležke
Zbirke podatkov 1
124
Zbirke podatkov 1
125
Normalizacija - vprašanja
Vsaka relacijska shema, ki je v prvi normalni formi, je tudi v drugi normalni formi.
DA
NE
praviloma zmanjša.
Beležke
Zbirke podatkov 1
126
v 2NF.
v 3 NF.
v BCNF.
NE
Zbirke podatkov 1
127
Beležke
Zbirke podatkov 1
128
Zbirke podatkov 1
129
Stavki za definiranje tabel (opredelimo tabele, atribute, integritetne omejitve, tuje ključe, ...):
Kreiranje tabel - CREATE TABLE
Spreminjanje tabel - ALTER TABLE
Brisanje tabel - DROP TABLE
Stavki za definiranje indeksov:
Kreiranje sekundarnih indeksov - CREATE INDEX
Brisanje primarnega / sekundarnih indeksov - DROP INDEX
Delo s tabelami
Stavek za kreiranje tabel CREATE TABLE
Sintaksa
CREATE TABLE ime_tabele (
atribut1 tip1 [integritetne_omejitve],
atribut2 tip2 [integritetne_omejitve],
...
Primary Key (atributx, atributy, ...),
Foreign Key (atributfk) References ime_starševske_tabele (atribut) On operacija1 akcija1 On
operacija2 akcija2
);
Najpogostejše integritetne omejitve so:
NOT NULL,
UNIQUE,
CHECK pogoj,
DEFAULT vrednost.
Pri opredeljevanju tujih ključev pod vrednost operacija1 vpišemo update, pod operacija2 pa
delete. V obeh primerih pod akcija vpišemo eno od vrednosti: no action | cascade | set null |
set default.
Kombinacija operacije in akcije pri opredelitvi tujih ključev določa tip referencialne integritete.
Ta kombinacija opredeli odziv SUZP v primeru bodisi brisanja ali posodabljanje vrednosti
starševskega zapisa.
Beležke
Zbirke podatkov 1
130
Če je akcija 'no action', potem SUZP prepreči brisanje vseh zapisov starševske
tabele, v kolikor le ti imajo ustrezne zapise v otroški tabeli.
Če je akcija 'cascade', potem SUZP hkrati z brisanjem zapisa starševske tabele
izbriše tudi vse pripadajoče zapise v otroški tabeli.
Če je akcija 'set null', potem SUZP pri brisanju zapisa starševske tabele, v vseh
pripadajočih zapisih otroške tabele v vrednost zunanjega ključa vpiše vrednost
NULL.
Če je akcija 'default', potem SUZP pri brisanju zapisa starševske tabele, v vseh
pripadajočih zapisih otroške tabele v vrednost zunanjega ključa vpiše privzeto
vrednost.
Možni podatkovni tipi za atribute so odvisni od SUZP. V nekaterih SUZP lahko kreiramo
domene ali uporabniško definirane tipe podatkov, ki pomagajo ohranjati konsistentnost
podatkovnega tipa znotraj zbirke podatkov.
Primer stavka SQL DDL za SUZP Firebird, ki naredi tabelo:
Praznik(PraznikID:N, ImePraznika:A20,Dan:N,Mesec:N, Opombao:A100)
Create table Praznik(
PraznikID integer NOT NULL,
ImePraznika varchar(20) NOT NULL,
Dan integer NOT NULL CHECK (dan >=1 and dan<=31),
Mesec integer NOT NULL CHECK (mesec >=1 and mesec<=12),
Opomba varchar(100),
Primary Key(PraznikID));
Zbirke podatkov 1
131
Beležke
Zbirke podatkov 1
132
Primer stavka, ki v tabelo praznik doda atribut Opis, ki je sestavljen in 30 znakov in prikaz spremenjene strukture tabele Praznik.
Pozitivne posledice
Hitrejše iskanje podatkov (če je tabela indeksirana po atributu, ki je ključ za
iskanje).
Hitrejši prikaz razvrščenih podatkov.
Zbirke podatkov 1
133
Negativne posledice
Večja poraba pomnilniškega prostora (diska, RAM-a).
Počasnejša izvedba stavkov za dodajanje, brisanje in spreminjanje vsebine tabele.
Nasveti
S številom sekundarnih indeksov ne pretiravajte.
Tudi za sekundarne indekse naj velja pravilo, da so čim krajši.
Le izjemoma uporabljajte sestavljene sekundarne indekse.
Ne brišite primarnih indeksov (razen, če je to res nujno potrebno). Nekateri SUZP-ji
ne omogočajo brisanja primarnih indeksov, nekateri pa omogočajo ih hkrati
izbrišejo tudi vse sekundarne indekse.
Pred morebitnim brisanjem ali spreminjanjem primarnih ključev obvezno naredite
arhivsko kopijo ZP.
Zbirke podatkov 1
134
Beležke
Zbirke podatkov 1
136
Dodeljevanje pravic
GRANT pravica ON ime_tabele TO ime_uporabnika|ime_skupine; ali
GRANT pravica ON ime_tabele TO GROUP ime_skupine;
Zbirke podatkov 1
137
Odvzemanje pravic
REVOKE pravica ON ime_tabele TO ime_uporabnika; ali
REVOKE pravica ON ime_tabele TO GROUP ime_skupine;
/* kreira uporabnike */
Create user Skrbnik;
Create user Matej;
Create user Peter;
/* polni skupino */
Alter group Informator add user Matej;
Alter group Informator add user Peter;
Beležke
Zbirke podatkov 1
138
Zbirke podatkov 1
139
Poleg omenjenih stavkov jezik SQL omogoča uporabo osnovnih aritmetičnih operatorjev,
agregiranih funkcij in množice različnih funkcij za delo z nizi, datumi, števili, za pretvarjanje
med podatkovnimi tipi, ...
Noben ob stavkov SQL DML ne spremeni opisa tabel. Pri izvedbi stavkov DML SUZP
poskrbi za zaščito integritete podatkov. Če bi izvedba stavka poškodovala celovitost
podatkov, ga SUZP zavrne.
SELECT - osnovno branje
Sintaksa:
Če želimo, da stavek vrne vse atribute tabele, uporabimo zvezdico, sicer navedemo imena
atributov. V odgovoru se vrstice lahko tudi podvojene.
SELECT [*|atr1,atr2,...] FROM tabela;
Ta oblika stavka SELECT vrne relacijo (množico zapisov). Zato v odgovoru ni podvajanj
vrstic.
SELECT DISTINCT atr1,atr2,... FROM tabela;
Dodatno SQL ponuja možnost razvrščanja podatkov v odgovoru. Privzet vrstni red
razvrščanja je ASC (naraščajoče).
SELECT atr1,atr2,... FROM tabela ORDER BY atrx [ASC|DESC],atry [ASC|DESC],...;
Beležke
Zbirke podatkov 1
140
Zbirke podatkov 1
141
Beležke
Zbirke podatkov 1
142
Zbirke podatkov 1
143
Beležke
Zbirke podatkov 1
144
Drugi način je uporaba naravnega stika oz. konstrukta INNER JOIN, pod ON pa
napišemo pogoj(e) za povezovanje tabel.
SELECT [*|tabela1.atr1,...] FROM tabela1 INNER JOIN tabela2 ON (tabela1.atributx =
tabela2.atributx);
Tabela z odgovorom ima vse kombinacije vrstic prve in druge tabele, ki ustrezajo danemu
pogoju.
Zbirke podatkov 1
145
Beležke
Zbirke podatkov 1
146
vseh vrstic prve in druge tabele (FULL OUTER JOIN) - pri zapisih, ki nimajo
ustreznega v prvi ali drugi tabeli so vrednosti atributov le-teh NULL
Sintaksa:
SELECT atributi FROM tabela1 LEFT | RIGHT | FULL [OUTER] JOIN tabela2 ON
pogoj;
Primer uporabe zunanjega povezovanja: izpišite seznam vseh dijakov, in šifre krožkov, ki jih obiskujejo
Zbirke podatkov 1
147
3. funkcije za konverzijo
izvede pretvorbo vrednosti med podatkovnimi tipi
Beležke
Zbirke podatkov 1
148
Funkcija COUNT
Funkcija COUNT prešteje, kolikokrat se vrednost atributa atributx pojavi v tabeli.
Sintaksa:
SELECT COUNT(atributx) FROM tabela;
Opomba: tudi funkcija COUNT dela za znakovne, številske in datumske podatke.
Primer izvedbe funkcije AVG brez združevanja zapisov in funkcije SUM z združevanjem zapisov
Beležke
Zbirke podatkov 1
150
Zbirke podatkov 1
151
Beležke
Zbirke podatkov 1
152
Funkcije za pretvorbo
Funkcije za konverzijo izvedejo pretvorbo podatkov iz enega podatkovnega tipa v drugi.
SQL92 - funkcija CAST (atr AS tip)
MS Access - za konverzijo v en tip obstaja ena funkcijea: CBool(atr), CByte(atr),
CCur(atr), CDate(atr),CDbl(atr),CDec(atr),CInt(atr),CLng(atr),CStr(atr), ...
Primer uporabe funkcije za konvertiranje datumskega podatka v niz znakov in konkatenacije nizov znakov
Zbirke podatkov 1
153
INSERT
S stavkom INSERT se tabelo doda ena ali več vrstic. Uporabljamo ga za:
dodajanje novih zapisov
INSERT INTO ime_tabele (atr1,atr2,...) VALUES (vr1,vr2,...);
prepisovanje vsebine ene tabele (ali dela atributov ene tabele) v drugo
INSERT INTO tabela1 (atr1,atr2,...) SELECT (atr1,atr2,...) FROM tabela2;
Primer stavka INSERT, ki v tabelo Dijak doda zapis "20030","Kovač","Mojca","G4A"
INSERT INTO Dijak (DijakID,Priimek,Ime,Razred) VALUES
("20030","Kovač","Mojca","G4A");
Primer stavka INSERT, ki vsebino tabele Dijak za dijake razreda G2A prepiše v tabelo G2A
INSERT INTO G2A (DijakID,Priimek,Ime,Razred,Rojen) SELECT
(DijakID,Priimek,Ime,Razred,Rojen) FROM Dijak WHERE Dijak.Razred=‘G2A';
Stavek INSERT ne uspe, če:
pride do podvajanja primarnega ključa tabele,
niso navedeni vsi zahtevani atributi,
se tip atributa in vrednost ne ujemata,
vpisujemo vrednost tujega ključa, ki v starševski tabeli ne obstaja,
vrednost atributa že obstaja, atribut pa je opredeljen kot razločevalen (unique)
...
DELETE
Stavek DELETE izbriše eno ali več vrstic tabele. Uporabljamo ga za:
brisanje vseh vrstic tabele
DELETE FROM ime_tabele;
pogojno brisanje vrstic tabele
DELETE FROM ime_tabele WHERE pogoj;
Opomba: pogoj se lahko nanaša tudi na vrednosti atributov neke druge tabele. V tem
primeru sledi gnezdeni stavek SELECT.
Beležke
Zbirke podatkov 1
154
Zbirke podatkov 1
155
Beležke
Zbirke podatkov 1
156
Izbor želenih polj (projekcija). V rezultat poizvedbe nam ni treba vključiti vseh polj
iz tabele, na kateri sloni poizvedba. Na primer, ogledamo si lahko samo imena in
telefonske številke naših strank, brez naslovov in drugih polj.
Omejimo nabor zapisov (filter). Določimo pogoje, ki jim morajo zadostovati zapisi,
da bi bili vključeni v rezultat poizvedbe. Na primer, želimo videti podatke samo za
osebe, ki se pišejo Krajnc, so iz določenega kraja ipd.
Razvrstimo zapise v rezultatu (sort). Na primer, lahko vidimo seznam naših
partnerjev v Avstriji urejen po abecednem redu, ali pa po naraščajočem obsegu
prometa.
Uporabljamo lahko več tabel v eni poizvedbi. Pri tem se v začasni tabeli, ki je
rezultat poizvedbe, pojavijo le tista polja, ki jih želimo, prav tako pa podatki le iz
tistih zapisov v posameznih tabelah, ki ustrezajo omejitvam, ki jih postavimo.
Izračunavamo vsote. Nad podatki v tabeli lahko izvajamo izračune. Na primer,
lahko izračunamo vsoto prodaje po osebah ali kakšen drug izračun.
Spreminjamo podatke. Lahko ustvarimo poizvedbo, kjer na podlagi vpisanih
kriterijev dodajamo, brišemo ali popravljamo podatke.
Tvorimo obrazce in poročila na podlagi rezultatov poizvedb. Več o obrazcih in
poročilih bomo izvedeli v naslednjih poglavjih. Če obrazec ali poročilo temelji na
poizvedbi, se vsakič, ko prikličemo katerega od teh dveh elementov samodejno
izvrši poizvedba.
Uporabimo rezultate poizvedb v nadaljnjih poizvedbah. Ko sestavimo
poizvedbo, lahko na rezultat te poizvedbe navežemo naslednje poizvedbe. Včasih
bo ena poizvedba preveč kompleksna ali morda ne bo možno do rezultata priti v
enem koraku. V takem primeru si pomagamo s kakšno vmesno poizvedbo.
Zaganjamo seveda samo končni rezultat (poizvedbo).
Na podlagi poizvedb lahko tvorimo grafikone in vrtilne tabele.
Uporaba poizvedb
Ustvarjanje nove poizvedbe
Tvoriti poizvedbo pomeni, da določimo pogoje, na podlagi katerih se iz neke tabele izberejo
podatki in se prenesejo v novo začasno tabelo.
Zbirke podatkov 1
157
Postopek:
Izberemo kartonček Poizvedbe (Queries) in gumb Nov (New).
V notranjosti okna se pojavi spisek vseh poizvedb, ki smo jih do sedaj ustvarili v okviru te
podatkovne zbirke. Povedali smo, da rezultatov poizvedbe ne moremo shraniti, da so le v
začasni tabeli. Lahko pa seveda shranimo definicijo same poizvedbe, in prav spisek teh
definicij se sedaj pojavi v spisku znotraj okna.
Odpre se novo okno s spiskom vseh tabel in poizvedb, ki so v tej zbirki podatkov. Med
tabelami in poizvedbami izbiramo s kartončki Tables (tabele), Queries (poizvedbe) in Oboje
(Both). Zraven seznama tabel ali poizvedb sta gumba Dodaj (Add) in Zapri (Close).
Kliknemo po tabeli ali poizvedbi, na podlagi katere želimo tvoriti poizvedbo, ter kliknemo
gumb Dodaj (Add).
Na ta način lahko izberemo več tabel ali poizvedb. Poizvedba namreč lahko temelji tudi na
več kot eni tabeli hkrati. Mi se bomo zaenkrat omejili na poizvedbe na eni tabeli.
Znajdemo se v oknu za določanje lastnosti poizvedbe.
Beležke
Zbirke podatkov 1
158
Zbirke podatkov 1
159
Samo definicijo poizvedbe pa seveda shranimo, saj bomo poizvedbe z istimi karakteristikami
zelo verjetno še kdaj izvajali. Kako se to stori, bomo še spoznali.
Izbor med tem, ali želimo videti poizvedbo v podatkovnem ali načrtovalnem prikazu, lahko
opravimo, še preden tabelo odpremo.
Postopek:
Kliknemo gumb Poizvedbe (Queries).
Kliknemo po imenu poizvedbe, ki jo želimo odpreti.
Če želimo vstopiti v načrtovalni prikaz, kliknemo Načrt (Design), če pa želimo
podatkovni prikaz, kliknemo Odpri (Open).
Opozorilo! Če v tabelo, ki je rezultat poizvedbe, vpisujemo ali v njej popravljamo podatke, se
spremembe odražajo tudi v originalni tabeli, ki je osnova za poizvedbo.
Če dodajamo zapise, se ti dodajo tudi v originalno tabelo. Vendar, če je število polj v
podatkovnem prikazu poizvedbe manjše od števila polj v originalni tabeli, bodo ostala
določena polja dodanih zapisov v originalni tabeli prazna.
Shranjevanje, odpiranje in tiskanje poizvedb
Shranjevanje in odpiranje poizvedb
Na disk shranjujemo definicijo poizvedbe, ne pa tudi rezultatov poizvedbe. Postopki za
odpiranje in shranjevanje poizvedb so analogni tistim, ki smo jih spoznali pri tabelah.
Spreminjanje poizvedbe
Ko smo določili polja v načrtovalnem pogledu poizvedbe, jih lahko naknadno preurejamo,
brišemo ali dodajamo.
Beležke
Zbirke podatkov 1
160
Premikanje polja
Premaknemo lahko eno ali več polj hkrati.
Vrivanje polja
Iz spiska polj izberemo polje, ki ga bomo vrinili. Povlečemo polje iz spiska v mrežo na tisto
mesto, kamor ga želimo postaviti.
Polje, ki je na mestu, kamor želimo vriniti novega, se bo umaknilo v desno, skupaj z njim pa
seveda tudi vsa polja, ki ležijo desno od njega.
Brisanje polja
Polje odstranimo iz načrta poizvedbe tako.
Določanje pogojev
Z dosedanjimi postopki smo omejili zgolj izbor polj, ki se naj pojavijo v rezultatu poizvedbe.
Na ta način je tabela, ki je rezultat poizvedbe le ožja, ni pa nič krajša, saj se v rezultatu
pojavijo vsi zapisi. Če smo v poizvedbe dodali vsa polja, bomo dobili kot rezultat originalno
tabelo, na kateri temelji poizvedba.
Sedaj se bomo naučili filtrirati ali omejevati zapise, ki se pojavljajo v rezultatu. Rezultanta
tabela bo na ta način krajša, saj se bodo pojavili le zapisi, ki ustrezajo določenim pogojem.
Postopek:
Postavimo se v celico v vrstici z napisom Pogoji (Criteria) v stolpcu, ki pripada
polju, na katerega želimo vezati pogoj.
Vpišemo pogoj.
Na primer, če želimo v rezultatu poizvedbe le vse tiste zapise, ki vsebujejo podatke o
Krajncih, bomo v vrstico Pogoji (Criteria) stolpca Priimek vpisali "Krajnc".
Zbirke podatkov 1
161
Postopek ponavljamo, dokler ne postavimo pogojev za vsa tista polja, za katera naj
veljajo omejitve.
Med omejitvami v posameznih stolpcih velja veznik logični IN (AND). To pomeni, da če
polje Priimek omejimo na "Krajnc", polje Ime pa na "Janez", bo Access v rezultat
poizvedbe vpisal samo tiste zapise, ki imajo v polju Ime vpisano "Janez" in hkrati v
polju Priimek vpisano "Krajnc". Ne bo našel na primer Igorja Krajnca, ker v njegovem
zapisu v polju ime ne piše "Janez". Iz podobnega razloga tudi ne bo vključil Janeza
Kovača.
Pogoj najpogosteje ni le preprosta beseda ali številka, temveč so pogoji običajno bolj
kompleksni. Access nam pri določanju pogojev omogoča veliko mero svobode. Oglejmo si
nekaj načinov za določanje pogojev:
Vrednost v pogoju natanko ustreza iskani vrednosti. V tem primeru v celico pogoja
preprosto vpišemo vrednost, ki jo mora vsebovati polje v zapisu, da bo zapis
vključen v rezultat poizvedbe. Če v celico pogoja polja prodaja vpišemo 300, bo
Access v rezultat vključil vse zapise, ki imajo v tem polju vrednost 300, ne pa tudi
3000 ali 1300. Če bo v polju starost pisalo 25 in v polju Ime vrednost "Ignac", bo
Access našel vse Ignace, ki so stari 25 let.
Vrednost v pogoju je vsebovana v iskani vrednosti. To pomeni, da želimo v
rezultatu na primer vse zapise, ki v nekem polju vsebujejo črko X. V tem primeru
uporabimo operator LIKE. Naš primer bi se lahko glasil LIKE "*X*". Pomeni: poišči
vse zapise, ki v tem in tem polju vsebujejo vrednost, ki se začne poljubno, nekje
znotraj vsebuje črko X, in se konča poljubno. Če bi v polju Država postavili pogoj
LIKE "B*", bi s tem dobili zapise, ki imajo v tem polju Belgija, Brazilija, Burundi ipd.
Vidimo, da se operator LIKE uporablja v povezavi z nadomestnimi operatorji.
Uporabimo lahko nadomestna operatorja zvezdico in vprašaj. Nadomestne
operatorje lahko uporabljamo pri poljih, ki vsebujejo tekst ali datum.
► operator “*”: pomeni karkoli, torej nič, en znak ali zaporedje poljubnih znakov.
► operator “?”: pomeni katerikoli, a obvezno en (1) znak. Npr.: m??a lahko vrne
rešitve, kot so miza, Miha, mama, ne pa tudi Metka, Mia.
Iskana vrednost je večja, manjša ali enaka od vrednosti v pogoju. Recimo, da
želimo poiskati vse prodajalce, ki imajo prodajo strogo manjšo od 300 denarnih
enot. V tem primeru bi na primer v polje Prodaja vpisali vrednost <300. Na podoben
način lahko uporabljamo primerjalne operatorje:
< (strogo manjše)
<= (manjše ali enako, največ, kvečjemu)
> (strogo večje)
>= (večje ali enako, najmanj, vsaj)
Beležke
Zbirke podatkov 1
162
= (enako)
<> (različno)
Iskana vrednost je med dvema vrednostma v pogoju. Želimo najti vse prodajalce, ki
so prodali med 100 in 300. V polje Prodaja bi vpisali izraz Between 100 And 300, in
je ekvivalenten izrazu >=100 And <= 300.
Iskanje praznega polja. Želimo najti vse zapise, kjer manjka npr. datum rojstva. V
polje DatRoj bi kot pogoj vpisali Is nič (Is null).
Kompleksnejši pogoji v poizvedbah
Sestavljeni pogoji za eno polje
Do sedaj smo spoznali pogoje, ki omejujejo vrednost polja samo na en način. Lahko pa tudi
določimo pogoje, ki z več strani omejujejo vrednost polja, prav tako pa lahko en pogoj
vključuje več polj. Z uporabo sestavljenih pogojev lahko na primer najdemo vse artikle, ki
imajo cene višje od 50 EUR in hkrati nižje od 100 EUR, ali pa so naročeni po 1.10.2005 in
imajo ceno višjo od 75 EUR.
Sestavljeni pogoji so sestavljeni iz enostavnih pogojev, ki smo jih spoznali v poglavju o
enostavnih poizvedbah. Enostavni pogoji so povezani z operatorjema IN (AND) ter ALI (OR).
Operatorjev OR in AND ne smemo razumeti kar tako, pavšalno. Slovenski jezik ni nujno
primeren za natančno matematično izražanje, zato je treba zmeraj temeljito premisliti, kateri
operator bomo uporabili.
Operator AND
Operator AND uporabimo, če želimo določiti več omejitev za eno samo polje. Pogoj, ki je
vsebuje operator AND “uspe” samo v primeru, če neki vrednosti ustrezata oba pogoja, ki sta
med samo povezana z operatorjem AND.
Primer:
Če iščemo podatke o prodaji v prvi polovici leta 2006, bi v polje Datum_naročila vpisali pogoj:
>=1.1.06 And <=30.6.06
Torej ko uporabimo operator AND, prikažemo tiste zapise, ki ustrezajo vsem naštetim
pogojem HKRATI.
Zbirke podatkov 1
163
Operator OR
Če mora podatek v polju ustrezati vsaj enemu od pogojev, uporabimo operator OR. Pogoj, ki
je vsebuje operator OR “uspe” že v primeru, če neki vrednosti ustreza vsaj eden od pogojev,
ki sta med seboj povezana z operatorjem OR.
Z uporabo operatorja OR, prikažemo tiste zapise, ki ustrezajo vsaj enemu od naštetih
pogojev.
Primer:
Za izpis vseh oseb, ki so iz Ljubljane ali Maribora, bi v Kraj vpisali pogoj:
“Ljubljana” Or “Maribor”
Dobili bi vse Ljubljančane in Mariborčane. Vsaka od oseb je lahko jasno samo iz enega od
krajev, ker polje Kraj za neko osebo ne more hkrati vsebovati imen obeh mest.
Če hočemo izpisati vse osebe, ki predstavljajo ekstreme v opravljenih delovnih
urah v nekem mesecu, bi v polje Št_ur vpisali pogoj:
<100 Or >200
Kot rezultat bi dobili vse osebe, katerih število opravljenih ur ne presega 100 ur, in še vse
tiste, ki imajo več kot 200 ur. To seveda ne more biti ista oseba, saj ima nekdo lahko samo
eno vrednost – take, ki pa bi ustrezala obema pogojema, pa ni. Uporaba operatorja And
namesto Or bi vedno povzročila prazen rezultat.
Paziti moramo na pravilno interpretacijo med naravnim jezikom in matematično logiko. Če
nam nekdo postavi zahtevo: "Poišči vse o Igorju in Gregorju", to ne pomeni, da bomo
uporabili operator AND (in), čeprav se v izrečeni zahtevi pojavi prav ta besedica. Pogoj "Igor"
And "Gregor" v polju Ime nima smisla, saj eno polje ne more hkrati vsebovati obeh vrednosti!
Operator NOT
Včasih potrebujemo izpis vseh podatkov razen enega. V takih primerih uporabimo operator
NOT, ki iz rezultata izvzame vrednost, ki sledi temu operatorju. Gre torej za čisto negacijo
izbranega pogoja, prioriteta operatorja NOT pa je višja od prioritet operatorjev AND ali OR.
Potrebujemo podatke o osebah, ki niso iz Celja. V polje Kraj vpišemo pogoj:
Not “Celje”
Če pa želimo dodatno izključiti iz zgornjega rezultata (torej poleg Celja) tudi vse kraj
Novo mesto, bi v polje Kraj vpisali enega od spodnjih pogojev:
Not “Celje” And Not “Novo mesto”
ali
Beležke
Zbirke podatkov 1
164
Zbirke podatkov 1
165
Beležke
Zbirke podatkov 1
166
Zbirke podatkov 1
167
Beležke
Zbirke podatkov 1
168
Poizvedba s parametrom
Access ponuja še eno zanimivost pri izdelavi poizvedb, in sicer poizvedbe s parametrom.
Zamislimo si primer, ko pogosto potrebujemo eno in isto strukturo poizvedbe, le da se
vrednost pogoja (kriterija) spreminja. Recimo, da želimo izpisovati osebne podatke o
zaposlenih, vendar enkrat iz Ljubljane, drugič iz Maribora, tretjič spet iz Ljubljane itn. Ena
možnost je, da vsakokrat popravimo vrednost pogoja v mreži poizvedbe, a obstaja lažja pot!
Namesto da bi v mreži poizvedbe vpisali konkretno vrednost pogoja, vpišimo na tem mestu v
oglatih oklepajih nek komentar (kot napotek), ki se bo pojavil, ko bomo zagnali poizvedbo.
Access bo ob tem zahteval, da vpišemo dejansko vrednost pogoja in izvršil poizvedbo.
Ustvarimo poizvedbo in vstavimo ustrezna polja na mrežo.
Postavimo se v vrstico Pogoji (Criteria) pod poljem, na katerega vežemo pogoj.
V oglatih oklepajih vpišemo komentar (poljubno besedilo, ki pa ne sme biti enako
imenu polja iz tabele).
Komentar, ki smo ga predhodno vpisali v mrežo poizvedbe, se sedaj pojavi nad vnosnim poljem,
v katerega vpišemo dejansko vrednost pogoja.
Vpisana vrednost ima enak pomen, kot če bi jo predhodno vpisali v mrežo. Izboljšava je v
tem, da imamo ob ponovnem priklicu take poizvedbe možnost vnosa drugačne vrednosti
pogoja, pri tem pa nam ni treba posegati v konstrukcijo poizvedbe. Ob parametru lahko
vpisujemo operatorje, jih kombiniramo z ostalimi pogoji, uporabljamo v izračunljivih poljih.
Npr. vpišemo like [Vpiši kraj], lahko kot parameter vnesemo L* in dobimo vrnjene vrednosti.
Zbirke podatkov 1
169
S pomočjo poizvedb lahko izvajamo kalkulacije nad skupinami podatkov. V naslednji tabeli
so prikazane operacije, ter nad katerimi tipi podatkov jih lahko uporabljamo.
Če želimo poiskati oz. izračunati: uporabimo operacijo – veljavni
tipi podatkov:
vsoto vrednosti v polju SUM - Nm, ANm, Cr, DT, YN
povprečje vrednosti v polju AVG - Nm, ANm, Cr, DT, YN
najnižjo vrednost v polju MIN - Nm, ANm, Cr, DT, YN
najvišjo vrednost v polju MAX - Nm, ANm, Cr, DT, YN
število vrednosti v polju (ne šteje praznih celic) COUNT - Nm, ANm, Cr, DT, YN, Tx, Mm
standardno deviacijo v polju STDEV - Nm, ANm, Cr, DT, YN
varianco podatkov v polju VAR - Nm, ANm, Cr, DT, YN
vrednost v prvem zapisu tabele ali poizvedbe FIRST - Nm, ANm, Cr, DT, YN, Tx, Mm
vrednost v zadnjem zapisu tabele ali poizvedbe LAST - Nm, ANm, Cr, DT, YN, Tx, Mm
Legenda: Nm (Number), ANm (AutoNumber), Cr (Currency), DT (Date/Time), YN (Yes/No), Tx
(Text), Mm (Memo)
Beležke
Zbirke podatkov 1
170
Zbirke podatkov 1
171
najprej običajno poizvedbo, ki nam bo kot rezultat dalo spisek vseh teh izdelkov.
Spisek lahko preverimo in tako vnaprej zagotovimo, da se bodo izbrisali le pravi
zapisi.
Pretvorimo običajno poizvedbo v poizvedbo s spremembo.
Postopek pretvorbe bomo spoznali kasneje.
Poženemo poizvedbo.
Preverimo spremembe, izvršene nad tabelo.
Ažuriranje tabel (Update Query)
S tovrstnimi poizvedbami s spremembo lahko izvršimo spremembe nad več zapisi naenkrat.
Na primer, lahko povečamo cene določenih izdelkov za 10%, ali pa povečamo plače za 5%
vsem delavcem na določenem delovnem mestu.
Podatke v tabelah lahko seveda popravljamo neposredno v tabelah ali s pomočjo obrazcev.
S poizvedbo s spremembo pa lahko spremenimo velike količine podatkov v enem koraku, ter
pri tem obenem zmanjšamo možnost napake.
Ustvarimo novo poizvedbo, dodamo želena polja in določimo pogoje v poizvedbi.
Ogledamo si rezultat poizvedbe.
V rezultatu morajo biti vsebovani le tisti zapisi, nad katerimi želimo izvršiti
spremembo. Če rezultat ne ustreza našim željam, popravimo poizvedbo.
Preklopimo v načrtovalni prikaz poizvedbe.
Sprožimo ukaz Poizvedba|Poizvedba Za Posodabljanje (Query|Update Query).
Naziv okna s poizvedbo se spremeni v Poizvedbo za posodabljanje (Update
Query). V mrežo se doda vrstica Posodobi na (Update To).
V poljih, ki jim želimo popraviti vrednost, vpišemo v celico Posodobi na (Update
To) novo vrednost polj ali formulo, na podlagi katere se nova vrednost izračuna. Če
se sklicujemo na imena polj, jih obvezno izpišemo v oglatih oklepajih.
Na primer, če bi v polju Kraj želeli povsod namesto “NM” izpisati “Novo mesto”, bi
za to polje v mreži poizvedbe določili kriterij “NM”, v celico Posodobi na (Update
To) pa bi vpisali “Novo mesto”.
Če bi želeli povečati cene proizvoda za 10%, bi v celico Update To vpisali
formulo: [cena enote]*1,1
Kliknemo gumb v orodjarni ali pa sprožimo ukaz Poizvedba|Zaženi
(Query|Run).
Beležke
Zbirke podatkov 1
172
Zbirke podatkov 1
173
Beležke
Zbirke podatkov 1
174
Zbirke podatkov 1
175
VIRI IN LITERATURA
Literatura
dokumentacija podjetja B2 d.o.o.
Spletni viri
E gradiva za računalništvo in informatiko, http://colos.fri.uni-lj.si/eri/, dostopno 5.
januar, 2014
razni spletni viri
Večji del gradiva je bil razvit v sklopu Ministrstva za šolstvo in šport RS. Ta del je prosto
dostopen v skladu z licenco »Creative Commons«.
Odklonitev odgovornosti
Kljub pazljivi izbiri vsebine, avtor ter izdajatelj ne prevzemata nobene odgovornosti za
morebitne napake in pomanjkljivosti v vsebini ter ne odgovarjata za morebitno povzročeno
škodo, ki bi nastala na podlagi uporabe vsebine tega priročnika.
Zbirke podatkov 1