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