P114_3 ‹#› P114_3 1 P114 Funkcionální přístup Základní intuice 3 P114_3 ‹#› P114_3 2 Témata •funkce jako „výpočetní“ procedura •funkce nezávislé na stavu světa: deskripce, analytické funkce •funkce závislé na stavu světa: entity, datové funkce •funkce přiřazující entitám deskripce nebo entity •objekty: extenze, intenze, funkce ... •objekty - výrazy - pojmy •pojmy jako identifikační procedury •základní princip komunikace P114_3 ‹#› P114_1/4 3 Elementární konstrukt přiřazení Přiřazení - zobrazení - funkce: je to předpis = procedura, který říká jaký výsledek (výstup) je přiřazen k danému vstupu P114_3 ‹#› P114_3 4 funkce (filozoficky) •bazální pojem: pojem funkce •skoro vše, o čem přemýšlíme jsou funkce (až na P,N, časové okamžiky, individua) •způsob, jak přemýšlíme: něco něčemu přiřazujeme, tj. základním konstruktem přemýšlení je funkce •jsme zvyklí jednotliviny, v něčem si podobné, „sypat“ do samostatných kontejnerů a přemýšlet a vyjadřovat se pomocí těchto kontejnerů = typů P114_3 ‹#› P114_3 5 elementární pojmy (množinově) P114_3 ‹#› P114_3 6 funkce (množinově) •Parciální funkce z množiny A do množiny B: f, f(a) = b "a, b1, b2: ((f(a) = b1 Ù f(a) = b2) Þ b1= b2) •Totální funkce z množiny A do množiny B: f:A ® B Df = A •Parciální funkce v užším smyslu: f:A ® B Df Í A Ù Df ¹ A P114_3 ‹#› P114_3 7 funkce více proměnných •Kartézský součin množin M1, M2, .., Mn: P(i=1..n)Mi = = M1 x M2 x ...x Mn = = { |m1ÎM1, ..., mn ÎMn} •Funkce „více proměnných“: f: P(i=1..n)Mi ® M Df Í P(i=1..n)Mi, Rf Í M P114_3 ‹#› P114_3 8 funkce, ... •n-ární funkce: složitost funkce je n+1 •funkce nedefinovaná na n-tici •totožnost funkcí : princip extenzionality F1: M1x...xMn ->M, F2: M1x...xMn ->M, X Î M1x..xMn, Y Î M -- libovolné : F1(X) = Y právě když F2(X) = Y, píšeme F1 = F2 •důsledek: je-li F1 = F2 a Z libovolný prvek z M1x...xMn, pak F1 je na Z nedefinováno právě tehdy, když F2 je na Z nedefinováno P114_3 ‹#› P114_3 9 funkce jako procedura •procesní pohled •(parciální) funkce je „výpočetní“ resp. „vyhodnocovací“ pravidlo/procedura, které poskytne buď nic nebo výsledek z množiny M, jestliže jí na vstupu zadáme hodnoty parametrů z M1x...xMn •deklar x1,..., xn/M1,..., Mn deklar y/M (tělo proc) •xi ... formální parametry, y ... výsledek P114_3 ‹#› P114_3 10 funkce nezávislé na stavu světa (analytické funkce) •tělo procedury je skutečný výpočet (algoritmus), který za všech okolností, tj. nezávisle na stavu světa, vypočítá při nahrazení formálních parametrů danými hodnotami výsledek •Příklady: (každý ?) program na počítači, algoritmus, matematické funkce, logické funkce P114_3 ‹#› P114_3 11 deskripce •deskripce jsou popisy něčeho pomocí nějakých hodnot •množina hodnot, které používáme pro popis určitého typu, se nazývá deskriptivní sorta •deskriptivní sorta „D“ jako funkce: Bool = {P, N}, Hodn = množina všech možných hodnot D : Hodn ® Bool (charakteristická funkce množiny D) •Příklady: dny v týdnu, měsíce v roce, prvočísla, ... P114_3 ‹#› P114_3 12 funkce závislé na stavu světa (datové či empirické funkce) •tělo procedury vyhodnocuje výsledek náhrady formálních parametrů zadanými hodnotami různě podle toho, jaký je stav světa •Prakticky: tělo procedury obsahuje tabulku (x1:M1, ..., xn:Mn, y:M), jejíž konkrétní naplnění daty reprezentuje jistý stav světa, •vyhodnocení = vyhledání řádku se zadanými hodnotami •Příklady: „Plat daného Zaměstnance“, „Množství daného druhu Zboží dodané daným Dodavatelem danému Odběrateli“ P114_3 ‹#› P114_3 13 Příklady: •„Plat daného Zaměstnance“ •deklar x/ZAM deklar y/PLAT (tělo procedury) P114_3 ‹#› P114_3 14 Příklady: •„Množství daného Zboží dodané daným Dodavatelem danému Odběrateli“ •deklar z/ZBOZI, d/DOD, o/ODB deklar m/MNOZSTVI (tělo procedury) ZBOZI DOD ODB MNOZSTVI ... ... hrnecky Keramo MU 450 P114_3 ‹#› P114_3 15 Entity •ZAMESTNANEC, DODAVATEL, ZBOZI •je entita množina všech jednotlivin, které jsou její prvky ? •právě teď: jeden zaměstnanec přibyl, dodavatel zkrachoval, jedno zboží se přestalo vyrábět a jiné-nové se objevilo •Změnily se uvedené entity ? •Entity jako funkce: Entita : StavySvěta ® (Jednotliviny ® Bool) P114_3 ‹#› P114_3 16 Příklady •Entita ZAMESTNANEC je funkce, která každému stavu světa přiřazuje množinu všech individuí (jednotlivin), které jsme ochotni pokládat za zaměstnance •Entita DODAVATEL je funkce ... •Entita ZBOZI je funkce ... P114_3 ‹#› P114_3 17 Funkce přiřazující entitám deskripce •entita ZAM ZAM : StavySveta ® (Jednotliviny ® Bool) •deskripce PLAT PLAT : Hodn ® Bool •PlatZam : 1ZAM ® 1PLAT přiřazuje zaměstnanci jeho plat v závislosti na stavu světa •tzv. popisné (deskriptivní) atributy •Příklady: CisloVyrobku, AdresaDodavat, ... P114_3 ‹#› P114_3 18 Funkce přiřazující entitám entity •entita ZBOZI ZBOZI : StavySveta ® (Jednotliviny ® Bool) •entita DOD DOD : StavySveta ® (Jednotliviny ® Bool) •DodZbozi : StavySveta ® (1ZBOZI ® 1DOD) přiřazuje danému zboží jeho dodavatele v závislosti na stavu světa •tzv. vztahové atributy •Příklady („ StavySveta ® “ a „1“ vynecháváme): P114_3 ‹#› P114_3 19 Příklady •OdbDodZbozi : DOD x ZBOZI ® ODB •přiřazuje dvojici (dodavatel, zboží) toho odběratele, kterému daný dodavatel dané zboží dodává •(odpovídá to realitě ???) •OdbDodZbozi : DOD x ZBOZI ® (ODB ® Bool) •přiřazuje dvojici dodavatel zboží tu množinu odběratelů, kterým daný dodavatel dané zboží dodává •(samozřejmě v závislosti na stavu světa) P114_3 ‹#› P114_3 20 Diagramy •funkce reprezentující deskripci •funkce reprezentující entitu •funkce reprezentující popisný resp. vztahový atribut (HIT-atribut, závislý na stavu světa) • P114_3 ‹#› P114_3 21 Popisný atribut ZAM PLAT daného PlatZam • typ hodnoty funkce • typ argumentů • typ samotné funkce • role argumentů • sémantika přiřazení P114_3 ‹#› P114_3 22 Vztahový atribut (složitosti 2) ZBOZI DOD dodávající dané DodZbozi ZBOZI DOD dodávající dané DodZbozi „femr“ přiřazení množiny P114_3 ‹#› P114_3 23 Vztahový atribut (složitosti 3) DOD ZBOZI ODB kterým daný dodává dané OdbDodZbozi 0,M .. 0,M poměr atributu (kardinalita) P114_3 ‹#› P114_3 24 Vztahový atribut (složitosti 4) MNOZSTVI ZBOZI DOD ODB MnoZboDodOdb daného druhu dodané daným danému 0,M .. 0,1 vztah je dán přes určitou deskripci P114_3 ‹#› P114_3 25 Lineární zápis atributu •PlatZam = plat (PLAT) daného zaměstnance (#ZAM)/1,1:0,M •lépe vystihuje realitu: PlatZam = plat (PLAT) daného zaměstnance (#ZAM)/0,1:0,M •DodZbozi = dodavatelé (#DOD) dodávající dané zboží (#ZBOZI)/0,M:1,M - nebo může být výhodnější: /0,M:0,M P114_3 ‹#› P114_3 26 Lineární zápis atributu - pokračování •OdbDodZbozi = odběratelé (#ODB) kterým daný dodavatel (#DOD) dodává dané zboží (#ZBOZI)/0,M:0,M •MnoZboDodOdb = množství (MNOZSTVI) daného druhu zboží (#ZBOZI) dodané daným dodavatelem (#DOD) danému odběrateli (#ODB) / 0,1:0,M •(?) je takové množství skutečně jediné ... P114_3 ‹#› P114_3 27 úvahy nad správnou formulací atributu •je jediné, pakliže se omezíme na zadané datum: •MnoZboDodOdbDat = množství (MNOZSTVI) daného druhu zboží (#ZBOZI) dodané daným dodavatelem (#DOD) danému odběrateli (#ODB) v daném dni (DATUM) / 0,1:0,M •... možná mohou proběhnout dvě i více dodávek v jednom dni ... •potom atribut MnoZboDodOdbDat musíme nahradit následovně: P114_3 ‹#› P114_3 28 Složitější atribut MNOZSTVI ZBOZI DOD ODB MnoZboDodOdbCas daného druhu dodané daným danému 0,M .. 0,1 CAS v daném CAS = (DATUM, HODINA) tzv. n-ticový popisný typ P114_3 ‹#› P114_3 29 Co jsou objekty našeho zájmu? •jednotlivé hodnoty nějakých deskripcí nebo •jednotlivé výskyty nějakých entit - zkrátka individua •resp. analytické funkce „vypočítávající“ nezávisle na stavu světa z jedněch individuí (argumentů) jiná individua (výsledky) •toto vše jsou tzv. extenze •deskripce jsou extenze ( třídy nezávislé na stavu světa) •... a dále: P114_3 ‹#› P114_3 30 Co jsou objekty našeho zájmu? (2) •jednotlivé entity (StavySveta ®(Jednotliviny ® Bool)) •popisné atributy (StavySveta ®(PlatZam)) •vztahové atributy (StavySveta ®(MnoZboDodOdbCas)) •to vše jsou tzv. intenze •a prakticky všechno to jsou funkce ... • P114_3 ‹#› P114_3 31 Jak o tom všem mluvíme ? •výrazy přirozeného jazyka (Cz, An, ...) •výrazy umělých jazyků –programovací jazyky, specifikační jazyky –jazyk matematiky, logiky –diagramy – ... •výrazy jazyka označují objekty našeho zájmu P114_3 ‹#› P114_3 32 Komunikace •různými výrazy lze označit týž objekt •pokud jsou tyto různé výrazy v rámci jednoho jazyka, hovoříme o synonymech •jeden výraz může označovat více objektů •pokud výraz uvažujeme v rámci jednoho jazyka, hovoříme o homonymech •abychom se domluvili, potřebujeme identifikovat (jednoznačně) objekty, které máme na mysli Þ potřebujeme pojmy P114_3 ‹#› P114_3 33 Pojmy jako identifikační procedury •Pojmy identifikují objekty, které máme na mysli •Pojmy jsou jakési konstrukce, které nám umožňují zadat objekt, o kterém chceme něco vypovědět •Pojmy jsou reprezentovány pomocí jazykových výrazů P114_3 ‹#› P114_3 34 Pojmy umožňují dorozumění •jazykový výraz: množství daného druhu zboží dodané daným dodavatelem danému odběrateli •označuje objekty (= jednotlivé tabulky) z obr. 14 - to mohou být rozličné objekty v závislosti na stavu světa •a reprezentuje pojem (= konstrukci) StavySveta ® MnoZboDodOdb (viz obr. 24) ‹#› 35 OBJEKT POJEM VÝRAZ Extenze Intenze Pojem objekt vyššího řádu Základní princip komunikace representuje označuje identifikuje P114_3 ‹#› P114_3 36 princip komunikace a DM •zákazníci, uživatelé, informatici ... hovoří výrazy jazyka o objektech jež mají na mysli •vzhledem k profesní různosti si špatně navzájem rozumí •analytici („datoví modeláři“) nalézají pojmy, které jsou používanými výrazy reprezentovány a které identifikují jednoznačně předmětné objekty •z těchto pojmů vytvářejí konceptuální (datový) model P114_3 ‹#› P114_3 37 princip komunikace a DM (2) •konceptuální model identifikuje objekty = datové tabulky, které mohou být v umělém (databázovém dotazovacím) jazyce označeny jako výrazy z databáze •v databázích jsou uloženy tyto výrazy •pomocí výrazů z databáze opět komunikují uživatelé (zákazníci) při řešení svých „business“ problémů