Konceptuální modelování

Podobné dokumenty
DBS Konceptuální modelování

DBS Konceptuální modelování

Funkční schéma Datové schéma Integrita modelu s realitou

Konceptuální modelování

Diagram výskytů a vztahů

DBS Transformace konceptuálního schématu na

Modely datové. Další úrovní je logická úroveň Databázové modely Relační, Síťový, Hierarchický. Na fyzické úrovni se jedná o množinu souborů.

Transformace konceptuálního modelu na relační

Transformace ER SQL. Ing. Michal Valenta PhD. Databázové systémy BI-DBS ZS 2010/11, P edn. 9

DBS Databázové modely

Konceptuální modelování. Pavel Tyl

Databáze 2013/2014. Konceptuální model DB. RNDr. David Hoksza, Ph.D.

Analýza dat a modelování. Přednáška 2

Analýza a modelování dat. Helena Palovská

DBS Databázové modely

Obsah přednášky. Databázové systémy RDBMS. Fáze návrhu RDBMS. Coddových 12 pravidel. Coddových 12 pravidel

Databázové systémy. Cvičení 2

Úvod do databázových systémů 6. cvičení

A5M33IZS Informační a znalostní systémy. O čem předmět bude? Úvod do problematiky databázových systémů

RNDr. Jakub Lokoč, Ph.D. RNDr. Michal Kopecký, Ph.D. Katedra softwarového inženýrství Matematicko-Fyzikální fakulta Univerzita Karlova v Praze

Databázové modelování. Analýza Návrh konceptuálního schématu

Databáze. Logický model DB. David Hoksza

Databázové systémy. Vztahy a relace. 3.přednáška

2 Konceptuální modelování a návrh databáze

2 Konceptuální modelování a návrh databáze

4IT218 Databáze. 4IT218 Databáze

Inovace tohoto kurzu byla spolufinancována z Evropského sociálního fondu a státního rozpočtu České republiky.

Konceptuální datové modely používané při analýze

DATOVÉ MODELOVÁNÍ ER MODEL

C8 Relační databáze. 1. Datový model

Analýza problémové domény

Seminá e. Ing. Michal Valenta PhD. Databázové systémy BI-DBS ZS 2010/11, sem. 1-13

Databáze I. Přednáška 2

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

2. Modelovací jazyk UML 2.1 Struktura UML Diagram tříd Asociace OCL. 3. Smalltalk 3.1 Jazyk Pojmenování

Otázka č. 1 (bodů za otázku: 4)

Modelový příklad Knihovna Vypracovaný příklad ze cvičení včetně komentářů k řešení

Petr Křemen. Katedra kybernetiky, FEL ČVUT. Petr Křemen (Katedra kybernetiky, FEL ČVUT) Sémantické sítě a rámce 1 / 112

Databázové systémy BIK-DBS

Databázové systémy. modelování. Tomáš Skopal. - úvod. - konceptuální datové

Database engine (databázový stroj, databázový motor, databázové jádro) Systém řízení báze dat SŘBD. Typy SŘBD podle způsobu práce s daty

Úvod do softwarového inženýrství IUS 2009/2010 p.1/30

Analýza dat a modelování. Přednáška 1

Etapy tvorby lidského díla

Jazyk SQL 1. Michal Valenta. Katedra softwarového inženýrství FIT České vysoké učení technické v Praze c Michal Valenta, 2012 BI-DBS, ZS 2011/12

6 Objektově-orientovaný vývoj programového vybavení

Návrh databázového modelu

Objektově orientované databáze. Miroslav Beneš

Informační systémy 2008/2009. Radim Farana. Obsah. Obsah předmětu. Požadavky kreditového systému. Relační datový model, Architektury databází

Objektové modelování BI-OMO 4. cvičení

Databáze I. 4. přednáška. Helena Palovská

Relace x vztah (relationship)

Architektura softwarových systémů

Kapitola 2: Entitně-vztahový model (Entity-Relationship model) Množiny entit (entitní množiny) Atributy

