Wypożyczalnia płyt 1

advertisement
Wypożyczalnia płyt 1.0
Projekt zaliczeniowy z przedmiotu Laboratoria Systemy Baz Danych 2
Prowadząca/y: mgr inż. A. Leśniewska
Zespół:
Wajcht Maciej inf
Szydło Kamil inf66315
1.Wstęp
Naszym celem było zaimplementowanie wypożyczalni płyt korzystającej z
relacyjnego systemu bazy danych opartego na języku SQL ( dokładniej Oraclowego SQL).
Zdecydowaliśmy się na użycie języka PHP gdyż ta nowoczesna technologia jest powszechnie
uznanym standardem,z którym spotykamy się dosłownie, na co dzień korzystając z szeroko
pojętego Internetu ( np. robiąc zakupy internetowe, biorąc udział w aukcjach internetowych,
lub po prostu przeglądając zasoby sieci ). Zrezygnowaliśmy z zaproponowanego narzędzia
Oracle Developer gdyż technologia PHP stworzona na potrzeby przeglądarek internetowych i
serwerów http jest znacznie wygodniejszym narzędziem w użyciu i w pewnym sensie
znacznie efektywniejszym ( ze względu na swoją modularność ). Najistotniejszym
czynnikiem jest jednak fakt iż potencjalny użytkownik nie musi posiadać nic prócz zwykłej
przeglądarki IE , FireFox lub Opera by moc skorzystać z programów napisanych w PHP
,które są uruchamiane po stronie serwera, co za tym idzie taka aplikacja jest niezależna od
systemu operacyjnego z jakiego korzystamy ( czego nie można powiedzieć o aplikacjach
zbudowanych za pomocą Orcale Developer ).
2.Impelementacja bazy danych.
W naszym projekcie skorzystaliśmy z Oraclowego serwera bazy danych działającego
na dblab.cs.put.poznan.pl. Zbudowaliśmy następuje relacje :
CREATE TABLE WYTWORNIE (
id_wytworni NUMBER(15) NOT NULL,
nazwa VARCHAR2(30) NOT NULL,
ulica VARCHAR2(30) NOT NULL,
kod VARCHAR2(6) NOT NULL,
miasto VARCHAR2(20) NOT NULL,
tel NUMBER(15) NOT NULL,
PRIMARY KEY(id_wytworni)
);
CREATE TABLE SLUCHACZE (
id_karty NUMBER(15) NOT NULL,
imie VARCHAR2(20) NOT NULL,
nazwisko VARCHAR2(20) NOT NULL,
adres VARCHAR2(40) NOT NULL,
nr_tel NUMBER(15),
PRIMARY KEY(id_karty)
);
CREATE TABLE PLYTY (
id_wytworni NUMBER(15) NOT NULL,
rok_wydania NUMBER(4) NOT NULL,
id_plyty NUMBER(15) NOT NULL,
zespol VARCHAR2(20) NOT NULL,
tytul VARCHAR2(40) NOT NULL,
gatunek VARCHAR2(20) NOT NULL,
status VARCHAR2(20)
CHECK (status in
('WYPOZYCZONY','DOSTEPNY')),
PRIMARY KEY(id_plyty),
FOREIGN KEY(id_wytworni)
CREATE TABLE WYPOZYCZENIA (
id_wyp NUMBER(15) NOT NULL,
id_karty NUMBER(15) NOT NULL,
id_wewn NUMBER(15) NOT NULL,
data_wyp DATE default sysdate,
data_zwrotu DATE NULL,
okres_wypozyczenia NUMBER(15) NOT
NULL,
PRIMARY KEY(id_wyp),
FOREIGN KEY(id_karty)
REFERENCES SLUCHACZE(id_karty)
ON DELETE CASCADE,
REFERENCES WYTWORNIE(id_wytworni)
ON DELETE CASCADE,
CONSTRAINT gatunek CHECK (gatunek
in ('BLACK METAL', 'DEATH METAL',
'THRASH METAL'))
);
FOREIGN KEY(id_wewn)
REFERENCES PLYTY(id_plyty)
ON DELETE CASCADE,
CONSTRAINT daty CHECK (data_wyp <
data_zwrotu)
);
Schemat relacji:
PLYTY
id_plyty
id_wytworni
rok_wydania
zespol
tytul
gatunek
status
WYPOZYCZENIA
id_wyp
id_karty
id_wewn
data_wyp
data_zwrotu
okres_wypozyczenia
SLUCHACZE
id_karty
imie
nazwisko
adres
nr_tel
WYTWORNIE
id_wytworni
nazwa
ulica
kod
miasto
tel
3.Opis niektórych modułów programowych składających się na „Wypożyczalnię”:
index.php – plik z modułem logującym , odpowiedzialny za pierwsze połączenie do bazy
danych i utworzenie nowej sesji.
bazd.php – plik z modułem zawierającym główne okno(formularz) programu. Za pomocą
formularza wywołuje następujące funkcje:
„Wypożycz płytę” wypozycz.php zawierający formularz z tytułem i nazwa
użytkownika, jeśli dane będą poprawne to zostanie uruchomiony
plik katalog.php w którym potwierdzamy wypożyczeni
płyty(lub moduł zwraca błąd jeśli dane są niepoprawne).
Po naciśnięciu przycisku wypożycz moduł wykonuje się
ponownie generując odpowiednie instrukcje SQL na bazie
danych ) (instruckje w źródłach)
„Zwróć płytę”
zwroc.php zawierający formularz zwrotu gdzie wpisujemy imię
i nazwisko słuchacza,dane przekazywane są do modułu
konto.php generującego stan konta słuchacza i opcje zwrotu
danej pozycji ( gdy zostanie naciśnięty przycisk „zwrot” moduł
wywołuje się sam ,wykonując odpowiednie instrukcje SQL)
„Dodaj płytę”
dodaj.php formularz dodający nową płytę ( wywołuje się sam
aż
do naciśnięcia cofnij)
„Usuń płytę”
usun.php formularz usuwający płytę (j.w.)
„Dodaj wytwórnię”
dodwytw.php formularz dodający wytwórnię, wytwórnia nie
zostanie usunięta jeśli odwołują się do niej jakieś dane
„Usuń wytwórnię”
usunwytw.php wytwórnia nie zostanie usunięta jeśli odwołują
się do niej jakieś inne zasoby (płyty)
„Dodaj słuchacza”
„Usuń słuchacza”
dodsluch.php formularz dodający słuchacza
usunsluch.php słuchacz nie zostanie usunięty jeśli odwołują się
do niego jakieś inne zasoby (wypożyczenia)
„Pokaż płyty”
plyty.php przesyłający wybrana wytwornie do modułu
raport1.php wyświetlającego listę płyt
„Pokaż wytwórnie” raport2.php wyświetlający tabelę wytwórnie
„Pokaż słuchaczy”
„Pokaż
wypożyczenia”
raport3.php wyświetlający listę słuchaczy i liczbę dokonanych
wypożyczeń
wypozyczenia.php formularz gdzie wpisujemy imię słuchacza
dla którego chcemy wyświetlić listę wypożyczeń (raport4.php)
4.Przykłady metod dostępu do bazy danych Oracle w technologii PHP
a)Logowanie: logowanie odbywa się za pomocą sekwencji instrukcji PHP:
$db = "(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = dblab.cs.put.poznan.pl)(PORT =
1521)))(CONNECT_DATA =(SID = lab92)))";
$db = @ocilogon($_POST['login'], $_POST['haslo'], $db);
wynik : false/true
b)Zapytania: (przykład)
$sql = OCIParse($db,'SELECT nazwa,tytul,zespol,rok_wydania,status FROM wytwornie w,plyty p WHERE
w.id_wytworni=p.id_wytworni ORDER BY tytul ASC');
OCIExecute($sql);
while (ociFetchInto($sql, $rzad,OCI_ASSOC)....
wynik: true(sukces) /porazka
5.Technologia Ajax
“Asynchronous JavaScript and XML” jest technologią umożliwiającą podpowiadanie
użytkownikowi podczas wypełniania formularzy. Moduły AJAX łączą się bezpośrednio z
baza danych by pobrać z niej możliwe podpowiedzi. Oto przykład użycia AJAX (
podpowiedź wypożyczanej płyty):
<td>
<script type="text/javascript">
new Ajax.Autocompleter('plyta', 'contact_name_auto_complete', 'ajax/plyta.php', { paramName: "tytul", minChars: 2})
</script>
</td>
(plik plyta.php zawiera skrypt lączacy z baza danych i genereujący podpowiedzi)
6.Podsumowanie
Celem projektu było stworzenie systemu wypożyczeń o następującej funkcjonalności:
1.Ewidencja płyt.
2. Ewidencja słuchaczy.
3. Obsługa wypożyczeń.
4. Wydruk nie oddanych pozycji danego słuchacza.
„Wpożyczalnia płyt” realizuje wszystkie te funkcje w powrzechnie dostępnym
środowisku przeglądarek internetowych.
7.Załączniki
-kod źródłowy projektu w języku PHP
-kod źródłowy operacji SQL użytych to stworzenia relacji i wprowadzenia
początkowych danych
Download