Presentasjon lastes. Vennligst vent

Presentasjon lastes. Vennligst vent

En til mange sammenhenger Cow of many-well milked and badly fed Spanish proverb.

Liknende presentasjoner


Presentasjon om: "En til mange sammenhenger Cow of many-well milked and badly fed Spanish proverb."— Utskrift av presentasjonen:

1 En til mange sammenhenger Cow of many-well milked and badly fed Spanish proverb

2 2 Aksje med tilleggskolonner stock stkcodestkfirmstkpricestkqtystkdivstkpenatnameexchrate FCFreedonia Copper27.50105291.8416United Kingdom1.00 PTPatagonian Tea55.25126352.5010United Kingdom1.00 ARAbyssinian Ruby31.82220101.3213United Kingdom1.00 SLGSri Lankan Gold50.37328682.6816United Kingdom1.00 ILZIndian Lead &Zinc37.7563903.0012United Kingdom1.00 BEBurmese Elephant.071547130.013United Kingdom1.00 BSBolivian Sheep12.752316781.7811United Kingdom1.00 NGNigerian Geese35.00123231.6810United Kingdom1.00 CSCanadian Sugar52.7847162.5015United Kingdom1.00 ROFRoyal Ostrich Farms33.7512349233.00 6United Kingdom1.00 MGMinnesota Gold53.878161221.0025USA0.67 GPGeorgia Peach2.35387333.20 5USA0.67 NENarembeen Emu12.34456191.00 8Australia0.46 QDQueensland Diamond6.7389251.50 7Australia0.46 IRIndooroopilly Ruby15.9256147.5020Australia0.46 BDBombay Duck25.551673821.0012India 0.0228

3 3 Del opp i entiteter for å unngå anomalier Innsetting Sletting Oppdatering

4 4 En til mange sammenhengen Entiteter henger sammen med andre entiteter En 1:m sammenheng

5 5 Hierarkiske sammenhenger Opptrer ofte Svarer til 1:M sammenhenger FIRMDIVISIONDEPARTMENTSECTION

6 6 Mapping til relasjonsdatabase Hver entitet blir en tabell Entitetsnavnet blir tabellnavn Hver attributt blir en kolonne Legg til en ekstra kolonne til tabellen på mange-siden av 1:m sammenhengen Identifikatoren på 1-enden plasseres i ekstrakolonnen

7 NATION og STOCK nation natcodenatnameexchrate UKUnited Kingdom1.00 USAUnited States0.67 AUSAustralia0.46 INDIndia0.0228 stock stkcodestkfirmstkpricestkqtystkdivstkpenatcode FCFreedonia Copper27.50105291.8416UK PTPatagonian Tea55.25126352.5010UK ARAbyssinian Ruby31.82220101.3213UK SLGSri Lankan Gold50.37328682.6816UK ILZIndian Lead &Zinc37.7563903.0012UK BEBurmese Elephant.071547130.013UK BSBolivian Sheep12.752316781.7811UK NGNigerian Geese35.00123231.6810UK CSCanadian Sugar52.7847162.5015UK ROFRoyal Ostrich Farms33.7512349233.00 6UK MGMinnesota Gold53.878161221.0025USA GPGeorgia Peach2.35387333.205USA NENarembeen Emu12.34456191.008AUS QDQueensland Diamond6.7389251.507AUS IRIndooroopilly Ruby15.9256147.5020AUS BDBombay Duck25.551673821.0012IND

8 8 Fremmednøkler En fremmednøkkel er en kolonne som er primærnøkkel i en annen tabell. natcode i stock er en fremmednøkkel fordi natcode er primærnøkkelen i nation

9 9 Referanseintegritet For hver verdi av en fremmednøkkel eksisterer det en primærnøkkel med den verdien. For hver verdi av natcode i stock er det en verdi av natcode i nation En fremmednøkkel kan aldri være NULL. En primærnøkkel må eksistere før fremmednøkkelen kan defineres. nasjonen må lagres før dens aksjer

10 10 Lage tabellene CREATE TABLE nation ( natcodeCHAR(3), natnameVARCHAR(20), exchrateDECIMAL(9,5), PRIMARY KEY (natcode)); CREATE TABLE stock ( stkcodeCHAR(3), stkfirmVARCHAR(20), stkpriceDECIMAL(6,2), stkqtyDECIMAL(8), stkdivDECIMAL(5,2), stkpeDECIMAL(5), natcodeCHAR(3), PRIMARY KEY(stkcode), CONSTRAINT fk_stock_nation FOREIGN KEY(natcode) REFERENCES nation ON DELETE RESTRICT);

11 11 Uttrykke en 1:m sammenheng i MS Access

12 12 Join Lage en ny tabell fra to eksisterende tabeller ved å matche på en felles kolonne. SELECT * FROM stock, nation WHERE stock.natcode = nation.natcode; stkcodestkfirmstkpricestkqtystkdivstkpenatcodenatcode1natnameexchrate NENarembeen Emu12.34456191.008AUS Australia0.46000 IRIndooroopilly Ruby15.92561470.5020AUS Australia0.46000 QDQueensland Diamond6.73892510.507AUS Australia0.46000 BDBombay Duck25.551673821.0012IND India0.02280 ROFRoyal Ostrich Farms33.7512349233.006UK United Kingdom1.00000 CSCanadian Sugar52.7847162.5015UK United Kingdom1.00000 FCFreedonia Copper27.50105291.8416UK United Kingdom1.00000 BSBolivian Sheep12.752316781.7811UK United Kingdom1.00000 BEBurmese Elephant0.071547130.013UK United Kingdom1.00000 ILZIndian Lead & Zinc37.7563903.0012UK United Kingdom1.00000 SLGSri Lankan Gold50.37328682.6816UK United Kingdom1.00000 ARAbyssinian Ruby31.82220101.3213UK United Kingdom1.00000 PTPatagonian Tea55.25126352.5010UK United Kingdom1.00000 NGNigerian Geese35.00123231.6810UK United Kingdom1.00000 MGMinnesota Gold53.878161221.0025US United States0.67000 GPGeorgia Peach2.353873330.205US United States0.67000

