Presentasjon lastes. Vennligst vent

Presentasjon lastes. Vennligst vent

Relasjonsmodellen og relasjonsalgebra Nothing is so practical as a good theory Kurt Lewin, 1945.

Liknende presentasjoner


Presentasjon om: "Relasjonsmodellen og relasjonsalgebra Nothing is so practical as a good theory Kurt Lewin, 1945."— Utskrift av presentasjonen:

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 A WXYZ

13 Project (projiser) Velger kolonner fra en relasjon A WXYZ

14 Produkt Lager en ny relasjon av alle mulige kombinasjoner av rader fra to andre relasjoner A VW v1w1 v2w2 v3w3 B XYZ x1y1z1 x2y2z2 A TIMES B VWXYZ v1w1x1y1z1 v1w1x2y2z2 v2w2x1y1z1 v2w2x2y2z2 v3w3x1y1z1 v3w3x2y2z2

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 A XY x1y1 x2y2 x3y3 B XY x2y2 x4y4 A UNION B XY x1y1 x2y2 x3y3 x4y4

16 Intersect (snitt) Lager en ny relasjon som inneholder rader som eksisterer i begge relasjoner samtidig. Relasjonene må være union kompatible A XY x1y1 x2y2 x3y3 B XY x2y2 x4y4 A INTERSECT B XY x2y2

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 A XY x1y1 x2y2 x3y3 B XY x2y2 x4y4 A MINUS B XY x1y1 x3y3

18 Join Lager en ny relasjon av alle kombinasjoner av rader som tilfredsstiller join-betingelsen A join B where W = Z A VW v1wz1 v2wz2 v3wz3 B XYZ x1y1wz1 x2y2wz3 A EQUIJOIN B VWXYZ v1wz1x1y1wz1 v3wz3x2y2wz3

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. A XY x1y1 x1y2 x1y3 x2y1 x2y3 A DIVIDE B X x1 B Y y1 y2

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.


Laste ned ppt "Relasjonsmodellen og relasjonsalgebra Nothing is so practical as a good theory Kurt Lewin, 1945."

Liknende presentasjoner


Annonser fra Google