17
Andmemudel aines IDU0090 Rainer Kuhi 960672 LAPM

Andmemudel

Embed Size (px)

DESCRIPTION

Andmemudel. aines IDU0090 Rainer Kuhi 960672 LAPM. 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. ANDMED (Mis). Funktsioon (Kuidas). - PowerPoint PPT Presentation

Citation preview

AndmemudelAndmemudel

aines IDU0090Rainer Kuhi

960672 LAPM

TeemadTeemad Andmemudel, kui infosüsteemi üks vaade Andmebaasisüsteemi mõiste Andmemudeli disain

Tabelid, veerud, võtmed, seosed, DDLNormaliseerimine

Andmemudeli kasutamine SQL, DML

Ülesanne

Zachmanni tugiraamistik http://www.zifa.com/framework.pdf

Zachmanni tugiraamistik http://www.zifa.com/framework.pdf

ANDMED (Mis)

Funktsioon (Kuidas)

Arvutivõrk

(Kus)

Inimesed (Kes)

Aeg (Millal)

Motivatsioon (Miks)

Eesmärk / Skoop

Ettevõtteleoluliste objektide

loetelu

Ettevõtte protsesside

loetelu

Ettevõtte osakondade asukohtade

loetelu

Organisatsiooni ühikute loetelu

Sündmuste ja äritsüklite

loetelu

Ärieesmärkide loetelu

Äri-mudel

Objekt-suhte diagramm (m:m,

n-suhted)

Äri-mudel (physical

data flow diagram)

logistikavõrk (nodes and links)

Organisat-siooni skeem, rollid;

kvalifikatsioon; andmetele juurdepääs

Ajagraafik Äriplaan

Info-süsteemi

mudel

Andme-mudel (1:m suhted ja

normaliseeritud)

Tegelik andme-voogude

diagramm application

architecture

Hajutatud süsteemi-arhitektuur

Väline juurdepääs (roles, data,

access)

Sõltuvusdiagram

objektielu-tsükkel

Ärireeglitemudel

Tehno-loogiamudel

Andmete arhitektuur

Süsteemi Projekteerimine:

struktuuri-diagramm

Süsteemiarhitektuur (hardware,

software types)

Kasutajaliides (how the

system will behave);

security design

Juhtimisvoogude

diagram (juht-

struktuur)

Ärireeglite projekteerimine

Detailne kavanda-

mine

Füüsiline andme-mudel

Detailne programmi

projekteerimine

Võrgu arhitektuurprotokollid

Ekraani-vormid, andme-turbe

arhitektuur (who can see what?)

Ajastus-mudel

Ärireeglid programmi-loogikas

(Töötav süsteem)

Töötavsüsteem

Reaalsedandmed

Täitevprogramm

Kommunikatsiooni- vahendid

Välja-õpetatud inimesed

Reaalne äri-

sündmus

Kehtestatudärireeglid

Andmemudeli mõisteAndmemudeli 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 mitme-tabelisü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)

Actor1

UseCase1

UseCase2

«uses»

«uses»

Class1 Class2 Class3

Message1

Message2

Message3

Class1 Class2

1 1..1

Class3

1

0..*

Class4 1

0..1

KlassimudelKasutusjuhtude mudel

TegevusdiagrammidAndmemudel

Lausendid

Andmebaasisüsteemi mõisteAndmebaasisü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 tabelidAndmebaasi 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 veerudTabelile veerud Iga veeru juures määratakse järgmised omadused:

Andmetüüp (number, kuupäev, tekst)PikkusKohustuslikkusKirjeldusMuud kitsendusedJne

DDL käsk Oracle näitel:CREATE TABLE isik (id number(22) not null, eesnimi varchar2(50) not null, perekonnanimi varchar2(50) not null, sünniaeg date not null, sugu varchar2(1) not null);ALTER TABLE isik ADD PRIMARY KEY (id);

Tabelite võtmedTabelite 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 – Isik.Isikukood

Tabelite vahelised seosedTabelite 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

Tudeng

Õppejõud

Kursused

TundngiKursused

Isik

Teaduskraad10..*

0..1

1

0..1

1

1

0..*

10..*

1

0..*

TudengiKursused

Kursus

IsikÕppejõud

Tudeng

Teaduskraad

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

sisestada TudengiKursustesse sellise tudengi koodi, mida pole tudengi tabelis.

Accessis defineeritakse seosed “Relationships” vahendigaMuudes 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 (juhendajaID) 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 normaliseerimineAndmemudeli 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 – 1NKNormaliseerimine – 1NK 1NK reegel: Tabeli veergudes ei tohi olla korduvaid gruppe Normaliseerimata kuju:

Näide 1. normaalkujul

Normaliseerimine – 2NKNormaliseerimine – 2NK 2NK 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 – 3NKNormaliseerimine – 3NK 3NK reegel: Iga veerg peab sisaldama informatsiooni objekti

kohta, mida kirjeldab primaarvõti. Näide 2. normaalkujul:

Näide 3. normaalkujul:

Andmemudeli kasutamine: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 IDU0090 ja IDU0080 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 = ‘IDU9980’;

Päringute kiirendamiseks luuakse tabelitele indekseid. DML käskude käivitamisel on indeksid sageli aga koormavaks teguriks.

ÜlesanneÜlesanne

Luua 6 või enamast objektist koosnev andmemudel, mis on kooskõlas funktsionaalse ja ajalise vaatega.

Normaliseerida andmemudel 3NK-le. Luua ühele tabelile sisestamise vorm.