3 Modeli podatkovnih zbirk
Transcription
3 Modeli podatkovnih zbirk
Visokošolski študijski program Prometno inženirstvo Stran 1 Prometna informatika:3_Podatkovne zbirke, Relacijske 3 3.1 Modeli podatkovnih zbirk Tipi modelov podatkovnih zbirk Ko opišemo (narišemo) podatkovni model, je naslednja pomembna odločitev, ki jo mora sprejeti načrotvalec podatkovne zbirke: Na kakšen način podatke shraniti oziroma kako organizirati zapisovanje podatkov? Pri tem je ključno vprašanje dostopa do posameznega podatka oziroma navigacija po podatkovni zbirki. V zgodovini računalništva in informatike so prve oblike organiziranega zapisovanja podatkov bili tako imenovani datotečni sistemi. Danes lahko govorimo o štirih tipih podatkovnih modelov oziroma o štirih tipih modelov podatkovnih zbirk. Ti so: - hierarhični - mrežni - relacijski - objektno - orientirani V hierarhičnih in mrežnih modelih je za iskanje podatka potrebno vedenje o fizični organizaciji zgradbe podatkov. V hierarhičnih modelih do posameznega podatka dostopamo po tako imenovani drevesasti strukturi; od korenine po vseh vejah. Primer hierarhičnega shranjevanja podatkov: skladišče rezervnih delov za vozilo. V mrežnih modelih lahko sicer direktno dostopamo do nekega podatka; uporabnik mora poznati tako imenovane kazalce oziroma ključe (tudi ključne besede). Kazaelc je v bistvu podatek, ki omogoča izračunavanje lokacije nekega drugega podatka. Tak način je statičen. Pri tem pristopu govorimo o seznamih (tudi listah), o zapisu (angleško record), o številki zapisa ali vrstice; znotraj vrstice ali zapisa pa o poljih. Primer: Princip kazalcev . Diskutiraj: Kakšne vrste podatkovna zbirka je svetovni splet; kako dostopamo do dokumentov (spletnih strani) ? PI-3_PZvPrometu-Relacijske.doc Visokošolski študijski program Prometno inženirstvo Stran 2 Prometna informatika:3_Podatkovne zbirke, Relacijske V relacijskem modelu zadostuje vedenje o logični strukturi podatkov, da bi do nekega podatka prišli. Uporabnik zahteva “KAJ !” naj bo narejeno in ga ne zanima “KAKO?”. Uporabnik mora poznati "logiko" podatkovne zbirke. Konkretno to pomeni, da mora poznati ključe (identifikatorje) in pravila. Relacijski podatkovni model je prevladujoč v praksi. (Relacijski model je natančneje opisan v nadaljevanju) V objektno usmerjenem modelu, izhajamo iz dejstva, da v stvarnem svetu “objekti” obstajajo. Objekti realnega sveta, ki imajo točno določene lastnosti in izvajajo točno določene funkcije, pripadajo točno določenemu razredu objektov. Vsi objekti enega razreda imajo enako procesno obnašanje oz. funkcionalnost. Razredi so lahko urejeni v hierarhije; posebnost je tudi lastnost dedovanja itd. Na tak način je omogočeno sestavljanje hierarhičnih zgradb z definiranimi funkcionalnimi odnosi med objekti. PI-3_PZvPrometu-Relacijske.doc Visokošolski študijski program Prometno inženirstvo Stran 3 Prometna informatika:3_Podatkovne zbirke, Relacijske 3.2 Osnove relacijskega modela podatkovne zbirke Relacijski model podatkovne zbirke Relacijski model podatkovne zbirke temelji na relacijski teoriji, izpeljani iz matematične teorije množic, razviti pred več kot štiridesetimi leti in ima več kot trideset let “praktične dobe”. Relacijski model podatkvne zbirke ima preprosto sestavo: Sestavljajo ga samo dvorazsežne tabele. Tabele so sestavljene samo iz vrstic in stolpcev. Tabele relacijskega modela Tabele relacijskega modela imajo tri osnovne lastnosti: 1. Niso dovoljeni pojavi dveh enakih vrstic, vrstni red vrstic ni pomemben. 2. Atributi oziroma stolpci v tabeli nimajo določenega vrstnega reda. 3. Shranjene vrednosti v posameznih podatkovnih poljih so samo atomarne.. Lastnosti 1 in 2 v praksi pomenita, da se informacija (pomen podatkov) ne izgubi, če zamenjam vrstice v tabeli ali zamenjam vrstni red stolpcev. Lastnost 3 pa pomeni, da z relacijskim modelom ni moč neposredno ustvarjati, na primer, seznamov, pa tudi voznih redov in podobno. Ta enostavna definicija (govorimo o enostavnosti in uniformnosti) je vzrok, da so relacijski modeli daleč najbolj razširjeni. Po drugi strani ima ta enostavnost, predvsem zahteva po atomarnih vrednostih v podatkovnih poljih, za posledico, da se nekaterih podatkovnih struktur ne da enostavno zapisovati v takšnih tabelah! Primer: Kaj so atomarne vrednosti v poljih tabele ? Katere pojave zapisujemo s seznami (listami, vrstami....) ? Primeri: Redovalnica Potek osi ceste (geometrija oz. geografija) Evidenca števila smrtnih žrtev v prometu (časovna vrsta) PI-3_PZvPrometu-Relacijske.doc Visokošolski študijski program Prometno inženirstvo Stran 4 Prometna informatika:3_Podatkovne zbirke, Relacijske Prikaz tabele: − entitetni tip se (načeloma) prevede v eno tabelo; − shema oziroma glava tabele je časovno načeloma nespremenljiva; − podaljšek oziroma vsebina tabele so v bistvu vrstice (modifikacije oziroma spremembe so „normalni pojav”); − vrstice (entitete); predstavljajo fizično prisotnost posameznih entitet − stolpci predstavljajo posamezne atribute, − nastane podatkovno polje z lastnostjo atomarnosti (vanj ne smemo zapisovati seznamov), − vrednosti v poljih morajo biti v skladu z „domeno” oziroma definiranim področjem dopustnih vrednosti za atribute. entitetni tip: seznam atributov: ENTITETA ⇒ POSTAJE Id_postaje Ime stolpec: ⇓ Potniki 2901 Maribor 23.000 ⇐ Shema tabele ⇐ Podaljšek tabele vrstica (tuple) ⇒ Gornja definicija praktično pomeni, da podatkovni model preslikamo (prevedemo) v konkretnejšo obliko - v relacijsko podatkovno zbirko - tako, da praviloma: - vsak entitetni tip postane ena tabela, - vsak tip asociacije postane ena tabela, - vsaka posamezna entiteta (ali asociacija) postane vrstica v tabeli, - atribut postane stolpec v pripadajoči tabeli Zgledi: 1. Mejni prehodi - evidenca potnikov 2. Predmeti in študijski program 3. Cestno omrežje (križišča in odseki) PI-3_PZvPrometu-Relacijske.doc Visokošolski študijski program Prometno inženirstvo Stran 5 Prometna informatika:3_Podatkovne zbirke, Relacijske 3.3 Lastnosti relacijskega modela podatkovne zbirke Učinkovitost, zanesljivost in splošno uporabnost relacijskega modela zagotavljajo naslednje lastnosti in principi delovanja: • Primarni ključ (indeks, ID): definicija: Je atribut oziroma skupina atributov, katere vrednost je edinstvena. • Tuji ključ: definicija: Je atribut, ki je v neki drugi tabeli primarni ključ. Posledica so soodvisni ključi. Le-ti omogočajo npr. spajanje tabel ipd. • Normalizacija podatkovne zgradbe - normalne forme. Te omogočajo, da so tabele sestavljene tako, da se izognemo redundancam (ali kopičenju podatkov). Redundance so nezaželen pojav, ki je vir napak in povečuje stroške vzdrževanja podatkovne zbirke. • Integritetna pravila. Če upoštevamo zgoraj omenjene principe - pravimo, da smo upoštevali integritetna pravila; reducirali smo možnosti podvajanja, nelogičnosti in podobno. • Poizvedovanja (angl.: query). Do posameznih podatkov praviloma ne dostopamo direktno, ampak opravljamo poizvedovanja. V ta namen uporabljamo: o Poizvedovalni jezik. Uporablja se standardiziran jezik, imenovan SQL Structured Query Language). S pomočjo ukazov poizvedovalnega jezika izvajamo predvsem: • spajanje tabel (angl.: join) na podlagi ujemanja soodvisnih ključev. operacije relacijske algebre - operacije nad tabelami; rezultat operacije nad tabelami so (ponovno) samo tabele ! Uporabniki do podatkov dostopajo preko vmesnikov: o Uporabniški pogled (view). Uporabnikom podatkovne zbirke se pripravijo vnaprej pripravljene vsebine. o Obrazci (form). Uporabnikom s pooblastili za spreminjanje vsebine se pripravijo obrazci za kontroliran vnos sprememb. o Poročila (report). Uporabnikom podatkovne zbirke se pripravijo vnaprej pripravljeni obrazci za poročanje o vsebini. PI-3_PZvPrometu-Relacijske.doc Visokošolski študijski program Prometno inženirstvo Stran 6 Prometna informatika:3_Podatkovne zbirke, Relacijske 3.3.1 Primarni ključ in tuji ključ Po definiciji je • Primarni ključ (indeks, ID) atribut oziroma skupina atributov, katere vrednost je edinstvena. • Tuji ključ je atribut, ki je v neki drugi tabeli primarni ključ. Posledica so soodvisni ključi, ki omogočajo spajanje tabel, iskanje, dinamično povezovanje različnih podatkovnih baz in podobno. Primeri: Na cestnih odsekih imamo števna mesta. V nadaljevanju je prikazan primer. Cestni odseki ID Opis Dolžina 2056 5.230,500 Maribor-Počehova Števna mesta Številka Opis Odsek Št.vozil 511 2056 16.200 Počehova ... ... Na primerih zgoraj diskutiraj o ključih (identifikatorjih) o tujem ključu itd.. PI-3_PZvPrometu-Relacijske.doc Visokošolski študijski program Prometno inženirstvo Stran 7 Prometna informatika:3_Podatkovne zbirke, Relacijske 3.3.2 Normalne forme in (nezaželeno) kopičenje podatkov Kopičenje podatkov Redundanca (slovensko: kopičenje) imenujemo pojav, ko v podatkovni bazi isti podatek (podatke) zapisujemo na dveh ali večih mestih! Redundantnosti (je “zlo”) se želimo v podatkovnih bazah izogniti. Izvajanje postopka normalizacije je osnovni postopek, ki ga izvajamo v izogib redundantnosti. Podatkovne baze, ki so organizirane v skladu s pravili normalizacije in ne vsebujejo redundantnih podatkov, so praviloma stabilnejše (napake so redke ali onemogočene!) in ne povzročajo nepotrebnih stroškov vzdrževanja. Omogočajo tudi preprostejši razvoj ali širjenje podatkovne baze. Normalne forme Normalizacija je proces določitve tako imenovanih normalnih form. Normalne forma so pravila, kako sestaviti glave tabel, upoštevajoč logične odvisnosti med atributi. Praktično to pomeni, da razbijamo kompleksnejše in obsežnejše tabele na manjše in enostavnejše (posledično obvladljivejše in bolj primerne za izvajanje operacij). Literatura o relacijskih podatkovnih bazah pozna pet osnovnih oblik, imenovanih 1.normalna forma (1NF), 2.normalna forma (2NF), 3.normalna forma (3NF) itd... Vsaka višja je zahtevnejša in strožja. V praksi se najpogosteje “ustavimo” pri tretji normalni formi: Primeri: − prva normalna forma; vrednost v poljih polj je atomarna (ni agregatov) − druga normalna forma; ni delnih odvisnosti − tretja normalna forma; ni posrednih odvisnosti PI-3_PZvPrometu-Relacijske.doc Visokošolski študijski program Prometno inženirstvo Stran 8 Prometna informatika:3_Podatkovne zbirke, Relacijske Primer: Postaje in Linije Postaje ID_Post Ime 2001 2002 2003 2004 2005 2006 2007 Maribor Maribor-STŠ Maribor-Slavija Maribor-Primorska Bohova Hoče-križišča .... Linija ID_Linije Opis_poti AAAA 2001, 2003, 2004, 2005 Tabela Linije ni v prvi normalni formi (1NF). Pravilna relacijska oblika bi bila: Linija ID_Linije Zap_št. Postajališče AAAA AAAA AAAA AAAA 1 2 3 4 2001 2003 2004 2005 Primer Analiza poslovanja linije v javnem potniškem prometu Je primer tabele, ko imamo delne odvisnosti (vrednost enega atributa je odvisna od vrednosti drugih atributov): LINIJA Številka Opis Dolžina Stroški Potnik_km Prihodki Donosnost ... AA502 Počehova 32,500 16.200 140 -2.200 14.000 Atributa Stroški in Prihodki sta (sta lahko?) odvisna od atributov Dolžina in Potnik_km. Atribut Donosnost je odvisen od stroškov in prihodkov (je torej redundanten podatek – tabela ni v 2NF!) PI-3_PZvPrometu-Relacijske.doc Visokošolski študijski program Prometno inženirstvo Stran 9 Prometna informatika:3_Podatkovne zbirke, Relacijske Primer zbiranja podatkov o postajah javnega potniškega prometa. Postaje ID_Post Ime Vrsta Občina Št.preb. 2001 2002 2002 Maribor Maribor-STŠ Maribor-Slavija P P M Maribor Maribor Maribor 180.000 180.000 180.000 ... Število prebivalcev je odvisno od občine in ne od postajališča (tabela ni v 3NF). V skladu s pravili normalizacije, bi bila pravilnejša struktura: Postaje ID_Post Ime Vrsta Občina 2001 2002 2002 Maribor Maribor-STš Maribor-Slavija P P M XXXX XXXX XXXX Občine ID Ime Št.preb. ... XXXX Maribor 180.000 ... PI-3_PZvPrometu-Relacijske.doc Visokošolski študijski program Prometno inženirstvo Stran 10 Prometna informatika:3_Podatkovne zbirke, Relacijske 3.3.3 Integritetna pravila Integritetna pravila so tista pravila, ki zagotavljajo, da v relacijskih podatkovnih zbirkah nimamo nelogičnih (“sumljivih”) podatkov. To so predvsem: - Referenčna integriteta - Kaskadno obnavljanje in - Kaskadno brisanje Do kakšne mere jih uveljavljamo, je odvisno predvsem od problema, ki ga obdelujemo. Popolno (nekontrolirano) uveljavljanje integritetnih pravil lahko v praksi povzroči, na primer, tudi nezaželeno brisanje pomembnih podatkov. Zgled uveljavljanje integritetnih pravil: Imamo dve tabeli Cestni odseki in Bencinski servisi: Cestni_Odseki: ID-odseka Ime odseka Dolžina Primarni ključ v tej tabeli je “ID-odseka” Bencinski_Servisi: Ime_servisa Odsek Lastnik Primarni ključ v tej tabeli je Ime_servisa; tuji ključ pa Odsek Tabeli napolnimo z naslednjimi vrsticami: Cestni_Odseki: ID-odseka 2001 2102 2105 2500 3001 Ime odseka Maribor – Hoče Hoče - Sl.Bistrica Sl.Bistrica - Sl.Konjice Sl.Konjice - Celje Ljubljana - Postojna Dolžina 12,3 15,5 14,9 20,1 35,1 Bencinski_Servisi: Ime_servisa Mb_1 Mb_2 Lopata_1 Odsek Lastnik 2001 Petrol 2001 Petrol 2105 OMV PI-3_PZvPrometu-Relacijske.doc Visokošolski študijski program Prometno inženirstvo Stran 11 Prometna informatika:3_Podatkovne zbirke, Relacijske Uveljavljamo naslednja pravila: Bencinski_Servis lahko leži samo na obstoječem cestnem odseku. Na enem odseku je lahko več bencinskih servisov. V tabeli Bencinski_Servisi naj bo v polje Odsek onemogočen vnos neobstoječih vrednosti ID_odseka. Grafično se takšen odnos lahko prikaže na sledeč način (grafični prikaz v orodju MS-Access): Uveljavljanju takšnega pravila rečemo tudi, da zagotavljamo referenčno integriteto. Vnos naslednje vrstice ni dopusten (!) : Bencinski_Servisi: Ime_servisa Odsek Lastnik Koper 4200 Istrabenz Če spremenim ID_Odseka, naj se avtomatsko spremeni tudi vrednost atributa Odsek v tabeli Bencinski_Servisi. Uveljavljanju tega pravila rečemo tudi kaskadno obnavljanje: Cestni_Odseki: ID-odseka 9999 2102 2105 2500 3001 Ime odseka Maribor – Hoče Hoče - Sl.Bistrica Sl.Bistrica - Sl.Konjice Sl.Konjice - Celje Ljubljana - Postojna Dolžina 12,3 15,5 14,9 20,1 35,1 Bencinski_Servisi: Ime_servisa Koper Mb_1 Mb_2 Lopata_1 Odsek 3100 9999 9999 2105 Lastnik Istrabenz Petrol Petrol OMV PI-3_PZvPrometu-Relacijske.doc Visokošolski študijski program Prometno inženirstvo Stran 12 Prometna informatika:3_Podatkovne zbirke, Relacijske Če izbrišem vrstico v tabeli Cestni_Odseki, naj se avtomatsko izbrišejo tudi vrstice v tabeli. Uvljavljanju tega pravila rečemo tudi kaskadno brisanje: Cestni_Odseki: ID-odseka 2102 2105 2500 3001 Ime odseka Hoče - Sl.Bistrica Sl.Bistrica - Sl.Konjice Sl.Konjice - Celje Ljubljana - Postojna Dolžina 15,5 14,9 20,1 35,1 Bencinski_Servisi: Ime_servisa Odsek Lastnik Koper 3001 Istrabenz Lopata_1 2105 OMV PI-3_PZvPrometu-Relacijske.doc Visokošolski študijski program Prometno inženirstvo Stran 13 Prometna informatika:3_Podatkovne zbirke, Relacijske 3.3.4 Operacije v relacijskih bazah podatkov Poizvedovalni jezik Razvil se je standardizirani (ISO) neproceduralen jezik, ki vsebuje vse postopke potrebne za delo z relacijskimi podatkovnimi bazami: Structured Query Language – SQL (angl. query ali slov. poizvedovanje), ki omogoča predvsem: - definiranje in spreminjanje strukture podatkov (angl.: Data Definition Language DDL) - manipulacije s podatki (angl.: Data Manipulation Language - DML): - modifikacije: vstavljanje, odstranitev, spreminjanje (funkcije oziroma ukazi: insert, delete, update) - iskanja in poizvedovanja (funkcije oziroma ukazi: select) - nadzor dostopa do podatkov (angl.: Data Control Language - DCL) Sodobni računalniški programi omogočajo uporabniku prijazno izvjanje funkcij in ukazov poizvedovanja. Relacijska algebra S tabelami (relacijami) tudi „računamo“. Stroga matematična definicija operacij relacijske algebre je relativno zahtevna in je v nadaljevanju ne bomo natančneje obravnavali. Ob tem je treba še pripomniti, da računalniški programi za delo z bazami podatkov (RDBMS) pogosto dopuščajo tudi takšne operacije, ki so strogo teoretično sporne. Osnovne operacije med dvema tabelama so: - unija (pripajanje vrstic dveh kompatibilnih tabel) - razlika - projekcija (izbor stolpcev; funkcija oziroma ukaz select) - selekcija (tudi restrikcija; izbor vrstic: select ... where) - kartezični produkt (produkt je množica vseh kombinacij; select* from..) - stik oziroma spajanje (spajanje dveh - ali več - tabel s pogoji spajanja; select * from, where); spajamo preko atributov, ki se morajo ujemati v tipu in obsegu dopustnih vrednosti. Dodatne zmožnosti so tako imenovane: - aritmetične operacije - statistične operacije - agregatne operacije PI-3_PZvPrometu-Relacijske.doc Visokošolski študijski program Prometno inženirstvo Stran 14 Prometna informatika:3_Podatkovne zbirke, Relacijske Primeri osnovnih operacij: Enakovrednostno spajanje (angleško "equi-join" tudi “naravni stik”, "pripojitev") Primer: Cestni odseki in Bencinski servisi Cestni_Odseki: ID-odseka 2001 2102 2105 2500 3001 Ime odseka Maribor – Hoče Hoče - Sl.Bistrica Sl.Bistrica - Sl.Konjice Sl.Konjice - Celje Ljubljana - Postojna Bencinski_Servisi: Dolžina 12,3 15,5 14,9 20,1 35,1 Ime_servisa Koper Mb_1 Mb_2 Lopata_1 Odsek 4200 2001 2001 2105 Lastnik Istrabenz Petrol Petrol OMV V tabeli Cestni_Odseki je atribut Id_odseka primarni ključ. V tabeli Bencinski_Servisi je atribut Ime_Servisa primarni ključ, atribut Odsek pa tuji ključ . Enakovrednostno spajanje preko sovisnih ključev, da sledeč rezultat: Id_odseka Ime odseka 2001 Maribor - Hoče 2001 Maribor - Hoče 2105 Sl.Bistrica - Sl.Konjice Dolžina 12,3 12,3 14,9 Ime_servisa Mb_1 Mb_2 Lopata_1 Lastnik Petrol Petrol OMV Pripajanje (ni pravo spajanje; pa vendar se intenzivno uporablja) Ukaz “k tabeli Cestni_odseki pripoji tabelo Bencinski_servisi; povezovalna atributa sta Id_odseka in Odsek” (takšni ukazi so praviloma na voljo v komercialnih programih), da sledeč rezultat: Id_odseka Ime odseka 2001 Maribor - Hoče 2001 Maribor - Hoče 2102 Hoče - Sl.Bistrica Dolžina Ime_servisa Lastnik 12,3 Mb_2 Petrol 12,3 Mb_1 Petrol 15,5 2105 3001 Sl.Bistrica - Sl.Konjice Ljubljana - Postojna 14,9 Lopata_1 35,1 2500 Sl.Konjice - Celje 20,1 OMV PI-3_PZvPrometu-Relacijske.doc Visokošolski študijski program Prometno inženirstvo Stran 15 Prometna informatika:3_Podatkovne zbirke, Relacijske Ukaz “k tabeli Bencinski_servisi pripoji tabelo Cestni_odseki; povezovalna atributa sta Odsek in Id_odseka” pa da sledeč rezultat: Id_odseka Ime odseka 2001 Maribor - Hoče 2001 Maribor - Hoče 2105 Sl.Bistrica - Sl.Konjice Dolžina 12,3 12,3 14,9 Ime_servisa Mb_1 Mb_2 Lopata_1 Koper Lastnik Petrol Petrol OMV Istrabenz Kartezični produkt dveh tabel Primer: Študenti in Predmeti PI-3_PZvPrometu-Relacijske.doc Visokošolski študijski program Prometno inženirstvo Stran 16 Prometna informatika:3_Podatkovne zbirke, Relacijske 3.4 Sklep Izhajajoč iz sheme postopka načrtovanja podatkovne zbirke lahko ugotovimo, da smo v tem poglavju opredelili oziroma spoznali tiste pojme, ki omogočajo izdelavo logičnega modela podatkovne zbirke (točka 3.): 1. analiza problema (identifikacija objektov, razredov objektov itd. ....) 2. konceptualni podatkovni model (definicija entitet, odnosi med entitetami, lastnosti entitet itd.) 3. logični podatkovni model (izbor modela podatkovne baze; n.pr. tabele, vrstice in stolpci; določitev imen tabel, imen tipov in domen za atribute; realizacija integritetnih pravil itd.) 4. fizična implementacija (izbor sistema za upravljanje s PB; n.pr. ustvarjanje PB s pomočjo orodja ORACLE ali MS-ACCESS ipd.) 5. eksploatacija, vzdrževanje Primeri za vajo: Na primerih praktično prikaži celoten postopek načrtovanja relacijske podatkovne baze. 1. Evidenca študenta o svojih izpitih 2. Cestni odseki in Števna mesta 3. Primer voznoredne podatkovne baze PI-3_PZvPrometu-Relacijske.doc