diff --git a/src/lab4.json b/src/lab4.json index ec2649bb499d6e62182bd8a8c379bfb9190e73c9..f3f19adc1469a316adef8cf063fdc024c8ac8ffd 100644 --- a/src/lab4.json +++ b/src/lab4.json @@ -1,3 +1,22 @@ [ - {} + { + "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 diff --git a/src/lab4.md b/src/lab4.md index a640d09160cfb42820924a0cda749d8d0cb5f602..eb0df0a4ca3cec2ccc7b836e2d14eb73aa049e8b 100644 --- a/src/lab4.md +++ b/src/lab4.md @@ -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"_