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 Copper United Kingdom1.00 PTPatagonian Tea United Kingdom1.00 ARAbyssinian Ruby United Kingdom1.00 SLGSri Lankan Gold United Kingdom1.00 ILZIndian Lead &Zinc United Kingdom1.00 BEBurmese Elephant United Kingdom1.00 BSBolivian Sheep United Kingdom1.00 NGNigerian Geese United Kingdom1.00 CSCanadian Sugar United Kingdom1.00 ROFRoyal Ostrich Farms United Kingdom1.00 MGMinnesota Gold USA0.67 GPGeorgia Peach USA0.67 NENarembeen Emu Australia0.46 QDQueensland Diamond Australia0.46 IRIndooroopilly Ruby Australia0.46 BDBombay Duck India

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 INDIndia stock stkcodestkfirmstkpricestkqtystkdivstkpenatcode FCFreedonia Copper UK PTPatagonian Tea UK ARAbyssinian Ruby UK SLGSri Lankan Gold UK ILZIndian Lead &Zinc UK BEBurmese Elephant UK BSBolivian Sheep UK NGNigerian Geese UK CSCanadian Sugar UK ROFRoyal Ostrich Farms UK MGMinnesota Gold USA GPGeorgia Peach USA NENarembeen Emu AUS QDQueensland Diamond AUS IRIndooroopilly Ruby AUS BDBombay Duck IND

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 Emu AUS Australia IRIndooroopilly Ruby AUS Australia QDQueensland Diamond AUS Australia BDBombay Duck IND India ROFRoyal Ostrich Farms UK United Kingdom CSCanadian Sugar UK United Kingdom FCFreedonia Copper UK United Kingdom BSBolivian Sheep UK United Kingdom BEBurmese Elephant UK United Kingdom ILZIndian Lead & Zinc UK United Kingdom SLGSri Lankan Gold UK United Kingdom ARAbyssinian Ruby UK United Kingdom PTPatagonian Tea UK United Kingdom NGNigerian Geese UK United Kingdom MGMinnesota Gold US United States GPGeorgia Peach US United States

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 Ruby AustraliaNarembeen Emu AustraliaQueensland Diamond IndiaBombay Duck United KingdomAbyssinian Ruby United KingdomBolivian Sheep United KingdomBurmese Elephant United KingdomCanadian Sugar United KingdomFreedonia Copper United KingdomIndian Lead & Zinc United KingdomNigerian Geese United KingdomPatagonian Tea United KingdomRoyal Ostrich Farms United KingdomSri Lankan Gold United StatesGeorgia Peach United StatesMinnesota Gold

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 Australia India United Kingdom United States

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 Australia United Kingdom United States 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 Sheep United KingdomRoyal Ostrich Farms 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 > ; nationfirmvalue United KingdomFreedonia Copper United KingdomPatagonian Tea United KingdomAbyssinian Ruby United KingdomSri Lankan Gold United KingdomIndian Lead & Zinc United KingdomBolivian Sheep United KingdomNigerian Geese United KingdomCanadian Sugar United KingdomRoyal Ostrich Farms United StatesMinnesota Gold United StatesGeorgia Peach AustraliaNarembeen Emu AustraliaQueensland Diamond AustraliaIndooroopilly Ruby

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