Poslední úpravy - Vyhledat:

SQL

O modelování

Power Designer

Oracle Data Modeler

Krátká videa DM

Zdroje...

edit SideBar

DM /

Generalizace/specializace

< Dvoutváøné entity | Tutoriál informaèní analýzy | Co jsou ISA vztahy >

V autoopravnì úètují práci a náhradní díly. Práce jsou rùzného druhu s rùznou hodinovou sazbou. Náhradní díly mají cenu podle ceníku nebo podle ceny dodavatele, nìkteré má dílna na skladì, jiné objednává v pøípadì potøeby. Rozli¹ují se je¹tì náhradní díly, je¾ mají speciální evidenci jednotlivých kusù, jako motory, od náhradních dílù, u kterých se jednotlivé kusy nerozli¹ují a eviduje se jen jejich poèet. Práci i náhradní díly lze pova¾ovat za "slu¾by" poskytované zákazníkùm. U "slu¾by" známe její cenu, a lze ji úètovat ve faktuøe, s udáním úètovaného mno¾ství – poètu hodin práce nebo poètu kusù.
Entitu "slu¾ba" vytváøíme jako generalizaci "práce" a "náhradního dílu".

O náhradních dílech, a» u¾ typových, nerozli¹ujících jednotlivé kusy, tak o náhradních dílech s evidencí jednotlivých exempláøù, je tøeba znát informace o názvu náhradního dílu, objednacím kódu, dodavateli, technických parametrech a pod. Pojem "náhradní díl" je srozumitelný a v kontextu autoopravny pou¾ívaný.
U typových dílù bez rozli¹ení kusù musíme znát jejich poèet, kolik jich máme, u dílù s evidencí jednotlivých exempláøù musíme evidovat tyto exempláøe a jejich osud. Pro typové díly i pro unikátní díly jsou tedy potøebné dal¹í specifické informace, ale jiné pro typové díly a jiné pro unikátní díly.
Entitu "typ náhradního dílu" je vhodné specializovat do podtypù "typ typového náhradního dílu" a "typ unikátního náhradního dílu".
V dal¹ím tyto tì¾kopádné názvy budeme zkracovat na "náhradní díl", "typový náhradní díl" a "unikátní náhradní díl".

Generalizace èi specializace je to co dìláme v prùbìhu datového modelování, tyto procesy ve výsledku oba vedou k analogii mno¾in a jejich podmno¾in: pøi generalizaci vytváøíme nadtyp (alà nadmno¾inu), pøi specializaci podtypy (alà podmno¾iny). Následující obrázek znázoròuje prve zmínìné typy a jejich podtypy:


Entitní typy jako mno¾iny
Eulerùv diagram pro entitní typy "slu¾ba","práce","náhradní díl", "typový náhradní díl", "typ unikátního nahradního dílu" a "exempláø unikátního náhradního dílu"

Následující diagram pøidává atributy a vztah unikátních exempláøù k pøíslu¹nému typu náhradního dílu:


Entitní typy a podtypy s atributy a vztahy
Odrá¾kovaný seznam uvnitø zaobleného obdélníku vyjmenovává atributy zahrnuté v infomodelu pro daný entitní typ. Spojnice mezi zaoblenými obdélníky "unikátní náhradní díly" a "exempláøe unikátních náhradních dílù" pøedstavuje vztah nále¾ení exempláøe k typu. Tak¾e ka¾dá slu¾ba má kód slu¾by, název a jednotkovou cenu, ka¾dá práce má navíc popis práce. Náhradní díly mají kromì kódu slu¾by, názvu a jednotkové ceny je¹tì objednací kód, technický popis a váhu. Typové náhradní díly mají navíc je¹tì poèet kusù na skladu. Typy unikátních náhradních dílù nemají navíc ¾ádný atribut, ale mají vztah k evidenci jednotlivých kusù toho typu.

