Projekt Bazy Danych. Artur Janas, Łukasz Gawroński 9 czerwca Streszczenie Tematem projektu jest System Obsługi Biblioteki

Podobne dokumenty
Przykładowa baza danych BIBLIOTEKA

Biblioteka. Bazy danych I dokumentacja projektu. Cel projektu:

Wykład 05 Bazy danych

Bazy danych. Wykład IV SQL - wprowadzenie. Copyrights by Arkadiusz Rzucidło 1

Autor: Joanna Karwowska

CREATE DATABASE ksiegarnia_internetowa DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

Język SQL. Rozdział 9. Język definiowania danych DDL, część 2.

Wykład 8. SQL praca z tabelami 5

Specyfikacja wymagań systemowych (może podlegać edytowaniu na kolejnych etapach)

Wdrożenie modułu płatności eservice. dla systemu Gekosale 1.4

1 Zaznacz poprawne stwierdzenia dotyczące grup plików (filegroup) możemy określić do której grupy plików trafi

Paweł Rajba

Język SQL, zajęcia nr 1

Wdrożenie modułu płatności eservice. dla systemu oscommerce 2.3.x

Literatura: SQL Ćwiczenia praktyczne Autor: Marcin Lis Wydawnictwo: Helion. Autor: Joanna Karwowska

Dokument Detaliczny Projektu

Tworzenie modelu logicznego i fizycznego danych.

Zintegrowane Systemy Zarządzania Biblioteką SOWA1 i SOWA2 ZAMAWIANIE I REZERWOWANIE

Paweł Cieśla. Dokumentacja projektu

BAZA DANYCH SIECI HOTELI

Wdrożenie modułu płatności eservice. dla systemu Zen Cart

Wykład 5: PHP: praca z bazą danych MySQL

Politechnika Częstochowska. Projektowanie systemów użytkowych II

Wdrożenie modułu płatności eservice. dla systemu Magento

3 Przygotowali: mgr inż. Barbara Łukawska, mgr inż. Maciej Lasota

ZAMAWIANIE KSIĄŻKI WG AUTORA. W menu głównym katalogu należy kliknąć na zakładkę BAZY (1)

SIECI KOMPUTEROWE I BAZY DANYCH

Dokumentacja techniczna API systemu SimPay.pl

a. (20 pkt.) Aplikacja powinna zawierać następujące elementy: 2. Formularz edycji profilu użytkownika (2 pkt.).

Dokument Detaliczny Projektu

P o d s t a w y j ę z y k a S Q L

PODSTAWOWE POJĘCIA BAZ DANYCH

Projekt z rozproszonych i obiektowych systemów baz danych

Wykład :45 BD-1 W_3

PODSTAWY BAZ DANYCH. 5. Modelowanie danych. 2009/ Notatki do wykładu "Podstawy baz danych"

Program wykładu. zastosowanie w aplikacjach i PL/SQL;

15. Funkcje i procedury składowane PL/SQL

Bazy Danych I Projekt Firma Turystyczna

Bazy danych i usługi sieciowe

ŚLĄSKA WYŻSZA SZKOŁA MEDYCZNA BIBLIOTECZNE CZ. 2

WPROWADZENIE DO BAZ DANYCH

Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik

Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych Bazy Danych - Projekt. Zasady przygotowania i oceny projektów

Instrukcja wyszukiwania książek w katalogu OPAC. Bibliotheca Nostra : śląski kwartalnik naukowy 1/1, 29-33

Języki programowania wysokiego poziomu. PHP cz.4. Bazy danych

Bazy danych. Bazy danych. Podstawy języka SQL. Dr inż. Paweł Kasprowski.

WTYCZKA FARA-TCM Dane techniczne dla twórców zewnętrznych aplikacji do obsługi map cmentarza

Bazy danych 1. Wykład 5 Metodologia projektowania baz danych. (projektowanie logiczne)

Bazy danych - wykład wstępny

Bazy Danych. C. J. Date, Wprowadzenie do systemów baz danych, WNT - W-wa, (seria: Klasyka Informatyki), 2000

Narysować diagram sekwencji pokazujący rejestrację wypożyczenia przez Jana Kowalskiego książki Potop

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

Zarządzanie obiektami bazy danych Oracle11g

Założenia do ćwiczeń: SQL Server UWM Express Edition: \SQLEXPRESS. Zapoznaj się ze sposobami użycia narzędzia T SQL z wiersza poleceń.

