Andmemudel aines IDU 0090 Rainer Kuhi 960672 LAPM

  • Slides: 17
Download presentation
Andmemudel aines IDU 0090 Rainer Kuhi 960672 LAPM

Andmemudel aines IDU 0090 Rainer Kuhi 960672 LAPM

Teemad Ü Andmemudel, kui infosüsteemi üks vaade Ü Andmebaasisüsteemi mõiste Ü Andmemudeli disain Tabelid,

Teemad Ü Andmemudel, kui infosüsteemi üks vaade Ü Andmebaasisüsteemi mõiste Ü Andmemudeli disain Tabelid, veerud, võtmed, seosed, DDL Normaliseerimine Ü Andmemudeli kasutamine SQL, DML Ü Ülesanne

(Mis) Funktsioon (Kuidas) Eesmärk / Skoop Ettevõttele oluliste objektide loetelu Ettevõtte protsesside loetelu Ärimudel

(Mis) Funktsioon (Kuidas) Eesmärk / Skoop Ettevõttele oluliste objektide loetelu Ettevõtte protsesside loetelu Ärimudel Objekt-suhte diagramm (m: m, nsuhted) Ärimudel (physical data flow diagram) logistikavõrk (nodes and links) Organisat-siooni skeem, rollid; kvalifikatsioon; andmetele juurdepääs Infosüsteemi mudel Andme-mudel (1: m suhted ja normaliseeritud) Tegelik andmevoogude diagramm application architecture Hajutatud süsteemiarhitektuur Väline juurdepääs (roles, data, access) Sõltuvusdia gram objekti elu-tsükkel Ärireeglite mudel Andmete arhitektuur Süsteemi Projekteerimine: struktuuridiagramm Süsteemi arhitektuur (hardware, software types) Kasutaja liides (how the system will behave); security design Juhtimisvoo gude diagram (juhtstruktuur) Ärireeglite projekteerimine ANDMED Tehnoloogia mudel Detailne kavandamine Inimesed (Kes) Aeg (Millal) Motivatsioon (Miks) Ettevõtte osakondade asukohtade loetelu Organisatsiooni ühikute loetelu Sündmuste ja äritsüklite loetelu Ärieesmärkide loetelu Ajagraafik Äriplaan Arvutivõrk (Kus) Zachmanni tugiraamistik Füüsiline andme -mudel Detailne programmi projekteerimine Võrgu arhitektuur protokollid Ekraani-vormid, andme-turbe arhitektuur (who can see what? ) http: //www. zifa. com/framework. pdf Ajastusmudel Ärireeglid programmi-loogikas Reaalne ärisündmus Kehtestatud ärireeglid (Töötav süsteem) Töötav süsteem Reaalsed andmed Täitev programm Kommunikatsiooni - vahendid Välja-õpetatud inimesed

Andmemudeli mõiste Lihtsustatult on andmemudel andmete struktureerimise viis andmebaasis, millega üritatakse kirjeldada reaalse maailma

Andmemudeli mõiste Lihtsustatult on andmemudel andmete struktureerimise viis andmebaasis, millega üritatakse kirjeldada reaalse maailma andmeobjekte. Andmed on koondatud ühte või mitmesse tabelisse. Ü Täpsemalt mõeldakse andmemudeli all mitmetabelisüsteemi erinevate tabeli kirjete vaheliste seoste fikseerimise moodust. Ü Enamlevinud on relatsiooniline mudel, mille pakkus välja 1970. aastal E. Codd. Ü Andmemudelit kujutatakse Ü E(ntity)-R(elationship) ehk olem-seose diagrammil. UML-is klassidiagrammil (loogiline) ja andmemudeli diagrammil (füüsiline)

Millest tekib andmemudel (UML-i näitel)

Millest tekib andmemudel (UML-i näitel)

Andmebaasisüsteemi mõiste Ü Ü Ü Lihtsustatult on andmebaas organiseeritud andmete kogum Relatsioonilises andmebaasis on