V grafickém zobrazení konceptuálních schémat se èasto pou¾ívá znázornìní ka¾dého entitního typu zvlá¹», i kdy¾ se jedná o podtypy a nadtypy. V takovém zobrazení není podtyp umístìn uvnitø nadtypu, ale mimo. V zobrazení se pak objeví dal¹í vztahy (tzv. ISA vztahy), které znázoròují, ¾e ka¾dý výskyt v podtypu je zároveò výskytem i v nadtypu. Název ISA pochází z anglického "is a", napøíklad "ka¾dá PRÁCE je SLU®BA" = "each WORK is a SERVICE". ISA vztahy se znázoròují ¹ipkami od podtypu k nadtypu. (Podrobnìji je otázka tìchto obtí¾nìji pochopitelných vztahù diskutována v kapitole Co jsou ISA vztahy.) Následující obrázek zobrazuje pøedchozí konceptuální schéma s pomocí ISA vztahù:


ISA vztahy mezi entitními typy
Ka¾dá PRÁCE je zároveò SLU®BA, ka¾dý NÁHRADNÍ DÍL je zároveò SLU®BA, ka¾dý TYPOVÝ NÁHRADNÍ DÍL je NÁHRADNÍ DÍL, ka¾dý UNIKÁTNÍ NÁHRADNÍ DÍL(TYP) je NÁHRADNÍ DÍL. Vztah mezi exempláøem unikátního náhradního dílu (EXEMPLÁØ U.N.D.) a pøíslu¹ným typem unikátního náhradního dílu (UNIK.N.D.(TYP)) není ISA, je to vztah mezi typem a výskytem, jak o tom pojednává kapitola Dvoutváøné entity. Rozdíl je v tom, ¾e k jednomu typu unikátního náhradního dílu (UNIK.N.D.(TYP)) mù¾e nále¾et více jeho exempláøù (EXEMPLÁØ U.N.D.). Ale jedna SLU®BA je buï jedna a ne více PRACÍ nebo jeden a ne více NÁHRADNÍCH DÍLÙ.

Identifikátory v rámci generalizace a specializace

S identifikátory je to jiné, pokud k nadtypùm a podtypùm dojdeme generalizací, ne¾ kdy¾ k nim dojdeme specializací. Zaènìme specializací, proto¾e v tom pøípadì je to jednodu¹¹í.

Pokud v rámci nadtypu platí nìjaké identifikaèní schéma, platí i v rámci kteréhokoli jeho podtypu. Tak¾e objednací kód platný jako identifikátor libovolného TYPU NÁHRADNÍHO DÍLU je samozøejmì identifikátorem i v omezeném rámci TYPOVÝCH NÁHRADNÍCH DÍLÙ i v rámci TYPÙ UNIKÁTNÍCH NÁHRADNÍCH DÍLÙ. Pøi specializaci novì vzniklé podtypy dìdí i zpùsob identifikace nadtypu.

Pokud úèelovì generalizujeme vzájemnì dosti nepodobné entitní typy, jako napøíklad PRÁCI a NÁHRADNÍ DÍL, pak nám vìt¹inou nezbývá ne¾ umìle vytvoøit nový identifikátor pro novì vytvoøený nadtyp. Typ SLU®BA je takový pøípad, a úètovací kód je pøíklad umìle vytvoøeného identifikátoru. Potøeba takového identifikátoru plyne z potøeby se odkazovat na výskyty toho generalizovaného nadtypu jednotným zpùsobem, jako v tomto pøípadì odkazovat polo¾ky na fakturách zákazníkù do seznamu úètovatelných SLU®EB. Je sice mo¾no se obejít bez vytvoøení takového umìlého identifikátoru, ale øízení pøístupu k datùm se s takovým identifikátorem znaènì zjednodu¹í.

V rámci nìkterých podtypù v takových pøípadech obvykle platí nìjaké pùvodní identifikátory (pou¾ívané ji¾ pøed generalizací), jako napøíklad objednací kód NÁHRADNÍCH DÍLÙ. Pro takový podtyp pak máme alternativní zpùsoby identifikace – úètovací kódy i objednací kódy mohou ka¾dý z nich stejnì dobøe slou¾it k identifikaci NÁHRADNÍCH DÍLÙ.

Èlenìní a rozèleòující charakteristika

Èlenìní je speciální pøípad rozdìlení nadtypu do nìkolika podtypù tak, ¾e toto rozdìlení je úplné a ka¾dý výskyt nadtypu se vyskytuje pouze v jediném z tìch podtypù. U rozdìlení SLU®EB na PRÁCE a NÁHRADNÍ DÍLY v pøedchozím pøípadì sice tomu takto je, ale mù¾eme to chápat jako pøechodný stav. Lze si pøedstavit, ¾e autoopravna zaøadí do seznamu nabízených slu¾eb je¹tì jiné slu¾by, napøíklad zprostøedkování prodeje èi vytipování koupì ojetého automobilu.