E.14 Bazy Danych cz. 16 SQL Tworzenie, modyfikowanie i usuwanie tabel

SIECI KOMPUTEROWE I BAZY DANYCH

Aspekty aktywne baz danych

Projektowanie bazy danych. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Bazy danych. Dr inż. Paweł Kasprowski

4. Projekt Bazy Danych

Informatyka (5) SQL. dr inż. Katarzyna Palikowska Katedra Transportu Szynowego p. 4 Hydro

Instrukcja wyszukiwania w katalogach i bazach Biblioteki

Instrukcja wyszukiwania w katalogach i bazach Biblioteki

Monika Sychla Daniel Smolarek Projekt bazy danych

1. Biblioteka aplikacja internetowa umożliwiająca użytkownikom rezerwowanie i wypożyczanie książek oraz administratorom edycję bazy książek i

Tworzenie, modyfikowanie i usuwanie tabel

Biblioteka Politechniki Krakowskiej Szkolenie biblioteczne studentów I roku

Systemy internetowe. Wykład 4 mysql. West Pomeranian University of Technology, Szczecin; Faculty of Computer Science

Uniwersytet im. Adama Mickiewicza w Poznaniu Wydział Matematyki i Informatyki. Projekt bazy danych <Moja baza>

Wykład 4. SQL praca z tabelami 1

Podstawy technologii WWW

Laboratorium nr 5. Bazy danych OpenOffice Base.

INSTRUKCJA KORZYSTANIA Z KATALOGU ALEPH JAK ZNALEŹĆ I ZAMÓWIĆ MATERIAŁ BIBLIOTECZNY

1. Pobierz plik z diagramem związków encji schematu Uczelnia (MS Visio) oraz plik ze skryptem tworzącym tabele i wypełniający je danymi, z zasobu:

Wyszukiwanie w Katalogu Bibliotek PW za pomocą multiwyszukiwarki Primo

Bazy Danych (informatyczna definicja) Jest to zbiór tabel spełniających określone kryteria Zbiór powiązań pomiędzy tabelami