Strukturované metodologie

Zadání. Seznam typů entit včetně jejich atributů, vyznačte klíče a cizí klíče Seznam typů vztahu určený svým názvem a entitami do něj vstupujícími

Fyzické uložení dat a indexy

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

Analýza a modelování dat 2. přednáška. Helena Palovská

RNDr. Jakub Lokoč, Ph.D. RNDr. Michal Kopecký, Ph.D. Katedra softwarového inženýrství Matematicko-Fyzikální fakulta Univerzita Karlova v Praze

8.2 Používání a tvorba databází

Jazyk UML - přehled. diagram hierarchie procesů. IS firmy. podpora řízení. evidence zaměstnanců. pokladny. výroba. diagram procesních vláken

Metodika návrhu databáze

Databázové systémy úvod

Databázové systémy. Ing. Radek Holý

Souvislost E-R schématu s relačním

Různé úrovně pohledu na data

Fakulta elektrotechniky a informatiky Vysoká škola báňská - Technická univerzita Ostrava. Úvod do databázových systémů 2012/2013 IS MHD

2. Konceptuální model dat, E-R konceptuální model

Jiří Mašek BIVŠ V Pra r ha

Terminologie v relačním modelu

RELAČNÍ DATABÁZOVÉ SYSTÉMY

Primární klíč (Primary Key - PK) Je právě jedna množina atributů patřící jednomu z kandidátů primárního klíče.

Databázové systémy úvod

7.3 Diagramy tříd - základy

Databázové systémy. Přednáška 1

Databázové systémy BIK-DBS

7.5 Diagram tříd pokročilé techniky

4IT218 Databáze. 4IT218 Databáze

ÚVOD DO DATABÁZÍ I (DISTANČNÍ VÝUKOVÁ OPORA)

7.3 Diagramy tříd - základy

Databáze 2011/2012 Konceptuální model DB. RNDr. David Hoksza, Ph.D.

UML úvod. Zdroje: Kanisová Hana, Müller Miroslav: UML srozumitelně, Computer Press 2007

Relační model reprezentuje databázi jako soubor relací. Kaţdá relace představuje tabulku nebo soubor (ve smyslu soubor na nosiči dat).

Databázové systémy 1. Studijní opora. Ing. Zbyněk Bureš. Ph.D.

Databázové systémy Cvičení 5.2

Informační systémy a datové sklady IS uměleckých galerií Analýza datového skladu

Střední průmyslová škola Zlín

OOT Objektově orientované technologie

Diagramy tříd - základy

DBS Normální formy, normalizace

Tvorba informačních systémů

Relační databázový model. Vladimíra Zádová, KIN, EF, TUL- DBS

VŠB FEI - Technická Univerzita Ostrava. DAIS - Projekt. Dopravní podnik. Jméno: Matěj Kotyz (KOT0177)

Analýza a modelování dat 3. přednáška. Helena Palovská

Teorie zpracování dat DATABÁZOVÁ TECHNOLOGIE

Metody tvorby ontologií a sémantický web. Martin Malčík, Rostislav Miarka

Marketingová komunikace. 2. soustředění. Mgr. Pavel Vávra Kombinované studium Skupina N9KMK1aPH/N9KMK1bPH (um1a1ph/um1b1ph)

Geografické informační systémy p. 1

S databázemi se v běžném životě setkáváme velmi často. Uvádíme běžné použití databází velkého rozsahu:

Transkript:

Konceptuální modelování Michal Valenta Katedra softwarového inženýrství Fakulta informačních technologií České vysoké učení technické v Praze c Michal Valenta, 2016 BI-DBS, LS 2015/16 https://edux.fit.cvut.cz/courses/bi-dbs/ Michal Valenta (FIT ČVUT) Konceptuální modelování Databázové systémy 2016 1 / 41

Různé úrovně pohledu na data Michal Valenta (FIT ČVUT) Konceptuální modelování Databázové systémy 2016 3 / 41