TYPY NÁHRADNÍCH DÍLÙ jsou v¹ak typický pøípad. U konkrétního typu náhradního dílu buï vedeme evidenci jeho identifikovaných exempláøù, nebo ne. Jasnì jiná mo¾nost není, a tyto mo¾nosti se vzájemnì vyluèují. Tak¾e to, zda se u daného typu dílu vede evidence jednotlivých kusù, je rozèleòující charakteristika do daných dvou podtypù TYPOVÝ NÁHRADNÍ DÍL a TYP UNIKÁTNÍCH NÁHRADNÍCH DÍLÙ.

Jiný pøíklad tvoøí rozdìlení osob podle biologického pohlaví na ¾eny a mu¾e. Pohlaví je rozèleòující charakteristika, ka¾dou osobu podle ní zaøadíme buï mezi mu¾e nebo mezi ¾eny. Takovýto jasný znak, podle kterého se nadtyp èlení do podtypù, je mo¾no v konceptuálním schématu zachytit:

Role

Studenti a uèitelé na vysoké ¹kole jsou osoby. Kromì studentù a uèitelù zde pracují dal¹í lidé – administrativní pracovníci, pracovníci technické podpory a údr¾by. O ka¾dé osobì se evidují její osobní data, tj. jméno, pøíjmení, adresa atd., i veøejnosprávní identifikátory – rodné èíslo, èíslo obèanského prùkazu nebo pasu. Pojem "osoba" lidé bì¾nì u¾ívají, pøi analýze má smysl uva¾ovat ji jako samostatnou entitu: ke ka¾dé osobì se vá¾e dal¹í informaèní obsah, napøíklad èíslo univerzitního prùkazu, pøístupové jméno a heslo do poèítaèové sítì ¹koly, "osoby" se stravují ve ¹kolní menze, úèastní se ¹kolou organizovaných akcí, pùjèují si ¹kolní majetek, vyu¾ívají slu¾eb ¹kolních zaøízení.
O ka¾dém studentovi potøebujeme znát informace o jeho studiích: obor studia, semestr, výsledky zápoètù a zkou¹ek. O uèitelích je tøeba znát informace týkající se jejich pedagogické èinnosti na ¹kole.
Pøesto není vhodné modelovat entity "uèitel" a "student" jako podtypy entity "osoba", proto¾e v ¾ivotním bìhu jednotlivých osob mohou vystupovat postupnì v rolích "student", eventuálnì s více prùbìhy studia, pak jako "uèitel", a tyto role mohou zastávat i souèasnì. Slovo role nejlépe vystihuje podstatu, kdy¾ osoba pøestane být studentem, nepøestává být osobou, roli uèitele mù¾e osoba zastávat a po nìjaké dobì opìt ne. Lépe je tedy modelovat role sice jako samostatné entity, ale nikoli jako podtypy "osoby".

Typy bez evidovaných instancí

Uva¾ujme ovoce. Jahody, maliny a hru¹ky jsou ovoce. O ka¾dém druhu ovoce mù¾eme napøíklad uvést barvu, prùmìrnou váhu jednoho kusu, kdy a kde dozrává. "Ovoce" je proto vhodný kandidát na entitní typ. "Jahoda","hru¹ka","malina" v¹ak podtypy nejsou, neevidujeme jednotlivé kusy tìchto druhù ovoce, jsou to exempláøe typu nazvaného v pøedchozí vìtì "ovoce", ale výsti¾nìj¹í by bylo nazvat tento typ "druh ovoce" .
Ani v tomto pøípadì nemodelujeme jako podtypy, o této otázce je pojednáno také v kapitole Dvoutváøné entity (zde se jedná o pøípad B z této kapitoly).

< Dvoutváøné entity | Tutoriál informaèní analýzy | Co jsou ISA vztahy >

Upravit - Historie - Tisk - Poslední úpravy - Vyhledat
Poslední úprava stránky: 24.05.2011, 07:31