13 13 Join Finn verdien av her aksjepost i GBP. Sorter rapporten etter nasjon og firma: SELECT natname, stkfirm, stkprice, stkqty, exchrate, stkprice*stkqty*exchrate AS stkvalue FROM stock,nation WHERE stock.natcode = nation.natcode ORDER BY natname, stkfirm; natnamestkfirmstkpricestkqtyexchratestkvalue AustraliaIndooroopilly Ruby15.92561470.46000411175.71 AustraliaNarembeen Emu12.34456190.46000258951.69 AustraliaQueensland Diamond6.73892510.46000276303.25 IndiaBombay Duck25.551673820.0228097506.71 United KingdomAbyssinian Ruby31.82220101.00000700358.20 United KingdomBolivian Sheep12.752316781.000002953894.50 United KingdomBurmese Elephant0.071547131.0000010829.91 United KingdomCanadian Sugar52.7847161.00000248910.48 United KingdomFreedonia Copper27.50105291.00000289547.50 United KingdomIndian Lead & Zinc37.7563901.00000241222.50 United KingdomNigerian Geese35.00123231.00000431305.00 United KingdomPatagonian Tea55.25126351.00000698083.75 United KingdomRoyal Ostrich Farms33.7512349231.0000041678651.25 United KingdomSri Lankan Gold50.37328681.000001655561.16 United StatesGeorgia Peach2.353873330.67000609855.81 United StatesMinnesota Gold53.878161220.6700029456209.73

14 14 Control break rapportering

15 15 GROUP BY - gruppert rapportering Rapporter total verdi for aksjepostene i hver nasjon. SELECT natname, SUM(stkprice*stkqty*exchrate) AS stkvalue FROM stock, nation WHERE stock.natcode = nation.natcode GROUP BY natname; natnamestkvalue Australia946430.65 India97506.71 United Kingdom48908364.25 United States30066065.54

16 16 HAVING – brukes som where, men for å velge ut fra grupperte rader Finn totalverdien av aksjer for hver nasjon som har mer enn to aksjeposter SELECT natname, SUM(stkprice*stkqty*exchrate) AS stkvalue FROM stock, nation WHERE stock.natcode = nation.natcode GROUP BY natname HAVING COUNT(*) >= 2; natnamestkvalue Australia946430.65 United Kingdom48908364.25 United States30066065.54 NB! Having følges alltid av count, sum, avg, max eller min

17 17 Underspørringer En spørring nøstet inni en annen spørring Finn navnene til alle australske aksjer. SELECT stkfirm FROM stock WHERE natcode IN (SELECT natcode FROM nation WHERE natname = 'Australia'); stkfirm Narembeen Emu Queensland Diamond Indooroopilly Ruby

18 18 Korrelert Underspørring Beregner innerspørringen mange ganger Finn aksjepostene som har større antall aksjer enn gjennomsnittet for nasjonen. SELECT natname, stkfirm, stkqty FROM stock, nation WHERE stock.natcode = nation.natcode AND stkqty > (SELECT AVG(stkqty) FROM stock WHERE stock.natcode = nation.natcode) natnamestkfirmstkqty AustraliaQueensland Diamond89251 United KingdomBolivian Sheep231678 United KingdomRoyal Ostrich Farms1234923 United StatesMinnesota Gold816122

19 19 Views - virtuelle tabeller En kunstig tabell som lages av DBMS når den trengs. Bare definisjonen av viewet lagres, ikke den kunstige tabellen CREATE VIEW stkvalue (nation, firm, price, qty, exchrate, value) AS SELECT natname, stkfirm, stkprice, stkqty, exchrate, stkprice*stkqty*exchrate FROM stock, nation WHERE stock.natcode = nation.natcode;

20 20 Views - spørringer Spør mot view som du spør mot tabell SELECT nation, firm, value FROM stkvalue WHERE value > 100000; nationfirmvalue United KingdomFreedonia Copper289547.50 United KingdomPatagonian Tea698083.75 United KingdomAbyssinian Ruby700358.20 United KingdomSri Lankan Gold1655561.16 United KingdomIndian Lead & Zinc241222.50 United KingdomBolivian Sheep2953894.50 United KingdomNigerian Geese431305.00 United KingdomCanadian Sugar248910.48 United KingdomRoyal Ostrich Farms41678651.25 United StatesMinnesota Gold29456209.73 United StatesGeorgia Peach609855.80 AustraliaNarembeen Emu258951.69 AustraliaQueensland Diamond276303.24 AustraliaIndooroopilly Ruby411175.71

21 21 Hvorfor lage view? Enklere spørringer Beregnede kolonner Begrensning av tilgang til deler av en tabell. Eksempel: Lønnstabell. En avdelingssjef får bare tilgang til lønnsinfo for ansatte i sin avdeling


Laste ned ppt "En til mange sammenhenger Cow of many-well milked and badly fed Spanish proverb."

Liknende presentasjoner


Annonser fra Google