Upload
howard-walker
View
45
Download
8
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
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.