Databázové patterny MI-DSP 2013/14 RNDr. Ondřej Zýka, ondrej.zyka@profinit.eu
Obsah o Co je databázový pattern o Pattern: Přiřazení rolí o Pattern: Klasifikace
Databázové patterny o Odzkoušené a doporučené způsoby, jak řešit často se vyskytující požadavky o N-ární relace o Dědičnost o Přiřazení rolí o Klasifikace
Úrovně patternů o Stejný typ požadavků může být řešen v databázi mnoha způsoby o Jednoduše I při drobné změně požadavku je nutný zásah do databáze, Lehce srozumitelné uživatelům, analytikům, vývojářům. o Složitě Hodně změn se dá vyřešit pouze změnou dat. Komplikované datové struktury, uživatelsky nesrozumitelné. Vždy je nutné mít jednoduché uživatelské rozhraní. Koncový uživatel nesmí být zatěžován implementační složitostí.
Pattern: Přiřazení rolí o Definice Partneři kooperující s podnikem Podnik - zákazník, dodavatel, partner, zaměstnanec, Škola student, zaměstnanec, spolupracovník, přednášející,
Pattern: Přiřazení rolí I CUSTOMER ID ORGANIZATION/FIRST/LAST NAME CREDIT LIMIT 100 Moje data s.r.o. 1000000 CZK 101 Tvoje Data s.r.o. null SUPPLIER ID ORGANIZATION NAME TAXATION IDENTIFIER 369 Moje data s.r.o. 123456789 456 Vaše Data s.r.o. 987654321 PARTNER ID ORGANIZATION/FIRST/LAST NAME PARTNER TYPE 1001 Moje data s.r.o. 10 (Global partner) 1002 Tvoje Data s.r.o. 20 (Software testing)
Pattern: Přiřazení rolí I o Nejjednodušší řešení - každá role jiná entitu o Vlastnosti Jasně definované role Atributy jsou společné (Jméno) a specifické (EMPLOYEE NUMBER) Jedna organizace nebo člověk může mít více rolí Některé role mohou zastávat pouze organizace (SUPPLIER), některé pouze lidé (EMPLOYEE), některé jak lidé, tak organizace
Pattern: Přiřazení rolí I o Slabé stránky Není vhodný pro prostředí, kde často vznikají a zanikají role nebo kde se mění atributy rolí; Stejná informace je uložena na více místech (Jak řešit změnu adresy firmy Vaše Data); Těžko se skládá celkový obrázek o vazbách s ostatními subjekty; Není jasné, jak jednoznačně identifikovat subjekt.
Pattern: Přiřazení rolí II
Pattern: Přiřazení rolí II o Složitější řešení (umožňuje) odstranění redundance informací o osobách a organizacích. o Vlastnosti Role může být vázána na PARTY, nebo jenom na podtyp ORGANIZATION; Jednotlivé role jsou samostatné entity.
Pattern: Přiřazení rolí II o Vlastnosti Umožňuje jednoduše vázat další entity (faktura, objednávka) přímo na PARTY, není potřeba rozlišovat, zda se jedná o osobu nebo organizaci. Umožňuje jednoduše přidávat další role existujícím PARTY. Umožňuje, aby jedna PARTY vystupovala ve více rolích.
Pattern: Přiřazení rolí II o Slabé stránky V některých prostředí nejsou schopni rozlišit PARTY od rolí. Pattern naznačuje, že PARTY vystupuje v roli pouze jednou. Přidávání rolí vyžaduje přidání entity. Není vhodné pokud nové role vznikají často. Neumožňuje řídit informace ohledně typů rolí.
Pattern: Přiřazení rolí III
Pattern: Přiřazení rolí ROLE TYPE ID NAME PARENT ROLE TYPE ID 100 Party role Null Null PARENT NAME 101 Customer 100 Party role 102 Partner 100 Party role 103 Organization role 100 Party role 104 Supplier 103 Organization role 105 Person role 100 Party Role 106 Employee 105 Person role 107 Manager 106 Employee 108 Debtor 100 Party role
Pattern: Přiřazení rolí Party Role Partner Customer Organization Role Person Role Supplier Employee
Pattern: Přiřazení rolí III o Ještě složitější přístup PARTY ROLE je rodičovská entita pro všechny role. o Vlastnosti PARTY může přijímat mnoho rolí. Role pro jednotlivé party mají časovou dimenzi. Existuje stromová hierarchie mezi rolemi. Pokud nové role nevyžadují nové atributy, nevyžaduje přidávání rolí zásah do datového modelu.
Pattern: Přiřazení rolí III o Slabé stránky Je to složité Při uvedeném číselníku typů rolí je těžko pochopitelná vazba mezi Person role a Organization role a strukturou PARTY. Pokud nová role vyžaduje nové atributy, je stále nutné zasáhnout do datového modelu.
PARTY model - příklad
PARTY_ROLE jiný příklad
Pattern: Klasifikace o Definice Podpora členění instancí entity podle typů, do kategorií a taxonomií. Typy skupiny se společnými charakteristikami Kategorie kategorizace podporuje více druhů členění (Typy typů) Taxonomie původně věda zabývající se klasifikací organismů; členění dle definované struktury (například Klasifikace ekonomických činností (CZ- NACE))
Klasifikace Product Type Hardware Software Accessory Processors Storage devices Business software Gaming Software Cases Mouse pads Product Family Disk drives Carrying Cases Computer Memory Desktop Computers Laptop Computers Product Line Home Use Commercial Use Home Business Government
Pattern: Klasifikace I
Pattern: Klasifikace I ID NAME TYPE FAMILY LINE 1 LINE 2 CAPACIT Y 100 Save Disk 2000 HW Disk Drivers Home use Commercial Use 101 Carry All Case Accesory Carrying Case Commercial use 102 HS Software package 103 Memmory card M10 Software Hardware Computer memory Home Business Home use Home Business 20GB 1GB COLOU R Black Green
Pattern: Klasifikace I o Velice jednoduchý model, snadno pochopitelný pro všechny uživatele o Vhodný jako základ (prototyp), odrazový můstek pro pochopení a podrobnější analýzu o Implementace může používat omezení na hodnoty ve sloupcích nebo pouze uživatelská pravidla.
Pattern: Klasifikace I o Slabé stránky Složitá správa redundantních dat (HW hardware Hardware) Velice nepružný model Přidání kategorie přidání atributu Mnoho typů mnoho atributů Více typů klasifikací více sloupců (Product line 1, Product line 2); Nedají se udržovat data o klasifikacích popis, doba platnosti a podobně; Model nepodporuje složitější vazby o klasifikacích pouze povinné a nepovinné klasifikace.
Pattern: Klasifikace II
Pattern: Klasifikace II o Klasifikace Navzájem se vylučující typy Hardware, Accessory, Software; Více hodnot z klasifikace Product Line. o Klasifikace je možné měnit. o Pro porozumění modelu je důležité znát obsah tabulek (číselníků). o Umožňuje nezávislé řízení klasifikací MDM o Rozdílné klasifikace mohou mít své atributy. o Porozumění modelu není extrémně složité.
Pattern: Klasifikace II o Slabé stránky Málo pružný model, pokud je potřeba přidávat nové klasifikace. Klasifikace jsou udržovány v oddělených entitách. Není zde standardní způsob, jak řídit typy. Každý typ má své atributy. (To může být i výhoda.) Mnoho typů klasifikací mnoho atributů, mnoho entit s klasifikacemi.
Pattern: Klasifikace III
Pattern: Klasifikace III o Popis Sjednocení všech kategorií do jedné entity; Zavedení klasifikace kategorií; Hierarchická struktura na kategoriích i typech kategorií (například pro reporting). o Vlastnosti Jednoduché řízení klasifikací přidávání nové kategorizace, změna hierarchie kategorií; Vhodné pokud je potřeba mnoho klasifikací; Jednoduchý po databázové stránce jenom čtyři tabulky; Umožňuje jednoduše složitější analýzy podle různých klasifikací.
Pattern: Klasifikace III o Slabé stránky Těžký na porozumění, zejména při úpravách dat číselníků. Nevynucuje žádná business pravidla. Není vazba mezi hierarchií Kategorií a Typů kategorií. Model neumožňuje mít rozdílné atributy pro specifické typy.
Shrnutí o Řešení musí odpovídat Složitosti business domény, Složitosti business pravidel, Schopnosti analytiků a vývojářů porozumět modelu, Schopnosti uživatelů udržovat model. o Vždy je vhodné při návrhu modelu vytvářet i data entit.
Další směry o Řešení časové platnosti záznamu. o Řešení více hierarchií. o Řešení definice různých atributů pro různé typy.
Co si zapamatovat o Co to jsou databázové pattery o Jaké databázové patterny se používají o Jaké řešení pro pattern Rolí se používají, jaké mají slabé a silné stránky o Jaké řešení pro pattern klasifikace se používají, jaké mají slabé a silné stránky
www.profinit.eu Diskuse