Opublikowane na stronie: Dokumentacja systemu Prolib M21 (

Szkolenie biblioteczne. Biblioteka Wydziału Psychologii UW

strukturalny język zapytań używany do tworzenia i modyfikowania baz danych oraz do umieszczania i pobierania danych z baz danych

Konto użytkownika. I. Logowanie

Laboratorium nr 4. Temat: SQL część II. Polecenia DML

Programowanie w SQL procedury i funkcje. UWAGA: Proszę nie zapominać o prefiksowaniu nazw obiektów ciągiem [OLIMP\{nr indeksu}] Funkcje użytkownika

Bazy danych. Andrzej Grzybowski. Instytut Fizyki, Uniwersytet Śląski

ZAMAWIANIE KSIĄŻEK I CZASOPISM ON-LINE

Komunikacja z bazą danych psql

Obiekty dowolnego typu, w tym bazy danych, możemy tworzyć instrukcją CREATE. Po czasowniku CREATE należy podać typ tworzonego obiektu i jego nazwę.

Programowanie MSQL. show databases; - pokazanie jakie bazy danych są dostępne na koncie

Wypożyczalnia by CTI. Instrukcja

Internetowe Konto Biblioteczne Instrukcja

INSTRUKCJA WYSZUKIWANIA

- Przedmiot kończy się egzaminem - Egzamin ma formę testu teoretycznego

Projektowanie systemów baz danych

CREATE TABLE autorzy ( id_autora SERIAL PRIMARY KEY, imie TEXT, nazwisko TEXT );

Nowy interfejs katalogu Biblioteki Głównej UP - podręcznik użytkownika

Dokumentacja SQL API 1

Bazy Danych i Usługi Sieciowe

Automatyka i Robotyka ROK III TEMAT: TWORZENIE I ZARZĄDZANIE INTERNETOWĄ BAZĄ DANYCH

Transkrypt:

Projekt Bazy Danych Artur Janas, Łukasz Gawroński 9 czerwca 2010 Streszczenie Tematem projektu jest System Obsługi Biblioteki 1 Wymagania funkcjonalne 1. Możliwość wprowadzania opisów książek, 2. Możliwość naliczania kar czytelnikom, 3. Możliwość zamawianie książek przez czytelników, 4. Możliwość informowania czytelników o możliwości odbioru książki, 5. Możliwość wypożyczania książek czytelnikom, 6. Możliwość odnotowywania zwrotu książek przez czytelników, 7. Możliwość blokowania kont użytkownikom, 8. Możliwość blokowania dostępności książek, 9. Możliwość przeglądu historii operacji. 2 Wymagania niefunkcjonalne 1. System klienta napisany w języku Java, 2. System serwera oparty na bazie danych Oracle 10g, 1

3 Model fizyczny encji 2

4 Model konceptualny ecji 5 Opis encji 1. Autor Encja opisująca autora książki: id_autora NUMBER(38,0) PRIMARY KEY id_kraju NUMBER(38,0), FOREIGN KEY, not null imie VARCHAR2(50), not null nazwisko VARCHAR2(50), not null Więzy integralności: UNIQUE( naziwsko","imie") 2. Kara Encja opisująca karę. Status opisuje czy kara jest zapłacona (true) czy nie zapłacona (false): id_kary NUMBER(38,0) PRIMARY KEY id_operacji NUMBER(38,0) FOREIGN KEY id_typu NUMBER(38,0) FOREIGN KEY id_ksiazki NUMBER(38,0) FOREIGN KEY id_osoby NUMBER(38,0) FOREIGN KEY data DATE, DEFAULT SYSDATE, not null kwota FLOAT, not null status NUMBER(1,0), DEFAULT 0, not null 3

Więzy integralności: FOREIGN KEY (id_operacji, id_typu, id_ksiazki, id_osoby) jako referencja do encji operacja_biblioteczna FOREIGN KEY (id_osoby) jako referencja do encji osoba Kary naliczane przez procedurę wywoływaną raz dziennie o tej samej godzinie przez bazę danych w godzinach o najmniejszym obciążeniu serwera 3. Kraj Encja przechowująca informację o kraju pochodzenia autora książki: id_kraju PRIMARY KEY, NUMBER(38,0) nazwa VARCHAR2(100), not null 4. Ksiazka rwyp Encja opisująca czas na jaki może być wypożyczona książka oraz typ wypożyczenia id_rodzaj NUMBER(38,0) PRIMARY KEY czas_wyp DATE, not null nazwa VARCHAR2(100), not null, unique Czas wypożyczenia określony jest jako data w postaci data(00/01/01) + faktyczny czas wypożyczenia. 5. Miasto Encja przechowująca informację o mieście w którym siedzibę ma wydawnictwo: id_miasta NUMBER(38,0) PRIMARY KEY nazwa VARCHAR2(100), not null, unique 6. Operacja biblioteczna Encja przechowująca informację o dacie przeprowadzonej operacji bibliotecznej: id_operacji NUMBER(38,0) id_typu FOREIGN KEY, NUMBER(38,0) id_ksiazki FOREIGN KEY, NUMBER(38,0) id_osoby FOREIGN KEY, NUMBER(38,0) data DATE, DEFAULT SYSDATE, not null status NUMBER(1,0), DEFAULT 0, not null PRIMARY KEY(id_operacji,id_typu,id_ksiazki,id_osoby) Operacje ze statusem 0 są aktywne, status 1 jest dla operacji w archiwum Spójność dat poszczególnych operacji kontroluje trigger operacjadata 7. Oprawa Encja przechowująca informację o typie oprawy książki: id_oprawy PRIMARY KEY, NUMBER(38,0) nazwa VARCHAR2(50), not null 8. Osoba 4

Encja przechowująca informację o czytelniku. Status klienta informuje o tym czy klient jest czytelnikiem aktywnym, nieaktywnym lub czy jest pracownikiem biblioteki: id_osoby PRIMARY KEY, NUMBER(38,0), not null imie VARCHAR2(20), not null nazwisko VARCHAR2(20), not null status NUMBER(38,0), DEFAULT 0, not null adres VARCHAR2(255), not null data_ur DATE, not null login VARCHAR2(32), not null, unique haslo VARCHAR2(32), DEFAULT MD5(qwerty), not null Więzy integralności: UNIQUE(imie, nazwisko, data_ur) 9. Typ operacji Encja słownikowa przechowująca informację o typie przeprowadzonej operacji (np. wypożyczenie, zwrot): nazwa CHAR(255), not null id_typu PRIMARY KEY, NUMBER(38,0) 10. Wydanie Encja przechowująca informację o wydaniu (rok wydania, liczba stron): id_wydania PRIMARY KEY NUMBER(38,0) id_wydawnictwa FOREIGN KEY, NUMBER(38,0), not null id_autora FOREIGN KEY, NUMBER(38,0), not null id_oprawy FOREIGN KEY, NUMBER(38,0), not null rok NUMBER(4,0), not null ilosc_stron NUMBER(38,0), not null tytul VARCHAR2(255), not null opis VARCHAR2(1024), DEFAULT 0, not null Więzy integralności: ilosc_stron > 0 11. Wydawnictwo Encja przechowująca informację o wydawnictwie: id_wydawnictwa PRIMARY KEY NUMBER(38,0) id_miasta FOREIGN KEY NUMBER(38,0) nazwa VARCHAR2(100), not null adres VARCHAR2(255), not null telefon NUMBER(12,0), not null 6 Hierarchia menu i podział na moduły 1. Moduł wypożyczającego (a) logowanie (b) zakończ 5

(c) szukaj (d) przeglądaj (e) zamów 2. Moduł pracownika biblioteki (a) logowanie (b) zakończ (c) szukaj (d) wprowadź (e) dodaj czytelnika (f) zmień dane czytelnika (g) usuń czytelnika (h) zarządzaj karami 3. Moduł przeglądania danych, kar oraz operacji (a) wspólny dla powyższych modułów, dostępny z różnymi odpowiednimi uprawnieniami (czytelnik ma dostęp tylko do danych dotyczących siebie samego) 7 Podział realizacji funkcjonalności pomiędzy stronę serwera i klienta Serwer dba o spójność wprowadzanych danych oraz zachowanie praw dostępu tak aby w przypadku błędu klienta nie zaszkodzić danym, poza tym obsługuje transakcje. Rola klienta poza wstępnym sprawdzaniem warunków ogranicza się do wyświetlania informacji zwrotnych z bazy danych oraz ostrzeżeń użytkownika o konsekwencji działań. 8 Sposób realizacji wymuszania integralności danych Integralność tabel realizowana poprzez zależności (dependent) w bazie danych nie można usunąć rekordów jeśli inne zależne od nich nadal są w bazie. Klient będzie informował użytkownika o braku możliwości wykonania operacji i sposobie rozwiązania problemu. 9 Propozycje indeksów w bazie danych Indeksy zostaną założone na rekordy najczęściej przeszukiwane, np. nazwisko autora, nazwisko i imię autora, tytuł książki, wydawnictwo, nazwisko czytelnika. Indeksy domenowe: 1. Imię, 6

2. Nazwisko, 3. Login i hasło w encji osoba, 4. Imię i nazwisko w encji autor, 5. Tytuł i opis w encji wydanie, 6. Nazwa w encji wydawnictwo 10 Opis transakcji Dla modułu wypożyczeń transakcja będzie polegała na zablokowaniu dostępu do książek, sprawdzeniu czy stan wypożyczeń nie zmienił się, dokonania rezerwacji a następnie odblokowaniu tabel. Transakcja jest realizowana przez funkcję Rezerwuj. 11 Triggery 1. Triggery inkrementacji (podobne dla wszystkich encji, poza encją operacja biblioteczna ze złożonym kluczem głównym), 2. Trigger operacjadata chroniący przed błędami zapisu operacji bibliotecznych. 12 Dołączone pliki 1. Pliki źródłowe modułu zamawiania książek 2. Plik skompilowany modułu zamawiania książek 3. Skrypt DDL tworzący bazę danych 4. Skrypt DML wprowadzający znaczną ilość danych testowych 13 Informacje dodatkowe Niektóre funkcje należy ponownie przekompilować ze względu na niedeterministyczne zachowania bazy danych ORACLE na serwerze wydziałowym. Niektóre dane w pliku z DML naruszają więzy integralności, nie należy się jednak przejmować błędami, gdyż dzieje się tak z powodu tego, że zostały wygenerowane losowo. Wyszukiwanie implementowane jest metodą uproszczoną ze względu na brak bibliotek i uprawnień na serwerze wydziałowym, przez co nie można stworzyć indeksowania domenowego dla więcej niż jednej kolumny naraz. Częściowa implementacja przykładowa optymalnego rozwiązania zawarta jest w pliku z DDL. Dane autoryzacyjne do bazy danych są umieszczone w kodzie programu. Skompilowany plik łączy się z bazą danych na wydziale korzystając z danych użytkownika ajanas/ajanas 7