Oskar Skibski, grupa nr 4, sala 2043

Bazy danych 2015/16

Laboratorium 13 (18.01.2016) - QP / Plany zapytań

Podstawy teoretyczne były na wykładzie. Parę rzeczy które musimy wiedzieć zanim przejdziemy dalej:

Zadanie 1. (egzamin 2008)

Dany jest następujący schemat tabeli reprezentującej odcinki dwukierunkowych linii kolejowych (w tabeli odcinki nie powtarzają się):

CREATE TABLE odcinki (
  stacjaA VARCHAR(15) NOT NULL,
  stacjaB VARCHAR(15) NOT NULL,
  dlugosc INTEGER
);

Napisz w algebrze relacji zapytanie o to, czy z Warszawy można dojechać do Gdyni w co najwyżej dwóch przesiadkach.

Zadanie 2. (egzamin 200?)

Napisać w algebrze relacji następujące zapytanie:

SELECT o.PESEL klient
FROM Osoby o
WHERE NOT EXISTS (SELECT 6+7 FROM Telefony WHERE o.PESEL = PESEL);
Zadanie 3. (egzamin 2008)

SZBD ma bufory pamięci operacyjnej na 100 bloków dyskowych. Tabela Zamowienia (numer NUMBER(10), towar VARCHAR(20), ilosc NUMBER(10)) zajmuje 10000 bloków dyskowych. W jednym bloku mieszczą się informacje o 50 zamówieniach. Wykonano następujące zapytanie:

SELECT towar
FROM Zamowienia
GROUP BY towar
HAVING SUM(ilosc) >= ALL (SELECT SUM(ilosc) FROM Zamowienia GROUP BY towar);

Podaj jak najefektywniejszy plan wykonania tego zapytania i oszacuj kost tego planu (podaj liczbę operacji odczytu i zapisu bloku dyskowego) przy założeniu, że nie korzystamy z żadnych indeksów i że na początku wszystkie bufory są puste, a dane są tylko na dysku.

Zadanie 4. (egzamin 200?)

Schemat danych:
Osoby(PESEL (PK), Imie, Nazwisko, Miasto);
Telefony(Numer (PK), PESEL, Abonament);

Dane jest zapytanie:

SELECT PESEL
FROM Telefony, Osoby
WHERE Telefony.PESEL = Osoby.PESEL
 AND Miasto BETWEEN 'A' AND 'CZZZZ'
 AND Abonament = 'Standardowy';

Wskazać struktury pomocnicze, które najlepiej wspierają wykonanie tego zapytania. Podać najlepszy plan wykonania zapytania działający przy założeniu istnienia tych struktur. Oszacować jego koszt w terminach operacji wejścia-wyjścia.


Oskar Skibski (oski@mimuw.edu.pl), Wydział Matematyki, Informatyki i Mechaniki