Bazy Danych (projekty)

dla studentów informatyki (3 rok, inż.).
kod kursu: INEK15013P

Przed rozpoczęciem zajęć proszę zapoznać się z całością tej strony.

Organizacja zajęć

Celem tego kursu jest projektowanie, implementacja i testowanie relacyjnej bazy danych i związanej z nią desktopowej lub mobilnej aplikacji, nie będącej aplikacją webową. W ramach projektowania i testowania należy korzystać z wiedzy zdobywanej na laboratoriach z Inżynierii Oprogramowania.

Zadania te wykonywane są w 3/4-osobowych zespołach, które same ustalają sobie sposób współpracy i podział zadań, zgodnie z umieszczonym niżej planem zajęć. Skład zespołu zostanie wylosowany podczas pierwszych zajęć.

Zajęcia mają postać dobrowolnych konsultacji z nauczycielem.

Poniżej znajdują się m.in.: plan zajęć (czyli co i do kiedy należy wykonać), przykładowe tematy projektów, wymagania dotyczące zawartości i oddawania sprawozdań oraz sposób oceniania.

Plan zajęć

Prace nad projektem podzielone są na 3 etapy.

  • wstęp (tydzień 1):
    1. Utworzenie składu zespołu projektowego.
    2. Propozycja tematu projektu (wymaga akceptacji).
  • 1 etap (tygodnie 1–3): Specyfikacja wymagań:
    1. Opracowanie wymagań funkcjonalnych i niefunkcjonalnych dla bazy i aplikacji bazodanowej, czyli co (wymagania funkcjonalne) i jak (wymagania niefunkcjonalne) ma ona robić, oraz dla koguo (użytkownicy).
    2. Specyfikacja wymagań funkcjonalnych za pomocą diagramu przypadków użycia i tekstowych opisów wszystkich przypadków użycia (scenariusze funkcjonowania aplikacji bazodanowej).
  • 2 etap (tygodnie 4–8): Projekt, implementacja i testy bazy danych:
    1. Identyfikacja encji (danych przechowywanych w bazie) na podstawie analizy scenariuszy funkcjonowania aplikacji bazodanowej. Encja będzie też nazwą przyszłej tabeli.
    2. Sformułowanie wymagań dotyczących dostępu do bazy i jej zawartości (który użytkownik, na której tabeli, jakie operacje może wykonywać: wstawianie, modyfikacja usuwanie i wyszukiwanie).
    3. Opracowanie diagramu konceptualnego modelu bazy w 3. postaci normalnej:
      1. 1. postać normalna:
        1. każda kolumna przechowuje atomową wartość,
        2. min. jedna z kolumn zawiera klucze główne.
      2. 2. postać normalna:
        1. j.w.
        2. każda kolumna zależy od całego klucza, a nie tylko jego części.
      3. 3 postać normalna:
        1. j.w.
        2. żadna kolumna niekluczowa nie jest zależna od innej kolumny niekluczowej.
    4. Opracowanie diagramu fizycznego modelu bazy (dostosowanego do wybranego serwera bazy danych), na podstawie konceptualnego modelu i utworzenie skryptu SQL definiującego tę bazę, zawierającego m.in.:
      1. Zdefiniowanie użytkowników bazy danych i nadanie im odpowiednich uprawnień.
      2. Zdefiniowanie typów kolumn zgodnie z wymaganiami serwera.
      3. Ustawienie odpowiednich kolumn jako unikalne i/lub opcjonalne.
      4. Zdefiniowanie kluczy głównych i obcych dla powiązania tabel.
      5. Zdefiniowanie zachowania bazy w przypadku modyfikacji i usuwania danych w powiązanych tabelach, z wykorzystaniem wyzwalaczy.
      6. Zdefiniowanie procedur i/lub funkcji dostępu do danych (automatyzacja i bezpieczeństwo wykonywania zapytań na bazie przez aplikację bazodanową).
      7. Wykorzystanie innych możliwości wybranego systemu zarządzania bazą (opcjonalnie).
    5. Wdrożenie bazy i przetestowanie jej, w tym sprawdzenie:
      1. integralności semantycznej (czy dane mają właściwy typ, rozmiar, format itp.);
      2. integralności encji (czy tabele mają unikalne i niepuste klucze główne);
      3. integralności referencji (czy wartości kluczy obcych są puste lub odpowiadają odpowiednim kluczom głównym z powiązanymi tabelami).
  • 3 etap (tygodnie 9–14): Projekt, implementacja i testy aplikacji bazodanowej:
    1. Opracowanie makiety interfejsu graficznego aplikacji bazodanowej na podstawie scenariuszy funkcjonowania aplikacji bazodanowej i struktury bazy: szkic pokazujący krok po kroku jak będzie wyglądać i zachowywać się ta aplikacja na skutek działań jej użytkownika.
    2. Opracowanie diagramów czynności dla scenariuszy realizacji przypadków użycia: algorytm funkcjonowania aplikacji bazodanowej.
    3. Opracowanie diagramu klas: klasy i ich powiązania w aplikacji bazodanowej. Zastosowanie podziału na warstwy: modelu (szczegółowo), kontrolera/prezentera (szczegółowo) i widoku (przynajmniej szkicowo).
    4. Wykonanie i wdrożenie desktopowej lub mobilnej (nie webowej) aplikacji użytkownika dla wykonanej wcześniej bazy danych.
    5. Przetestowanie aplikacji bazodanowej (zautomatyzowane lub ewentualnie ręczne testy funkcjonalne i inne), w tym sprawdzenie:
      1. intuicyjności i idioto-odporności działania aplikacji,
      2. zgodności działania aplikacji ze scenariuszami jej funkcjonowania,
      3. wpływu aplikacji bazodanowej na zachowanie integralności i bezpieczeństwa bazy danych.
  • zakończenie (tydzień 15):
    1. Oddanie raportu (1 plik pdf) z wszystkich etapów realizacji projektu w ich ostatecznej wersji.
    2. Prezentacja ukończonej bazy i aplikacji bazodanowej, jeśli nie było tego wcześniej.
    3. Wystawienie oceny końcowej.

