Presentation laddar. Vänta.

Presentation laddar. Vänta.

Skola elev kurs lärare ämne bibliotek låntagare lån bok skola((sNr), adress) elev((eNr), förNamn, efterNamn) lärare((lNr), förNamn, efterNamn) ämne((äNamn),

Liknande presentationer


En presentation över ämnet: "Skola elev kurs lärare ämne bibliotek låntagare lån bok skola((sNr), adress) elev((eNr), förNamn, efterNamn) lärare((lNr), förNamn, efterNamn) ämne((äNamn),"— Presentationens avskrift:

1 skola elev kurs lärare ämne bibliotek låntagare lån bok skola((sNr), adress) elev((eNr), förNamn, efterNamn) lärare((lNr), förNamn, efterNamn) ämne((äNamn), kursBok) kurs((sNr, eNr, lNr, äNamn) bibliotek((bNamn), adress) låntagare((lNr), förNamn, efterNamn) bok((ISBN), titel) lån((bNamn, lNr, ISBN, datum) Världen Delmängd Modell Databasstruktur Från verksamhet till databas

2 Från konceptuellt schema till databas Huvudsteg 1. Varje objekttyp blir ett relationsschema 2. Varje 1-1 och 1-m attribut hos en objekttyp blir ett attribut i motsvarande relationsschema 3. Varje m-m attribut blir ett eget relationsschema - attributen i detta ges av nyckelattributen i de sammanbundna relationsschemana

3 Från konceptuellt schema till databas PERSONBIL StringInteger String äger (m,m,p,p) regnr märke åldernamn

4 Generalisering i relationsscheman BIL FORDON ISA String regnr tillverkare märke

5 Relationsalgebra Selektion Projektion Union Differens Kartesisk produkt Relationsalgebran är ett formellt språk för att extrahera data ur relationer. Språket är uppbyggt av ett litet antal operatorer. De primitiva operatorerna är

6 Selektion Selektion innebär att man väljer ut ett antal tupler ur en relation baserat på något villkor. Per Kvist15000Eva Berg Parfym Bo Gren20000Eva Berg Parfym Sten Rot22000Nils HedSkor Nils Hed30000Eva BergSkor Eva Berg35000Eva Berg Parfym Namn Lön Chef Avd Per Kvist15000Eva Berg Parfym Bo Gren20000Eva Berg Parfym Eva Berg35000Eva Berg Parfym Namn Lön Chef Avd ANSTÄLLD  Avd=Parfym ANSTÄLLD

7 Projektion Projektion innebär att välja ut ett antal attribut ur en relation. Per Kvist15000Eva Berg Parfym Bo Gren20000Eva Berg Parfym Sten Rot22000Nils HedSkor Nils Hed30000Eva BergSkor Eva Berg35000Eva Berg Parfym Namn Lön Chef AvdANSTÄLLD  Namn,Lön ANSTÄLLD Per Kvist15000 Bo Gren20000 Sten Rot22000 Nils Hed30000 Eva Berg35000 Namn Lön

8 Övning i relationsalgebra ANSTÄLLD(Namn, Lön, Chef, Avd) Vad innebär följande uttryck i naturligt språk?  Namn (  Lön >  ANSTÄLLD)) Skriv ett relationsalgebraiskt uttryck som ger namnen på cheferna för de anställda som tjänar mer än på skoavdelningen.

9 Kartesisk produkt Per Kvist15000Eva Berg Parfym Bo Gren20000Eva Berg Parfym Sten Rot22000Nils HedSkor Nils Hed30000Eva BergSkor Eva Berg35000Eva Berg Parfym Namn Lön Chef AvdAnamn Våning Leksaker2 Livsmedel3 Parfym3 Skor2 Trädgård1 ANSTÄLLD AVDELNING Per Kvist15000Eva BergParfym3 Bo Gren20000Eva BergParfym3 Sten Rot22000Nils HedSkor2 Nils Hed30000Eva BergSkor2 Eva Berg35000Eva BergParfym3 Namn Lön Chef Avd Våning  Namn,Lön,Chef,Avd,Våning (  Avd = Anamn (ANSTÄLLD X AVDELNING))

10 Join Utifrån de primitiva relationsalgebraiska operatorerna kan nya bildas. R |X| S =  condition (R X S)  Namn,Lön,Chef,Avd,Våning (ANSTÄLLD | X | Avd = Anamn AVDELNING))

11 Övning i relationsalgebra Skriv ett relationsalgebraiskt uttryck som ger namn och lön för de anställda som arbetar på andra våningen. ANSTÄLLD(Namn, Lön, Chef, Avd) AVDELNING(Anamn, Våning)

12 SQL - Structured Query Language SELECT Namn, Lön FROMANSTÄLLD WHERELön >   X

13 SQL - Structured Query Language SELECT Namn, Lön FROMANSTÄLLD AS A, ANSTÄLLD AS B WHEREA.Chef = B.Namn ANDA.Lön > B.Lön Vad betyder följande SQL-fråga? ANSTÄLLD(Namn, Lön, Chef, Avd)

14 Vyer i SQL CREATE VIEW VÅNTVÅ AS (SELECT* FROMANSTÄLLD, AVDELNING WHEREANSTÄLLD.Avd = AVDELNING.Anamn ANDVåning = 2) SELECT* FROMVÅNTVÅ WHERELön > 20000

15 Nästlade SQL-frågor CREATE VIEW VÅNTVÅ AS (SELECT* FROMANSTÄLLD, AVDELNING WHEREANSTÄLLD.Avd = AVDELNING.Anamn ANDVåning = 2) SELECT Namn FROMANSTÄLLD WHERENamn NOT IN (SELECT Namn FROM VÅNTVÅ)

16 Övning SQL ANSTÄLLD(Namn, Lön, Chef, Avd) - Avd främmande nyckel AVDELNING(Anamn, Våning) SÄLJER(Avd, Vara) - Avd främmande nyckel På vilka våningar finns anställda som tjänar mer än 20000? Vilka anställda arbetar på en avdelning som säljer skor? På vilka våningar finns anställda med en chef som tjänar mer än 20000? På vilka våningar säljs inte skor?

17 Systemkatalog SYSCOLUMNS COLUMNTABLEDOMAINPKFKFK-TABLE NamnANSTÄLLDStringyesno LönANSTÄLLDIntegernono ChefANSTÄLLDStringnoyesANSTÄLLD AvdANSTÄLLDStringnoyesAVDELNING AnamnAVDELNINGStringyesno VåningAVDELNINGIntegernono SELECT COLUMN FROM SYSCOLUMNS WHERE FK = ”yes” AND TABLE = ”ANSTÄLLD”

18 Optimering Inläsning och parsing Frågeoptimering Kodgenerering Frågeexekvering Bearbetad fråga Exekveringsplan Kod för exekvering Resultat Fråga

19 Initialt frågeträd SELECT Namn FROM ANSTÄLLD, AVDELNING, SÄLJER WHERE Lön > AND ANSTÄLLD.Avd = AVDELNING.Anamn AND SÄLJER.Avd = AVDELNING.Anamn AND SÄLJER.Vara = ”Skor”  Namn ANSTÄLLD AVDELNINGSÄLJER  Lön > AND ANSTÄLLD.Avd = AVDELNING.Anamn AND SÄLJER.Avd = AVDELNING.Anamn AND SÄLJER.Vara = ”Skor” X X

20 Transformerat frågeträd  Namn ANSTÄLLD AVDELNING SÄLJER  ANSTÄLLD.Avd = AVDELNING.Anamn AND SÄLJER.Avd = AVDELNING.Anamn X X  Lön >  SÄLJER.Vara = ”Skor”

21 Transformerat frågeträd  Namn ANSTÄLLD AVDELNING SÄLJER |X| Avd = Anamn  Lön >  SÄLJER.Vara = ”Skor” |X| ANSTÄLLD.Avd = AVDELNING.Anamn


Ladda ner ppt "Skola elev kurs lärare ämne bibliotek låntagare lån bok skola((sNr), adress) elev((eNr), förNamn, efterNamn) lärare((lNr), förNamn, efterNamn) ämne((äNamn),"

Liknande presentationer


Google-annonser