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: