1 / 21

Från verksamhet till databas

Världen. Delmängd. bibliotek låntagare. skola elev. Modell. lån. kurs. bok. lärare ämne. bibliotek. ((bNamn), adress). skola. ((sNr), adress).

art
Download Presentation

Från verksamhet till databas

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. 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 Från konceptuellt schema till databas

  3. Från konceptuellt schema till databas String String String Integer märke namn ålder regnr äger (m,m,p,p) PERSON BIL

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

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

  6. Selektion ANSTÄLLD Namn Lön Chef Avd Per Kvist 15000 Eva Berg Parfym Bo Gren 20000 Eva Berg Parfym Sten Rot 22000 Nils Hed Skor Nils Hed 30000 Eva Berg Skor Eva Berg 35000 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 15000 Eva Berg Parfym Bo Gren 20000 Eva Berg Parfym Eva Berg 35000 Eva Berg Parfym sAvd=ParfymANSTÄLLD

  7. Projektion ANSTÄLLD Namn Lön Chef Avd Per Kvist 15000 Eva Berg Parfym Bo Gren 20000 Eva Berg Parfym Sten Rot 22000 Nils Hed Skor Nils Hed 30000 Eva Berg Skor Eva Berg 35000 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 > 20000 (ANSTÄLLD)) Skriv ett relationsalgebraiskt uttryck som ger namnen på cheferna för de anställda som tjänar mer än 25000 på skoavdelningen.

  9. AVDELNING ANSTÄLLD Namn Lön Chef Avd Anamn Våning Kartesisk produkt Per Kvist 15000 Eva Berg Parfym Bo Gren 20000 Eva Berg Parfym Sten Rot 22000 Nils Hed Skor Nils Hed 30000 Eva Berg Skor Eva Berg 35000 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 15000 Eva Berg Parfym 3 Bo Gren 20000 Eva Berg Parfym 3 Sten Rot 22000 Nils Hed Skor 2 Nils Hed 30000 Eva Berg Skor 2 Eva Berg 35000 Eva Berg Parfym 3

  10. Utifrån de primitiva relationsalgebraiska operatorerna kan nya bildas. R |X| <condition> S = scondition (R X S) Join 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. 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? Övning SQL

  17. SYSCOLUMNS Systemkatalog 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 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 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

More Related