RAČUNALNIŠKO PROGRAMIRANJE IN PODATKOVNE BAZE
RAČUNALNIŠKO PROGRAMIRANJE IN PODATKOVNE BAZE
RAČUNALNIŠKO PROGRAMIRANJE IN PODATKOVNE BAZE
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
<strong>RAČUNALNIŠKO</strong><br />
<strong>PROGRAMIRANJE</strong> <strong>IN</strong><br />
<strong>PODATKOVNE</strong> <strong>BAZE</strong><br />
<strong>PODATKOVNE</strong> <strong>BAZE</strong><br />
OSNOVE, MODELIRANJE <strong>IN</strong> SISTEMI PODATKOVNIH BAZ<br />
Danijel Rebolj, Andrej Tibaut
LITERATURA<br />
n Tomaž Mohorič: Uvod v podatkovne baze.<br />
BI-TIM. Ljubljana, 1995<br />
n Shaku Atre: Database. John Willey, 1988<br />
n L. Peters: Advanced Structured Analysis and Design,<br />
Prentice Hall, 1987<br />
n C.J.Date: An Introduction to Database Systems. Addison-<br />
Wesley Publishing Company, Inc. Reading, Mass., etc. 1990
PODATKI <strong>IN</strong> <strong>IN</strong>FORMACIJE<br />
n Podatek je predstavitev dejstva, koncepta ali navodila na formalni<br />
način (ANSI, ISO)<br />
n Informacija je pomen, ki ga ima podatek ob upoštevanju<br />
dogovorov glede njegove predstavitve (ANSI, ISO)<br />
n I = f(D, S, t) I – vsebina informacije, D – podatek,<br />
S – struktura sprejemnika, t - čas
PODATKI <strong>IN</strong> <strong>IN</strong>FORMACIJE<br />
OKMS<br />
Know–who<br />
who knows<br />
what and<br />
who knows<br />
how to do<br />
what.<br />
Our Model<br />
©Organizational Knowledge Management<br />
Systems<br />
.<br />
.<br />
.<br />
.<br />
know-why refers to<br />
the scientific knowledge<br />
of the principles and<br />
laws of nature.<br />
Know-how relates to the<br />
skills or the capacity to do<br />
something.<br />
Know-what relates to<br />
a persons knowledge<br />
about facts
ORGANIZACIJA PODATKOV<br />
n Hierarhija podatkov:<br />
§ bit -> beseda (binarno število ali znak) -> polje -> stavek<br />
(zapis) -> blok -> datoteka (organiziran vir podatkov)
ORGANIZACIJA PODATKOV<br />
n Operacije z datotekami:<br />
§ vnos podatkov, spreminjanje zapisov, izpis,…<br />
n Vrste datotek glede na metodo pristopa:<br />
§ zaporedne, direktne, indeksne, kombinirane (odvisno tudi od<br />
fizične organizacije pomnilnika).
PRIMER: UPRAVLJANJE S<br />
STAVBAMI<br />
n Osnova so podatki o objektih, parcelah in lastnikih<br />
n Podatke lahko strukturiramo na več načinov:<br />
§ ena struktura (ena datoteka)<br />
§ več struktur (več datotek ali več blokov v eni)<br />
n Primer (ena struktura):<br />
"12345", 5, 384.5, 157243.22, 550275.87, "132/2", "1234",...<br />
"54345", 3, 722.7, 157244.33, 550233.12, "21/1", "1234",...<br />
"12245", 6, 684.4, 157246.12, 550276.70, "654/4", "3322",...
PRIMER: UPRAVLJANJE S STAVBAMI<br />
TYPE STAVBA<br />
END TYPE<br />
ID AS STR<strong>IN</strong>G 'identifikacijska koda stavbe<br />
SN AS <strong>IN</strong>TEGER 'število nadstropij<br />
P AS DOUBLE 'površina tlorisa v m2<br />
XS AS DOUBLE 'X koordinata centroida stavbe<br />
YS AS DOUBLE 'Y koordinata centroida stavbe<br />
PARCST AS STR<strong>IN</strong>G 'parcelna številka<br />
KO AS STR<strong>IN</strong>G 'katastrska občina<br />
POV AS DOUBLE 'površina parcele<br />
SIFKUL AS STR<strong>IN</strong>G 'šifra kulture<br />
Ime AS STR<strong>IN</strong>G 'Ime lastnika<br />
Priimek AS STR<strong>IN</strong>G 'Priimek lastnika<br />
Ulica AS STR<strong>IN</strong>G 'Naslov lastnika - ulica<br />
Kraj AS STR<strong>IN</strong>G 'Naslov lastnika - kraj
PRIMER: UPRAVLJANJE S<br />
Težave pri uporabi ene strukture:<br />
STAVBAMI<br />
nIskanje podatkov po različnih ključih<br />
nIskanje informacij (koliko parcel ima x, kateri objekti so na parcelah<br />
določenega tipa,...)<br />
nIsti podatki se lahko velikokrat ponovijo (o parcelah, o lastnikih)<br />
nVeč lastnikov istega objekta ni mogočih
PRIMER: UPRAVLJANJE S<br />
STAVBAMI<br />
Uporaba več struktur: program
PRIMER: UPRAVLJANJE S<br />
STAVBAMI<br />
n Podatkovna baza omogoča optimalno dostopanje do shranjenih<br />
podatkov in ohranja njihove logične povezave
DEF<strong>IN</strong>ICIJA <strong>PODATKOVNE</strong> <strong>BAZE</strong><br />
OSNOVE<br />
n Podatkovna baza (PB) oz. sistem (SPB) je računalniško vodena<br />
generalizirana zbirka podatkov in njihovih opisov<br />
n Uporabnik sistema podatkovne baze se ne ukvarja s fizično<br />
predstavitvijo podatkov v datotekah, temveč le z njihovo logično<br />
predstavitvijo<br />
n PB predstavlja podatke na višji abstraktni ravni
DEF<strong>IN</strong>ICIJA <strong>PODATKOVNE</strong> <strong>BAZE</strong><br />
OSNOVNE FUNKCIJE<br />
n Enemu ali več uporabnikom hkrati omogoča:<br />
§ dodajanje novih podatkovnih struktur in povezav med njimi v<br />
podatkovno bazo,<br />
§ vstavljanje, spreminjanje in brisanje podatkov,<br />
§ odstranjevanje opisov podatkov in povezav iz podatkovne baze.<br />
n Z integracijo omogoča SPB povezave različnih podatkovnih<br />
struktur v unificirane logične celote, kar zmanjšuje redundanco<br />
podatkov.
DEF<strong>IN</strong>ICIJA <strong>PODATKOVNE</strong> <strong>BAZE</strong><br />
SHEMA SPB (DBS)<br />
Sistem podatkovne baze (SPB/DBS)<br />
Podatkovna baza (PB/DB)<br />
Uporabniki Programi
CILJI UPORABE SPB<br />
n Ločitev opisa podatkov od podatkov samih<br />
n Ista količina podatkov – več informacij<br />
n Nadzor nad redundanco podatkov<br />
n Zagotavljanje integritete podatkov<br />
n Standardiziran dostop do podatkov (SQL)<br />
n Večja kompaktnost podatkov, hitrejši dostop<br />
n Sočasna uporaba podatkov<br />
n Nadzor nad zaščito podatkov
PODPORNE FUNKCIJE SPB<br />
n Souporaba podatkov: posebni mehanizmi za obnavljanje,<br />
sinhronizacijo, “rollback”,<br />
n Večnivojska zaščita podatkov: fizična, operacijska (na ravni OS),<br />
avtorizacijska,<br />
n Modifikacije struktur in optimizacija,<br />
n jeziki in usluge (DML, SQL, sistemski jeziki),<br />
n Nadzorni sistem (DB Control System),<br />
n Recovery (log file, Do/Undo/Redo,…)
ARHITEKTURA PB<br />
PREDSTAVITVENE RAVNI<br />
Zunanja shema (uporabniški pogledi)<br />
organizacija<br />
Konceptualna shema (logična raven):<br />
konceptualni in logični model<br />
formalizacija<br />
Notranja shema (pomnilna raven):<br />
fizična predstavitev podatkov (sistem datotek, porazdeljen<br />
sistem podatkovne baze, …)
ARHITEKTURA PB<br />
KONCEPTUALNO MODELIRANJE<br />
n Abstrakten in splošen opis realnosti<br />
n Uporaba:<br />
§ predstavlja model opazovanega okolja<br />
§ povezuje interese in vidike uporabnikov<br />
§ omogoča učinkovito predstavitev PB<br />
§ uporaben opis za komunikacijo<br />
§ omogoča osnovo za izgradnjo PB
ARHITEKTURA PB<br />
KONCEPTUALNO MODELIRANJE<br />
n Lastnosti konceptualnega modela<br />
§ izraznost (izberemo najustreznejši koncept)<br />
§ preprostost (v nasprotju z izraznostjo!)<br />
§ minimalnost (vse ima svoj pomen)<br />
§ formalnost (enoumna, natančna interpr.)<br />
§ grafična polnost (vse je grafično predst.)<br />
§ berljivost (dosledni in jasni simboli)
ARHITEKTURA PB<br />
KONCEPTUALNO MODELIRANJE<br />
Dober konceptualni model lahko preprosto opišemo kot:<br />
Vse, kar je potrebno je tu –<br />
vse kar je tu, je potrebno.
ARHITEKTURA PB<br />
KONCEPTUALNO MODELIRANJE<br />
Koraki pri oblikovanju konceptualnega modela:<br />
1. podatkovna analiza in zbiranje zahtev<br />
2. oblikovanje Entitetno – relacijskega<br />
(E-R) modela<br />
3. normalizacija
KONCEPTUALNO MODELIRANJE<br />
1. PODATKOVNA ANALIZA<br />
n Opredelitev skupin uporabnikov in področij uporabe<br />
n Analiza operativnega okolja in zahtev procesiranja<br />
n Proučitev izvorov informacij in podatkov
KONCEPTUALNO MODELIRANJE<br />
2. E-R MODEL<br />
n zagotavlja sistematično predstavitev entitet in relacij s ciljem zajeti<br />
vse neločljive pomene posamezne aplikacije<br />
n diagramska tehnika na jedrnat in opisen način predstavlja<br />
aplikacijo<br />
n E-R diagram predstavlja komunikacijsko orodje za oblikovanje<br />
podatkovne baze
KONCEPTUALNO MODELIRANJE<br />
2. E-R MODEL: GRADNIKI<br />
n Entiteta: neodvisni podatkovni objekt, ki je po definiciji nosilec<br />
podatkov (npr. študent Mojca Kreft, knjiga Statika konstrukcij,<br />
cestni odsek Maribor-Hoče)<br />
n Entitetni tip: množica entitet s skupnimi atributi (npr. študenti,<br />
knjige, cestni odseki)<br />
n Atribut: lastnost, informacija o entiteti ali relaciji (npr. ime<br />
študenta, naslov knjige, dolžina odseka)<br />
n Domena atributa: množica dovoljenih vrednosti atributa
KONCEPTUALNO MODELIRANJE<br />
2. E-R MODEL: GRADNIKI<br />
n Ključ (entitetni identifikator): vodilni atribut, ki omogoča<br />
identifikacijo entitete (primarni, sekundarni, sestavljeni, zunanji)<br />
n Šibka entiteta: entiteta brez lastnega ključnega atributa (npr.<br />
izposoja knjige)
KONCEPTUALNO MODELIRANJE<br />
2. E-R MODEL: GRADNIKI<br />
n Relacija (razmerje): povezava med entitetami<br />
n Relacijski tip: je povezava med entitetnimi tipi<br />
n Kardinalnost (števnost): je udeleženost entitete v relaciji<br />
§ stopnje kardinalnosti: 1:1, 1:n ali n:m (npr. med študenti in<br />
učitelji)
KONCEPTUALNO MODELIRANJE<br />
2. E-R MODEL: GRADNIKI<br />
§ pretvorba kardinalnosti stopnje n:m: ker ni zaželjena, jo<br />
pretvorimo v dve relaciji 1:n in šibko entiteto
KONCEPTUALNO MODELIRANJE<br />
2. E-R MODEL: NOTACIJE<br />
n Chenova notacija n Sračja (James<br />
Martinova) notacija
KONCEPTUALNO MODELIRANJE<br />
2. E-R MODEL: NOTACIJE<br />
n Primeri uporabe<br />
Chenove notacije
KONCEPTUALNO MODELIRANJE<br />
2. E-R MODEL: NOTACIJE<br />
n E-R diagram E-R<br />
modela
KONCEPTUALNO MODELIRANJE<br />
2. E-R MODEL: ORODJA<br />
n Komercialna orodja za modeliranje podatkovne baze (ER-<br />
Designer, Erwin, MastER Plus, Etity-RElationship MOdel)<br />
n Orodja CASE- Computer-Aided Software Engineering<br />
(Excelerator, ADW, POSE,...)<br />
n Sistemi za upravljanje s podatkovno bazo (ORACLE, SQL<br />
Server, SAP, PostgreSQL)<br />
n Prototipi in raziskovalni projekti (DDEW, Gembit, SIT, VCS)
KONCEPTUALNO MODELIRANJE<br />
2. E-R MODEL: MODELIRANJE<br />
n Odkrivanje entitet; entitete so lahko:<br />
§ ljudje (kot nosilci različnih funkcij)<br />
§ objekti in predmeti (gradbeni objekti)<br />
§ elementi prostora (kraji, ceste, reke)<br />
§ organizacije (skupine, podjetja, oddelki)<br />
§ koncepti (npr. projekti, aktivnosti)<br />
§ dogodki
KONCEPTUALNO MODELIRANJE<br />
2. E-R MODEL: MODELIRANJE<br />
n Poimenovanje entitet<br />
§ v obliki množinskega samostalnika, lahko tudi s pridevnikom<br />
(npr. cestni_odseki)<br />
§ imen ne kodiramo<br />
n Odkrivanje relacij<br />
§ običajno relacijo zapišemo kot preprost stavek z osebkom<br />
(E1), povedkom (G) in predmetom (E2); npr. študent obiskuje<br />
predavanja
KONCEPTUALNO MODELIRANJE<br />
2. E-R MODEL: MODELIRANJE<br />
n Poimenovanje relacij<br />
§ v obliki glagola (npr. “obiskuje”, “ima”,...)<br />
n Odkrivanje kardinalnosti<br />
§ odvisna je od pravil, ki vladajo v sistemu<br />
§ izberemo izhodiščno entiteto (npr. E1) in se vprašamo,<br />
kolikokrat se v relaciji pojavi povezana entiteta (E2)
KONCEPTUALNO MODELIRANJE<br />
3. NORMALIZACIJA<br />
n Relacijski model podatkovne baze zahteva normalizacijo entitete<br />
vsaj v 1NF preden jo predstavimo kot tabelo<br />
n Posamezne normalne forme (NF) pomenijo:<br />
§ 1NF: atributi se ne ponavljajo (ni agregatov),<br />
§ 2NF: ni delnih odvisnosti,<br />
§ 3NF: ni posrednih odvisnosti.
n Predrelacijski modeli:<br />
§ invertirane liste,<br />
MODELI SPB<br />
§ hierarhični modeli (drevesne strukture),<br />
§ mrežni modeli,<br />
§ ...
MODELI SPB<br />
n Relacijski model - podatki so strukturirani kot tabele, operatorji<br />
temeljijo na relacijski algebri<br />
n Postrelacijski modeli:<br />
§ predmetno usmerjeni, XML db<br />
§ deduktivni in semantični modeli,<br />
§ ekspertni (baze znanja), ...
RELACIJSKA ALGEBRA<br />
n Osnova relacijske algebre izhaja iz teorije<br />
množic<br />
n Operatorji:<br />
§ unija<br />
§ presek<br />
§ razlika<br />
§ projekcija<br />
§ selekcija<br />
§ produkt<br />
§ združitev<br />
§ delitev
ZNAČILNOSTI SODOBNIH<br />
RSPB<br />
n Enostavna definicija tabel (tudi prototipno), relacij in<br />
poizvedb (query),<br />
n Generiranje vnosnih obrazcev in poročil<br />
n Hitra izdelava aplikacij (RAD, “čarovniki”)<br />
n Podpora distribuiranemu delovanju<br />
(SQL odjemalec / strežnik)<br />
n Generiranje spletnih strani