Presentasjon lastes. Vennligst vent

Presentasjon lastes. Vennligst vent

Relasjonsmodellen og relasjonsalgebra

Liknende presentasjoner


Presentasjon om: "Relasjonsmodellen og relasjonsalgebra"— 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 Relasjonens kardinalitet er antall rader
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 Only a relation's cardinality changes. If a new column is added it is considered a new relation.

8 Strukturer Primærnøkkel Kandidatnøkkel Alternativ nøkkel Fremmednø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)

9 Integritetsregler Entitetsintegritet Referanseintegritet
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 SQL Structured Query Language
(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 W X Y Z

13 Project (projiser) Velger kolonner fra en relasjon A W X Y Z

14 Produkt Lager en ny relasjon av alle mulige kombinasjoner av rader fra to andre relasjoner A V W v1 w1 v2 w2 v3 w3 B X Y Z x1 y1 z1 x2 y2 z2 A TIMES B V W X Y Z v1 w1 x1 y1 z1 x2 y2 z2 v2 w2 v3 w3

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 UNION B X Y x1 y1 x2 y2 x3 y3 x4 y4 A X Y x1 y1 x2 y2 x3 y3 B X Y x2 y2 x4 y4

16 Intersect (snitt) Lager en ny relasjon som inneholder rader som eksisterer i begge relasjoner samtidig. Relasjonene må være union kompatible A X Y x1 y1 x2 y2 x3 y3 B X Y x2 y2 x4 y4 A INTERSECT B X Y x2 y2

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 X Y x1 y1 x2 y2 x3 y3 B X Y x2 y2 x4 y4 A MINUS B X Y x1 y1 x3 y3

18 Join Lager en ny relasjon av alle kombinasjoner av rader som tilfredsstiller join-betingelsen A join B where W = Z A V W v1 wz1 v2 wz2 v3 wz3 B X Y Z x1 y1 wz1 x2 y2 wz3 A EQUIJOIN B V W X Y Z v1 wz1 x1 y1 v3 wz3 x2 y2

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 X Y x1 y1 y2 y3 x2 A DIVIDE B 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 2. Regelen om garantert tilgang
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 10. Integritetsuavhengighet
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"

Liknende presentasjoner


Annonser fra Google