Databázové systémy Datové modely
Datové modely Datový model - kolekce konceptuálních nástrojů pro popis objektů reality - reprezentujících dat, vztahů mezi nimi, sémantiky a integritních omezení. Rozdělení podle úrovně modelování: Logické modely - popisují data na úrovni konceptuální a pohledů modely pro modelování objektů reálného světa (ER model, funkcionální model, …) – konceptuální modelování databázové modely definující logickou organizaci dat v databázi (hierarchický, síťový, relační, objektový, objektově-relační, …) Modely fyzických dat – popisují data na fyzické úrovni.
Konceptuální modelování Fáze datové resp. objektové analýzy – využívá modely založené na objektech aplikační domény Fáze návrhu databáze
ER modely ER model – entitně-relační model Je založen na chápání světa jako množiny základních objektů - entit (Entity) a vztahů (Relationship) mezi nimi. Popisuje data "v klidu", neukazuje, jaké operace s daty budou probíhat. Někdy se označuje také jako ERA – třetím základním prvkem modelu jsou atributy (Attributes). Pro návrh databází se často využívají grafické prostředky, kterými lze snadno znázornit vztahy mezi entitami – entitně-relační diagramy
Příklad: Spořitelna
Základní pojmy Entita – „věc“ nebo objekt reálného světa rozlišitelný od jiných objektů, o níž chceme mít informace v DB. Př. Klient banky s id. číslem 999, účet s číslem účtu 100. Entitní množina - množina entit téhož typu, které sdílí tytéž vlastnosti neboli atributy. Př. Klient, Účet Atribut - vlastnost entity, která nás v kontextu daného problému zajímá a jejíž hodnotu chceme mít v DB uloženu. Př. Klient: čísloKlienta, jméno, příjmení, adresa, … Doména atributu - obor hodnot atributu. Vztah – asociace mezi několika entitami. Př) Klient s číslem klienta K999 vlastní účet s číslem účtu U100. Vztahová množina - množina vztahů téhož typu, které sdílí tytéž vlastnosti. Identifikátor (primární klíč) entitní nebo vztahové množiny – atribut, jehož hodnota je v rámci dané množiny jednoznačná a neredukovatelná (v případě složeného atributu – viz dále).
Typy atributů Entitní množina: Klient Jednoduché a složené Složené atributy: Jméno Adresa Složky: jméno příjmení ulice číslo město PSČ Jednohodnotové a vícehodnotové Vícehodnotový atribut: telefon Hodnoty: číslo1,číslo2,číslo3, … Povolující prázdnou hodnotu Mohou nabývat speciální hodnoty Null – chybí nebo je neznáme Odvozené Hodnotu lze odvodit od jiných atributů nebo entit (věk, plat,…)
Parametry vztahů Jméno vztahové množiny – vyjadřuje význam vztahů Stupeň Kardinalita Členství Atributy vztahů Jméno vztahové množiny – vyjadřuje význam vztahů
Stupeň
Kardinalita – maximální počet vztahů daného typu (vztahové množiny), ve kterých může participovat jedna entita.
Členství – vyjadřuje minimální počet vztahů daného typu (vztahové množiny)
Identifikátor (primární klíč) entitní množiny Atributy vztahů Identifikátor (primární klíč) entitní množiny - entity a vztahy musí být identifikovatelné - hodnota identifikátoru musí být unikátní (a minimální) - identifikátorem je jednoduchý nebo složený atribut
Kreslení ER diagramů – používané notace
Rozšíření ER diagramu Silná entitní množina – má identifikátor tvořený vlastními atributy. Slabá entitní množina – nemá identifikátor tvořený vlastními atributy, ale obsahuje identifikátor jiné entitní množiny, na níž závisí (tzv. dominantní).
Doporučení pro tvorbu ER diagramu Jména - srozumitelná, musí vyjadřovat význam entitních a vztahových množin - entitní množiny: podstatná jména - vztahové množiny: slovesa, předložky • Několik různých vztahových množin - nutno použít jméno vztahové množiny nebo role.
Celkový systém by neměl být zahrnut do ER diagramu Identifikátor entitní množiny - identifikátorem je jednoduchý nebo složený atribut Situace, kdy používáme složené identifikátory: - přirozená identifikace spojením několika atributů - vazební entitní množiny nahrazující vztahové s kardinalitou M:N - u slabých entitních množin - při modelování časových změn - unikátnost hodnoty jen v rámci vyvíjeného systému
- Nevytvářet entitní množinu s různými identifikátory entit na základě jejich výskytu ve stejné vztahové množině.
Entitní množina nebo atribut? Pravidlo: Je-li hodnota atributu důležitá, i když neexistuje žádná entita s touto hodnotou jako vlastností, pak bychom ji měli modelovat jako entitu Atributy a vztahy 1:M
Použití pro modelování časových změn Změny atributů Změny vztahů
Metodika tvorby konceptuálního datového modelu 1. Zvolte jednu primární entitu ze specifikace požadavků. 2. Určete atributy, jejichž hodnoty se mají pro tuto entitu zaznamenávat. Označte případné klíče (identifikátory) a vytvořte ukázková data. 3. Popište slovně navrženou entitu, její atributy a klíče. 4. Prověřte funkční vztahy (závislosti) atributů a v případě potřeby entitu normalizujte. 5. Prověřte atributy navržené entity a zjistěte, zda je třeba zaznamenávat informace o jednom či více atributech v nové samostatné entitě. 6. Je-li vhodné vytvořit další entitu, zakreslete ji do diagramu a vraťte se na krok 2. 7. Spojte entity vztahy, pokud tyto existují. Popište slovně vztahy mezi entitami z obou stran. 8. Prověřte seznam atributů a určete, zda některé z nich potřebují být identifikovány prostřednictvím dvou (či více) entit. Pokud ano, umístěte atribut na příslušný vztah, který spojuje dané entity. 9. Prověřte, zda v diagramu nemáte „smyčky“, které mohou indikovat nadbytečné (odvozené) vztahy. Pokud je vztah skutečně redundantní, odstraňte ho. 10. Vytvořte ukázková data. 11. Předveďte navržený model (diagram i slovní popis) uživateli. Pokud je to třeba, upřesněte diagram.