Należy zaprojektować prostą bazę danych dla wybranej przez siebie
instytucji (np. biblioteka, księgarnia, przychodnia, uniwersytet,
bank itp.). Rozwiązanie powinno składać się z diagramu związków
encji oraz kodu SQL realizującego dany projekt. Należy pamiętać by
założyć indeksy na kolumnach po których teoretycznie będziemy
wyszukiwać oraz by nałożyć odpowiednie więzy integralnościowe
(UNIQUE, NOT NULL, PRIMARY KEY
itp.).
Warunkiem koniecznym zaliczenia jest, by dostarczony kod dał się wykonać w środowisku Oracle.
Każdy student musi przedstawić swój projekt osobiście. W czasie prezentacji powinien umieć obronić swoje decyzje projektowe.
W czasie prezentacji będę prosił o napisanie przykładowych zapytań do stworzonej bazy danych.
Prezentacji będzie można dokonać na zajęciach lub umawiając się indywidualnie, na konkretny termin (mejlowo lub osobiście).
Projekt powinien składać się z:
Diagramu związków encji wykonanego w dowolnym programie do modelowania lub w dowolnym innym programie graficznym. Oczekuję, że dostanę go w formacie PDF lub postscript. Może też być narysowany odręcznie na kartce papieru pod warunkiem, że zostanie to zrobione czytelnie i schludnie.
W wydziałowym labie powinny być dostępne narzędzia: Oracle Designer (trzeba mieć na nim osobne konto) oraz Rational Rose. Mam nadzieję, że dostaną państwo konta na Oracle Designer w skończonym czasie. Można też użyć dowolnego innego narzędzia, np. któregoś z wymienionych tutaj.
Godnym polecenia jest też pakiet Visual Paradigm,
a w szczególności narzędzie DB Visual ARCHITECT. Wersję 30 dniową
można ściągnąć ze strony producenta. Oprogramowanie to jest też dostępne
w wydziałowym laboratorium (pod Linuxem polecenie run_dbva
).
Diagram powinien zawierać maksymalnie 10 encji. Optymalna liczba to 6 encji. Trzeba wybrać te, które są rzeczywiście potrzebne i oddają istotę rzeczy.
Uwaga: liczba 10 odnosi się do encji, a nie ilości tabel powstałych po konwersji do modelu relacyjnego
kod tworzący indeksy tam gdzie są potrzbne
Uwaga: Oracle automatycznie tworzy
indeksy na kolumnach z atrybutami
UNIQUE
oraz PRIMARY KEY