ansatt (ansnr)

10
Hopp til første side Ansatt (ansnr) Beløp (NKr)+ Telefon (tlfnr) Fødselsdato (dmå) er født har har lønn har betalt skatt Ansatt (ansnr) Beløp (NKr)+ Telefon (tlfnr) Fødselsdato (dmå) er født har har lønn har betalt skatt

Upload: roz

Post on 06-Jan-2016

41 views

Category:

Documents


0 download

DESCRIPTION

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. Eksempel på relasjonsskjema. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Ansatt (ansnr)

Hopp til første side

Ansatt(ansnr)

Beløp(NKr)+

Telefon(tlfnr)

Fødselsdato(dmå) er født

har

har lønn

har betalt skatt

Ansatt(ansnr)

Beløp(NKr)+

Telefon(tlfnr)

Fødselsdato(dmå) er født

har

har lønn

har betalt skatt

Page 2: Ansatt (ansnr)

Hopp til første side

Ansatt ( ansnr , fdato, lønn, [skatt] )

Telefon ( ansnr , tlfnr )

*Nettolønn ( ansnr , netto ) ::= ansnr , lønn - skatt from Ansatt

Eksempel på relasjonsskjema

Page 3: Ansatt (ansnr)

Hopp til første side

create table Ansatt( ansnr integer primary key, fdato date not null

check ( fdato between ’1920-01-01’ 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) asselect ansattnr, lønn - skattfrom Ansatt

Page 4: Ansatt (ansnr)

Hopp til første side

Operatorer på sett/mengderFor å :

Union A B - slå sammen 2 mengderSnitt A B - finne felles undermengdeDifferanse A - B - finne unik undermengde i A

Hva representerer mengdene A og B ?

Krever at A og B er union-kompatible :• like mange kolonner• korresponderende domener

Kartesisk produkt (cross join) A x B

For å generere alle parkombinasjoner av elementene fra A og B

Page 5: Ansatt (ansnr)

Hopp til første side

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.bKombinere kolonner fra forskjelligetabeller ved sammenligning av kolonnene a og b.

Natural join A B Sammenligner med = på kolonne medfelles navn (og domene). Assosiativ

Divisjon A B Finner hvilke rader i A er assosiert med alle rader i B

Page 6: Ansatt (ansnr)

Hopp til første side

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

Page 7: Ansatt (ansnr)

Hopp til første side

Relasjonsalgebra vs SQL

T[a,b,...] select distinct a,b,... from TT where c select * from T where cT[a,b,...] where c select distinct a,b,... from T where c

select a,b,... from T where c

AxB where A.aB.b select * from A join B where A.aB.bA B select * from A natural join B

Union select ... union select ...Snitt select ... intersect select ...Differanse select ... except select ...

Page 8: Ansatt (ansnr)

Hopp til første side

JoinAa1a2a3a3

Bb1b1b2b4

Bb1b2b2b3

Cc1c2c3c4

Aa1a2a3a3a4?

Bb1b1b2b2b4b3

Cc1c1c2c3?b4

1

23

select * from R1 natural join R2

select * from R1 natural left join R2select * from R1 natural right join R2select * from R1 natural full join R2

R1: R2 : R1 join R2 :

1

1+21+31+2+3

Inner join

Outer join

Page 9: Ansatt (ansnr)

Hopp til første side

Beskrankninger

Entydighet primary keyunique

Totale roller not nullreferences

Andre check ( betingelse )i noen tilfeller : spesialdesignet kode

Page 10: Ansatt (ansnr)

Hopp til første side

Rmap prosedyre

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.

Prioritering : Korrekthet, klarhet, effektivitet

Mål :• Unngå redundans.• Minimalisere antall tabeller