RAČUNALNIŠKO PROGRAMIRANJE IN PODATKOVNE BAZE

RAČUNALNIŠKO PROGRAMIRANJE IN PODATKOVNE BAZE RAČUNALNIŠKO PROGRAMIRANJE IN PODATKOVNE BAZE

<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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!