200 likes | 379 Views
SQL. Forskjellige nivåer. Beskrivende Object Role Model ORM. Konseptuelt skjema. Eksternt skjema. Rmap. Logisk skjema. Formell teorimodell Relasjons databaser. SQL. Fysisk implementasjon DataBase Management System = DBMS. Internt skjema. Konseptuelt skjema deles inn i 3 seksjoner:.
E N D
SQL Forskjellige nivåer Beskrivende Object Role Model ORM Konseptuelt skjema Eksternt skjema Rmap Logisk skjema Formell teorimodell Relasjons databaser SQL Fysisk implementasjon DataBase Management System = DBMS Internt skjema
Konseptuelt skjema deles inn i 3 seksjoner: • Base fact types - Grunnleggende faktatyper • Contraints - Beskrankninger • Derivation rules - Utledningsregler
ansNavn avdeling Hansen Salg Olsen Salg Nilsen Service Primær nøkkel Fremmed nøkkel Relasjonskjema Snakker: Ansatt: kjønn ansNavn fremSpråk K Hansen Spansk M Nilsen Fransk K Nilsen Japansk Nilsen Spansk Ansatt ( ansNavn, avdeling, kjønn ) Snakker ( ansNavn, fremSpråk )
Modellering • Livssyklus • Top-down • Faktaorientert - verbalisering av UoD • Perspektiver • Data orientert • Prosess orientert • Oppførsel/hendelses orientert • ER vs ORM
Konseptuell Skjema Design Prosedyre (KSDP) 1. Omform kjente dataeksempler til grunnleggende fakta, og anvend kvalitetskontroller. 2. Tegn faktatypene, og anvend en befolkningssjekk. 3. Se etter entitetstyper som bør kombineres, og noter eventuelle aritmetiske utledninger. 4. Legg til entydighetsbeskrankninger, og kontroller aritet til faktatypene. 5. Legg til totale rollebeskrankninger, og se etter logiske utledninger. 6. Legg til verdi-, sett- og subtype-beskrankninger. 7. Legg til andre beskrankninger og utfør sluttsjekker.
KSDP steg 1 Omform kjente dataeksempler til grunnleggende fakta, og anvend kvalitetskontroller. Hva er et grunnleggende fakta ? Fakta : - en antagelse om interesseområdet som skal tas for sann. - en antagelse om at gitte objekter spiller gitte roller. Grunnleggende : - kan ikke deles i mindre biter med informasjon, uten å miste informasjonsinnhold.
Anne røyker Anne ansetter Rune Anne ansetter Anne Anne røyker og Rune røyker Anne røyker eller Rune røyker Anne røyker ikke Hvis Rune røyker da er Rune kreftutsatt. Alle personer som røyker er kreftutsatt Eksempler Et objekt har en egenskap. Et eller flere objekter inngår en relasjon.
Entitetstype: Pasient Temperatur Referansemåte: etternavn º Celsius Verdi: ’Johansen’ 37 Hvordan spesifisere objekter og roller ? Pasienten med etternavn ’Johansen’ har en Temperatur på 37º Celsius Pasienten med etternavn ’Johansen’ er lokalisert på Post ’Hjerte 1 Syd’ Rolle spesifiseres med predikat : ... er lokalisert på ...
Informasjonskilder • Tabeller (evt fra tidligere system) • Skjema • Grafer • Eksempler fra UoD ekspert(er)
Foreleser Emne Telle I120 Mughal I125 Petersen I126 Designer Språk År Wirth Pascal 1971 Kay Smalltalk 1972 Wirth Modula2 1979 Person med etternavn ’Wirth’ designet Språk med navn ’Pascal’ Språk med navn ’Pascal’ ble designet i År 1971 Eksempler Person med etternavn ’Telle’ foreleser Emne med kode ’I120’ Person med etternavn ’Wirth’ designet Språk med navn ’Pascal’ i År 1971
Numerisk Mer om referanser • Kan forkorte litt når det ikke er rom for misforståelser: • Person(etternavn) ’Wirth’ designet Språk(navn) Pascal’ • Språk(navn) ’Pascal’ ble designet i År(AD) 1971 • Eller som i tidligere eksempler; først liste referanse- skjema for entitetstypene: • Person (etternavn); Språk(navn); År(AD)+ • Person ’Wirth’ designet Språk ’Pascal’ • Språk ’Pascal’ ble designet i År 1971
Kvalitetskontroll 2 nøkkelspørsmål : Er entitetene veldefinert ? Kan faktaene deles opp i mindre enheter uten å miste informasjon ?
Øvelse/eksempel Gruppe Tid Rom Student# Navn 1 2 3 Man 12.15 Tir 14.15 Tor 10.15 Rb 2 Rb 5 Rb 5 302156 180064 278155 334467 200140 266010 Andersen B Jakobsen I Fyllingen L Nilsen H Andersen B Hop C Gruppe med gruppenr 1 møtes ved Tid med dag-tid-kode ’Man 12.15’ Gruppe med gruppenr 1 møtes i Rom med romnr ’Rb 2’ Student med student# 302156 tilhører Gruppe med gruppenr 1 Student med student# 302156 har StudentNavn ’Andersen B’
Entitets- type Verdi- type KSDP steg 2 Tegn faktatypene, og anvend en befolkningssjekk. Hvordan tegne ? ...kjører... Person Bil Fakta Referanse PersonNavn Reg#
Kan forkorte ved 1:1 Referanse Befolkningssjekk kjører/blir kjørt av Bil (Reg#) 235PZN Adams B Person (PersonNavn) Jones E 235PZN Jones E 108AAQ innehar/er registrert på Sertifikat (Sertifikat#) A3050 Adams B Jones E A2245
Røyker Ikke-røyker Tjalve Kari Kenneth Nina Georg Person (fornavn) RøykerStatus (kode) har Kenneth Kari Georg Nina Tjalve R I I I R Homogen fakta type røyker Tjalve Kenneth Person (fornavn) er en ikke-røyker Kari Nina Georg Heterogen fakta type
Ring fakta type Person (fornavn) mann til kone til Adam Michal Eva Sharon
Nøsting • Objektifisert relasjon • Ikke en splitting <Adams B, høyde> <Jones E, lengde> S G Medalje (kode) vant ”Deltagelse” Person (PersonNavn) KonkGren (kode) deltok i Høyde Adams B Jones E Lengde Jones E Høyde
KSDP steg 3 Se etter entitetstyper som bør kombineres, og noter eventuelle aritmetiske utledninger. • Primitive entitetstyper overlapper ikke • Hint: • Samme entitet kan være medlem av 2 entitetstyper. • Det er meningsfullt å sammenligne 2 entitetstyper. (Samme enhet, dimensjon). • Samme informasjon blir lagret for flere entitetstyper.
kjøpes inn for Artikkel (kode) Beløp (NKr)+ selges for Innkjøpspris (NKr)+ har Artikkel (kode) Utsalgspris (NKr)+ har Fortjeneste (NKr)+ har {fortjeneste = utsalg - innkjøp } Artikkel a har fortjeneste på Beløp fiffa selges for s anda kjøpes inn for k andf = s-k