Andmebaasisüsteemi mõiste Ü Ü Ü Lihtsustatult on andmebaas organiseeritud andmete kogum Relatsioonilises andmebaasis on rakendatud relatsioonilise algebra ühtseid põhimõtted. Relatsioon on lihtsustatult 2 -mõõtmeline tabel. Andmebaasisüsteem koosneb nii andmebaasist kui ka selle juhtimise, arendamise ja kasutamise süsteemist (DBMS). Suuremates infosüsteemides ei pruugi olla keskset andmebaasi, vaid andmeid paiknevad alamsüsteemide andmebaasides, mis on omavahel mingil tasemel liidestatud. Näited:

Andmebaasi tabelid Relatsioonilises andmebaasis hoitakse andmeid tabelite kujul Ü Tabeli veerud kirjeldavad ühte tüüpi

Andmebaasi tabelid Relatsioonilises andmebaasis hoitakse andmeid tabelite kujul Ü Tabeli veerud kirjeldavad ühte tüüpi objektide omadusi: atribuute ehk väljasid. Ü Ü Tabeli ridades hoitakse konkreetseid ühte tüüpi objekte

Tabelile veerud Ü Iga veeru juures määratakse järgmised omadused: Andmetüüp (number, kuupäev, tekst) Pikkus

Tabelile veerud Ü Iga veeru juures määratakse järgmised omadused: Andmetüüp (number, kuupäev, tekst) Pikkus Kohustuslikkus Kirjeldus Muud kitsendused Jne Ü DDL käsk Oracle näitel: CREATE TABLE isik (id number(22) not null, eesnimi varchar 2(50) not null, perekonnanimi varchar 2(50) not null, sünniaeg date not null, sugu varchar 2(1) not null); ALTER TABLE isik ADD PRIMARY KEY (id);

Tabelite võtmed Igal tabelil peab olema primaarvõti ehk unikaalseid väärtusi sisaldav veerg või veergude

Tabelite võtmed Igal tabelil peab olema primaarvõti ehk unikaalseid väärtusi sisaldav veerg või veergude kombinatsioon, mis üheselt identifitseerib objekti, mida tabelis kujutatakse. Tavaliselt kasutatakse üheveerulist primaarvõtit, et hiljem oleks lihtsam seoseid luua teiste tabelitega, ja nimetatakse ID. Primaarvõtme veerg/veerud on alati kohustuslikud. Ü Igal tabelil võib olla ka rohkem unikaalseid võtmeid, mis identifitseerivad üheselt objekti, kuid seoste loomisel kasutatakse primaarvõtit. Neid kasutatakse ka andmeterviklikkuse huvides. Ü Näiteks: Primaarvõti – Isik. ID, unikaalne võti – Ü

Tabelite vahelised seosed Tabelite vahelisi seoseid kujutatakse andmemudeli diagrammil, millel võib olla erinevaid notatsioone.

Tabelite vahelised seosed Tabelite vahelisi seoseid kujutatakse andmemudeli diagrammil, millel võib olla erinevaid notatsioone. Ü Seosed luuakse peatabeli primaarvõtme ja alamtabeli võõrvõtme veeru/veergude vahele Ü

Tabelite vahelised seosed (2) Ü Seosed tagavad andmebaasi terviklikkuse. Näiteks ei luba sisestada Tudengi.

Tabelite vahelised seosed (2) Ü Seosed tagavad andmebaasi terviklikkuse. Näiteks ei luba sisestada Tudengi. Kursustesse sellise tudengi koodi, mida pole tudengi tabelis. Accessis defineeritakse seosed “Relationships” vahendiga Muudes andmebaasisüsteemides tabaliselt läbi DDL käsu või samuti läbi graafilise vahendi, mis sisuliselt selle käsu koostab ja edastab. DDL näide: ALTER TABLE tudeng ADD FOREIGN KEY (juhendaja. ID) REFERENCES isik (id); Ü Võõrvõtme (foreign key) veeruks nimetatakse tabeli veergu, mille väärtused tulevad mõne teise tabeli primaarvõtmest. Kui primaarvõtme veerus on unikaalsed väärtused, siis võõrvõtme veerus reeglina esinevad korduvad väärtused.

