Presentasjon lastes. Vennligst vent

Presentasjon lastes. Vennligst vent

En til en og rekursive sammenhenger Self-reflection is the school of wisdom Baltastar Gracián.

Liknende presentasjoner


Presentasjon om: "En til en og rekursive sammenhenger Self-reflection is the school of wisdom Baltastar Gracián."— Utskrift av presentasjonen:

1 En til en og rekursive sammenhenger Self-reflection is the school of wisdom Baltastar Gracián

2 2 Et organisasjonskart

3 3 Modellering av et 1:1 forhold 1:1 sammenhengen er merket med navn Sammenhengsbeskrivelse Selvsagte sammenhenger merkes ikke med navn AVDELING *avdnavn avdetasje avdtlf Avdelingsleder ANSATT *ansattnr ansattnavn ansattlonn

4 4 Modellering av en rekursiv sammneheng En rekursiv sammenheng binder sammen en entitet med seg selv Rekursive sammenhenger skal merkes AVDELING *avdelingsnavn avdelingsetasje avdelingstlf avdelingsleder overordnet ANSATT *ansattnr ansattfnavn ansattlonn

5 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 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 7 Resultater av mapping AVDELINGS AVDELINGSNAVNAVDELINGS- ETASJE AVDELINGSTLFANSATT- NR Management Marketing Accounting Purchasing Personnel & PR ANSATT ANSATT- NR ANSATT- FNAVN ANSATT- LONN AVDELINGS- NAVN OVER- ORDNET- NR 1Alice75000Management 2Ned45000Marketing1 3Andrew25000Marketing2 4Clare22000Marketing2 5Todd38000Accounting1 6Nancy22000Accounting5 7Brier43000Purchasing1 8Sarah56000Purchasing7 9Sophie35000Personnel & PR1 Fremmednøkkel avdelingsleder

8 8 Å 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 ( ANSATTNRSMALLINT, 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 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); ANSATTFNAVNAVDELINGSNAVNANSATTLONN AliceManagement75000 NedMarketing45000 ToddAccounting38000 BrierPurchasing43000 SophiePersonnel & PR35000

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

11 Å joine en tabell med seg selv ANSATT ANSATTN R ANSATT FNAVN ANSATTLONNAVDELINGSNAVNOVERORD NETNR 1Alice75000Management 2Ned45000Marketing1 3Andrew25000Marketing2 4Clare22000Marketing2 5Todd38000Accounting1 6Nancy22000Accounting5 7Brier43000Purchasing1 8Sarah56000Purchasing7 9Sophie35000Personnel & PR1 ANSATT ANSATT NR ANSATT FNAVN ANSATTLONNAVDELINGSNAVNOVERORD NETNR 1Alice75000Management 2Ned45000Marketing1 3Andrew25000Marketing2 4Clare22000Marketing2 5Todd38000Accounting1 6Nancy22000Accounting5 7Brier43000Purchasing1 8Sarah56000Purchasing7 9Sophie35000Personnel & PR1 UNDERORDNET OVERORDNET

12 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; underordnetoverordnet ansattnransatt fnavn ansattlonnavdelingsnavnoverordn etno ansattnransattfn avn ansattlonnavdelingsnavnoverordne tno 2Ned45,000Marketing11Alice75,000Management 3Andrew25,000Marketing22Ned45,000Marketing1 4Clare22,000Marketing22Ned45,000Marketing1 5Todd38,000Accounting11Alice75,000Management 6Nancy22,000Accounting55Todd38,000Accounting1 7Brier43,000Purchasing11Alice75,000Management 8Sarah56,000Purchasing77Brier43,000Purchasing1 9Sophie35,000Personnel & PR11Alice75,000Management ansattfnavn Sarah

13 13 Modeling a 1:1 recursive relationship The English monarchy

14 14 Mapping a 1:1 recursive relationship monarch montypemonnamemonnumrgnbegpremonnamepremonnum QueenVictoriaI1837/6/20WilliamIV KingEdwardVII1901/1/22VictoriaI KingGeorgeV1910/5/6EdwardVII KingEdwardVIII1936/1/20GeorgeV KingGeorgeVI1936/12/11EdwardVIII QueenElizabethII1952/2/6GeorgeVI

15 15 Creating the table CREATE TABLE monarch ( montypeVARCHAR(5), monnameVARCHAR(15)NOT NULL, monnumVARCHAR(5)NOT NULL, rgnbegDATE, premonnameVARCHAR(15), premonnumVARCHAR(5), PRIMARY KEY(monname,monnum));

16 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 ' ; premonnamepremonnum GeorgeVI

17 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 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; montypemonnamemonnumrgnbeg QueenVictoriaI KingEdwardVII KingGeorgeV KingEdwardVIII KingGeorgeVI QueenElizabethII

19 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 SAMMENSETNING antall PRODUKT *prodid prodbeskr prodkostnad prodpris

20 20 Mapping av en m:m rekursiv sammenheng PRODUkT PRODIDPRODBESKRPROD KOSTNAD PRODPRIS 1000Animal photography kit mm camera Camera case zoom lens zoom lens Photographer ’ s vest Lens cleaning cloth Tripod exposure, 100 ASA, 35mm color negative film.851 SAMMEN- SETNING ANTALLPRODIDSUBPRODID

21 21 Å lage tabellene CREATE TABLE PRODUKT ( PRODIDINTEGER, PRODBESKR VARCHAR(30), PRODKOSTNADDECIMAL(9,2), PRODPRISDECIMAL(9,2), PRIMARY KEY(PRODID)); CREATE TABLE SAMMENSETNING ( QUANTITYINTEGER NOT NULL, PRODIDINTEGER, 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 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

23 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); PRODBESKRPRODKOSTNAD 35mm camera Camera case zoom lens zoom lens Photographer’s vest25.00 Lens cleaning cloth1.00 Tripod exp. 100ASA 35mm col neg0.85


Laste ned ppt "En til en og rekursive sammenhenger Self-reflection is the school of wisdom Baltastar Gracián."

Liknende presentasjoner


Annonser fra Google