Laste ned presentasjonen
Presentasjon lastes. Vennligst vent
1
En til en og rekursive sammenhenger
Self-reflection is the school of wisdom Baltastar Gracián
2
Et organisasjonskart
3
Modellering av et 1:1 forhold
AVDELING ANSATT *avdnavn *ansattnr avdetasje ansattnavn avdtlf ansattlonn Avdelingsleder 1:1 sammenhengen er merket med navn Sammenhengsbeskrivelse Selvsagte sammenhenger merkes ikke med navn
4
Modellering av en rekursiv sammneheng
En rekursiv sammenheng binder sammen en entitet med seg selv Rekursive sammenhenger skal merkes AVDELING ANSATT *avdelingsnavn *ansattnr avdelingsetasje ansattfnavn avdelingstlf ansattlonn avdelingsleder overordnet
5
Mapping av en 1:1 sammenheng
De vanlige reglene gjelder Hvor plasserer du fremmednøkkelen? AVDELING? ANSATT? BEGGE TABELLER? regel: Plasser fremmednøkkelen slik at det blir færrest mulig NULL - her avdeling
6
Mapping av rekursive sammenhenger
Vanlige regler 1:m Entiteten får en ekstra kolonne for fremmednøkkelen Må ha eget navn forskjellig fra primærnøkkel
7
Fremmednøkkel avdelingsleder
Resultater av mapping Fremmednøkkel avdelingsleder AVDELINGS AVDELINGSNAVN AVDELINGS- ETASJE AVDELINGSTLF ANSATT- NR Management 5 2001 1 Marketing 2002 2 Accounting 4 2003 Purchasing 2004 7 Personnel & PR 2005 9 ANSATT ANSATT- NR ANSATT- FNAVN ANSATT- LONN AVDELINGS- NAVN OVER- ORDNET- NR 1 Alice 75000 Management 2 Ned 45000 Marketing 3 Andrew 25000 4 Clare 22000 5 Todd 38000 Accounting 6 Nancy 7 Brier 43000 Purchasing 8 Sarah 56000 9 Sophie 35000 Personnel & PR
8
Hvorfor mangler referanseintegritet for OVERORDNET?
Å lage tabellene CREATE TABLE AVDELING ( AVDELINGSNAVN VARCHAR(15), AVDELINGSETASJE SMALLINT NOT NULL, AVDELINGSTLF SMALLINT NOT NULL, ANSATTNR SMALLINT NOT NULL, PRIMARY KEY(AVDELINGSNAVN) ); CREATE TABLE ANSATT ( ANSATTNR SMALLINT, ANSATTFNAVN VARCHAR(10), ANSATTLONN DECIMAL(7,0), AVDELINGSNAVN VARCHAR(15), OVERORDNET SMALLINT, PRIMARY KEY(ANSATTNR), CONSTRAINT FK_EMP_AVDELINGS FOREIGN KEY(AVDELINGSNAVN) REFERENCES AVDELING Hvorfor mangler referanseintegritet for OVERORDNET?
9
Spørring i et 1:1 forhold List lønna for hver avdelingsleder.
SELECT ANSATTFNAVN, AVDELINGSNAVN, ANSATTLONN FROM ANSATT WHERE ANSATTNR IN (SELECT ANSATTNR FROM AVDELING); ANSATTFNAVN AVDELINGSNAVN ANSATTLONN Alice Management 75000 Ned Marketing 45000 Todd Accounting 38000 Brier Purchasing 43000 Sophie Personnel & PR 35000
10
Spørring fra en rekursiv sammenheng
Finn lønna til Nancys sjef. SELECT UNDERORDNET.ANSATTFNAVN, UNDERORDNET.ANSATTLONN, OVERORDNET.ANSATTFNAVN, OVERORDNET.ANSATTLONN FROM ANSATT UNDERORDNET, ANSATT OVERORDNET WHERE UNDERORDNET.ANSATTFNAVN = 'NANCY' AND UNDERORDNET.OVERORDNETNR = OVERORDNET.ANSATTNR; UNDERORDNET.ANSATTFNAVN UNDERORDNET. ANSATTLONN OVERORDNET. ANSATTFNAVN OVERORDNET. ANSATTLONN Nancy 22000 Todd 38000
11
Å joine en tabell med seg selv
ANSATT ANSATTN R ANSATT FNAVN ANSATTLONN AVDELINGSNAVN OVERORD NETNR 1 Alice 75000 Management 2 Ned 45000 Marketing 3 Andrew 25000 4 Clare 22000 5 Todd 38000 Accounting 6 Nancy 7 Brier 43000 Purchasing 8 Sarah 56000 9 Sophie 35000 Personnel & PR UNDERORDNET ANSATT ANSATT NR ANSATT FNAVN ANSATTLONN AVDELINGSNAVN OVERORD NETNR 1 Alice 75000 Management 2 Ned 45000 Marketing 3 Andrew 25000 4 Clare 22000 5 Todd 38000 Accounting 6 Nancy 7 Brier 43000 Purchasing 8 Sarah 56000 9 Sophie 35000 Personnel & PR OVERORDNET
12
Spørring fra en rekursiv sammenheng
Finn navnene til ansatte som tjener mer enn sine overordnede SELECT UNDERORDNET.ANSATTFNAVN FROM ANSATT UNDERORDNET, ANSATT OVERORDNET WHERE UNDERORDNET.OVERORDNETNO = OVERORDNET.ANSATTNR AND UNDERORDNET.ANSATTLONN > OVERORDNET.ANSATTLONN; underordnet overordnet ansattnr ansatt fnavn ansattlonn avdelingsnavn overordn etno ansattfn avn overordne tno 2 Ned 45,000 Marketing 1 Alice 75,000 Management 3 Andrew 25,000 4 Clare 22,000 5 Todd 38,000 Accounting 6 Nancy 7 Brier 43,000 Purchasing 8 Sarah 56,000 9 Sophie 35,000 Personnel & PR ansattfnavn Sarah
13
Modeling a 1:1 recursive relationship
The English monarchy
14
Mapping a 1:1 recursive relationship
monarch montype monname monnum rgnbeg premonname premonnum Queen Victoria I 1837/6/20 William IV King Edward VII 1901/1/22 George V 1910/5/6 VIII 1936/1/20 VI 1936/12/11 Elizabeth II 1952/2/6
15
Creating the table CREATE TABLE monarch ( montype VARCHAR(5),
monname VARCHAR(15) NOT NULL, monnum VARCHAR(5) NOT NULL, rgnbeg DATE, premonname VARCHAR(15), premonnum VARCHAR(5), PRIMARY KEY(monname,monnum));
16
Spørring fra en 1:1 rekursiv sammenheng
Hvem regjerte før Elizabeth II? SELECT premonname, premonnum FROM monark WHERE monname = 'Elizabeth' and MONNUM = 'II'; premonname premonnum George VI
17
Querying a 1:1 recursive relationship
Was Elizabeth II's predecessor a king or queen? SELECT pre.montype FROM monarch cur, monarch pre WHERE cur.premonname = pre.monname AND cur.premonnum = pre.monnum AND cur.monname = 'Elizabeth' AND cur.monnum = 'II'; montype King
18
Querying a 1:1 recursive relationship
List the kings and queens of England in ascending chronological order. SELECT montype, monname, monnum, rgnbeg FROM monarch ORDER BY rgnbeg; montype monname monnum rgnbeg Queen Victoria I King Edward VII George V VIII VI Elizabeth II
19
Modellering av en m:m rekursiv sammenheng
Bill of materials (materialliste) problem Et produkt kan være en del av mange andre produkter og kan være satt sammen av mange andre produkter PRODUKT *prodid prodbeskr prodkostnad prodpris SAMMENSETNING antall
20
Mapping av en m:m rekursiv sammenheng
PRODUkT PRODID PRODBESKR PROD KOSTNAD PRODPRIS 1000 Animal photography kit 725 101 35mm camera 150 300 102 Camera case 10 15 103 zoom lens 125 200 104 28-85 zoom lens 115 185 105 Photographer’s vest 25 40 106 Lens cleaning cloth 1 1.25 107 Tripod 35 45 108 24 exposure, 100 ASA, 35mm color negative film .85 SAMMEN- SETNING ANTALL PRODID SUBPRODID 1 1000 101 102 103 104 105 2 106 107 10 108
21
Å lage tabellene CREATE TABLE PRODUKT ( PRODID INTEGER,
PRODBESKR VARCHAR(30), PRODKOSTNAD DECIMAL(9,2), PRODPRIS DECIMAL(9,2), PRIMARY KEY(PRODID)); CREATE TABLE SAMMENSETNING ( QUANTITY INTEGER NOT NULL, SUBPRODID INTEGER, PRIMARY KEY(PRODID, SUBPRODID), CONSTRAINT FK_SAMMENSETNING_PRODUKT FOREIGN KEY(PRODID)REFERENCES PRODUKT, CONSTRAINT FK_SAMMENSETNING_SUBPRODUKT FOREIGN KEY(SUBPRODID)REFERENCES PRODUKT);
22
Spørring mot en m:m rekursiv sammenheng
Finn produktid for hver del av dyrefotograferingspakken. SELECT SUBPRODID FROM PRODUKT, SAMMENSETNING WHERE PRODBESKR = 'Animal photography kit' AND PRODUKT.PRODID = SAMMENSETNING.PRODID; SUBPRODID 101 106 107 105 104 103 102 108
23
Spørring mot en m:m rekursiv sammenheng
Finn produktbeskrivelse og kostnad for hver komponent av dyrefotograferingspakken. SELECT PRODBESKR, PRODKOSTNAD FROM PRODUKT WHERE PRODID IN (SELECT SUBPRODID FROM PRODUKT, SAMMENSETNING WHERE PRODBESKR = 'Animal photography kit' AND PRODUKT.PRODID = SAMMENSETNING.PRODID); PRODBESKR PRODKOSTNAD 35mm camera 150.00 Camera case 10.00 zoom lens 125.00 28-85 zoom lens 115.00 Photographer’s vest 25.00 Lens cleaning cloth 1.00 Tripod 35.00 24 exp. 100ASA 35mm col neg 0.85
Liknende presentasjoner
© 2024 SlidePlayer.no Inc.
All rights reserved.