Andmemudeli normaliseerimine Normaliseerimine on andmete ümberstruktureerimise protsess, mille käigus vähendatakse andmete dubleerimist ja ebakõlasid

Andmemudeli normaliseerimine Normaliseerimine on andmete ümberstruktureerimise protsess, mille käigus vähendatakse andmete dubleerimist ja ebakõlasid andmemudelis. Ü Normaliseerimise viiakse läbi sammude kaupa. Selle taga on relatsioonide teooria, kuid tavaliselt piisab kui jõutakse 3. normaalkujuni, teatud reegleid rakendades. Ü Üldiselt kehtib reegel, et mida kõrgem on normaalkuju, seda terviklikum on andmemudel, kuid samas võib kannatada päringute kiirus ja mudeli loetavus. Ü

Normaliseerimine – 1 NK reegel: Tabeli veergudes ei tohi olla korduvaid gruppe Ü Normaliseerimata

Normaliseerimine – 1 NK reegel: Tabeli veergudes ei tohi olla korduvaid gruppe Ü Normaliseerimata kuju: Ü Ü Näide 1. normaalkujul

Normaliseerimine – 2 NK Ü 2 NK reegel: Iga mittevõtmeveerg on täielikult sõltuv primaarvõtmest,

Normaliseerimine – 2 NK Ü 2 NK reegel: Iga mittevõtmeveerg on täielikult sõltuv primaarvõtmest, mitte osaliselt sõltuv võtmeosast. Ü Näide 1. Normaalkujul: Ü Näide 2. normaalkujul:

Normaliseerimine – 3 NK reegel: Iga veerg peab sisaldama informatsiooni objekti kohta, mida kirjeldab

Normaliseerimine – 3 NK reegel: Iga veerg peab sisaldama informatsiooni objekti kohta, mida kirjeldab primaarvõti. Ü Näide 2. normaalkujul: Ü Ü Näide 3. normaalkujul:

Andmemudeli kasutamine: Relatsioonilistes andmebaasides on kasutusel standardne päringukeel SQL (Structured Query Language). Ü Loengunäites

Andmemudeli kasutamine: Relatsioonilistes andmebaasides on kasutusel standardne päringukeel SQL (Structured Query Language). Ü Loengunäites toodud andmebaasist saame teha päringuid tudengite nimekirjade saamiseks, kuid võimalik on vastused saada keerukamatele küsimustele nt: Millised tudengid deklareerisid kursused IDU 0090 ja IDU 0080 ja kelle juhendajaks oli samal ajal Enn Õunapuu. Ü DML (Data Modification Language) on mõeldud andmete sisestamiseks muutmiseks ja kustutamiseks. Mõned näited: Ü INSERT INTO tudeng (id, matriklinr, juhendaja) VALUES (12, ‘ 960672’, 24); UPDATE isik i SET i. perekonnanimi = ‘Ilus’ WHERE i. id = 344; DELETE FROM kursus WHERE ainekood = ‘IDU 9980’; Ü Päringute kiirendamiseks luuakse tabelitele indekseid. DML käskude käivitamisel on indeksid sageli aga koormavaks teguriks.

Ülesanne Ü Luua 6 või enamast objektist koosnev andmemudel, mis on kooskõlas funktsionaalse ja

Ülesanne Ü Luua 6 või enamast objektist koosnev andmemudel, mis on kooskõlas funktsionaalse ja ajalise vaatega. Ü Normaliseerida andmemudel 3 NK-le. Ü Luua ühele tabelile sisestamise vorm.