Výpis souhrnů
Modelování vztahů a systémů
Prohlížíte si souhrny informací k určitým tématům. Systémy Umíme se zaměřují hlavně na jejich procvičování. Ke cvičením k jednotlivým podtématům se dostanete pomocí odkazů níže.
Podtémata
Modelování vztahů a systémů
Lidé, věci a další objekty na světě jsou často různými způsoby propojené – navzájem se ovlivňují, souvisí spolu, nebo jsou si třeba nějak podobné. Jinak řečeno, mají mezi sebou vztahy. Víc navzájem propojených objektů tvoří systém. Abychom se ve složitějším systému lépe vyznali, často pomáhá si daný systém znázornit nebo nakreslit – namodelovat.
Zde si můžete procvičit jednoduché rozlišování mezi vztahy a vlastnostmi. Cvičení využívá mimo jiné i entitně-vztahové modely – speciální typ diagramů, které se používají i k modelování databází. Těmito modely se do větší hloubky zabývá následující cvičení, které se na vztahy a vlastnosti dívá z více databázového pohledu.
NahoruVlastnosti a vztahy
Objekty (věci, lidé, skupiny, …) mohou mít vztahy s dalšími objekty. Vztahy vyjadřují, jak spolu různé objekty souvisí. Pokud o Ondrovi řekneme, že má sestru Anetu, říkáme, že mezi Ondrou a Anetou je vztah – konkrétně sourozenecký. Dále můžeme říct, že Ondra chodí na 2. ZŠ v Dobříši. To je vztah mezi Ondrou a školou, kterou navštěvuje. Objekty dále mohou mít různé vlastnosti, tedy další informace, které je nějak popisují. Ondrovy vlastnosti jsou například jeho zelené oči a tmavě hnědé vlasy. Vlastnost školy je třeba, že stojí na adrese Školní 1035.
Při určování, jestli jde o vlastnost, nebo o vztah mezi dvěma objekty, často pomáhá zamyslet se, jestli jedna část vztahu může existovat bez druhé. Pokud je jedna část závislá na existenci druhé, jde pravděpodobně o vlastnost. V opačném případě je to spíše vztah. Obecně, vazba mezi objektem a jeho vlastností je obvykle pevnější než vztah mezi dvěma objekty. Kdyby 2. ZŠ v Dobříši neexistovala, nebude existovat ani adresa Školní 1035 – protože na té adrese nebude stát žádná budova. Proto je adresa vlastností školy. Naproti tomu, pokud by neexistovala 2. ZŠ, Ondra by mohl jednoduše chodit na jinou školu. Zároveň, kdyby Ondra bydlel v jiném městě a nechodil na 2. ZŠ, ta by i přesto mohla stát v Dobříši a vzdělávat jiné děti. Proto věta „Ondra chodí na 2. ZŠ“ vyjadřuje vztah a nikoli vlastnost.
NahoruTypy vztahů
Vztahy mezi objekty nejsou všechny stejné. Když určíme, jakého typu jednotlivé vztahy jsou, pomůže nám to systém lépe pochopit a komunikovat o něm. Určení vztahů je klíčové, pokud potřebujeme systém zachytit programem či databází – různé typy vztahů se totiž v takovém případě implementují různými způsoby. Existuje mnoho typů vztahů, mezi ty nejběžnější patří:
Generalizace (zobecnění)
Jedna entita je typem jiné, obecnější entity. Jablko je typem ovoce, tj. ovoce je generalizací (zobecněním) jablka. V opačném směru (od obecnějšího ke konkrétnějšímu) mluvíme o specializaci (jablko je specializací ovoce), případně o konkrétním příkladu neboli instanci (3 + 4 je příkladem (instancí) obecného konceptu sčítání.) V kontextu jazyka se pro generalizaci a specializaci používá označení slova nadřazená a podřazená.
Kompozice a agregace (celek–část)
Kompozice i agregace označují vztah mezi celkem a jeho částí. O kompozici mluvíme tehdy, pokud jsou části s celkem neoddělitelně spjaty a když celek zanikne, zaniknou i jeho části (místnost – dům, kapitola – kniha, větev – strom), zatímco agregace je volná součást nějakého celku, kde části můžou existovat i bez celku a můžou být součástí více různých celků (hráč – tým, žák – škola).
Komunikace (posílání zpráv)
Jde o vztah, kdy jedna strana (odesílatel) předává informace (zprávu) druhé straně (příjemce). Webový prohlížeč odesílá na server požadavek na zobrazení určité webové stránky. Mobil posílá zprávu na nejbližší základnovou stanici, ta zprávu pošle na ústřednu, která zprávu pošle příjemci přes jeho nejbližší základnovou stanici.
Prerekvizita (nezbytný předpoklad)
Prerekvizita označuje nezbytný předpoklad – co musí existovat nebo být splněno před něčím jiným. Vstupenka je prerekvizita pro vstup do divadla, suroviny jsou prerekvizita pro přípravu jídla, znalost čtení je prerekvizitou pro řešení slovních úloh.
Kauzalita (příčina–následek)
Vztah mezi dvěma jevy, kdy jeden (příčina) přímo způsobuje nebo výrazně ovlivňuje druhý (následek). Déšť (příčina) způsobí mokré chodníky (následek). Kouření způsobuje rakovinu. Kliknutí na tlačítko způsobí odevzdání úlohy.
Kauzalita je silnější než pouhá časová následnost (zítřek následuje po dnešku, ale dnešek není příčinou zítřka) i než korelace (spotřeba zmrzliny a počet utonutí spolu korelují, protože obě jsou způsobené teplým počasím). Kauzalita je také odlišná od prerekvizity (trouba je prerekvizita pro pečení, ale přímo pečení nezpůsobí).
Entitně-vztahové modely
Entitně-vztahové modely (diagramy) pomáhají znázorňovat a zpřehledňovat vztahy a vlastnosti mezi objekty. Používají je například databázoví architekti, aby naplánovali, jak bude vypadat jejich databáze. Diagramy jsou ale poměrně jednoduché, takže si s nimi můžeme pohrát i my.
V entitně-vztahovém modelu se vyskytují tři typy prvků:
- Entity představují objekty. Mohou existovat samostatně, nezávisle na ostatních objektech, a mají vlastnosti (atributy). V diagramu se zakreslují do obdélníků.
- Vztahy (relace) propojují entity. Zakreslují se jako diamanty, které jsou spojené čarou s danými entitami.
- Atributy (vlastnosti) patří jednotlivým entitám. Typicky nemají smysl bez entity, které patří – nemohou existovat samostatně. Znázorňují se jako elipsy spojené s danou entitou.
Jednoduchý diagram může vypadat například takto:
Rozebraný příklad: význam diagramu
- Uživatelé sociální sítě mohou zveřejňovat příspěvky a mají určitý počet sledujících.
- Uživatelé a příspěvky jsou entity.
- Jsou propojené vztahem, jehož název říká, jak spolu tyto dvě entity souvisí (uživatel zveřejňuje příspěvek).
- Počet sledujících je atribut uživatele.
Vztahy mohou mít různé četnosti. Četnosti vyjadřují, s kolika entitami může být každá strana v daném vztahu. Uvažme zmíněný příklad sociální sítě. Jeden uživatel může zveřejnit více příspěvků. Ale každý příspěvek je zveřejněn pouze jedním uživatelem. Proto je četnost vztahu „zveřejňuje“ 1 uživatel – více příspěvků. Naproti tomu, pokud bychom mluvili o vztahu „uživateli se líbí příspěvek“, byla by četnost více uživatelů – více příspěvků. To proto, že jednomu uživateli se může líbit více příspěvků, a jeden příspěvek může být „olajkován“ více uživateli.
Nahoru