Programowanie Baz Danych
IV rok informatyki studia dzienne
rok akademicki 2006/2007 semestr zimowy


I. Sprawy organizacyjne, czyli co-gdzie-jak-kiedy
Krótko:
1. Został uchwalony NOWY REGULAMIN STUDIÓW, a w nim kilka nowości... zalecam (dla Państwa własnego dobra) zapoznać sie z nim dokładnie!
2. Obecność na zajęciach jest obowiązkowa. Trzy nieusprawiedliwione nieobecności studenta na zajęciach powodują przekazanie jego danych (z odpowiednią adnotacją) do Dziekanatu.
3. Obecności na zajęciach nie wpływają na moje pozytywne postrzeganie Państwa, ale nieobecności wpływają na negatywne.
4. Nie przyjmuję tłumaczeń typu: "zapomniałem/łam programu bo..." tudzież "mam program, ale dyskietka/płytka zapsuła się/nie czyta/itp". Na pierwszych zajęciach, w ramach szkolenia BHP szczegółowo zostało omówione zagadnienie TWORZENIA ZAPASOWYCH KOPII PLIKÓW.

II. Warunki wstępne, czyli zakładam, że umiecie Państwo co następuje:
1. Znacie następujące pojcia: baza danych: realacyjna, obiektowa, klient-serwer; tablica, realacja
2. Umiecie Państwo:

Jeżeli ktoś ma zaległości z ww. zagadnień, proszę dokształcić się we własnym zakresie!!!
Materiały pomocnicze mogę osobom zainteresowanym przesłać mailem.

 

II. Plan zajęć:

Oracle obiektowy
1. Projekt (opis wycinka rzeczywistości, schemat i słownik danych)
2. Tworzenie typów, typów tablicowych oraz tabel (przypominam! referencje obiektowe!).
3. Wypełnianie tabel danymi (w szczególności: używanie domyślnych konstruktorów typów zwykłych oraz typów tablicowych,
   wypełnianie pól, które są referencjami obiektowymi do obiektów innych tabel - select'y proszę poćwiczyć!)
4. Zapytania do bazy: po 3 na osobę w grupie projektowej, sensowne (tzn. prawdopodobne)
   oraz wyciągające dane z zagnieżdżonych struktur: obiektów, tabel zagnieżdżonych, obiektów, do których macie referencje
   (notacja kropkowa!)
5. Dziedziczenie (na przykładzie) oraz konstruktory (mogą być przeciążone!)
6. Metody obiektowe - po 2 na osobę w grupie projektowej (2 x member function/procedure lub 1 x member i 1 x static)
    Metody statyczne operują na rzecz typu, zaś zwykłe - na rzecz wybranego obiektu.
7. Wyzwalacze, czyli triggery - po jednym na osobę w grupie. Ew. do tego procedurę składowaną (nie metodę), która wykorzystuje
    np. metodę napisaną przez Was.

Aplikacja kliencka do obiektowej bazy
1. Napisać aplikację kliencką do stworzonej bazy obiektowej.
   Aplikacja realizuje jedną, wybraną przez Was funkcjonalność: np. zapisanie nowego czytelnika do biblioteki
   Aplikacja realizuje tę funkcjonalność dokładnie: zanim zapisze czytelnika, sprawdzi, czy go przypadkiem w bazie nie ma.
   Aplikacja nie wydaje pochopnych osądów: komunikat, że "coś się udało" ma być stwierdzeniem faktów, a nie pobożnym życzeniem
   (sprawdzić proszę, czy dopisany czytelnik rzeczywiście jest w bazie danych)
  Aplikacja jest 'głuptoodporna' - patrz: punkty o Wirtualnej Pani Krysi.

Obiektowe widoki do bazy relacyjnej
1. Przekształcacie Państwo swoją bazę obiektową na bazę relacyjną
2. po czym tworzycie obiektowe widoki do bazy relacyjnej

III. Wymagania, czyli na co będę zwracać uwagę przy ocenianiu Państwa pracy:
Zaliczenie każdej części (czyli każdego projektu), będzie przebiegało w dwóch etapach:

Wygląd i funkcjonalność aplikacji oceniane są z punktu widzenia Pani Krysi.

Oto krótka charakterystyka Pani Krysi:

Ocena zastosowanych mechanizmów oraz poprawność kodu
Sprawdzam stan Państwa "zorientowania" wśród plików i funkcji wykorzystywanych w aplikacji. Można spodziewać się pytań:
"Proszę omówić ten (wskazany myszą) fragment kodu"
"Dlaczego w tym miejscu użyto takiej funkcji/metody/zmiennej"

Jeśli Państwo nie wykazujecie się wymaganą lotnością, zastrzegam sobie możliwość przejścia do bardziej wyrafinowanych pytań:
"Co robi ta zmienna?" - dobrze nazywać zmienne tak, by wiadomo było do czego będą służyły.
Stwierdzenie: "Tu jest źle" - ze wskazaniem myszą fragmentu kodu wymaga wyjaśnienia mi, czy naprawdę jest źle, czy jednak dobrze? A jeśli źle, to gdzie i dlaczego? Co powinno być zrobione, by było dobrze? A może dany fragment jest jednak poprawny? Jeśli tak, to należy wyjaśnić, dlaczego jest poprawny.

Błędy zaliczane do kategorii "wierutne bzdury" oraz do kategorii "fragmenty-mydlące-oczy-prowadzącego" będą wymagały wyjaśnień z Państwa strony.

Na koniec pragnę wspomnieć, że w większości języków programowania, w plikach źródłowych, istnieje możliwość pisania nie-kompilowalnych i nie-wykonywalnych fragmentów, zwanych potocznie KOMENTARZAMI. Które mogą nieco ułatwić Państwu życie. A przynajmniej ten przedmiot.

IV. Literatura oraz przydatne linki:

Literatura:

podana na zajęciach

Linki:

Dawno obiecany przykład:


materiały pomocnicze do JSP znajdują się tutaj
materiały pomocnicze do Javy znajdują się tutaj
materiały pomocnicze do tworzenia skryptów na Oracle'u będą tutaj
materiały pomocnicze do skryptów w PL/SQL oraz do obsługi procedur wbudowanych znajdują się tutaj

materiały ze stron Oracle'a :
http://www.oracle.com/technology/sample_code/index.html


Przydatne strony dotyczące baz obiektowych w ORACLE'u: