Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych Bazy Danych - Projekt Zasady przygotowania i oceny projektów 1 Cel projektu Celem niniejszego projektu jest zaprojektowanie i implementacja bazy danych w wybranej technologii i środowisku (preferowany Borland Interbase oraz MySql). 2 Podstawowe wymagania Temat projektu jest dowolny jednak należy go dokładnie określić. Co więcej, należy przedstawić podstawowe funkcje projektowanej bazy danych, np.: temat: Baza danych do obsługi osiedlowej biblioteki funkcje: wprowadzenie nowej książki do bazy danych, wprowadzenie nowego użytkownika, wyszukiwanie książek i czytelników według rożnych kryteriów, rejestracja wypożyczeń i zwrotów książek, tworzenie raportów wypożyczeń (najbardziej popularne książki itp.). Projektowana baza danych (po procesie normalizacji) musi zawierać co najmniej 7 powiązanych ze sobą tabel. Co więcej, we wstępnej fazie projektu, muszą występować przynajmniej 2 relacje wiele do wielu, które następnie zostaną zdekomponowane do do relacji jeden do wielu i wiele do jednego. 3 Co należy przygotować? 3.1 Dokumenty W trakcie trwania projektu należy przygotować dwa dokumenty (wydruki, a nie dokumenty elektroniczne - takie nie będą przyjmowane): wstępna dokumentacje projektu i raport końcowy projektu. 3.1.1 Wstępna dokumentacja projektu Zawartość: Opis fragmentu rzeczywistości który będzie modelowany przy pomocy realizowanego projektu. Należy dokładnie sprecyzować przedmiot modelowania (hurtownia spożywcza, komis samochodowy, wypożyczalnia filmów DVD itp.) jego cel, przegląd zadań, specyfiki i uwarunkowań. 1
Zestaw tzw. reguł biznesowych pozwalających na wyodrębnienie podstawowych obiektów (tj. encji) modelu i powiązań pomiędzy nimi. Może to być napisane w sposób następujący: W danym okresie czasu, klient może wypożyczyć wiele kaset wideo z wypożyczalni BigVid. Jednocześnie, podczas tego okresu czasu, każda z tych kaset może być wypożyczona przez wielu klientów.. Diagram modelowania encji, tzw. ERD (ang. Entity-Relationship Diagram), utworzony na podstawie powyższego opisu, np. Opis każdej encji (tabeli) występującej w powyższym diagramie. Może to być zrobione tak jak jest pokazane w Tabeli 1. Atrybut Typ danych Ograniczenia OSO_ID liczba pole autoincrement OSO_Nazwisko znakowy maksymalnie 40 znaków (wymagane) OSO_Imie znakowy maksymalnie 20 znaków (wymagane) OSO_DataUr data data w postaci DD-MM-RRRR akceptowana od dnia 01-01-1901 do 01-01-2011 OSO_Miejscowosc znakowy maksymalnie 40 znaków (wymagane) OSO_KodPocz znakowy 6 znaków postaci xx-xxx OSO_Pesel znakowy tylko 11 znaków, wszystkie wymagane OSO_idklienta liczba Referencja do pola idosoby w tabeli TBL_KLIENCI OSO_idfilmu liczba Referencja do pola idfilmu w tabeli TBL_FILMY Opis integralności referencyjnej. W raporcie należy umieścić następującą tabelę, gdzie umieszczone będą wszystkie dane dotyczące utworzonych przez nas relacji, np. Lp Nazwa relcji liczebność pole FK strona FK strona PK DELETE UPDATE 1 REF_Relacja1 NA O O R C 2 REF_Relacja2 4 NN M O C C 3 REF_Relacja3 18 NA O M SN lub R C 4 REF_Relacja4 NN M M C C gdzie 2
O - optional - charakter opcjonalny relacji M - mandatory - charakter obligatoryjny relacji NN - not null SN - set to null NA - null allowed C - cascade R - restrict Kolejnym krokiem jest analiza zależności funkcyjnych i normalizacja tabel (dekompozycja do 3NF, BCNF, 4NF) tj. należy dokonać sprawdzenia, czy tabele spełniają warunki zakładanych postaci normalnych i ew. dekompozycji w celu normalizacji. Dla każdej z tabel należy narysować schemat zależności funkcjonalnych (tak jak na poniższym rysunku) przed i po normalizacji. Jeśli w wyniku normalizacji otrzymaliśmy nowe table, należy je narysować na nowym diagramie modelowania encji. W całym projekcie korzystamy z następującej konwencji nazewnictwa przedrostek TBL_ przed nazwą tabel przedrostek REF_ przed nazwą relacji przedrostek ABC_ (gdzie ABC to 3 pierwsze litery nazwy tabeli) przed każdą nazwą atrybutu (pola) w tabeli 3.1.2 Raport końcowy projektu Zawartość: Wydruk kompletnego skryptu w języku SQL (preferowany jest dialekt używany przez My- Sql lub Borland Interbase) umożliwiający utworzenie (na podstawie przygotowanej w pierwszym etapie specyfikacji) : Wszystkich tabel Kluczy głównych i obcych Połączeń pomiędzy tabelami (relacji) - tutaj należy również określić jakie działania będą wykonywane w przypadku próby usunięcia lub modyfikacji rekordu z tabeli klucza głównego (integralność referencyjna) - zgodnie ze specyfikacją przygotowaną we wstępnej dokumentacji projektu. Dodatkowych indeksów (polecenie CREATE INDEX) 3
Wypełnienie wszystkich tabel co najmniej 15-oma rekordami, chyba ze ze względu na ograniczenia liczba rekordów w tabeli musi być mniejsza. Określić dopuszczalny zakres wartości atrybutów, np. lub ROK DECIMAL(4,0) CHECK (VALUE BETWEEN 1900 AND 2010) WIEK DECIMAL(2,0) CHECK (VALUE BETWEEN 1 AND 99) Co więcej, w skrypcie należy umieścić jak największą liczbę komentarzy opisujących poszczególne polecenia (lub ich zestawy) użyte w skrypcie. 3.2 Programy i pliki Wraz z raportem końcowym projektu należy dostarczyć kompletny skrypt (w formie pliku typu *.txt lub *.sql) zawierający zestaw poleceń w języku SQL konieczny do utworzenia zaprojektowanej struktury bazy oraz zestaw 20 zapytań pozwalający na zapoznanie się z charakterem przechowywanych w strukturze relacyjnej danych. Wśród tych zapytań muszą pojawić się: zapytania złożone zapytania skorelowane zapytania z funkcjami agregującymi 4 Terminy Tydzień Temat Uwagi 1 Spotkanie organizacyjne 2-7 Realizacja pierwszego etapu projektu + konsultacje 8 Termin dostarczenia wstępnej dokumentacji projektu 9-10 Realizacja drugiego etapu projektu + konsultacje 11-13 Implementacja bazy danych 14 Termin dostarczenia końcowej dokumentacji projeku i programów 15 Zaliczenie 5 Zasady oceniania Za każdy przedłożony w terminie element projektu zostanie przyznać odpowiednia liczba punktów Etap max l. punktów wstępna dokumentacja projektu 50 raport końcowy 15 Skrypt 15 Zapytania SQL 20 4
Następnie na tej podstawie zostanie wystawiona ocena według poniższych kryteriów punkty 0 64 65 69 70 75 76 83 84 90 91 100 ocena 2 3 3+ 4 4+ 5 5