150 likes | 320 Views
Introduksjon I126. Databaser og datamodellering. Høsten 2000 Institutt for informatikk Universitet i Bergen. Praktisk informasjon. Foreleser : Kjell Petersen (kjellp@ii.uib.no) Kursside : www.ii.uib.no/undervisning/kurs/i126 NB: Forelesning mandag Aud A, onsdag Aud B
E N D
Introduksjon I126 Databaser og datamodellering Høsten 2000 Institutt for informatikk Universitet i Bergen
Praktisk informasjon • Foreleser : Kjell Petersen (kjellp@ii.uib.no) • Kursside : www.ii.uib.no/undervisning/kurs/i126 • NB: Forelesning mandag Aud A, onsdag Aud B • Gruppeøvelser starter neste uke • Studieteknikk
Hva er en database? • En samling relaterte data • Fortrinnsvis en ordnet mengde data...
Hvorfor bruke databasesystem? • Konsistens • Adgangskontroll / sikkerhet • Forskjellig bruk / behov i ulike deler av org. • Unngå dobbelt lagring • Administrasjon • Transaksjoner - kritiske overganger • Nye bruksområder
Databaseverden Server Bruker Utvikler Administrator (DBA)
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
Det konseptuelle nivå Konseptuelt skjema Struktur (design) Universe of Discourse Konseptuell Informasjons- behandler Innhold (instanser) Konseptuell Database
Konseptuelt skjema deles inn i 3 seksjoner: • Base fact types - Grunnleggende faktatyper • Contraints - Beskrankninger • Derivation rules - Utledningsregler
F1 Person bor i By F2 Person er født i År Person(fornavn); By(navn); År(AD)+ Skjema: Person ’Davy’ bor i By ’Bergen’ Person ’Eli’ er født i År 1970 Instanser: Base fact types - Grunnleggende faktatyper • Primitive setninger eller fakta • Ikke utledet fra andre fakta i databasen • Definerer • objekter tillatt i UoD • hvordan de refereres (domene) • relasjoner de inngår
Contraints - Beskrankninger • Begrensninger og restriksjoner på en populasjon av faktatyper. • Statiske - må være oppfylt for alle tilstander av databasen. • Dynamiske - betingende, kontrollerer overganger fra en tilstand til en annen. C1 enhver Person bor i en By C2 enhver Person bor i høyst en By C3 enhver Person er født i høyst et År C4 Person som har bodd i By ’Bergen’ kan ikke seinere bo i By ’Oslo’
Derivation rules - Utledningsregler • Hvordan utlede nye fakta fra andre fakta i databasen • Gjerne formulert i matematikk eller logikk syntaks. D1 Person x er onkel til Person yifx er bror til z andz er forelder til y D2 antallBarn(Person x) ::= count(x er forelder til en Person)
Reference schemes : Person(fornavn); By(navn); År(AD)+ Base Fact types : F1 Person bor i By F2 Person er født i År Constraints : C1 enhver Person bor i en By C2 enhver Person bor i høyst en By C3 enhver Person er født i høyst et År (Derivation rules utelatt) Add: Person ’Eli’ er født i 1970 Avvist. C1 brutt. Add: Person ’Eli’ bor i By ’Trondheim’ Akseptert Akseptert Add: Person ’Eli’ er født i 1970 Add: Person ’Eli’ bor i By ’Oslo’ Avvist. C2 brutt. Del: Person ’Eli’ bor i By ’Trondheim’ Avvist. C1 brutt.
Attributt 1 Attributt 2 Attributt 3 Relasjonsdatabase • All informasjon er lagret i tabeller • En tabell kalles en relasjon Relasjonsnavn: • En rad kalles også et tuppel • Rekkefølgen på radene spiller ingen rolle
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 )
Sammenheng • Enhver rad uttrykker et eller flere grunnleggende fakta. • Utfordringen er å spre informasjonen utover forskjellige tabeller på en hensiktsmessig måte