# Ćwiczenia z baz danych 20.05.2020, grupa PWi #### Zadanie Taksówki wodne. Na tropikalnym archipelagu podstawowym środkiem komunikacji pomiędzy wyspami są łodzie - taksówki. Firma transportowa, która nimi zarządza wyznaczyła kilka stałych tras, po których łodzie kursują według rozkładu. Na kursową łódź można zamówić bilety z wyprzedzeniem lub przyjść na przystań i liczyć, że będzie miejsce. Dodatkowo można wynajmować rejsy prywatnie na ustalone trasy. Można także przeglądać listę otwartych rejsów prywatnych i próbować dołączyć, dzieląc się kosztami. ## Zbiory encji - Trasy - ustalony ciąg przystanków - id - początek - koniec - czas trwania - liczba przystanków - spis przystanków (kody wg wbaz administracji państwowej JSON/ARRAY) - Kursy - konkretna godzina i dzień o której jest wykonywana trasa - id trasy - data - id łodzi - wolne miejsca - typ kursu (stały/prywatny/dzielony) - Łodzie - konkretna taksówka wykonująca kurs - id - pojemność - dostępność : boolean NOT NULL - Bilet - id - cena - liczba miejsc - id kursu - id pasażera - Pasażer - id - imie ### Związki Bilet -> kurs Bilet -> Pasażer Kurs -> łódz Kurs -> Trasa #### Taksówki wodne https://graphviz.gitlab.io/_pages/pdf/dotguide.pdf ```graphviz digraph summary digraph ER{ nodesep=1.0 label="Diagram E-R" edge[arrowhead=no] node[shape=ellipse]; # sets of entities Wyspa[shape=box]; Trasa[shape=box]; Kurs[shape=box]; Łódź[shape=box]; Przystanek[shape=box]; # attributes of Łódź Łódź -> ID # relationships JestPrzystankiem[shape=diamond]; JestPrzystankiem->Wyspa JestPrzystankiem->Trasa {rank=same; Book, Customer, Loan} } ``` #### Specyfikacja - Kamila - Paulina - Bartosz #### Implementacja - Wszyscy pozostali #### Przykładowy diagram E-R https://graphviz.gitlab.io/_pages/pdf/dotguide.pdf ```graphviz digraph summary digraph ER{ nodesep=1.0 label="Diagram E-R" edge[arrowhead=no] node[shape=ellipse]; # sets of entities Book[shape=box]; Customer[shape=box]; Author[shape=box]; # attributes of Book BId[label=<<u>ID</u>>] BTitle[label="Title \n text\n NOT NULL"] BId->Book BTitle->Book # attributes of Customer Name Customer -> Name CId[label=<<u>ID</u>>] Customer -> CId AmountDue[style=dashed label="Amount due"] Customer -> AmountDue # attributes of Author ID -> Author first_name -> Author last_name -> Author # comment attached somewhere Comment[shape=plaintext label="aggregated\n from loans"] AmountDue -> Comment[style=invis] # relationships Loan[shape=diamond]; LAmount[label="Amount \n Decimal(5,2)"] Loan->LAmount # edges Loan->Book; Customer->Loan[dir=back,penwidth=3.0,arrowhead=normal]; # relationships Has[shape=diamond]; # edges Author->Has[dir=back, arrowhead=normal]; Has -> Book[penwidth=3.0]; # tak samo wysoko: {rank=same; Book, Customer, Loan} } ```