Konceptuální, logická, fyzická úroveň Konceptuální Zabývá se modelováním reality. Snaží se nebýt ovlivněna budoucími prostředky řešení. Používá se grafická notace (obvykle ER model nebo UML Class Diagram), případně další IO. Databázová Vztahuje se ke konkrétnímu databázovému modelu a používá jeho konstrukční dotazovací a manipulační prostředky (relační objektová, sít ová, hierarchická, XML,...). Fyzická Jde o fyzické uložení dat (sekvenční soubor, indexy, clustery,...). Uživatelé (programátoři aplikací, příležitostní uživatelé) jsou od ní odstíněni databázovou vrstvou. Michal Valenta (FIT ČVUT) Konceptuální modelování Databázové systémy 2016 4 / 41

Konceptuální modelování databází - proč? Nejdůležitější přínosy: společné chápání objektů aplikace uživateli a projektanty, integrace různých uživatelských pohledů, výsledek je vstupem pro realizaci databáze, slouží jako dokumentace. Důsledky vypuštění konceptuální úrovně: Příliš nízká úroveň pohledu na data: obtížná komunikace se zadavatelem (zákazníkem), neumožní realizaci větší databáze. V rozsáhlejší databázi je velmi těžké se zorientovat. Michal Valenta (FIT ČVUT) Konceptuální modelování Databázové systémy 2016 6 / 41

Návrhy IS postaru Funkční a datová analýza relativně oddělená. Funkční schéma výsledek funkční analýzy a návrhu. Kdo bude používat aplikaci? Kategorie uživatelů systému. Pracovní postupy v organizaci, které mají být počítačově podporovány. Události, která spouští počítačově podporovaný pracovní postup. Datové schéma výsledek datové analýzy a návrhu. Problém: udržení konzistence funkční a datové analýzy. Michal Valenta (FIT ČVUT) Konceptuální modelování Databázové systémy 2016 8 / 41

Návrh IS v objektově orientovaném prostředí Funkční a datová analýza není tak striktně oddělená. Objektový přístup zdůrazňuje zapouzdření dat. Masivně využívá konstrukce jako agregace, kompozice, dědění. UML notace je objektově orientovaná. UML (class diagram) má více možností (blíží se více reálnému světu), na druhou stranu převod do relační úrovně není tak snadný jako v případě (binárního) ER modelu. V předmětu BI-DBS budeme (i z didaktických důvodů) používat (binární) ER notaci. Michal Valenta (FIT ČVUT) Konceptuální modelování Databázové systémy 2016 9 / 41

Prvky konceptuálního modelu orientace na entity (třídy) a vztahy (asociace) mezi nimi entity (třídy), instance (objekty) atributy doména, povinnost, identifikátor/unikátnost vztahy (asociace) obecný vztah (asociace) kardinalita, parcialita identifikační vztah (slabá a silná entita) ISA-hierarchie (podtyp jako specializace) nepřehánět a pozor na sémantiku!!! Michal Valenta (FIT ČVUT) Konceptuální modelování Databázové systémy 2016 10 / 41

Tvorba datového modelu postup Identifikace entit (entitních typů) jako tříd objektů stejného typu. příklady entit FILM, ZÁKAZNÍK, ZAMĚSTNANEC, KOPIE Identifikace vztahů (vztahových typů), do kterých entity mohou vstupovat : příklady vztahu ZAKAZNÍK (entita) MÁ_PŮJČEN (vztah) FILM (entita) Identifikace atributů popisujících blíže vlastnosti entit a vztahů. Michal Valenta (FIT ČVUT) Konceptuální modelování Databázové systémy 2016 12 / 41