Tematy projektów

Przykładowe przeznaczenie projektów z zeszłych lat:

  • dla hurtowni napojów,
  • dla internetowego serwisu muzyków,
  • dla internetowego sklepu z odzieżą,
  • dla kibiców sportowych,
  • dla kina,
  • dla obsługi konta bankowego,
  • dla optymalizacji diety,
  • dla organizacji studenckiej,
  • dla producenta i sprzedawcy samochodów,
  • dla produkcji i dystrybucji napojów,
  • dla przychodni,
  • dla sklepu i wypożyczalni książek,
  • dla społecznościowego systemu podwożenia ludzi,
  • dla stacjonarnego sklepu z elektroniką,
  • dla studia nagrań,
  • dla wypożyczalni miejskich rowerów,
  • dla wypożyczalni samochodów,
  • dla zamówień w fabryce.

Przydatne strony

Sprawozdania

Każdy etap zajęć kończy się oddaniem sprawozdania z tego etapu, a zakończenie semestru – oddaniem połączonego sprawozdania ze wszystkich etapów, po ich ewentualnym poprawieniu lub uzupełnieniu.

Sprawozdanie ma być w pliku pdf, w którym należy umieścić to, co wykonano w ramach danego etapu (lub całego kursu, w sprawozdaniu końcowym). W szczególności:

  • dla projektu bazy lub aplikacji – opisy słowne, diagramy, rysunki itp.;
  • dla implementacji bazy – sposób jej wdrożenia i cały jej kod SQL z wyjaśnieniem przykładowych fragmentów;
  • dla implementacji aplikacji – sposób jej wykonania, wybrane fragmenty jej kodu z wyjaśnieniem i ilustracje pokazujące jej działanie;
  • dla testów bazy lub aplikacji – sposób jej testowania i opisy lub kod przykładowych testów.

Najpóźniej ostatniego dnia każdego etapu, w czasie zajęć, przynajmniej 1 student z zespołu projektowego musi przyjść na zajęcia w celu omówienia pracy wykonanej w danym etapie. Wcześniej sprawozdanie z tego etapu należy przesłać mailem.

Oceny

Studenci otrzymują jedną lub kilka ocen za prace wykonane w każdym etapie. Podstawą oceny jest sprawozdanie i pokazanie działania bazy/aplikacji. Ocenę tę można poprawić w ciągu tygodnia po jej otrzymaniu, na maksymalnie 4,5 (mogą być wyjątki).

Za oddanie sprawozdania po terminie ocena jest obniżana o 1 stopień.

Ocena końcowa to średnia wszystkich cząstkowych ocen.

Comments are closed.