Skip to content
Snippets Groups Projects
Commit 3469ab68 authored by Piotr Maślanka's avatar Piotr Maślanka
Browse files

Build it!

parent 5ac0daae
No related branches found
No related tags found
No related merge requests found
Pipeline #1872 failed with stage
in 18 seconds
[
{}
{
"long_description": "bazy przechowującej zamówienia sklepu internetowego. Baza śledzić ma konta użytkowników i złożone przez nich zamówienia. Pamiętaj, że każde zamówienie składa się z możliwie wielu pozycji, oraz informacji rozliczeniowych, transportowych (wraz z płatnością za transport).",
"min_tables": "3",
"min_fields": "5"
},
{
"long_description": "bazy przechowującej wizyty pacjentów w przychodni POZ. Baza ma śledzić pacjentów, lekarzy, recepcjonistek oraz umówione terminy wizyt. Pamiętaj że to recepcjonistka umawia wizytę konkretnego pacjenta do konkretnego lekarza na konkretny termin."
"min_tables": "4",
"min_fields": "4"
},
{
"long_desciption": "bazy rejestrującej rezerwację miejsc w kinach. Baza ma śledzić sale kinowe, seanse oraz rezerwacje miejsc",
"min_tables": "3",
"min_fields": "5"
},
{
"long_description": "bazy rejestrującej wypożyczenia książek. Baza ma śledzić książki, czytelników oraz wypożyczenia. Czym różni się książka jako pozycja wydawnicza od książki jako fizycznego bytu?",
"min_tables": "3",
"min_fields": "5"
}
]
\ No newline at end of file
......@@ -13,6 +13,11 @@ Rzeczy oznaczone tak, jak poniżej, dotyczą tego, co masz zawrzeć w sprawozdan
Zapisz swoje imię, nazwisko, adres e-mail, kierunek i rok studiów
oraz grupę laboratoryjną i numer albumu.
Wpisując się na liście, wpisuj przy swoim nazwisku również liczbę porządkową. Określi
ona wariant instrukcji, z której będziesz korzystać. Podaj ją przy sprawozdaniu.
Ten wariant ma numer $lp$.
Podaj również numer zajęć laboratoryjnych (nr 4).
Mogą być to też pytania, na które w sprawozdaniu udzielisz odpowiedzi. Możesz pomagać
......@@ -22,7 +27,8 @@ sobie wyszukiwarką internetową, oraz zabrać głos w dyskusji, jeśli się jak
Relacyjne bazy danych (ang. _relational database management systems_, RDBMS, może bardziej poprawnie
_system zarządzania relacyjną bazą danych_), to pewien pomysł na przechowywanie danych. Pomysł ten polega
na rozbiciu naszego świata w szereg takich _obiektów_, które będzie można wygodnie umieścić w _tabelach_.
na rozbiciu naszego świata w szereg takich _obiektów_, _bytów_ (w żargonie bazodanowców **encji**,
od ang. _entity_ czyli w zasadzie _byt_), które będzie można wygodnie umieścić w _tabelach_.
Obiekt taki charakteryzuje się tym, że ma swoją pewną _tożsamość_, po której to tożsamości będziemy
go potem identyfikować i po tejże się do niego odwoływać.
......@@ -114,6 +120,10 @@ a ktoś w piśmie wspomniał o dowodzie o określonym identyfikatorze, a w międ
to teraz jego papier mógłby się odwoływać do *istniejącego dowodu w innej sprawie*, a nie po prostu do *niczego*.
Byłoby to katastrofalne w skutkach, a błąd programisty mógłby kosztować kogoś pozbawienie wolności.
Istotne w kluczu podstawowy jest to, że w danej tabeli istnieć może tylko jeden rekord o tym kluczu. Nie
jest możliwe wstawienie dwóch - mamy więc podstawowy system zapobiegający sytuacjom niemożliwym, na przykład
istnieniu dwóch _różnych_ osób o identycznym PESEL-u.
Kolumnę, która stanowi klucz podstawowy w innej tabeli - czyli odnosi się do innej tabeli - nazywamy **kluczem obcym**
(ang. _foreign key_). W naszej tabeli _Obywatel_ mamy dwa klucze obce - oba odnoszą się do tabeli
_Adres. Ponieważ wielu obywatelom przypisać można jeden adres, istnieje więc relacja **wiele-do-jednego**
......@@ -136,9 +146,66 @@ po odesłaniu ostatniej instrukcji.
Projektując bazę danych, dobrze jest ją sobie narysować. Służy do tego [diagram związków encji](https://pl.wikipedia.org/wiki/Diagram_zwi%C4%85zk%C3%B3w_encji)
lub inaczej ERD. Na egzaminie najpewniej będzie (jeśli będzie) jej wariant w postaci [notacji kruczej stopki](https://pl.wikipedia.org/wiki/Diagram_zwi%C4%85zk%C3%B3w_encji).
Użyj Google i naucz się rysować diagramy ERD w maksymalnie 15 minut.
Narysuj diagram ERD dla tabel Obywatel i Adres.
Jeśli chcemy zamodelować relację "jedna encja posiada inne" najlepiej to zrobić właśnie na dwóch tabelach.
Gdybyśmy chcieli stworzyć tabelę pt. "czy obywatel rozliczył podatek", możemy zrobić tabelę
_CzyRozliczyłPodatek_, która wyglądać będzie mniej więcej tak:
* PESEL obywatela
* Rok fiskalny
* Czy rozliczone?
Przy czym pola PESEL i rok fiskalny stanowić będą klucz podstawowy, zaś sam PESEL - klucz obcy. Jest to
dobry wybór na tożsamość tego pola, bo przecież jedna osoba rozliczyć za dany rok może się tylko raz (
albo tak myślimy). Jak tu widzimy, klucz podstawowy może się również składać z klucza obcego - bo czemu nie.
Wystąpi również relacja **jeden-do-wielu** w stosunku Obywatel - CzyRozliczyłPodatek, bo jedna osoba
może (a nawet musi) się rozliczać wielokrotnie - raz z każdego roku.
# Zadanie laboratoryjne
Na dzisiejszym laboratorium przygotujemy schemat bazy danych do pewnego zastosowania.
Każda osoba ma inne zadanie. Twoje zadanie to przygotować schemat $long_description$.
Minimalnie użyjesz $min_tables$ tabel, choć jeśli jesteś w stanie znormalizować ten schemat bardziej,
to będzie to mile widziane. Każda z tabel ma zawierać minimalnie $min_fields$ pól. Nie wolno tworzyć
identyfikatorów automatycznie generowanych, jeśli użyć można istniejącego w rzeczywistości atrybutu
(np. [EAN](https://pl.wikipedia.org/wiki/EAN)).
1. Zastanów się, co w zasadzie śledzisz. Gdybyś prowadził kartotekę papierową z tymi informacjami, to jak poukładałbyś szufladki?
2. Jakie _byty_ śledzisz w swojej bazie danych?
Krótki opis zagadnienia bazy oraz odpowiedzi na powyższe pytania zapisz w sprawozdaniu.
3. Rozplanuj bazę danych, każdą tabelę z osobna i opisz je słowami.
4. Narysuj jej diagram ERD
Plan bazy i tabel umieść w sprawozdaniu wraz z diagramem ERD.
Diagram ERD koniecznie w postaci zdjęcia narysowanego odręcznie na papierze schematu.
Pamiętaj, aby schematem tabeli uniemożliwić sytacje niemożliwe (np. dwie osoby mają rezerwację na
identyczne miejsca w tym samym seansie kinowym).
**Zanim zakończysz pracę, skonsultuj swoje wyniki z prowadzącym!**
# Wyślij sprawozdanie
_Fast fertig_! Zapisz i wyślij swoje sprawozdanie. Jeśli masz problem z wklejeniem zdjęcia zrobionego
z telefonu to wyślij sprawozdanie później. Jeśli nie masz takiego telefonu, wykorzystaj kolegę.
Wyślij je na adres sprawozdania@henrietta.com.pl.
W tytule umieść imię, nazwisko i numer zadania.
Załącz sprawozdanie, lub wklej je w treść maila.
Pamiętaj, uczestniczysz w zajęciach LABORATORYJNYCH,
więc nie pisz "Projekt Adam Nowak".
Podejście takie będzie aktywnie penalizowane.
Teraz idź korzystać z dobrej pogody, bo na weekendzie ma kropić.
_"Uczmy się kochać papier, tak szybko odchodzi"_
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment