Kolokwium z baz danych: Genealogia
Autor: Krzysztof Stencel.
Struktura bazy danych: usc.create, usc.drop.
Przykładowe dane: usc.insert.
Przykładowe rozwiązanie: genealogia.sol (Witalis Domitrz).
Zadanie
Baza zawiera dane o osobach, adresach, małżeństwach i dowodach tożsamości.
Napisz następujące zapytania SQL:
- Wypisz listę osób, które są swoimi własnymi babciami.
- Dla każdej osoby podaj liczbę jej wnuków. Wypisz też dane tej osoby.
- Znajdź pary osób, dla których istnieje chwila T taka, że w chwili
T są one małżonkami, ale mieszkają pod różnymi adresami.
- Podaj liczbę nieślubnych dzieci, tzn. urodzonych w chwili, gdy ich rodzice nie są małżeństwem, a także nie byli nim od co najmniej 9 miesięcy.
- Znajdź osoby posiadające co najmniej dwa dowody w jednej chwili.
- Zakładamy, że po zmianie adresu i po zawarciu małżeństwa należy wyrobić nowy dowód w ciągu 30 dni. Znajdź osoby, które nie dopełniły tego obowiązku.
- Dla każdej poczty znajdź liczbę zawartych w jej okolicy małżeństw. Małżeństwo jest zawarte w okolicy poczty, wtedy i tylko wtedy gdy oboje małzonkowie mieszkają w okolicy tej poczty.
- Znajdź ojców, którzy każde dziecko mieli z inną kobietą.
- Znajdź osoby, które zmieniły płeć, tzn. były zarówno matkami, jak i ojcami.
- Znajdź osoby bezdzietne, które zawarły największą liczbę małżeństw.
Wypisanie osoby oznaca podanie jej id, imienia i nazwiska.