1 / 27

Relasjonsmodellen og relasjonsalgebra

Relasjonsmodellen og relasjonsalgebra. Nothing is so practical as a good theory Kurt Lewin, 1945. Relasjonsmodellen. Løser mangler ved tidligere databasemodeller Har et sterkt teoretisk grunnlag Grunnlaget ble hovedsakelig lagt av Codd. Problemer med andre modeller.

bingham
Download Presentation

Relasjonsmodellen og relasjonsalgebra

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. Relasjonsmodellen og relasjonsalgebra Nothing is so practical as a good theory Kurt Lewin, 1945

  2. Relasjonsmodellen • Løser mangler ved tidligere databasemodeller • Har et sterkt teoretisk grunnlag • Grunnlaget ble hovedsakelig lagt av Codd

  3. Problemer med andre modeller • Programmerere arbeider på et lavt nivå som krever håndtering av detaljer • Ingen kommandoer for å håndtere flere poster på en gang • Liten støtte for ad-hoc spørringer fra brukerne

  4. Mål ved utvikling av relasjonsmodellen • Datauavhengighet • Logiske og fysiske modeller skal være atskilt • Støtte for forståelse • Modellen skal kunne forstås av både programmere og brukere • Mengdebehandling • Mulig å behandle flere poster samtidig og dermed øke programmererens produktivitet

  5. Komponenter i relasjonsmodellen • Datastrukturer • Integritetsregler • Operatorer • Hensikt: hente, utlede eller endre data

  6. Datastrukturer • Domener • En mengde verdier av samme datatype • Alle lovlige verdier for en attributt • Definerer hvilke sammenlikninger som er lovlige • Bare attributter fra samme domene kan sammenlignes • Domenebegrepet blir sjelden implementert i DBHSet

  7. Datastrukturer • Relasjoner • Er en tabell med n kolonner og m rader • Relasjonens kardinalitet er antall rader • Relasjonens grad er antall kolonner • En relasjonsdatabase er en samling av relasjoner • Ingen eksplisitt kopling mellom tabellene

  8. Strukturer • Primærnøkkel • En unik identifikator for en rad i en relasjon • Kan være sammensatt • Kandidatnøkkel • En attributt som kan velges som primærnøkkel • Alternativ nøkkel • En kandidatnøkkel som ikke ble valgt som primærnøkel • Fremmednøkkel • En attributt i en relasjon som er primærnøkkel for en relasjon (enten en annen eller ved rekursive relasjoner den samme) • Kan være sammensatt

  9. Integritetsregler • Entitetsintegritet • Ingen komponent av primærnøkkelen til en relasjon kan være null • Hver rad i en relasjon er unikt identifisert • Referanseintegritet • En database må ikke inneholde noen fremmednøkkelverdier som ikke matcher • For hver fremmednøkkel må det være en tilsvarende primærnøkkel.

  10. Manipuleringsspråk • QBE Query By Example • (Access-verktøy for spørring) • SQL Structured Query Language • Relasjonsalgebra • Operasjoner som i algebra. • Du må spesifisere både hva og hvordan • Spørreoptimering kan gjennomføres ved å endre rekkefølgen på operasjonene • Relasjons calculus • Du spesifiserer bare hva • Men har vist seg vanskelig å lære

  11. Operasjoner i relasjonsalgebra • Relasjonsalgebra har åtte operasjoner • Restrict* T1:=aksje WHERE pe>15 • Project* T2:=aksje[aksjekode,pe] • Product T3:=aksje TIMES nasjon • Union T4:=aksje_uk UNION aksje_us • Intersect T5:=aksje_uk INTERSECT aksje_landbruk • Difference T6:=aksje MINUS aksje_uk • Join T7:=aksje JOIN nasjon WHERE aksje.nasjkode=nasjon.nasjkode • Divide T8:=personalkompetanse DIVIDE kompbehov • Operasjonene bruker en* eller to relasjoner for å beregne en ny relasjon.

  12. Restrict • Velger rader av en relasjon

  13. Project (projiser) • Velger kolonner fra en relasjon

  14. Produkt • Lager en ny relasjon av alle mulige kombinasjoner av rader fra to andre relasjoner

  15. Union • Lager en ny relasjon som inneholder rader som finnes i en eller begge relasjoner • Duplikatrader fjernes automatisk • Relasjonene må være union kompatible

  16. Intersect (snitt) • Lager en ny relasjon som inneholder rader som eksisterer i begge relasjoner samtidig. • Relasjonene må være union kompatible

  17. Differens • Lager en relasjon som inneholder rader som finnes i den første relasjonen, men ikke i den andre. • Relasjonene må være union kompatible

  18. Join • Lager en ny relasjon av alle kombinasjoner av rader som tilfredsstiller join-betingelsen • A join B where W = Z

  19. Divide • Finnes det en verdi i X-kolonna i A f. eks x1, der y-verdiene i rader med x verdi x1 dekker alle y-verdiene i B? Da er x1 med i A DIVIDE B.

  20. Primitive operatorer • Bare fem operatorer er nødvendig – de andre kan utledes. • Restrict • Project • Product • Union • Difference

  21. Relasjonsalgebra og SQL • Relasjonsalgebra er en standard for å vurdere spørrespråk 1. Essentially, where all columns of A are equal to all columns of B

  22. Relational Calculus –et eksempel Fra Elmasri og Navathe (2000)

  23. Fullstendig relasjonsdatabase • En fullstendig relasjonsdatabase støtter • Strukturer (domener og relasjoner) • Integritetsregler • Et manipuleringsspråk • Mange kommersielle systemer er ikke fullstendige relasjonsdatabaser fordi de ikke støtter domener og integritetsregler • Ordet relasjonsdatabase brukes kanskje for ukritisk

  24. Codd’s krav 1. Informasjonsregelen Alle data må framstå som lagret som verdier i en tabell 2. Regelen om garantert tilgang Hver verdi i databasen må være adresserbar ved å spesifisere navnet på tabellen, navnet på kolonnen og primærnøkkelen for raden den er lagret i. 3. Systematisk behandling av null-verdier Det må være en adskilt representasjon for manglende eller ikke passende data 4. Aktiv on-line katalog over relasjonsmodellen Det skal være en on-line katalog som beskriver relasjonsmodellen.

  25. Codds krav 5. Krav om omfattende språk for datahåndtering Det må finnes et relasjonelt språk som støtter datadefinisjon, datamanipulering, sikkerhet og integritetsbeskrankninger (constraints), samt transaksjonshåndteringsoperasjoner. 6. Regelen om oppdatering av view Databasehåndteringssystemet må kunne oppdatere et hvert view som er teoretisk oppdaterbart. 7. Høynivå innsetting, oppdatering og sletting Systemet må støtte operasjoner som jobber med en mengde rader samtidig. 8. Fysisk datauavhengighet Endringer i lagrings-representasjon eller tilgangsmetoder skal ikke påvirke applikasjonsprogrammer.

  26. Codds krav 9. Logisk datauavhengighet Endringer i databasetabellene som ikke endrer eksisterende informasjon skal ikke påvirke applikasjonsprogrammer 10. Integritetsuavhengighet Integritetsbeskrankninger (constraints) skal være en del av databasedefinisjonen heller enn en del av applikasjonsprogrammene. Det må være mulig å endre integritetsbeskrankningene uten å endre eksisterende applikasjonsprogrammer. 11. Distribusjonsuavhengighet Innføring av et distribuert databasehåndteringssystem (DBMS) eller omfordeling av eksisterende data skal ikke ha noen innvirkning på eksisterende applikasjoner. 12. Anti-omgåelsesregelen Det må ikke være mulig å bruke et interface som gir tilgang til enkeltrader for å omgå sikkerhets eller integritetsbeskrankninger.

  27. Codds regel nr 0 • Et relasjonsdatabasehåndteringssystem må kunne håndtere databasene utelukkende ved hjelp av sine relasjonelle muligheter. • Et DBMS er dermed enten helt relasjonelt eller så er det ikke relasjonelt.

More Related