Atributy a IO Příklady atributů: příjmení (atribut) zaměstnance (entita), rodné číslo (atribut) zaměstnance (entita), datum (atribut vztahu), do kdy má zákazník (entita) půjčenou (vztah) kopii filmu (entita). Příklady integritních omezení (IO): Doménou atributu vaha (entity zákazník) je integer. Atribut vaha (entity zákazník) musí mít jednu hodnotu (pro jednoho zákazníka). Atribut rodné číslo je identifikátorem entity zákazník. Atribut datum (vztahu půjčeno) může mít nejvýše jednu hodnotu. Atribut herec entity film muže mít mnoho hodnot. Michal Valenta (FIT ČVUT) Konceptuální modelování Databázové systémy 2016 13 / 41

Entita a vztah Lineární zápis: Entity: Film, Kino Relace: ma_na_programu (Film, Kino) Grafický zápis: Poznámka: převážně budu používat binární ER notaci (nástroj Oracle Data Modeller). Michal Valenta (FIT ČVUT) Konceptuální modelování Databázové systémy 2016 15 / 41

Atributy Michal Valenta (FIT ČVUT) Konceptuální modelování Databázové systémy 2016 16 / 41

Kardinalita 1:1 Kino hraje nejvýše jeden film. Film je na programu nejvýše jednoho kina. Poznámka: povinnost/nepovinnost členství ve vztahu (parcialitu) budeme diskutovat později. Michal Valenta (FIT ČVUT) Konceptuální modelování Databázové systémy 2016 17 / 41

Kardinalita 1:N Kino může hrát více filmů. Film je na programu nejvýše jednoho kina. Michal Valenta (FIT ČVUT) Konceptuální modelování Databázové systémy 2016 18 / 41

Kardinalita M:N Kino může hrát více filmů. Film může být na programu více kin. Michal Valenta (FIT ČVUT) Konceptuální modelování Databázové systémy 2016 19 / 41

Povinnost účasti ve vztahu (parcialita) povinná účast (obvykle značíme plnou čarou nebo 1 ) Všechny instance musí být zapojeny do příslušného vztahu. Kino musí mít na programu alespoň jeden film. Film musí být na programu alespoň jednoho kina. nepovinná účast (obvykle značíme přerušovanou čarou nebo 0 ) Jednotlivé instance mohou, ale nemusí být zapojeny do vztahu. Evidované kino nemusí hrát ani jeden film. (Kino může být evidováno i bez programu.) Evidujeme i filmy, které se nikde nehrají. (Film nemusí být na programu žádného kina.) Michal Valenta (FIT ČVUT) Konceptuální modelování Databázové systémy 2016 20 / 41

Nepovinná účast různé notace Kino může hrát více filmů (ale také žádný). Film je na programu právě jednoho kina. Michal Valenta (FIT ČVUT) Konceptuální modelování Databázové systémy 2016 21 / 41

Povinná účast různé notace Kino hraje alespoň jeden film (ale může více). Film je na programu právě jednoho kina. Jak takovou databázi inicializujeme? Michal Valenta (FIT ČVUT) Konceptuální modelování Databázové systémy 2016 22 / 41

Identifiakční závislost, slabá entita Entita je identifikována (částačně nebo plně) vztahem k jiné entitě. Slabá entita má vlastní atribut, který se podílí na identifikaci. Slabá entita nemá vlastní atribut, který se podílí na identifikaci. K jednomu vlastníkovi může patřit nejvýše jedna identifikačně závislá instance. Každá osoba může mít nejvýše jeden profil. Michal Valenta (FIT ČVUT) Konceptuální modelování Databázové systémy 2016 23 / 41

Atributy ve vztahu - motivace. Chenova notace atributy u vztahu povoluje. Binární notace (i UML Class Diagram) vyžadují explicitní dekompozici vztahu - vložení vztahové entity. Každý vztah M:N lze dekomponovat na 2 vztahy 1:N. Vztahová entita bude bud silná nebo slabá (viz dále). Michal Valenta (FIT ČVUT) Konceptuální modelování Databázové systémy 2016 24 / 41

