Presentation laddar. Vänta.

Presentation laddar. Vänta.

Från verksamhet till databas

Liknande presentationer


En presentation över ämnet: "Från verksamhet till databas"— Presentationens avskrift:

1 Från verksamhet till databas
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) ((sNr, eNr, lNr, äNamn) bibliotek ((bNamn), adress) låntagare ((ISBN), titel) ((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
String String String Integer märke namn ålder regnr PERSON äger (m,m,p,p) BIL

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

5 Relationsalgebra 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 Selektion Projektion Union Differens Kartesisk produkt

6 Selektion ANSTÄLLD Namn Lön Chef Avd Per Kvist 15000 Eva Berg Parfym
Bo Gren Eva Berg Parfym Sten Rot Nils Hed Skor Nils Hed Eva Berg Skor Eva Berg Eva Berg Parfym Selektion innebär att man väljer ut ett antal tupler ur en relation baserat på något villkor. Namn Lön Chef Avd Per Kvist Eva Berg Parfym Bo Gren Eva Berg Parfym Eva Berg Eva Berg Parfym sAvd=ParfymANSTÄLLD

7 Projektion ANSTÄLLD Namn Lön Chef Avd Per Kvist 15000 Eva Berg Parfym
Bo Gren Eva Berg Parfym Sten Rot Nils Hed Skor Nils Hed Eva Berg Skor Eva Berg Eva Berg Parfym Projektion innebär att välja ut ett antal attribut ur en relation. Namn Lön Per Kvist 15000 Bo Gren 20000 Sten Rot 22000 Nils Hed 30000 Eva Berg 35000 pNamn,LönANSTÄLLD

8 Övning i relationsalgebra
ANSTÄLLD(Namn, Lön, Chef, Avd) Vad innebär följande uttryck i naturligt språk? pNamn(sLö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 AVDELNING ANSTÄLLD Namn Lön Chef Avd Anamn Våning
Per Kvist Eva Berg Parfym Bo Gren Eva Berg Parfym Sten Rot Nils Hed Skor Nils Hed Eva Berg Skor Eva Berg Eva Berg Parfym Leksaker 2 Livsmedel 3 Parfym 3 Skor 2 Trädgård 1 Namn Lön Chef Avd Våning pNamn,Lön,Chef,Avd,Våning (sAvd = Anamn (ANSTÄLLD X AVDELNING)) Per Kvist Eva Berg Parfym 3 Bo Gren Eva Berg Parfym 3 Sten Rot Nils Hed Skor 2 Nils Hed Eva Berg Skor 2 Eva Berg Eva Berg Parfym 3

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

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

12 SQL - Structured Query Language
SELECT Namn, Lön FROM ANSTÄLLD WHERE Lön > 17000 p X s

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

14 Vyer i SQL CREATE VIEW VÅNTVÅ AS (SELECT * FROM ANSTÄLLD, AVDELNING
WHERE ANSTÄLLD.Avd = AVDELNING.Anamn AND Våning = 2) SELECT * FROM VÅNTVÅ WHERE Lön > 20000

15 Nästlade SQL-frågor CREATE VIEW VÅNTVÅ AS (SELECT *
FROM ANSTÄLLD, AVDELNING WHERE ANSTÄLLD.Avd = AVDELNING.Anamn AND Våning = 2) SELECT Namn FROM ANSTÄLLD WHERE Namn 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 SELECT COLUMN FROM SYSCOLUMNS
COLUMN TABLE DOMAIN PK FK FK-TABLE Namn ANSTÄLLD String yes no Lön ANSTÄLLD Integer no no Chef ANSTÄLLD String no yes ANSTÄLLD Avd ANSTÄLLD String no yes AVDELNING Anamn AVDELNING String yes no Våning AVDELNING Integer no no SELECT COLUMN FROM SYSCOLUMNS WHERE FK = ”yes” AND TABLE = ”ANSTÄLLD”

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

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

20 Transformerat frågeträd
PNamn s ANSTÄLLD.Avd = AVDELNING.Anamn AND SÄLJER.Avd = AVDELNING.Anamn X s Lön > 20000 X ANSTÄLLD s SÄLJER.Vara = ”Skor” AVDELNING SÄLJER

21 Transformerat frågeträd
PNamn |X| ANSTÄLLD.Avd = AVDELNING.Anamn s Lön > 20000 |X| Avd = Anamn ANSTÄLLD s SÄLJER.Vara = ”Skor” AVDELNING SÄLJER


Ladda ner ppt "Från verksamhet till databas"

Liknande presentationer


Google-annonser