Laste ned presentasjonen
PublisertAlexandra Pedersen Endret for 9 år siden
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.aB.b select * from A join B where A.aB.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.
Liknende presentasjoner
© 2024 SlidePlayer.no Inc.
All rights reserved.