1 / 45

DATASYSTEMER Datamodeller

DATASYSTEMER Datamodeller. Ein datamodell = Ein måte å organisere data på. Database. Ei samling av logiske data som høyrer saman Beskrivelse av desse dataene (datatype, lovlege data osv). Databasesystem. Database Management System (DBMS) Oracle, SQL Server, Access. Relasjonsmodellen.

rocco
Download Presentation

DATASYSTEMER Datamodeller

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. DATASYSTEMERDatamodeller Ein datamodell = Ein måte å organisere data på

  2. Database • Ei samling av logiske data som høyrer saman • Beskrivelse av desse dataene (datatype, lovlege data osv)

  3. Databasesystem • Database Management System (DBMS) • Oracle, SQL Server, Access

  4. Relasjonsmodellen • Datastruktur • Dataintegritet • Datamanipulering

  5. Datastruktur i relasjonsmodellen

  6. Relasjonsbegrepet

  7. Tabell som relasjon Relasjonen har 4 attributt R(101,Hansen)=Sann R(105,Hansen)=Sann R(101,Nils)=Usann Attributta er atomiske -> Relasjonen er normalisert Relasjonsdatabase=Samling normaliserte relasjonar med distinkte namn

  8. Nøkkel • Ein nøkkel er ein verdi som gjer det mulig å finne fram til ein bestemt tuppel i relasjonen • Ein supernøkkel er ein attributtkombinasjon som eintydig definerer ein tuppel i relasjonen • Ein kandidatnøkkel er eit attributt eller ein kombinasjon av attributt som det berre fins ein av i relasjonen.

  9. Primærnøkkel Mange supernøklar, f. eks. kombinasjon av alle attributt. Fjernar unødvendige attributt. Får då ein kandidatnøkkel. Velg ein av kandidatnøklane som primærnøkkel: EKSAMENS_SKOLE(eks_skolenr,eks_navn,eks_adresse,eks_telefon,postnr)

  10. Samansett nøkkel

  11. Framandnøkkel

  12. Dataintegritet • Garanti for at dataene er korrekte (og oppdatert) • Entitetsintegritet: Primærnøkkel kan ikkje vera utan verdi • Referanseintegritet: Framandnøkkel må vera lik primærnøkkelen i ein annan relasjon, eller utan verdi.

  13. Referanseintegritet

  14. DatamanipuleringRelasjonsalgebra • Seleksjon • Projeksjon • Produkt • Forening (eng. join) • Divisjon • Union • Snitt • Differanse

  15. Seleksjon SELECT(A:s:r,R:s:r) s = seleksjon r=projeksjon SELCT(FAG : fagkode=’LO343D’) : *, R : : ); SQL: SELECT * FROM FAG WHERE fagkode=’LO343D’

  16. Projeksjon (reduksjon) PROJECT(A:s:r , R:s:r); PROJECT(FAG : : fagkode fagnavn , R : : ); SQL: SELECT fagkode fagnavn FROM FAG

  17. Produkt CROSS(A:s:r, B:s:r, R:s:r ); SQL: SELECT * FROM Sted CROSS JOIN eks_skole

  18. Forening (eng. join) Inner join JOIN(A:s:r:k , B:s:r:k, R:s:r); k skal vera lik i A og B JOIN(EKSAMENS_SKOLE : : : postnr, STED : : poststed:postnr,R: : skolenr namn adr postnr poststed) SQL: SELECT e.* , s.poststed FROM eksamens_skole e INNER JOIN sted sON e.postnr=s.postnr

  19. Ytterforening • Venstre ytterforening (LEFT JOIN): Alle tuppler i venstre relasjon skal vera med • Høgre ytterforening(RIGHT JOIN): Alle tupler i høgre relasjon skal vera med • Full ytterforening: Alle tuppler i begge relasjonar skal vera med. SQL: SELECT f.fagkode, f.fagnavn, fv.studnrFROM fag f LEFT JOIN fagvalg fvON f.fagkode=fv.fagkode

  20. Union UNION(A:s:r:k, B:s:r:k, R:s:r ); SQL: SELECT * FROM sted UNION SELECT * FROM ny_sted

  21. Snitt INTERSECT(A:s:r:k, B:s:r:k, R:s:r); SELECT * FROM sted INTERSECT SELECT * FROM ny_sted ON sted.poststed=ny_sted.poststed

  22. Differanse DIFFERANCE(A:s:r:k, B:s:r:k, R:s:r);

  23. Kontrollspørsmål • Side 72

  24. Normalisering • Deler opp databasen i små tabellar for å unngå at samme informasjon blir registrert fleire ganger. • Hindre inkonsistens • Indre samanhenger mellom kolonner? • Kolonner som dannar ei gruppe innafor ein tabell? • Når tabellen tilfredsstiller eit sett av vilkår, er han på ei normalform (2NF, 3NF, Boyd-Codd normalform BCNF osv)

  25. Funksjonelle determineringar I tabell R determinerer kolonne A ei anna kolonne B dersom det for kvar A-verdi berre er knytta ein B-verdi

  26. Eksempel på determinering Kolonne Postnr er ein determinant. Brukar den som primærnøkkel.

  27. Samansett nøkkel Kva er primærnøkkelen her? Finn funksjonell determinering!

  28. Determinering i tabell Fagvalg

  29. Oppgåve Bestem funksjonell determinering her!

  30. Unormalisert form Ein tabell på unormalisert form (UNF) kan innehalde repeterande grupper (ikkje-atomiske verdiar) F.eks: Opplisting av fagkodar i feltet fagkode. Løysing på problemet?

  31. Første normalform Første normalform (1NF) krev at tabellen har ein primærnøkkel og berre atomiske verdiar (berre ein pr. rute – i praksis er berre ein verdi mulig!) STUDENT(studnr , etternavn, fornavn) STUD_FAG(studnr*, fagkode* )

  32. Oppgåve Finn funksjonell determinering her!

  33. Partiell determinering FAGVALG(studnr, fagkode, fagnavn, semester) Har samansett primærnøkkel Fagnavn er determinert av ein del av nøkkelen

  34. Andre normalform - 2NF I ein tabell på 2NF skal kvar ikkje-nøkkelkolonne determinerast av heile primærnøkkelen, ikkje berre deler av han. Løysing: Del opp i to tabellar: FAGVALG(studnr, fagkode*, semester) og FAG(fagkode, fagnavn)

  35. Surrogatnøkkel Finn funksjonell determinering Har vi 2NF?

  36. 2NF ved fleire kandidatnøklar • F. eks. ein surrogatnøkkel + ein samansett nøkkel: • FAGVALG(fvnr, studnr, fagkode, fagnavn, semester) • Studnr og fagkode er ein samansett kandidatnøkkel • Fagkode partiell-determinerer fagnavn • 2NF? • Ny definisjon: • Ein tabell er på 2NF når han alt er på 1NF og kvar ikkje-nøkkelkolonne blir determinert av kvar (heile) kandidatnøkkel.

  37. Oppgåve Finn funksjonell determinering Kva kolonner er kandidatnøklar? Grunngi kvifor denne er på 2NF

  38. Transitiv determinering STUDENT(studnr, etternavn, fornavn, adresse, postnr, poststed) Poststed blir determinert av Postnr som ikkje er nøkkelkolonne. Transitiv determinering

  39. Tredje normalform – 3NF Ein tabell er på 3NF dersom 2NF er oppfylt og det ikkje fins transitive determineringar mellom kolonner som ikkje er kandidatnøklar.

  40. Oppgåve Tabellen viser studentar som tar mastergrad i ein studieretning med gitt veileder. Kvar student kan velja fleire studieretningar samtidig, og har ein veileder pr. studieretning Kvar veileder kan ha fleire studentar, men berre innafor ein studieretning Finn funksjonell determinering. Kva normalform er denne på?

  41. Boyce-Codd normalform BCNF Kan oppstå problem ved endring av data. BCNF: Det må ikkje finnast funksjonelle determineringar mellom kandidatnøklar. Kvar determinant er ein kandidatnøkkel. MASTER_GRAD(studnr, studieretning, ansattnr) Ansattnr er veileder i den gitte studieretning som studnr tar mastergrad i

  42. BCNF Deler opp tabellen for å tilfredsstille BCNF

  43. Oppgåve Finn funksjonelle determineringar Finn kva høgste normalform er Kva kan eventuelt gjerast for å få datastruktur med høgste normalform

  44. Oppgåve Funksjonell determinering? Normalform? Er det alltid ein fordel å normalisere?

  45. Oppgåver • Side 101 • Ta utgangspunkt i alle tabellane på side 98-99 og finn funksjonelle determineringar og normalform

More Related