Ask Your Question
1

Konceptualne modelovanie DBS

asked 2014-10-14 22:04:26 +0100

cheeseburger gravatar image

updated 2014-10-15 06:56:09 +0100

Josef Kokeš gravatar image

Ahojte, robim akurat datovy model na semestralku a dosiel som k mensiemu problemu, ktory neviem vyriesit. Cital som aj slajdy, ale aj tak tomu velmi nechapem. Zaujimalo by ma aky je rozdiel pri datovom modele, kde su jednotlive entity pospajane ciarami (ci uz plnymi alebo prerusovanymi) a pred entitou su ciarky | napr |> alebo aj bez zobacika. Viete mi niekto poradit? Dakujem pekne :)

edit retag flag offensive close delete

2 Answers

Sort by » oldest newest most voted
6

answered 2014-10-15 06:53:19 +0100

Josef Kokeš gravatar image

updated 2014-10-15 12:35:33 +0100

Tím zakončením podrobněji určujete vztah mezi entitami. Teď se omlouvám, jestli to řeknu blbě, protože jsem zvyklý na jiné značení a transformuji to z https://edux.fit.cvut.cz/courses/BI-DBS/_media/lectures/b141-dbs_03_konceptualni_modelovani-tisk.pdf jen podle logiky obrázků, ale zhruba to bude odpovídat:

Úplné zakončení, tj. pokračování čáry vs. vidlička, určuje kardinalitu vztahu vzhledem k entitě, u které to zakončení je. Takže pokud na straně 23 je u pokoje vidlička a u bloku čárka, tak to říká, že ke každému bloku může být libovolně mnoho pokojů a že k jednomu pokoji je jenom jeden blok (že jeden pokoj nemůže současně ležet v několika blocích).

Případná kolmá čárka před zakončením určuje, že entita do svého identifikátoru přebírá identifikační údaje (primární klíč) z jiné tabulky a případně k nim doplňuje ještě nějaká svoje pole. Bez kolmé čárky má entita vlastní identifikátor.

  • Převzatý identifikátor bez doplňujících údajů se typicky používá u vazeb 1:1, kde mám tabulku se základními údaji o nějakém objektu a k ní druhou tabulku, ve které jsou další údaje, které ale mají smysl jen u části objektů. Například ve školním systému by šlo představit si tabulku OSOBA, kde jsou všichni (studenti i vyučující) a k tomu tabulku VYUCUJICI, kde jsou údaje relevantní jen pro vyučující; šlo by je samozřejmě nacpat přímo do tabulky OSOBA, ale pak by se u každého studenta zbytečně objevovala spousta nerelevantních polí. Ještě hůř by to dopadlo, kdybychom měli deset kategorií osob a každá měla mít sto svých doplňujících polí (což u objektově-relační DB není až tak neobvyklé), tak je určitě lepší mít jednu hlavní tabulku a deset pomocných 1:1 než těch tisíc polí narvat do hlavní tabulky a u každého záznamu mít 900 polí NULL (navíc by se pěkně blbě řešila integrita).

  • Převzatý identifikátor s doplňujícími údaji se typicky používá, pokud chci mít v tabulce přirozený identifikátor. Lze si představit třeba to, že budeme zachycovat místnosti na čvut, tak budeme mít tabulky BUDOVA (identifikátor bude obsahovat věci jako "T9" nebo "TH" nebo "NTK"), BLOK (identifikátor bude ("T9","") nebo ("TH","A")) a MISTNOST (identifikátor bude ("T9","","105") nebo ("TH","A","1442")). Každá detailnější tabulka rozšiřuje identifikátor méně detailní tabulky o další pole. Mohli bychom samozřejmě použít umělé identifikátory (nějaký autoincrement, třeba) a pak bychom nepotřebovali přebírat identifikátory, dokonce se to často dělá, protože to má své výhody*), ale pokud zrovna lze použít přirozený identifikátor, tak to některé věci dost zjednodušuje pro uživatele (např. v příkladu s místnostmi půjde velmi snadno dělat dotazy, "vypiš místnosti, které leží v budově T9" (s umělými klíči bychom museli dělat tento dotaz nad spojením několika entit).

*) Zákazník sice řekne, že "nikdy nemůže nastat, že by byli dva lidi se stejným rodným číslem", ale za pět let, když už váš systém běží, se najednou dozvíte, že "... až na pana Nováka z Horní Dolní, který má stejné RČ jako pan Černý z Dolní Horní").

edit flag offensive delete publish link more

Comments

Pro úplnost: Jsou i jiné notace, například že kolmá čárka značí povinnost existence (záznam musí/nemusí existovat) a převzetí identifikátoru je znázorněno nevyplněným trojúhelníčkem, který stranou přiléhá k entitě a do třetího vrcholu vede vazba. Je vhodné se vždy při diskusi nad novým modelem dohodnout, jakou notaci používá.

Josef Kokeš ( 2014-10-15 06:59:49 +0100 )edit
0

answered 2014-10-14 22:35:23 +0100

Ondřej Máca gravatar image

Jestli se ptáš na to co je na tady https://edux.fit.cvut.cz/courses/BI-DBS/_media/lectures/b141-dbs_03_konceptualni_modelovani-tisk.pdf na str. 23 tak to znamena, ze to co má u sebe tu čáru, tak nelze identifikovat bez toho k čemu je to připojeno. Když totiž řekneš jen číslo pokoje, tak nikdo neví kde to je, musíš říct ještě název bloku.

edit flag offensive delete publish link more

Your answer

Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!

Add answer

[hide preview]

Question tools

Follow
1 follower

Stats

Asked: 2014-10-14 22:04:26 +0100

Seen: 10,250 times

Last updated: Oct 15 '14