Atributy ve vztahu - řešení Použití identifikační závislosti: Použití silné vztahové eintity: Michal Valenta (FIT ČVUT) Konceptuální modelování Databázové systémy 2016 25 / 41

Ještě jednou M:N - bez atributů Vztah M:N bez atributů můžeme (myšlenkově) dekomponotat takto: Pozor: zde konkrétní kino hraje konkrétní film nejvýše jednou! Můžeme však také (myšlenkově) dekomponovat takto: Pozor: zde konkrétní kino hraje konkrétní film kolikrát chce! Neprovedeme-li explicitní transformaci M:N při přechodu na relační úroveň, používá se obvykle 1. varianta. Tak jsme to možná nezamýšleli! Michal Valenta (FIT ČVUT) Konceptuální modelování Databázové systémy 2016 26 / 41

Rekurzivní vztah Používá se k vyjádření vztahu mezi instancemi stejné entity. Přímý nadřízený, předchůdce-potomek, část-celek,... Michal Valenta (FIT ČVUT) Konceptuální modelování Databázové systémy 2016 27 / 41

ISA hierarchie Původně zkratka z anglického Is a Pozor, ve striktním pojetí ER modelu se vyžaduje, aby každá instance nadtypu měla právě jednu instanci podtypu. nevhodné pro role (např. student, učitel,...), lepší identifikační závislost. Michal Valenta (FIT ČVUT) Konceptuální modelování Databázové systémy 2016 28 / 41

Sémantický relativismus modelujeme situaci, kdy pacienti leží na pokojích zákazník zdůrazňuje, že je důležité znát na kolikalůžkovém pokoji pacient leží??? PACIENT(ID_PAC, JMENO,.., POCET_LUZEK) lépe: PACIENT(ID_PAC, JMENO...) POKOJ(ID_POKOJE, POCET_LUZEK,...) Informace o počtu lůžek na pacientově pokoji je dohledatelná ze vztahu mezi pacientem a pokojem. Michal Valenta (FIT ČVUT) Konceptuální modelování Databázové systémy 2016 29 / 41

Příklad - návrh videopůjčovny 1/3 Půjčovna se rozhodala použít počítač pro evidenci vyjpůček filmů. eviduje se skutečnost, kterou lze jednou větou vyjádřit jako : Zákazníci si od zaměstnanců půjčovny půjčují filmy. Poznámka: umělé versus přirozené identifikátory. Michal Valenta (FIT ČVUT) Konceptuální modelování Databázové systémy 2016 31 / 41

Příklad - návrh videopůjčovny 2/3... rozlišujeme KOPIE a FILMY, film si lze rezervovat: Michal Valenta (FIT ČVUT) Konceptuální modelování Databázové systémy 2016 32 / 41

Příklad - návrh videopůjčovny 3/3... a krom toho, chceme vědět, které filmy se ještě hrají v kinech... Michal Valenta (FIT ČVUT) Konceptuální modelování Databázové systémy 2016 33 / 41

Příklad 2 Multikina přehled Navrhovaná databáze se skládá ze tří logických a relativně autonomních částí (agend): evidence multikin, jejich sálů a vybavení a evidence zaměstnanců kin včetně jejich historie, evidence filmů a umělců, kteří se na nich podílejí, evidence představení a evidence prodaných vstupenek. Michal Valenta (FIT ČVUT) Konceptuální modelování Databázové systémy 2016 34 / 41

Příklad 2 Multikina Evidence multikin a zamestnanců Každé multikino má nějaký název a adresu. Název nemusí být unikátní. Multikino je tvořeno typicky několika sály s různou kapacitou a různým vybavením. Evidovaný zaměstnanec pracuje nejvýše pro jedno multikino. Každý zaměstnanec aktuálně pracuje nejvýše na jedné pozici, zároveň však chceme sledovat i jeho pracovní historii. U zaměstnanců sledujeme obvyklé personální údaje. Každý zaměstnanec může mít nejvýše jednoho přímého nadřízeného. Při stanovení platů zaměstnanců se může jejich vedoucí nezávazně řídit číselníkem platových tříd obsahujícím horní a spodní platovou hranici pro danou třídu. Michal Valenta (FIT ČVUT) Konceptuální modelování Databázové systémy 2016 35 / 41

