Presentasjon lastes. Vennligst vent

Presentasjon lastes. Vennligst vent

Eksempel idé 1 – ta kartesisk produkt, velg tupler, projiser attributter   B,C,Y (  W=X  A=3  Z=‘a’ (R  S)) ABC...W 1z1 4 2c6 2 3r8 7 4n9 4 2j0 3.

Liknende presentasjoner


Presentasjon om: "Eksempel idé 1 – ta kartesisk produkt, velg tupler, projiser attributter   B,C,Y (  W=X  A=3  Z=‘a’ (R  S)) ABC...W 1z1 4 2c6 2 3r8 7 4n9 4 2j0 3."— Utskrift av presentasjonen:

1 Eksempel idé 1 – ta kartesisk produkt, velg tupler, projiser attributter   B,C,Y (  W=X  A=3  Z=‘a’ (R  S)) ABC...W 1z1 4 2c6 2 3r8 7 4n9 4 2j0 3 3t5 9 7e3 3 8f5 8 1h7 5 XYZ 1aa 2fc 3tb 4bb 7ka 6ea 7gc 8ib 9ec Relasjon RRelasjon S BCY r8k Resultat  B,C,Y ...  SR ABC...WXYZ 1z1 41aa 2fc 2c6 21aa 2fc 3r8 71aa 2fc 3r8 77ka 4n9 41aa 2fc v 2j0 31aa 2cc 3t5 91aa 2fc 7e3 31aa 2fc v Merk: #attributter = #R-attributter + #S-attributter #tupler = #R-tupler * #S-tupler SELECT B,C,Y FROM R,S WHERE W=X AND A=3 AND Z=‘a’ 1

2 idé 2 – velg tupler, gjør equijoin, projiser attributter   B,C,Y ((  A=3 (R)) ⋈ W=X (  Z=‘a’ (S))) ABC...W 1z1 4 2c6 2 3r8 7 4n9 4 2j0 3 3t5 9 7e3 3 8f5 8 1h7 5 XYZ 1aa 2fc 3tb 4bb 7ka 6ea 7gc 8ib 9ec Relasjon R Relasjon S BCY r8k  B,C,Y ⋈ W=X SR  A=3  Z=‘a’ ABC...W 3r8 7 3t5 9 XYZ 1aa 7ka 6ea ABC WXYZ 3r8 77ka Eksempel (forts) SELECT B,C,Y FROM R,S WHERE W=X AND A=3 AND Z=‘a’

3 idé 3 – bruk indekser på R.A og S.X –bruk indeksen på R.A for å velge tupler med R.A = 3 –bruk indeksen på S.X for å finne tupler som matcher R.W –plukk ut S-tupler hvor Z = ‘a’ –join tupler fra R og S som matcher –projiser B,C,Y ABC...W 1z1 4 2c6 2 3r8 7 4n9 4 2j0 3 3t5 9 7e3 3 8f5 8 1h7 5 XYZ 1aa 2fc 3tb 4bb 7ka 6ea 7gc 8ib 9ec Relasjon R Relasjon S BCY r8k ABC...W 3r8 7 3t5 9 XYZ 7ka 7gc 9ec ABC WXYZ 3r8 77ka I R.A I S.X 3 7,9 Eksempel (forts) SELECT B,C,Y FROM R,S WHERE W=X AND A=3 AND Z=‘a’

4 INF3100 - 21.3.2014 - Ellen Munthe-Kaas 4 Enkel grammatikk: eksempel Finn filmer med skuespillere født i 1960: SELECT title FROM StarsIn WHERE starName IN ( SELECT name FROM MovieStar WHERE birthDate LIKE ‘%1960’); SELECT FROM WHERE SELECT FROM WHERE title StarsIn IN starName ( ) name MovieStar LIKE birthDate‘%1960’

5 Konvertering av SFW – eksempel SELECT name FROM MovieStar WHERE birthDate LIKE ‘%1960’ –produktet av relasjonene i –gjør seleksjon basert på –projiser på attributtene i SELECT FROM WHERE name MovieStarbirthDate‘%1960’ LIKE MovieStar  birthDate LIKE ‘%1960’  name

6 Konvertering av subspørringer For subspørringer bruker vi en foreløpig operator – to-arguments seleksjon  Videre behandling avhenger av typen. Vi skal se på t IN S som et eksempel: –erstatt med treet for S. Hvis S kan inneholde duplikater, må vi legge til en  –operator på toppen. –ertstatt to-arguments seleksjon med ett-arguments seleksjon  C, hvor C sammenligner hver komponent i t med det tilsvarende attributtet i S. –la  C ha produktet av R og S som argument. R  INtS R CC S  

7 INF3100 - 21.3.2014 - Ellen Munthe-Kaas Konvertering av subspørringer - eksempel SELECT title FROM StarsIn WHERE starName IN (SELECT name FROM MovieStar WHERE birtDate LIKE ‘%1960’) –produktet av relasjonene i –gjør seleksjon basert på, representert ved to-arguments seleksjon –projiser på attributtene i –erstatt foreløpig subspørringen med dens parseringstre SELECT FROM WHERE title StarsIn IN StarsIn  IN  title starName MovieStar  birthDate LIKE ‘%1960’  name IN 7

8  starName = name Eksempel (forts) SELECT title FROM StarsIn WHERE starName IN (...) –erstatt med treet for subspørringen –erstatt to-arguments seleksjon med ett-arguments seleksjon  C, hvor C er starName = name –la  C ha produktet av StarsIn og MovieStar som argument StarsIn  IN  title starName MovieStar  birthDate LIKE ‘%1960’  name StarsIn  starName = name  title MovieStar  birthDate LIKE ‘%1960’  name  8

9 9 INF3100 - 21.3.2014 - Ellen Munthe-Kaas Dytting av seleksjon oppover i treet Movies96  starName, studio ⋈ StarsIn  year = 1996  starName, studio ⋈ StarsIn Movies  year = 1996  starName, studio StarsIn ⋈ Movies  year = 1996 Movies Noen ganger er det nyttig å dytte seleksjon den andre veien, dvs oppover i treet, ved å bruke loven  a (R ⋈ S) = R ⋈  a (S) “bakvendt”. Eksempel: StarsIn(title, year, starName); Movies(title, year, studio …) –CREATE VIEW Movies96 AS SELECT * FROM Movies WHERE year = 1996; –SELECT starName, studio FROM Movies96 NATURAL JOIN StarsIn;


Laste ned ppt "Eksempel idé 1 – ta kartesisk produkt, velg tupler, projiser attributter   B,C,Y (  W=X  A=3  Z=‘a’ (R  S)) ABC...W 1z1 4 2c6 2 3r8 7 4n9 4 2j0 3."

Liknende presentasjoner


Annonser fra Google