bazy danych 1

advertisement
BAZY DANYCH 1
sprawdzian 27.05.2010
Zadanie 1
Sformułowane niżej polecenie pobrania danych zapisać
a) w postaci zapytania z podzapytaniem skorelowanym w klauzuli WHERE
b) w postaci zapytania z podzapytaniem nieskorelowanym w klauzuli WHERE
Treść polecenia: podać wykaz towarów (nr katalogowy, model) oferowanych przez dostawcę o numerze
identyfikacyjnym 235 (tzn. takich towarów, dla których jest oferta od tego dostawcy) .
Schematy tabel:
TOWARY
| Nr_katalog_tow | Rodzaj_tow | Model | Cena_sprzed | Ilosc_w_mag |
OFERTY_DOSTAWCOW | Id_dostawcy | Nr_katalog_tow | Cena |
12 pktów
Zadanie 2
Zapisać w postaci zapytania z zagnieżdżonym podzapytaniem następujące polecenie pobrania danych:
Podać numery katalogowe tych artykułów, których zapas w magazynie (Ilosc_w_mag) jest mniejszy niż ilość
zamówiona przez klientów w dniach 17/05/2010 do 21/05/2010.
Zastosować podzapytanie zagnieżdżone w klauzuli WHERE, odwołujące się do funkcji agregującej SUM.
Schematy tabel:
ZAMOWIENIA
| Nr_zam | Data_zam | Id_klienta | Wartosc_zam |
POZYCJE_ZAMOW
TOWARY
18 pktów
| Nr_zam | Nr_katalog_tow | Ilosc_zam |
| Nr_katalog_tow | Rodzaj_tow | Model | Cena_sprzed | Ilosc_w_mag |
BAZY DANYCH 1
sprawdzian 27.05.2010
Zadanie 3
Wprowadzenie do zadania:
Rozważamy wykonanie zapytania wymagającego złączenia dwóch tabel, z zastosowaniem metody block nested
loops join. W przypadku braku dodatkowych selekcji wykonywanych przed złączeniem koszt złączenia
szacujemy jako
M+P*N
gdzie M- liczba bloków tabeli w pętli zewn., P = M/B - liczba segmentów tej tabeli pobierana do pamięci
buforowej, B - liczba dostępnych stron bufora, N - liczba bloków tabeli w pętli wewn.
W przypadku wykonywania dodatkowej selekcji wierszy z obu tabel, dla zapytania postaci:
SELECT <kolumny z tabel S i T>
FROM S JOIN T ON <warunek złączenia>
WHERE <warunek selekcji w tabeli S >
AND <warunek selekcji w tabeli T > ;
/* zapytanie Q */
całkowity koszt wykonania szacujemy jako
MSEL + PSEL * NSEL
/*wzór 1*/
w przypadku , gdy w pętli wewn. NIE JEST tworzona pośrednia tabela wyniku selekcji
oraz jako
MSEL + PSEL * N1 + NSEL
/*wzór 2*/
w przypadku , gdy w pętli wewn. JEST tworzona pośrednia tabela wyniku selekcji
Oznaczenia: MSEL - liczba pobrań bloków potrzebnych do wykonania selekcji w tabeli w pętli zewnętrznej. ,
PSEL - liczba segmentów odpowiadającą liczbie wierszy wyniku selekcji tabeli w pętli zewn.
NSEL - liczba pobrań bloków potrzebnych do wykonania selekcji w tabeli w pętli wewnętrznej..
N1 - liczba bloków tabeli wynikowej selekcji w pętli wewnętrznej
Zadanie:
a ) Wyprowadzić wzory (1) i (2) w drodze SZCZEGÓŁOWEGO opisu przebiegu wykonania zapytania
postaci <zapytanie Q> z zastosowaniem metody block nested loops join. Poprawność wzorów powinna być
jasno wykazana na podstawie analizy przebiegu wykonania.
b ) Rozważyć dla zapytania postaci <zapytanie Q> taki plan wykonania, w którym
--selekcja w pętli ZEWN. jest wykonywana bez użycia indeksu
--selekcja w pętli WEWN. jest wykonywana z użyciem indeksu właściwego dla warunku selekcji
Należy:
--naszkicować schemat planu
--wybrać do oszacowania kosztu właściwy wzór z dwóch podanych wyżej
--przekształcić wzór do bardziej szczegółowej postaci, właściwej dla przyjętych metod selekcji.
30 pktów
Download