Ćwiczenie
Poniżej zamieszczono diagram bazy przechowującej informacje o państwach, ich ustrojach politycznych
i językach urzędowych.
1. Na podstawie diagramu utwórz bazę danych o następujących tabelach:
USTROJE_POLITYCZNE
ID
NUMBER(3)
NAZWA
NOT NULL
VARCHAR2(45)
JEZYKI
ID
NUMBER(3)
NAZWA
NOT NULL
VARCHAR2(20)
PAŃSTWA
ID
NUMBER(3)
NAZWA
NOT NULL
VARCHAR2(50)
POWIERZCHNIA
NOT NULL
NUMBER
LUDNOSC
NOT NULL
NUMBER
STOLICA
NOT NULL
VARCHAR2(30)
DEWIZA
VARCHAR2(60)
DATA_ODZYSKANIA_NIEPODLEGLOSCI
DATE
ID_USTROJU
FK
NOT NULL
NUMBER(3)
PANSTWA_JEZYKI
ID_PANSTWA
FK
NUMBER(3)
ID_JEZYKA
FK
NUMBER(3)
Pogrubione nazwy oznaczają kolumny klucza głównego tabel, a symbole FK kolumny kluczy obcych.
Przyjmij dodatkowo, że
−
nazwy języków mają być unikalne,
−
powierzchnia i ludnosc muszą być liczbami dodatnimi.
Wszystkim ograniczeniom (poza ograniczeniami dotyczącymi konieczności wypełniania pól) nadaj nazwy (tzn.
nie pozwól, aby system generował te nazwy automatycznie). Zwróć uwagę na ograniczenia nie pozwalające na
przechowywanie w pewnych kolumnach wartości NULL wynikające z diagramu.
2. Utwórz indeks na kolumnie NAZWA w tabeli PANSTWA.
3. Utwórz indeks unikalny na kolumnie NAZWA w tabeli USTROJE_POLITYCZNE.
4. Wyświetl informacje o ograniczeniach nałożonych na tabelę PANSTWA.
5. Wyświetl informacje o indeksach stworzonych dla tabeli USTROJE_POLITYCZNE.
6. Wyświetl informacje o indeksach stworzonych dla tabeli JEZYKI.
7. Wpisz do tabel dane wykorzystując poniższe informacje.
Uwaga: utwórz sekwencję panstwa_sekw i wykorzystaj ją do wstawiania wierszy do kolumny
PANSTWA.
Tabela USTROJE_POLITYCZNE
1
REPUBLIKA PARLAMENTARNA
2
MONARCHIA KONSTYTUCYJNA
3
REPUBLIKA FEDERALNA
4
REPUBLIKA
5
MONARCHIA PARLAMENTARNA
Tabela JEZYKI
1
ANGIELSKI
2
NIEMIECKI
3
FRANCUSKI
4
SUAHILI
5
WŁOSKI
6
CZESKI
7
POLSKI
8
ROMANSZ
9
HISZPAŃSKI
Dane dotyczące tabeli PANSTWA i PANSTWA_JĘZYKI
ID
NAZWA
POWIERZCHNIA LUDNOŚĆ
STOLICA
DEWIZA
DATA ODZYSKANIA
NIEPODLEGŁOŚCI
USTRÓJ POLITYCZNY
JEZYKI
URZĘDOWE
1
CZECHY
78866
10507566
PRAGA
PRAWDA
ZWYCIĘŻA
republika
parlamentarna
CZESKI
2
SZWAJCARIA 41290
7725200
ZURYCH
JEDEN
ZA
WSZYSTKICH,
WSZYSCY ZA
JEDNEGO
24.10.1648
republika federalna
NIEMIECKI
FRANCUSKI
WŁOSKI
ROMANSZ
3
KENIA
582650
37953840
NAIROBI
PRACUJMY
RAZEM
12.12.1963
republika
SUAHILI
ANGIELSKI
4
POLSKA
322575
38173000
WARSZAWA
11.11.1918
republika
parlamentarna
POLSKI
5
WIELKA
BRYTANIA
244820
62300000
LONDYN
BÓG I MOJE
PRAWO
monarchia
parlamentarna
ANGIELSKI
8. Po wstawieniu danych zatwierdź zmiany.
9. Wyświetl kolejno zawartość poszczególnych tabel.
10. Zmień ludność Polski na 38538447.
11. Zmień powierzchnię Polski na 312679 (powierzchnia administracyjna).
12. Zatwierdź zmiany.
13. W kolumnie STOLICA zmień Warszawę na Kraków. Wyświetl nazwy stolic wszystkich państw.
14. Wycofaj zmianę. Wyświetl nazwy stolic wszystkich państw.
15. Spraw, aby kolumna STOLICA nie była wymagana i w miejsce stolicy Szwajcarii wpisz wartość pustą.
16. Jako stolicę Szwajcarii wpisz BERNO i spraw, aby kolumna STOLICA na nowo była wymagana.
17. Jak zareaguje system, jeśli spróbujesz usunąć z tabeli JĘZYKI język angielski? A język hiszpański?
18. Usuń wiersz zawierający dane Kenii. Jeśli potrzeba usuń najpierw rekordy pokrewne.
19. Zmień nazwę tabeli PANSTWA na PANSTWA_EUROPEJSKIE. Wyświetl informacje o ograniczeniach
nałożonych na tabelę PANSTWA_EUROPEJSKIE.
20. Zmień nazwę kolumny POWIERZCHNIA na POWIERZCHNIA_ADMINISTRACYJNA. Wyświetl
informacje o kolumnach tabeli PANSTWA_EUROPEJSKIE.
21. Jak zareaguje system, gdy spróbujemy wstawić do tabeli USTROJE_POLITYCZNE wiersz
z identyfikatorem 9 i nazwą REPUBLIKA?
22. Utwórz nową tabelę PANSTWA2 zawierającą tylko nazwy państw, których powierzchnia
administracyjna przekracza 100 000 km
2
. Wyświetl zawartość tej tabeli.
23. Do tabeli PANSTWA2 dodaj wymaganą kolumnę CZY_DANE_AKTUALNE (zawierającą jedną literę)
o wartości domyślnej T. Wyświetl zawartość tabeli.
24. Dodaj do tabeli PANSTWA2 ograniczenie, które nie pozwoli wpisać do kolumny
CZY_DANE_AKTUALNE małej litery.
25. Jak zareaguje system, gdy spróbujemy zmienić zawartość kolumny CZY_DANE_AKTUALNE na „t” w
wierszu zawierającym dane Polski?
26. Usuń ostatnio wprowadzone ograniczenie typu CHECK.
27. Usuń kolumnę CZY_DANE_AKTUALNE.
28. W tabeli PANSTWA2 dołóż ograniczenie unikalności kolumny NAZWA.
29. Obetnij tabelę PANSTWA2.
30. Usuń indeks utworzony na kolumnie NAZWA w tabeli PANSTWA_EUROPEJSKIE.
31. Napisz polecenia, które usunęłyby wszystkie ze stworzonych w tym ćwiczeniu tabel oraz utworzoną
sekwencję.