Data |
Tematyka |
Punktacja |
07.03.2018r
|
Laboratorium wprowadzające
|
|
14.03.2018r 21.03.2018r
|
Model konceptualny bazy danych (model ER - bez kluczy obcych) Model powinien składać się z minimum 5 encji.
Każda encja musi mieć klucz główny oraz minimum 3 atrybuty. Należy również uwzględnić różne typy relacji:
jeden do jeden, jeden do wielu, wiele do wielu. Zadanie należy zrealizować w dowolnym narzędziu do modelowania BD (np.Oracle Data modeler, MySQL Workbench, PgModeler).
| (0-3)
|
21.03.2018r
|
Model relacyjny bazy danych (fizyczny - z kluczami obcymi) Model ten powinien zawierać również encje
wyodrębnione z relacji wiele do wielu, tzw. encje relacyjne, pośredniczące. Zadanie należy zrealizować w dowolnym narzędziu do modelowania
BD (np.Oracle Data modeler, MySQL Workbench, PgModeler). |
(0-3) |
28.03.2018r
|
Skrypt DDL Należy wygenerować skrypt w języku SQL tworzący bazę danych według ustalonego wcześniej schematu.
Jest to skrypt tworzący tabele za pomocą polecenia CREATE TABLE. Skrypt musi zawierać kod
tworzący klucze obce dla tabel oraz typy atrybutów (DATE, VARCHAR2(), NUMBER). Proszę zwrócić szczególną uwagę na minimalizowanie
przydzielanych zasobów do atrybutów (atrybut musi mieć przydzielony tylko taki typ oraz wielkość, jaka jest mu niezbędna). Zadanie należy zrealizować w dowolnym narzędziu do modelowania
BD (np.Oracle Data modeler, MySQL Workbench, PgModeler). |
(0-3) |
11.04.2018r
|
Procedura INSERT Należy napisać skrypt w języku SQL, który za pomocą poleceń INSERT do każdej z tabel wstawi
minimum 10 wierszy. Należy zwrócić szczególna uwagę na dodawanie wierszy do tabel powiązanych ze sobą kluczem obcym, tzw. tabel nadrzędnych i podrzędnych. |
(0-3) |
18.04.2018r
|
Procedura SELECT Należy napisać w SQL do utworzonego schematu bazy danych polecenia select:
- 2 polecenia select używające klauzuli where,
- 2 polecenia select używające złączeń (join),
- 2 polecenia select z podzapytaniem,
- 2 polecenia select wykorzystujące funkcje agregujące oraz grupowanie.
|
(0-3) |
25.04.2018r
|
Procedura TRIGGER Należy napisać w języku SQL dwa dowolne triggery. |
(0-3) |
09.05.2018r
16.05.2018r
23.05.2018r
|
Program realizujący GUI Program ma być aplikacją kliencką zbudowaną na bazie modelu projektowanego na poprzednich
ćwiczeniach. Wybór języka programowania jest dowolny (np. Java lub Python). Aplikacja może być napisana za pomocą programów
pomagających modelowanie graficznego interfejsu np. NetBeans lub PyQt z Qt Designer. Niewskazane jest używanie bibliotek ORM. Projekt oddawany jest w całości.
Program ma mieć interfejs graficzny, za pomocą którego należy móc realizować:
- Program powinien wyświetlać zawartość min. 2 tabel. (select na dwóch tabelach),
- powinien implementować min. jedną funkcję do wstawienia rekordu (insert), jedną do usunięcia
rekordu (delete) oraz jedną do aktualizacji zawartości rekordu (update),
- powinien zawierać min 2 dodatkowe funkcje. Np. liczyć wartość wszystkich kosztów
produktów, zliczać liczbę pracowników, wyliczać ich średnią pensję itp.
Punktacja: |
Wyświetlanie zawartości tabel | (0-1) |
Insert + Update + Delete | (0-3) |
Dodatkowe funkcje | (0-2) |
Styl kodowania | (0-3) |
|
(0-9)
|
30.05.2018r
|
Procedura INSERTv2 Należy napisać skrypt SQL insertujący do wybranych dwóch powiązanych ze sobą tabel minimum
10000 rekordów. |
(0-3) |
06.06.2018r
|
Procedura INDEX Napisać zapytanie sql do tabel, w których jest wstawionych 10000 rekordów. Przeanalizować plan
zapytania, najlepiej jakby to zapytanie było nieefektywne. Utworzyć indeks na tabeli i sprawdzić czy
pomógł on w uzyskaniu lepszego planu zapytania. Dobór właściwego indeksu należy do Państwa
zadania. Należy wykazać (np. przez pomiar czasu), że poprawne zakładanie indeksów znacząco optymalizuje czas dostępu do danych, w stosunku do bazy bez indeksów. |
(0-3) |