Presentasjon lastes. Vennligst vent

Presentasjon lastes. Vennligst vent

Fødselsdato (dmå) er født har lønn Ansatt (ansnr) Beløp (NKr)+ Telefon

Liknende presentasjoner


Presentasjon om: "Fødselsdato (dmå) er født har lønn Ansatt (ansnr) Beløp (NKr)+ Telefon"— Utskrift av presentasjonen:

1 Fødselsdato (dmå) er født har lønn Ansatt (ansnr) Beløp (NKr)+ Telefon (tlfnr) har har betalt skatt Fødselsdato (dmå) er født har lønn Ansatt (ansnr) Beløp (NKr)+ Telefon (tlfnr) har har betalt skatt

2 Eksempel på relasjonsskjema
Ansatt ( ansnr , fdato, lønn, [skatt] ) Telefon ( ansnr , tlfnr ) *Nettolønn ( ansnr , netto ) ::= ansnr , lønn - skatt from Ansatt

3 create table Ansatt ( ansnr integer primary key, fdato date not null check ( fdato between ’ ’ and CURRENT_DATE ), lønn decimal(9,2) not null, skatt decimal(9,2) ) create table Telefon ( ansnr integer references Ansatt, tlfnr char(15) not null, primary key (ansnr , tlfnr) ) create view Nettolønn (ansattnr, netto) as select ansattnr, lønn - skatt from Ansatt

4 Operatorer på sett/mengder
For å : Union A  B - slå sammen 2 mengder Snitt A  B - finne felles undermengde Differanse A - B - finne unik undermengde i A Krever at A og B er union-kompatible : like mange kolonner korresponderende domener Hva representerer mengdene A og B ? Kartesisk produkt (cross join) A x B For å generere alle parkombinasjoner av elementene fra A og B

5 Operatorer på tabeller
Seleksjon T where c Utvalg av rader som tilfredsstiller c Projeksjon T[ a,b,...] Utvalg av kolonnene a,b,... med repeterte rader fjernet. Join A x B where A.a  B.b Kombinere kolonner fra forskjellige tabeller ved sammenligning av kolonnene a og b. Natural join A  B Sammenligner med = på kolonne med felles navn (og domene). Assosiativ Divisjon A  B Finner hvilke rader i A er assosiert med alle rader i B

6 Structured Query Language
Definere datastruktur Implementere relasjonsskjema Tabellskjema Beskrankninger Utledninger Spørre etter informasjon i databasen Oppdatere og vedlikeholde database For relasjonelle databaser Deklarativt, ikke prosedyre språk Forskjellige versjoner av standard

7 Relasjonsalgebra vs SQL
T[a,b,...] select distinct a,b,... from T T where c select * from T where c T[a,b,...] where c select distinct a,b,... from T where c select a,b,... from T where c AxB where A.aB.b select * from A join B where A.aB.b A  B select * from A natural join B Union select ... union select ... Snitt select ... intersect select ... Differanse select ... except select ...

8 Join R1: A a1 a2 a3 B b1 b2 b4 R2 : B b1 b2 b3 C c1 c2 c3 c4
R1 join R2 : A a1 a2 a3 a4 ? B b1 b2 b4 b3 C c1 c2 c3 ? b4 1 2 3 Inner join select * from R1 natural join R2 select * from R1 natural left join R2 select * from R1 natural right join R2 select * from R1 natural full join R2 1 1+2 1+3 1+2+3 Outer join

9 Beskrankninger Entydighet primary key unique Totale roller not null
references Andre check ( betingelse ) i noen tilfeller : spesialdesignet kode

10 Rmap prosedyre Prioritering : Korrekthet, klarhet, effektivitet Mål :
Unngå redundans. Minimalisere antall tabeller 2 hovedsteg : Faktatyper med sammensatt entydighetsbeskrankninger mappes til egne tabeller. Faktatyper med funkjsonelle roller tilknyttet samme entitetstype, grupperes inn i samme tabell, med entitetstypen sin identifikator som nøkkel.


Laste ned ppt "Fødselsdato (dmå) er født har lønn Ansatt (ansnr) Beløp (NKr)+ Telefon"

Liknende presentasjoner


Annonser fra Google