Relasjonsmodellen og relasjonsalgebra

Slides:



Advertisements
Liknende presentasjoner
Kombinatorikk for lærerstudenter
Advertisements

Mer om SQL-spørringer og funksjoner
Repetisjon innkapsling static tabell av primitiv datatype LC191D Videregående programmering Høgskolen i Sør-Trøndelag, Avdeling for informatikk og e-læring.
Tilpasse spørringer i RT Kolonnetilpassninger Egne spørringer Legge spørring til forside Legge spørring til Dashboard.
Hvordan etablere nettbutikk med GoOnline Commerce
LC238D Datamodellering og databaser Else Lervik, september 2012 Forelesning 6, Uke 39 Objektorientering i ER-modeller.
Ncg | group om |navigator™ xlforecast™
Veiledning i gevinstrealisering ved innføring av elektronisk handel
Kap 01 Generelt om databaser
Mange til mange sammenhengen
Kap 02 Relasjonsdatabaser
Høgskolen i Oslo Webprogrammering SQL og databaser del 3.
Dagens tema : Teori - Databaser
Java database persistence framework.  SELECT by FROM postnr AS p WHERE ( SELECT DISTINCT postnr FROM addr AS a WHERE user.adrId = a.Id ) = p.postnr;
Kap 04 Lister. Listestrukturer Listestrukturer hensiktsmessige ved såkalte flyktige tabeller (tabeller med relativt mye innsetting/sletting)
LC238D Datamodellering og databaser Introduksjon til fagfeltet Else Lervik, august 2012Forelesning 1, uke 34 Datafilerside.
Normalisering og andre modelleringsmetoder
Avansert SQL og problemløsning
XMLSchema.  Innledende eksempler: Tove 4. Janni 5. Huskelapp 6. Ikke glem avtalen til helgen 7. Vi har sett DTD’en til dette xml dok. Her kommer.
1 Objektorienterte databaser - 6 Arne Maus. 2 Problemstillinger, hvorfor OO- databaser ?  dagens relasjonsdatabaser (RDB) passer ikke for alle anvendelser.
Essbase for nybegynnere
SQL, del 1 - select Hva er SQL? side 2 Eksempelbase side 3
Begrenset redigering “Klubbjournalister” For web ansvarlig klubb.
Databaser Verktøybok om Access med innslag av Frontpage: Snarveien til Access.
Databaseteori.
Normalformer – avleggs?
Introduksjon til NetBAS
Databasehåndtering med MySQL
Modellbruk i Referansekatalogen Øyvind Aassve NorStella.
SQL The questing beast Sir Thomas Mallory. Codds krav 5.Krav om omfattende språk for datahåndtering Det må finnes et relasjonelt språk som støtter datadefinisjon,
Prototyping In 140 Sommerville kap. 8. Mål Forstå hensikten med prototyping i forskjellige utviklingsprosjekt Forstå forskjellen mellom evolusjonær og.
Kort om oppgavestiller Sintef Energiforskning AS, avdeling for kraftproduksjon og marked. Driver med oppdragsforskning i det nasjonale og internasjonale.
Relasjonsmodellen, del II
Normalisering Framstillingen avviker noe fra læreboka,
Datamodellering og databaser Else Lervik, oktober 2011 Forelesning 9, uke 41 SQL, del 2 Eksempelbaseside 2 Virtuelle.
In 135 Datamodellering og databaser Introduksjon, Enkeltentiteten, Informasjon Ola Bø.
LC238D Datamodellering og databaser Else Lervik, september 2011 Forelesning 6, Uke 38 Objektorientering i ER-modeller.
1 Kap 02 Relasjonsdatabaser. Data-organisering - Manuelt Ansatte Pasienter Utstyr Økonomi Avdelinger RøntgenOnkologisk.
Chapter 02 Wavelets - Lineær algebra
DAT 202 Databaser Del 1.
Mohammad Ali Koteich Danial Siddiq Sheikh. Hva skal vi snakke om? Directory LDAP The Apache Directory Project.
PPS 2007 og BI rpporteringsløsninger 11 april 2007.
INF 295 forelesning 13 - kap 6 Andre prioritetskøer Hans Fr. Nordhaug (Ola Bø)
INF 295 Algoritmer og datastrukturer Forelesning 10 Invarianter og Hashing Hans Fr. Nordhaug (Ola Bø)
1 Arrayer og form(ularer) (Kapittel 4). 2 Mål  Forstå assosiative og superglobale arrays  Kunne behandle webformularer (forms)  Kjenne forskjellen.
Structured Query Language Kræsj-kurs
ER-modellen, notasjon ENTITETS- Attributter TYPE Relasjon
Eksempel på SQL ”SQL-setninger” har en struktur som likner på ”naturlig språk”, med ”verb, subjekter og adjektiver”. SQL-setningene begynner alltid med.
DATABASE: Oppgave 2 et medlemsregister for en idrettsklubb med flere idrettsgrener (fotball, håndball, osv). klubben ønsker å lagre informasjon om medlemmenes.
Introduksjon I126 Databaser og datamodellering Høsten 2000 Institutt for informatikk Universitet i Bergen.
Fødselsdato (dmå) er født har lønn Ansatt (ansnr) Beløp (NKr)+ Telefon
Konfigurasjonsstyring Configuration Management
Linq To SQL Fagdag 20. November DataContext  DataContexten er mappingen mot databasen –Generer objekter for alle entiteter (tabeller), med properties.
Skjemaendringer i systemer bestående av XML-data i relasjonsdatabaser Høgskolen i Gjøvik Master i Medieteknikk, Marianne Brattrud.
Kapping av plater Mål: Vi skal lage komponenter for en møbelfabrikk ut fra standardiserte plater på 12 x 24 dm. Komponentene har lengde og bredde oppgitt.
INF3100 – – Ellen Munthe-Kaas Indeksering UNIVERSITETET I OSLO © Institutt for Informatikk Utvalgte animerte lysark: lysark nr. 7, 8, 9, 10,
Eksempel: Sletting ved tynn indeks Slett post med a = 60 –Ingen endring nødvendig i indeksen. Slett post med a = 40 –Den første posten i blokken er blitt.
Se ellers læreboka, kap , side
Objektorientert utforming In 140 Sommerville kap. 12.
Freenet A Distributed Anonymous Information Storage and Retrieval System.
Web-grensesnitt Øyvind A. Bratne - April 2004.
Eksempel idé 1 – ta kartesisk produkt, velg tupler, projiser attributter   B,C,Y (  W=X  A=3  Z=‘a’ (R  S)) ABC...W 1z1 4 2c6 2 3r8 7 4n9 4 2j0 3.
Trondheim Lytte- og Læresenter. Sammendrag Prosjektet ble iverksatt fordi Trondheim Lytte- og Læresenter så behovet i å ha et elektronisk kundearkiv i.
Gamle systemer In 140 Forelesning Nr 19 Sommerville kap 26.
Peer-To-Peer Cooperative Multiplayer Gaming On Mobile Devices.
Android-Programmering Våren Oversikt Long-running operasjoner Introduksjon til Android services On-demand service Bruk av servicer på tvers av prosesser.
INF1300 Introduksjon til databaser
Utvalgte animerte lysark: lysark nr. 7, 8, 9, 10, 26, 28, 30, 33, 35
INF1300 Introduksjon til databaser
INF1300 Introduksjon til databaser
Utskrift av presentasjonen:

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

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

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

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

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.

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)

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.

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

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.

Restrict Velger rader av en relasjon A W X Y Z

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

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

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

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

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

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

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

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

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

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

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

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.

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.

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.

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.