Bazy Danych I Projekt Firma Turystyczna



Podobne dokumenty
Zadanie 1: Projekt bazy danych

Regulamin WYCIECZKI REJSOWE KUCHNIA KORFU. salatkapogreckuwpodrozy.pl

kod_klienta kod_wycieczki data_rozpoczecia zaplacono KL002 G KL003 M KL007 M

Ref. 7 - Język SQL - polecenia DDL i DML

Projektowanie bazy danych przykład

Przykładowa baza danych BIBLIOTEKA

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

Wykład 8. SQL praca z tabelami 5

Plan bazy: Kod zakładający bazę danych: DROP TABLE noclegi CASCADE; CREATE TABLE noclegi( id_noclegu SERIAL NOT NULL,

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

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

LK1: Wprowadzenie do MS Access Zakładanie bazy danych i tworzenie interfejsu użytkownika

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

Miejskie Wodociągi i Oczyszczalnia sp. z o.o. w Grudziądzu. ibok. Internetowe Biuro Obsługi Klienta. Instrukcja obsługi

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

Specyfikacja wymagań. systemu zarządzania biurem podróży

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

... Wstęp Instalacja Dostęp do danych Procedury integrujące...4 PRC_WDEC_GETMAGAZYN...5 PRC_WDEC_GETODBIORCY...

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

Język SQL, zajęcia nr 1

PCPR MPU PUP. Struktury danych osobowych (ogólna struktura bazy danych)

Bazy danych dla producenta mebli tapicerowanych. Bartosz Janiak Marcin Sikora Wrocław r.

CREATE DATABASE ksiegarnia_internetowa DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

SIECI KOMPUTEROWE I BAZY DANYCH

Zasady organizacji i rozliczania wycieczek edukacyjnych w ramach projektu Akademia Młodych Noblistów (obowiązujące od r.

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

Zapytanie ofertowe dotyczące wyboru dostawcy w zakresie systemu informatycznego.

Projektowanie bazy danych. Jarosław Kuchta Projektowanie Aplikacji Internetowych

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

Aby uruchomić program klienta i połączyć się z serwerem, należy komendę:

Hurtownia Świętego Mikołaja projekt bazy danych

BAZA DANYCH SIECI HOTELI

Nowa, przejrzysta, wygodna i szybka!!! Całkowicie zmieniona Travella na sezon Zima 2011/2012

Platforma sprzedażowa DIESEL CZĘŚCI przewodnik dla użytkownika

INSTRUKCJA Panel administracyjny

HOTEL ONLINE - Szybki start

Aspekty aktywne baz danych

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

Bazy danych - wykład wstępny

1 Informacje podstawowe. 2 Zasady korzystania z serwisu. 3 Ochrona danych osobowych

DO 40% RABATU TYLKO DO 10.07*

Informacje na temat budowy egzaminu zawodowego: Tytuł pracy egzaminacyjnej

REGULAMIN INTERNETOWEJ SPRZEDAŻY BILETÓW PRZEZ SYSTEM E-PODROZNIK BILETY zwany dalej Regulaminem E-PODROZNIK BILETY

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

4. Projekt Bazy Danych

Bazy danych. Dr inż. Paweł Kasprowski

Administracja i programowanie pod Microsoft SQL Server 2000

Jerzy Skalski s9473, grupa WIs I.6-11c. System wspierający obsługę klienta dla firm sprzedających na Allegro

Kowalski Marcin Wrocław, dn Jaśkiewicz Kamil Bazy Danych 1 Podstawy Projekt Temat: Baza danych do zarządzania projektami

Podręcznik użytkownika Publikujący aplikacji Wykaz2

LISTA DLA LEŚNIKÓW. Imię i Nazwisko Organizatora Grupy. Numer telefonu Organizatora.. Adres Organizatora...

Instrukcja obsługi sklepu internetowego PKL. Opracowane w Dziale Sprzedaży i Marketingu PKL SA autor: Marcin Skuza

PODSTAWOWE POJĘCIA BAZ DANYCH

1. Składanie wniosku rejestracyjnego - rejestracja konta użytkownika/firmy

Regulamin promocji WŁOSKI TYDZIEŃ Z GWARANCJĄ ŚNIEGU! - do 10% taniej

Wykład 2. Relacyjny model danych


DO 40% RABATU TYLKO DO 30.06*

Szkolenie autoryzowane. MS 6232 Wdrażanie bazy danych Microsoft SQL Server 2008 R2

Instrukcja obsługi systemu ROOP instrukcja dla agenta.

Bazy danych 2. Wykład 1

SKRÓCONY OPIS systemu lojalnościowego

INSTRUKCJA OBSŁUGI PROGRAMU IRF DLA BIURA RACHUNKOWEGO Program Rachmistrz/Rewizor. Strona0

Instrukcja obsługi platformy B2B ARA Pneumatik

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

Podręcznik użytkownika Wprowadzający aplikacji Wykaz2

Regulamin korzystania z serwisu internetowego Best Choice Travel

Tytuł prezentacji. Dualny Model Sprzedaży podręcznik użytkownika

REGULAMIN SPRZEDAŻY KART WSTĘPU NA WYDARZENIE 1 INFORMACJE OGÓLNE

JAK WEJŚĆ NA STRONĘ DLA FIRM?

REGULAMIN OKREŚLA ZASADY KORZYSTANIA Z SERWISU INTERNETOWEGO

Fizyczna struktura bazy danych w SQL Serwerze

INSTRUKCJA DO SPRZEDAŻY BILETÓW AUTOKAROWYCH, POLIS oraz KART MŁODZIEŻOWYCH za pomocą PŁATNOŚCI ELEKTRONICZNYCH

Instrukcja do programu Przypominacz 1.6

System rezerwacji online

Protokół JDBC współpraca z relacyjnymi bazami danych lab4. Dr inż. Zofia Kruczkiewicz Programowanie aplikacji internetowych

Bazy danych Ćwiczenia projektowe

Instrukcja dla użytkowników serwisu internetowego

Podział imprez turystycznych: Podstawowe rodzaje imprez: impreza: krajowa, zagraniczna, wyjazdowa i przyjazdowa, dalej każda z nich dzieli się na

MySQL. Darmowa baza danych. Æwiczenia praktyczne

Normalizacja baz danych

Novotel**** 330 zł pokój jednoosobowy ze śniadaniem 360 zł pokój dwuosobowy ze śniadaniem. Novotel Szczecin Centrum. Zakwaterowanie: 1.

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

POLITYKA OCHRONY PRYWATNOŚCI PORTALU BIK

System Wniosków DWZ AGH

INSTRUKCJA Panel administracyjny

SIECI KOMPUTEROWE I BAZY DANYCH

Co nowego w wersji 3.10 programu Kancelaris

Instrukcja do programu Przypominacz 1.5

Regulamin sklepu internetowego. 1 Postanowienia wstępne

Pojęcie bazy danych. Funkcje i możliwości.

WYSZUKIWARKA INTERNETOWA

Cele przedsięwzięcia

UZUPEŁNIA ZDAJĄCY miejsce na naklejkę

1. I. Definicje. System Rezerwacji

Instrukcja do programu Do7ki 1.0

SQL w 24 godziny / Ryan Stephens, Arie D. Jones, Ron Plew. Warszawa, cop Spis treści

Bazy danych 10. SQL Widoki

Portal Turystyki Aktywnej Ziemi Wieluńskiej

Transkrypt:

Bazy Danych I Projekt Firma Turystyczna Autor: Paweł Bara 1. Struktura bazy danych. Baza danych ma stanowić magazyn informacji o transakcjach prowadzonych przez pewne biuro podróży. Biuro to sprzedaje wyjazdy\pobyty wzbogacone o rozmaite usługi\atrakcje. Klientami mogą być zarówno osoby prywatne jak i firmy. Moment podpisania umowy jest momentem utworzenia zamówienia w bazie, wcześniej wycieczkę i jej usługi\atrakcje można rezerwować. Klienci osoby prywatne bądź firmy, korzystające z oferty biura podróży. Usługi zbiór usług świadczonych podczas trwania wycieczek z oferty. Atrakcje zbiór atrakcji, które wiążą się z wycieczkami z oferty. Wycieczki każda wycieczka jest wyjazdem jedno lub kilkudniowym, odbywającym się w danym terminie, do jednego lub kilku krajów. Wycieczka może zawierać tylko ściśle określoną ilość uczestników. Z wyjazdem wiążą się pewne atrakcje i usługi (zero lub więcej, każda z określoną ilością miejsc). Wszystkie wycieczki mają również powiązaną ze sobą listę miejsc noclegu (jeśli takowe występują). Rezerwacje rezerwacja jest składana na podstawowe dane osobowe imię, nazwisko, telefon. Rezerwujący zamawia określoną ilość miejsc na daną wycieczkę oraz powiązane z nią atrakcje/usługi. Jeżeli rezerwacja nie zostanie sfinalizowana płatnością w określonym terminie, traktujemy ją jako nieważną. Zamówienia zamówienie jest składane przez konkretnego płatnika (klienta) na konkretną wycieczkę. Klient wykupuje określoną ilość miejsc na wycieczkę oraz jej atrakcje/usługi. Z zamówieniem oraz jego atrakcjami/usługami wiąże się pewna ilość uczestników (płatnik nie musi uczestniczyć w wycieczce). 2. Warunki integralności. Ogólne: w każdej tabeli obowiązują podstawowe ograniczenia takie jak np. e mail postaci: %@ %. lub %@%., czy kod pocztowy postaci Klienci: poprawna postać NIP u zależna od tego czy klient jest firmą czy też osobą prywatną Hotele: standard: 1 5 gwiazdek, bądź 0, jeśli niekreślony

Rys. 1. Schemat bazy danych.

Wycieczki: ilość miejsc > 0 ilość zajętych miejsc >= 0 ilość zajętych miejsc zawsze mniejsza bądź równa ogólnej ilości miejsc data powrotu > daty wyjazdu Hotele wycieczki: termin wyjazdu z hotelu > terminu przyjazdu do hotelu oba terminy w granicach wycieczki Zamówienia: tylko jedno zamówienie na daną wycieczkę przez danego klienta ilość wykupionych miejsc > 0 ilość wykupionych miejsc <= ilości aktualnie dostępnych miejsc w wycieczce zniżka od 0% do 100% (od 0.00 do 1.00) data płatności co najwyżej trzy dni od podpisania umowy płatność musi być dokonana siedem dni przed terminem wycieczki, podobnie podpisanie umowy Rezerwacje: ilość zarezerwowanych miejsc > 0 ilość zarezerwowanych miejsc <= ilości aktualnie dostępnych miejsc w wycieczce płatność musi być dokonana siedem dni przed terminem wycieczki Atrakcje\usługi rezerwacji: ilość miejsc większa od 0 i mniejsza bądź równa ilości miejsc dostępnych na daną atrakcję\usługę w danej wycieczce ilość miejsc <= ogólnej ilości miejsc danej rezerwacji Atrakcje\usługi zamówienia: ilość kupowanych miejsc mniejsza bądź równa ilości miejsc dostępnych na daną atrakcję\usługę w danej wycieczce ilość uczestników atrakcji z ramienia danego zamówienia nie może być większa od ilości uczestników danego zamówienia Atrakcje\usługi wycieczki: ilość miejsc > 0 i ilość miejsc <= ilości miejsc na daną wycieczkę ilość zajętych miejsc >= 0 ilość zajętych miejsc zawsze mniejsza bądź równa ogólnej ilości miejsc Uczestnicy: ilość uczestników danego zamówienia nie może przekroczyć ilości miejsc wykupionych przez płatnika powiązanego z tym zamówieniem (powinna być jej równa)

3. Indeksy. Wszystkie tabele mają założone indeksy na swoje klucze główne. Dodatkowo: Rezerwacje: IdWycieczki oraz DataPlatnosci Wycieczki: Kraj Zamówienia: IdWycieczki Klienci: NIP 4. Funkcjonalność bazy danych. Uwaga: nie usuwamy, modyfikujemy, wstawiamy danych za pośrednictwem podstawowych zapytań SQL a. Zamiast tego korzystamy z opisanych niżej funkcji dołączonych do systemu. Wyjątki od tej reguły również opisano poniżej. Baza zapewnia cały niskopoziomowy interfejs funkcji dodających dane. Każda tabela ma powiązaną ze sobą funkcję, umieszczającą krotkę w relacji. Funkcje te dbają o zachowanie wszelkich warunków integralności. Nad interfejsem można z łatwością zbudować GUI umożliwiające wypełnianie bazy: dodaj_usluge (@NAZWA varchar(45), @OPIS text) dodaj_atrakcje (@NAZWA varchar(45), @OPIS text) dodaj_hotel (@NAZWA varchar(45), @STANDARD tinyint, @OPIS text, @ADRES varchar(45), @MIEJSCOWOSC varchar(45), @KRAJ varchar(45), @TELEFON varchar(25), @STRONA varchar(60)) dodaj_klienta (@NIP char(13), @NAZWAFIRMY varchar(25), @IMIE varchar(20), @NAZWISKO varchar(45), @ADRES varchar(45), @MIEJSCOWOSC varchar(45), @KODPOCZTOWY char(6), @KRAJ varchar(45), @TELEFON varchar(25), @FAX varchar(25), @EMAIL varchar(25), @STRONA varchar(60), @CZYFIRMA bit) dodaj_wycieczke (@KRAJ varchar(100), @ILOSCMIEJSC int, @ZAJETEMIEJSCA int, @CENAJEDNOSTKOWA smallmoney, @DATAWYJAZDU datetime, @DATAPOWROTU datetime) dodaj_hotel_wycieczki (@IDHOTELU int, @IDWYCIECZKI int, @DATAPRZYJAZDU datetime, @DATAWYJAZDU datetime) dodaj_atrakcje_wycieczki (@IDATRAKCJI int, @IDWYCIECZKI int, @ILOSCMIEJSC int, @ZAJETEMIEJSCA int, @CENAJEDNOSTKOWA smallmoney) dodaj_usluge_wycieczki (@IDUSLUGI int, @IDWYCIECZKI int, @ILOSCMIEJSC int, @ZAJETEMIEJSCA int, @CENAJEDNOSTKOWA smallmoney) dodaj_rezerwacje (@IDWYCIECZKI int, @IMIE varchar(20), @NAZWISKO varchar(45), @TELEFON varchar(25), @DATAPLATNOSCI datetime, @TYPPLATNOSCI char(7), @MIEJSCA int) dodaj_atrakcje_rezerwacji (@IDATRAKCJI int, @IDREZERWACJI int, @MIEJSCA int) dodaj_usluge_rezerwacji (@IDUSLUGI int, @IDREZERWACJI int, @MIEJSCA int) dodaj_zamowienie (@IDKLIENTA int, @IDWYCIECZKI int, @MIEJSCA int, @DATAUMOWY datetime, @DATAPLATNOSCI datetime, @TYPPLATNOSCI char(7), @ZNIZKA decimal(3,2)) dodaj_atrakcje_zamowienia (@IDATRAKCJI int, @IDZAMOWIENIA int, @IMIE varchar(20),

@NAZWISKO varchar(45)) dodaj_usluge_zamowienia (@IDUSLUGI int, @IDZAMOWIENIA int, @IMIE varchar(20), @NAZWISKO varchar(45)) dodaj_uczestnika (@IDKLIENTA int, @IDZAMOWIENIA int, @IMIE varchar(20), @NAZWISKO varchar(45), @ADRES varchar(45), @MIEJSCOWOSC varchar(45), @KRAJ varchar(45), @TELEFON varchar(25)) Jedynym elementem schematu, dla którego logiczną wydaje się operacja modyfikacji są ilości miejsc na rezerwację i baza zapewnia w tym celu odpowiednie procedury: zmien_atrakcje_rezerwacji (@IDATRAKCJI int, @IDREZERWACJI int, @MIEJSCA int) zmien_usluge_rezerwacji (@IDUSLUGI int, @IDREZERWACJI int, @MIEJSCA int) zmien_rezerwacje (@IDREZERWACJI int, @MIEJSCA int) Zamówienie jako wyraz pisemnej umowy jest niemodyfikowalne. Jeśli wyjątkowa zajdzie taka potrzeba można je zawsze usunąć (patrz niżej) i dodać ponownie. Dopuszcza się ręczne modyfikacje wszelkich elementów typu dane personalne, adres hotelu czy opis atrakcji, jako że nie mają one wpływu na integralność. System umożliwia usuwanie tych danych, które mogą się dezaktualizować, czyli rezerwacji i zamówień. Przyczyną konieczności usunięcia krotek z tych tabel może być nieopłacenie rezerwacji w ustalonym terminie bądź nie wywiązanie się przez klienta z warunków umowy. Funkcje usun_rezerwacje i usun_zamowienie dbają z pomocą triggerów o zachowanie integralności: usun_rezerwacje (@IDREZERWACJI int) usun_zamowienie (@IDZAMOWIENIA int) Dodatkowo do dyspozycji mamy funkcje umożliwiające usunięcie atrakcji\usługi z bazy (w tym z aktualnych wycieczek, zamówień, rezerwacji): usun_usluge (@IDUSLUGI int) usun_atrakcje (@IDATRAKCJI int) Pozostałe dane nie powinny być usuwane. Poza tym system dostarcza: funkcję listującą wszystkie niezbędne dane do faktury: dane_do_faktury(@idzamowienia int) funkcję wyszukującą dostępne wycieczki odbywające się w danym okresie, do danego kraju i nie droższe niż podana cena; pominięte parametry nie są uwzględniane przy operacji wyszukiwania: znajdz_wycieczke (@TERMINMIN datetime, @TERMINMAKS datetime, @KOSZTMAKS smallmoney, @KRAJ varchar(max)) funkcję wyszukującą rezerwacje z przedawnionym terminem płatności (do usunięcia): ktore_nieaktualne funkcje zliczające całkowity koszt zamówienia bądź rezerwacji:

koszt_rezerwacji (@IDREZERWACJI int) koszt_zamowienia (@IDZAMOWIENIA int) funkcje przekształcające zbiór krotek na łańcuch w formacie CSV (np. krotek zawierających nazwy atrakcji powiązane z daną wycieczką): uslugi_rezerwacji_to_csv (@IDREZERWACJI int) atrakcje_rezerwacji_to_csv (@IDREZERWACJI int) uslugi_zamowienia_to_csv (@IDZAMOWIENIA int) atrakcje_zamowienia_to_csv (@IDZAMOWIENIA int) uslugi_wycieczki_to_csv (@IDWYCIECZKI int) atrakcje_wycieczki_to_csv (@IDWYCIECZKI int) 5. Widoki. Baza zapewnia widoki dla pracowników biura (zestawienie zamówień bądź rezerwacji), dla organizatora wycieczki (dane osobowe uczestników wycieczek i związanych z nimi usług\atrakcji) oraz widoki ważne z punktu widzenia klienta (zestwienie wycieczek i ich usług\atrakcji). Widok 1. klient_wycieczki_view pokazuje wszystkie wycieczki z bazy, niezbędne informacje na ich temat oraz powiązane z nimi usługi\atrakcje Widoki 2, 3. klient_atrakcje_wycieczki_view oraz klient_uslugi_wycieczki_view pokazują atrakcje\usługi danej wycieczki oraz ilość wciąż wolnych miejsc na nie

Widoki 4, 5. biuro_rezerwacje_view oraz biuro_zamowienia_view pokazują podstawowe informacje o rezerwacjach\zamówieniach z bazy oraz ich wartości Widok 6. organizator_uczestnicy_view pokazuje listę uczestników każdej wycieczki (wraz z ich danymi osobowymi) Widoki 7, 8. organizator_uczestnicy_atrakcji view oraz organizator_uczestnicy_uslug_view pokazuje listę uczestników usług\atrakcji powiązanych z danymi wycieczkami (tylko imię i nazwisko, bo podstawie dane są zawarte widoku organizator_uczestnicy_wycieczki_view). 6. Prawa dostępu. Utworzyłem trzy konta: klient (hasło: ala123) mający jedynie prawo do przeglądania swoich widoków organizator (hasło: ala123) również tylko przeglądający swoje widoki biuro (hasło: ala123) dostę do wszystkich procedur, tabel, widoków; ograniczony dostęp jedynie do struktury bazy (brak możliwości modyfikowania postaci tabel)