1 / 32

Úvod do databázových systémů

Úvod do databázových systémů. Cvičení 04 . Ing. Pavel Bednář pavel.bednar.st1@vsb.cz. Opakování. Entita Libovolná existující osoba, zvíře, věc či jev (obecně objekt) reálného světa. Entita musí být rozlišitelná od ostatních entit a existovat nezávisle na nich . Typ Entity

leanne
Télécharger la présentation

Úvod do databázových systémů

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Úvod do databázových systémů Cvičení 04 Ing. Pavel Bednář pavel.bednar.st1@vsb.cz

  2. Opakování • Entita Libovolná existující osoba, zvíře, věc či jev (obecně objekt) reálného světa. Entita musí být rozlišitelná od ostatních entit a existovat nezávisle na nich. • Typ Entity Množina objektů stejného typu, charakterizovaných názvem typu a popsaných pomocí jejich vlastností - atributů. Jednotlivé entity nazýváme také výskyty nebo instancemi objektů entitního typu.

  3. Vztahová entita • Co zaznamenává ? -Obyčejná entita popisuje některý objekt -Vztahová entita popisuje vztah mezi entitami • Jaké jsou její atributy -Její atributy jsou typy entit, mezi kterými popisuje vztah Instance vztahu jsou pak konkrétní dvojice či n-tice entit vstupujících do vztahu

  4. Vztahová entita • Příklad 1 • Typ vztahové entity – UČÍ (UČITEL, PŘEDMĚT) • Instance vztahu – (Radoslav Fasuga, UDBS) • Příklad 2 • Entity: MUŽI, ŽENY • Vztah – MANŽELSTVÍ (MUŽI, ŽENY) • Další atributy vztahy – datum svatby, …

  5. ER Diagram • Jak se určuje kardinalita vztahu • Určuje se dvěma větami Př. „Jeden učitel učí jeden nebo více předmětů“ (1:N) „Jeden předmět může mít jednoho nebo více učitelů“ (1:M)

  6. ER Diagram • Do některých vztahů musí vstupovat každá entita množiny entit, do jiného vztahu ne. • Jaké existují povinnosti členství • povinné (obligatorní) • nepovinné (fakultativní) • Jak se určuje povinnost členství Př. „Firma může, ale nemusí vyrábět výrobek“ ( o ) „Výrobek musí mít firmu“ (  )

  7. Příklad – Vydavatel kuchařek • V knihkupectví specializujícím se na prodej kuchařských knih potřebují vytvořit systém pro evidenci. Chtějí evidovat jednotlivá vydavatelství, vydané kuchařské knihy, recepty a použité suroviny. Obecně platí, že recept může být otištěn ve více knihách.

  8. Příklad – Vydavatel kuchařek • Entitní typy • Vydavatelstvi (id_vydavatel, nazev, adresa, telefon) • Kucharka (id_kucharka, nazev, id_vydavatelstvi) • Recept (id_recept, nazev,postup) • Surovina (id_surovina, nazev) • Vztahy mezi entitními typy • Vydáva (Vydavatelstvi,Kucharka) 1:N • Obsahuje (Kucharka, Recept) M:N • SeSkládá (Recept, Surovina) M:N

  9. Příklad – Vydavatel kuchařek M N Recept Surovina Obsahuje Vydavatelství Kuchařka N M Vydává SeSkládá 1 N

  10. Příklad – Vydavatel kuchařek • Entitní typy • Vydavatelstvi (id_vydavatel, nazev, adresa, telefon) • Kucharka (id_kucharka, nazev, id_vydavatelstvi) • Recept (id_recept, nazev,postup) • Surovina (id_surovina, nazev) • ReceptKucharky (id_kucharka, id_recept) • SurovinaReceptu (id_recept, id_surovina, mnozstvi) • Vztahy mezi entitními typy • Vydáva (Vydavatelstvi,Kucharka) 1:N • Obsahuje1 (Kucharka, ReceptKucharky) 1:N • Obsahuje2 (ReceptKucharky, Recept) N:1 • SeSkládá1 (Recept, SurovinaReceptu ) 1:N • SeSkládá2 (SurovinaReceptu, Recept ) N:1

  11. Recept Kuchařky SurovinaReceptu Vydavatelství Kuchařka Recept Surovina N 1 N 1 1 N 1 N N 1

  12. Příklad – Dostihové závody • Dostihová komise rozhodla o vybudování informačního systémů pro jednotlivé stáje, koně, dostihy a výsledky dostihů. Informační systém obsahoval informace o stájích, obsahoval registrační číslo stáje(unikátní pro každou stáj), majitele, adresa – město, ulice, PSČ/ZIP, země. Každá stáj musí mít minimálně jednoho koně. U koňů se evidovalo jejich číslo (jednoznačné v rámci jedné stáje v různých stájích mohou mít koně stejná čísla), jméno koně, stáří, zaměření (zaměření koně nemusí být vyplněno), pohlaví. Každý kůň patří právě jedné stáji. Další součástí evidence byl seznam absolvovaných závodů (těch které již proběhly). Závod je určen číslem závodu (jednoznačné číslo v rámci jedné sezony = jednoho roku), rokem konání, názvem závodu, dotací na závod. V každém závodu misí být minimálně jeden kůň, ale někteří koně dosud nestartovali v žádném závodě. Pro každý závod můžeme sledovat seznam všech koňí, kteří se závodu zúčastnili, i těch kteří nedokončili, u každého koně sledujeme startovní číslo v závodě a konečné umístění pro každého koně. Neuvažujeme dělená místa.

  13. Příklad – Půjčovna DVD • Půjčovna DVD se rozhodla vybudovat informační systém o půjčených discích bez možnosti rezervace. U jednotlivých disků se evidovalo číslo titulu (jednoznačně v rámci půjčovny), jméno filmu česky, jméno filmu anglicky (nemusí existovat), délka v minutách, jazyk audio, jazyk titulky. Dále se evidovaly jednotlivé exempláře daného filmu, protože půjčovna mohla mít více disků od stejného titulu. U exemplářů se evidovalo pořadové číslo, datum pořízení, datum vyřazení( které bylo prázdné pokud se titul nevyřadil.). Mohla nastat situace, že k filmu nebyl žádný exemplář (poškozen, připravovaný titul, atd.). Dále se evidoval seznam členů videopůjčovny číslem člena (jednoznačné pro každého člena v rámci videopůjčovny), jméno, příjmení, adresa – město, ulice, PSČ, telefon. Stěžejní operací bylo ukládání informací o vypůjčených titulech, kde se ukládaly informace o půjčeném titulu, který člen si jej půjčil, datum půjčení a vrácení. Při půjčení se evidovalo, který exemplář si člen půjčil, tak aby se dalo následně sledovat kdo konkrétní exemplář titulu poškodil. Stejný exemplář si člen může půjčit víckrát. Člen si nemusí půjčit žádny exemplář a nový exemplář nemusí být dosud vypůjčen.

  14. Sledování historických dat • Údaje o entitě se mohou v průběhu času měnit. • Potřeba přistupovat k historickým údajům • Příklad • Zákazník si vytvoří objednávku, ale cena produktů, které si objednal se změní. • Zákazník změní adresu bydliště. • Je potřeba uložit informace, které se mohou časem změnit.

  15. Sledování historických dat

  16. Redundance a předpočítaná data • Někdy je výhodné použít rendundantní data • Je ale třeba zabezpečit aby odpovídali skutečnosti a zabezpečit, že se hodnoto předpočítaného atributu, přepočítá vždy když má. (transakce) • Ušetření výpočetního výkonu a rychlosti vykonávání dotazu.

  17. Redundance a předpočítaná data

  18. Rozklad multiatributů • Multiatribut je takový atribut, který jde rozložit na více částí. • Atomický atribut je takový, který již není dále dělitelný. • Příklad • Adresa – jde rozložit na město, ulice, číslo popisné, psč • Firma – jde rozložit na název společnosti a typ (s.r.o., a.s.) • Zákazník – jde rozložit na titul, jméno, příjmení

  19. Rozklad multiatributů • Příkladem multiatributu může být i pole hodnot. (Například plat zaměstnance) • Řešení • Tabulka bude obsahovat tolik sloupečků, kolik platů chceme historicky evidovat. • Vznikne nová tabulka, kde jeden plat bude jeden řádek.

  20. Rozklad multiatributů • Tabulka bude obsahovat tolik sloupečků, kolik platů chceme historicky evidovat.

  21. Rozklad multiatributů • Vznikne nová tabulka, kde jeden plat bude jeden řádek.

  22. Příklad

  23. Příklad pro generický návrh • Máme databázi e-shopu • Chceme evidovat různé informace o různých produktech

  24. Každý produkt má svou tabulku • Vyhledávání obecných (společných) informací (název, popis) se provádí pro každou tabulku zvlášť • Specifické atributy jsou uloženy vždy pro každý produkt zvlášť • Neefektivní, jelikož při změně nebo rozšíření produktové řady, je nutné měnit nebo přidávat datové struktury

  25. Každý produkt má svou tabulku

  26. Společná tabulka + specializace • Společné atributy v tabulce produkt (tedy vyhledávání nad jedinou tabulkou) • Specifické vlastnosti uloženy ve vlastní struktuře • Opět závislost datových struktur a obsahu • Tedy je nutné doplňovat tabulky se specifickými vlastnostmi • Je zde však možné přidat nový produkt (jiný) bez specifických vlastností

  27. Společná tabulka + specializace

  28. Všechny vlastnosti u produktu • Jedna tabulka společná pro všechny produkty • Všechny specifické vlastnosti jsou uloženy v jedné tabulce • Pro daný produkt se vyplní pouze ty vlastnosti, které mají význam • Pro různé druhy produktů existuje mnoho rozdílných vlastností • V tabulce bude existovat mnoho popisných atributů, z nichž jen část bude reálně vyplněna

  29. Všechny vlastnosti u produktu

  30. Generický design • Každou vlastnost uložím jako řádek ve vazební tabulce. • Mohu přidávat nové vlastnosti, aniž by se musela měnit strukturu databáze • Náročnější na tvorbu

  31. Generický design M N Vlastnost Popisuje Produkt N M Obsahuje N 1 JeZařazen Kategorie N Je Podkategorie

  32. Příklad – Úspora na telefon • Majitel firmy zjistil, že utrácí velké prostředky za mobilní telefony a rozhodl se tuto problematiku řešit. Sestavil seznam čísel, na které jeho zaměstnanci mohou telefonovat z určitého mobilního telefonu a ostatní nechal zablokovat. Každý mobil má svého vlastníka (zaměstnance). V seznamu se může vyskytnou číslo na které nesmí aktuálně volat žádný zaměstnanec. Každý zaměstnanec má stejný seznam povolených čísel. V seznamu bylo uvedeno číslo, majitel čísla a cenový tarif. Dále vytvořil seznam vlastních mobilních telefonních čísel, kde bylo uvedeno číslo telefonu, operator, osobní číslo zaměstnance. Jeden zaměstnanec nemohl vlastnit více mobilních čísel a dokonce nemusel vlastnit žádný firemní mobil. Z nového mobil nemuselo být ještě telefonováno. V evidenci zaměstnanců bylo uvedeno osobní číslo zaměstnance (jednoznačné v rámci firmy), jméno, příjmení, pozice ve firmě (pozice nemusí být vyplněna). Dále se eviduje, kdy který mobil volal, na některé z povolených čísel. Sleduje se datum a čas volání, číslo mobilního telefonu, cílové číslo, délka hovoru, cena.

More Related