Databázvé patterny RNDr. Ondřej Zýka ndrej.zyka@prfinit.eu 2014 Prfinit. All rights reserved.
Obsah C je databázvý pattern Pattern: Přiřazení rlí Pattern: Klasifikace 2014 Prfinit. All rights reserved. 2
Databázvé patterny Odzkušené a dpručené způsby, jak řešit čast se vyskytující pžadavky N-ární relace Dědičnst Přiřazení rlí Klasifikace 2014 Prfinit. All rights reserved. 3
Úrvně patternů Stejný typ pžadavků může být řešen v databázi mnha způsby Jednduše I při drbné změně pžadavku je nutný zásah d databáze, Lehce srzumitelné uživatelům, analytikům, vývjářům. Slžitě Hdně změn se dá vyřešit puze změnu dat. Kmplikvané datvé struktury, uživatelsky nesrzumitelné. Vždy je nutné mít jednduché uživatelské rzhraní. Kncvý uživatel nesmí být zatěžván implementační slžitstí. 2014 Prfinit. All rights reserved. 4
Úrvně patternů PRODUCT PRODUCT_ID PRODUCT_NAME CATEGORY_1 CATEGORY_2 CATEGORY_3 CATEGORY_4 CATEGORY_5 CATEGORY_6 CATEGORY_7 CATEGORY_8 CATEGORY_9 CATEGORY_10 CATEGORY_11 CATEGORY_12... integer varchar(30) varchar(30) varchar(30) varchar(30) varchar(30) varchar(30) varchar(30) varchar(30) varchar(30) varchar(30) varchar(30) varchar(30) varchar(30) <pk> 2014 Prfinit. All rights reserved. 5
Úrvně patternů 2014 Prfinit. All rights reserved.
Pattern: Přiřazení rlí Definice Partneři kperující s pdnikem Pdnik - zákazník, ddavatel, partner, zaměstnanec, Škla student, zaměstnanec, splupracvník, přednášející, 2014 Prfinit. All rights reserved. 7
Pattern: Přiřazení rlí I CUSTOMER ID ORGANIZATION/FIRST/LAST NAME CREDIT LIMIT 100 Mje data s.r.. 1000000 CZK 101 Tvje Data s.r.. null SUPPLIER ID ORGANIZATION NAME TAXATION IDENTIFIER 369 Mje data s.r.. 123456789 456 Vaše Data s.r.. 987654321 PARTNER ID ORGANIZATION/FIRST/LAST NAME PARTNER TYPE 1001 Mje data s.r.. 10 (Glbal partner) 1002 Tvje Data s.r.. 20 (Sftware testing) 2014 Prfinit. All rights reserved.
Pattern: Přiřazení rlí I Nejjedndušší řešení - každá rle jiná entitu Vlastnsti Jasně definvané rle Atributy jsu splečné (Jmén) a specifické (EMPLOYEE NUMBER) Jedna rganizace neb člvěk může mít více rlí Některé rle mhu zastávat puze rganizace (SUPPLIER), některé puze lidé (EMPLOYEE), některé jak lidé, tak rganizace 2014 Prfinit. All rights reserved. 9
Pattern: Přiřazení rlí I Slabé stránky Není vhdný pr prstředí, kde čast vznikají a zanikají rle neb kde se mění atributy rlí; Stejná infrmace je ulžena na více místech (Jak řešit změnu adresy firmy Vaše Data); Těžk se skládá celkvý brázek vazbách s statními subjekty; Není jasné, jak jednznačně identifikvat subjekt. 2014 Prfinit. All rights reserved. 10
Pattern: Přiřazení rlí II 2014 Prfinit. All rights reserved.
Pattern: Přiřazení rlí II Slžitější řešení (umžňuje) dstranění redundance infrmací sbách a rganizacích. Vlastnsti Rle může být vázána na PARTY, neb jenm na pdtyp ORGANIZATION; Jedntlivé rle jsu samstatné entity. 2014 Prfinit. All rights reserved. 12
Pattern: Přiřazení rlí II Vlastnsti Umžňuje jednduše vázat další entity (faktura, bjednávka) přím na PARTY, není ptřeba rzlišvat, zda se jedná sbu neb rganizaci. Umžňuje jednduše přidávat další rle existujícím PARTY. Umžňuje, aby jedna PARTY vystupvala ve více rlích. 2014 Prfinit. All rights reserved. 13
Pattern: Přiřazení rlí II Slabé stránky V některých prstředí nejsu schpni rzlišit PARTY d rlí. Pattern naznačuje, že PARTY vystupuje v rli puze jednu. Přidávání rlí vyžaduje přidání entity. Není vhdné pkud nvé rle vznikají čast. Neumžňuje řídit infrmace hledně typů rlí. 2014 Prfinit. All rights reserved. 14
Pattern: Přiřazení rlí III 2014 Prfinit. All rights reserved.
Pattern: Přiřazení rlí ROLE TYPE ID NAME PARENT ROLE TYPE ID 100 Party rle Null Null PARENT NAME 101 Custmer 100 Party rle 102 Partner 100 Party rle 103 Organizatin rle 100 Party rle 104 Supplier 103 Organizatin rle 105 Persn rle 100 Party Rle 106 Emplyee 105 Persn rle 107 Manager 106 Emplyee 108 Debtr 100 Party rle 2014 Prfinit. All rights reserved. 16
Pattern: Přiřazení rlí Party Rle Partner Custmer Organizatin Rle Persn Rle Supplier Emplyee 2014 Prfinit. All rights reserved. 17
Pattern: Přiřazení rlí III Ještě slžitější přístup PARTY ROLE je rdičvská entita pr všechny rle. Vlastnsti PARTY může přijímat mnh rlí. Rle pr jedntlivé party mají časvu dimenzi. Existuje strmvá hierarchie mezi rlemi. Pkud nvé rle nevyžadují nvé atributy, nevyžaduje přidávání rlí zásah d datvéh mdelu. 2014 Prfinit. All rights reserved. 18
Pattern: Přiřazení rlí III Slabé stránky Je t slžité Při uvedeném číselníku typů rlí je těžk pchpitelná vazba mezi Persn rle a Organizatin rle a strukturu PARTY. Pkud nvá rle vyžaduje nvé atributy, je stále nutné zasáhnut d datvéh mdelu. 2014 Prfinit. All rights reserved. 19
2014 Prfinit. All rights reserved. 20
Pattern: Klasifikace Definice Pdpra členění instancí entity pdle typů, d kategrií a taxnmií. Typy skupiny se splečnými charakteristikami Kategrie kategrizace pdpruje více druhů členění (Typy typů) Taxnmie půvdně věda zabývající se klasifikací rganismů; členění dle definvané struktury (například Klasifikace eknmických činnstí (CZ-NACE)) 2014 Prfinit. All rights reserved. 21
Klasifikace Prduct Type Hardware Sftware Accessry Prcessrs Business sftware Cases Strage devices Gaming Sftware Muse pads Prduct Family Disk drives Carrying Cases Cmputer Memry Desktp Cmputers Laptp Cmputers Prduct Line Hme Use Cmmercial Use Hme Business Gvernment 2014 Prfinit. All rights reserved. 22
Pattern: Klasifikace I 2014 Prfinit. All rights reserved. 23
Pattern: Klasifikace I ID NAME TYPE FAMILY LINE 1 LINE 2 CAPACITY COLOUR 100 Save Disk 2000 HW Disk Drivers Hme use Cmmercial Use 101 Carry All Case Accesry Carrying Case 102 HS Sftware package 103 Memmry card M10 Sftware Hardware Cmputer memry Cmmercial use Hme Business Hme use Hme Business 20GB 1GB Black Green 2014 Prfinit. All rights reserved. 24
Pattern: Klasifikace I Velice jednduchý mdel, snadn pchpitelný pr všechny uživatele Vhdný jak základ (prttyp), drazvý můstek pr pchpení a pdrbnější analýzu Implementace může pužívat mezení na hdnty ve slupcích neb puze uživatelská pravidla. 2014 Prfinit. All rights reserved. 25
Pattern: Klasifikace I Slabé stránky Slžitá správa redundantních dat (HW hardware Hardware) Velice nepružný mdel Přidání kategrie přidání atributu Mnh typů mnh atributů Více typů klasifikací více slupců (Prduct line 1, Prduct line 2); Nedají se udržvat data klasifikacích ppis, dba platnsti a pdbně; Mdel nepdpruje slžitější vazby klasifikacích puze pvinné a nepvinné klasifikace. 2014 Prfinit. All rights reserved. 26
Pattern: Klasifikace II 2014 Prfinit. All rights reserved. 27
Pattern: Klasifikace II Klasifikace Navzájem se vylučující typy Hardware, Accessry, Sftware; Více hdnt z klasifikace Prduct Line. Klasifikace je mžné měnit. Pr przumění mdelu je důležité znát bsah tabulek (číselníků). Umžňuje nezávislé řízení klasifikací MDM Rzdílné klasifikace mhu mít své atributy. Przumění mdelu není extrémně slžité. 2014 Prfinit. All rights reserved. 28
Pattern: Klasifikace II Slabé stránky Mál pružný mdel, pkud je ptřeba přidávat nvé klasifikace. Klasifikace jsu udržvány v ddělených entitách. Není zde standardní způsb, jak řídit typy. Každý typ má své atributy. (T může být i výhda.) Mnh typů klasifikací mnh atributů, mnh entit s klasifikacemi. 2014 Prfinit. All rights reserved. 29
Pattern: Klasifikace III 2014 Prfinit. All rights reserved. 30
Klasifikace 2014 Prfinit. All rights reserved. 31
Pattern: Klasifikace III Ppis Sjedncení všech kategrií d jedné entity; Zavedení klasifikace kategrií; Hierarchická struktura na kategriích i typech kategrií (například pr reprting). Vlastnsti Jednduché řízení klasifikací přidávání nvé kategrizace, změna hierarchie kategrií; Vhdné pkud je ptřeba mnh klasifikací; Jednduchý p databázvé stránce jenm čtyři tabulky; Umžňuje jednduše slžitější analýzy pdle různých klasifikací. 2014 Prfinit. All rights reserved. 32
Pattern: Klasifikace III Slabé stránky Těžký na przumění, zejména při úpravách dat číselníků. Nevynucuje žádná business pravidla. Není vazba mezi hierarchií Kategrií a Typů kategrií. Mdel neumžňuje mít rzdílné atributy pr specifické typy. 2014 Prfinit. All rights reserved. 33
Shrnutí Řešení musí dpvídat Slžitsti business dmény, Slžitsti business pravidel, Schpnsti analytiků a vývjářů przumět mdelu, Schpnsti uživatelů udržvat mdel. Vždy je vhdné při návrhu mdelu vytvářet i data entit. 2014 Prfinit. All rights reserved. 34
Další směry Řešení časvé platnsti záznamu. Řešení více hierarchií. Řešení definice různých atributů pr různé typy. 2014 Prfinit. All rights reserved. 35
C si zapamatvat C t jsu databázvé patterny Jaké databázvé patterny se pužívají Jaké řešení pr pattern Rlí se pužívají, jaké mají slabé a silné stránky Jaké řešení pr pattern klasifikace se pužívají, jaké mají slabé a silné stránky 2014 Prfinit. All rights reserved. 36
Knslidvaný mdel a datvé tky 2014 Prfinit. All rights reserved. 37
2014 Prfinit. All rights reserved. Diskuse