Příklad 2 Multikina Evidence filmů a umělců U filmů evidujeme jejich název a rok natočení. Názvy filmů nemusí být unikátní. Dále chceme vědět, kdo byl režisérem příslušného filmu. Zajímají nás i herci v jednotlivých rolích. Počet sledovaných rolí pro jeden film může být libovolný. Dále je třeba mít možnost přiřadit film až do několika žánrových kategorií, stejně tak je třeba evidovat, že film byl natočen v koprodukci i více zemí. V naší databázi hodláme evidovat režiséry a herce. Zajímá nás jméno umělce, rok narození a země, ze které pochází. Umělec může být jak režisérem, tak hercem. Zároveň připust mě evidenci i takových umělců, kteří nepatří ani do jedné kategorie. Michal Valenta (FIT ČVUT) Konceptuální modelování Databázové systémy 2016 36 / 41

Příklad 2 Multikina Evidence představení a vstupenek Představení je dáno datem a časem, kdy se hraje, filmem, který je na programu, a sálem, kde se koná. Pro představení evidujeme prodej volných stupenek. Vstupenka je vázaná k sedadlu a je vystavena na konkrétní představení. Kromě prodeje tzv. volných vstupenek evidujeme i VIP vstupenky. VIP vstupenka má časově omezenou platnost (od a do) a také je vázaná na konkrétní kino. VIP vstupenka se vystavuje na omezený počet představení. VIP vstupenka je vázaná na konkrétní osobu, u které sledujeme pouze její plné jméno. Michal Valenta (FIT ČVUT) Konceptuální modelování Databázové systémy 2016 37 / 41

Příklad 2 Multikina ER schéma část 1 ZAMESTNANCI PRAC_POZICE # * id_pozice * popis_pozice o pozadavky # * id_zam * jmeno * prijmeni o tituly_pred o tiluly_za o dat_nar o plat o rodne_cislo o username o nastoupil KINA PLATOVE_TRIDY # * oznaceni * spodni_hranice * horni_hranice # * id_kino * nazev * mesto o ulice * cislo_popisne o cislo_orientacni * psc ZAM_HISTORIE # * id_historie * od o do o plat SALY # * cislo * kapacita o vybaveni # * id_vstupenky VSTUPENKY VIP * plati_od * plaiti_do * pocet_predstaveni # * id_osoby * plne_jmeno OSOBY PREDSTAVENI * sedadlo VOLNA # * id_predstaveni * datum_a_cas Michal Valenta (FIT ČVUT) Konceptuální modelování Databázové systémy 2016 38 / 41

Příklad 2 Multikina ER schéma část 2 REZISERI UMELCI # * id_umelce * jmeno_umelce o rok_narozeni notocen_v_koprodukci reziruje obcanstvi # * id_filmu * nazev * rok FILMY # * zeme_kod * nazev ZEME # * zanr_kod * popis ZANRY HERCI # * id_predstaveni * datum_a_cas PREDSTAVENI # * role OBSAZENI Michal Valenta (FIT ČVUT) Konceptuální modelování Databázové systémy 2016 39 / 41

Poznámky na závěr Notace mohou být různé. Při konceptuálním modelování se staráme hlavně o popis reality, ne o rešení v konkrétním db stroji. Používáme vztahy mezi entitami, kardinalitu a parcialitu nikoliv cizí klíče. Jakmile se v obrázku objeví cizí klíče, už se nejedná o konceptuální, ale o graficky prezentované relační schéma. SQL*Developer používá tyto pojmy: logical model = konceptuální schéma je modré (o něm byla tato přednáška) relational model = relační schéma je žluté Michal Valenta (FIT ČVUT) Konceptuální modelování Databázové systémy 2016 41 / 41