Podstawy SQL i technologii relacyjnych baz danych

Transkrypt

Podstawy SQL i technologii relacyjnych baz danych
SQL i podstawy technologii relacyjnych baz danych
Instrukcja do laboratorium
Przygotowanie środowiska
Instalacja oprogramowania
Pobierz i zainstaluj przeglądarkę internetową Mozilla Firefox (jeśli jeszcze nie jest zainstalowana).
Z menu programu Mozilla Firefox wybierz opcję Narzędzia → Dodatki, wyszukaj Rozszerzenie SQLite
Manager i zainstaluj je. Po zainstalowaniu otwórz SQLite Manager wybierając opcję z menu Narzędzia.
Przykładowa baza danych
Informacje ogólne
Relacyjna baza danych wykorzystywana podczas laboratorium zawiera strukturę i dane typowe dla
prostej aplikacji służącej do zarządzania wypożyczaniem książek. Struktura bazy została
przedstawiona na poniższym diagramie ERD:
1
Baza zawiera trzy tabele o następującej strukturze:
Nazwa tabeli: ksiazka
Nazwa
Typ
Not
Wartość
Klucz
Null
domyślna
główny
Opis
ksID
Integer
1
NULL
1
Identyfikator książki
nazwAutora
Varchar(50)
0
NULL
0
Nazwisko autora
imieAutora
Varchar(50)
0
NULL
0
Imię autora
tytul
Varchar(100)
0
NULL
0
Tytuł książki
mscWyd
Varchar(20)
0
NULL
0
Miejscowość wydania książki
rokWyd
Integer
0
NULL
0
Rok wydania książki
liczbaStr
Integer
0
NULL
0
Liczba stron książki
Nazwa tabeli: klient
Nazwa
Typ
Not
Wartość
Klucz
Null
domyślna
główny
Opis
kID
Integer
1
NULL
1
Identyfikator klienta
nazw
Varchar(50)
0
NULL
0
Nazwisko klienta
imie
Varchar(50)
0
NULL
0
Imię klienta
mscZam
Varchar(30)
0
NULL
0
Miejscowość zamieszkania
klienta
Nazwa tabeli: wypozyczenie
Nazwa
Typ
Not
Wartość
Klucz
Null
domyślna
główny
Opis
wID
Integer
1
NULL
1
Identyfikator wypożyczenia
ksID
Integer
0
NULL
0
Identyfikator książki
kID
Integer
0
NULL
0
Identyfikator klienta
dataWyp
Date
1
NULL
0
Data wypożyczenia
dataZwr
Date
0
NULL
0
Data zwrotu
2
Tabela wypozyczenie jest tabelą pośrednią, która tworzy relację wiele-do-wielu pomiędzy tabelami
ksiazka i klient. Wartości pól ksID i kID w tabeli wypozyczenie są związane kluczami obcymi z
odpowiednimi polami w tabelach ksiazka i klient.
Plik bazy danych
Ze strony www.testcoast.com pobierz plik biblioteka.sqlite zawierający przykładową bazę danych w
formacie SQLite, a następnie otwórz pobrany plik w programie SQLite Manager.
Po otwarciu bazy w opcjach programu włącz kontrolę kluczy obcych (DB Settings → Foreign Keys → On
→ Change).
Zadania
Wybór danych z bazy
Na podstawie przykładów przedstawionych przez prowadzącego oraz korzystając z instrukcji SELECT,
napisz zapytania SQL, dla których wynikiem będą:
1. Imiona i nazwiska klientów zamieszkałych w Warszawie, posortowane według nazwisk
malejąco.
2. Książki bez podanej liczby stron.
3. Nazwiska i imiona autorów oraz tytuły książek, które są obecnie wypożyczone.
4. Dane klientów, którzy przeczytali (wypożyczyli i oddali) książki dłuższe niż 300 stron.
Operacje na zbiorach
Na podstawie przykładów przedstawionych przez prowadzącego oraz korzystając z operacji na
zbiorach, napisz zapytania SQL, dla których wynikiem będą:
1. Suma nazw miejscowości występujących w bazie danych.
2. Nazwiska klientów, którzy wypożyczyli zarówno „Wyspę skarbów”, jak i „Enigmę”
3. Nazwiska i imiona autorów oraz tytuły wszystkich książek, które nie były nigdy wypożyczone.
Podzapytania
Na podstawie przykładów przedstawionych przez prowadzącego oraz korzystając z podzapytań,
napisz zapytania SQL, dla których wynikiem będą:
1. Wszystkie informacje o klientach, którzy kiedykolwiek wypożyczyli książki.
2. Wszystkie informacje o klientach, którzy nigdy nie wypożyczyli książki.
3. Imiona i nazwiska klientów, którzy wypożyczyli książki dłuższe niż 300 stron po 1 maja 2013
roku.
4. Wszystkie informacje o książkach napisanych przez klientów.
5. Wszystkie informacje o kliencie o najkrótszym nazwisku.
6. Książki wydane w XX wieku (podzapytanie w klauzuli FROM).
7. Wszystkie informacje o wypożyczeniu wraz z miejscowością zamieszkania wypożyczającego
(podzapytanie w klauzuli SELECT).
3
Złączenia
Na podstawie przykładów przedstawionych przez prowadzącego oraz korzystając ze złączeń, napisz
zapytania SQL, dla których wynikiem będą:
1. Imię i nazwisko wypożyczającego, data wypożyczenia i data zwrotu (EXPLICIT JOIN).
2. Imię i nazwisko wypożyczającego, data wypożyczenia i data zwrotu (NATURAL JOIN).
3. Wszystkie książki z danymi wypożyczających.
4. Książki, które nie zostały wypożyczone.
Funkcje agregujące
Na podstawie przykładów przedstawionych przez prowadzącego oraz korzystając z funkcji
agregujących, napisz zapytania SQL, dla których wynikiem będą:
1. Rok wydania najstarszej książki.
2. Średni wiek książki.
3. Liczba klientów zamieszkałych poza Warszawą.
4. Najdłuższe nazwiska klientów zamieszkałych w poszczególnych miejscowościach.
5. Nazwiska i imiona autorów oraz tytuły książek wypożyczonych więcej niż raz.
Obsługa danych
Na podstawie przykładów przedstawionych przez prowadzącego oraz korzystając z instrukcji DML,
napisz zapytania SQL, dla których wynikiem będą:
1. Dodanie siebie samego do klientów bez podania miejscowości zamieszkania.
2. Przeprowadzenie Sławomira Czerwińskiego z Sompolna do Gdańska.
3. Usunięcie klienta Eugeniusza Kwiatkowskiego.
4