Denormalizace - Denormalization - Wikipedia
![]() | tento článek potřebuje další citace pro ověření.Květen 2008) (Zjistěte, jak a kdy odstranit tuto zprávu šablony) ( |
Denormalizace je strategie použitá na dřívenormalizováno databáze ke zvýšení výkonu. v výpočetní, denormalizace je proces pokusu zlepšit výkon čtení a databáze, na úkor ztráty nějakého výkonu zápisu, přidáním redundantní kopie dat nebo seskupením dat.[1][2] Často je motivováno výkon nebo škálovatelnost v relační databázový software potřebovat provést velmi velké množství operací čtení. Denormalizace se liší od nenormalizovaná forma v tom lze výhody denormalizace plně realizovat pouze na datovém modelu, který je jinak normalizován.
Implementace
A normalizováno design často „uloží“ různé, ale související informace v samostatných logických tabulkách (tzv. relacích). Pokud jsou tyto relace fyzicky uloženy jako samostatné soubory na disku, vyplnění databáze dotaz který čerpá informace z několika vztahů (a připojit se k operaci ) může být pomalý. Pokud se spojí mnoho vztahů, může to být neúměrně pomalé. Existují dvě strategie řešení.
Podpora DBMS
Jednou z metod je udržet normalizovaný logický design, ale povolit Systém pro správu databází (DBMS) pro uložení dalších nadbytečných informací na disk pro optimalizaci odpovědi na dotaz. V tomto případě je odpovědností softwaru DBMS zajistit, aby všechny nadbytečné kopie byly udržovány konzistentní. Tato metoda je často implementována v SQL jako indexovaná zobrazení (Microsoft SQL Server ) nebo zhmotněné pohledy (Věštec, PostgreSQL ). Pohled může mimo jiné představovat informace ve formátu vhodném pro dotazování a index zajišťuje, že dotazy proti pohledu jsou fyzicky optimalizovány.
Implementace DBA
Dalším přístupem je denormalizace návrhu logických dat. S opatrností to může dosáhnout podobného zlepšení v odpovědi na dotazy, ale za cenu - nyní je odpovědností návrháře databáze zajistit, aby se denormalizovaná databáze nestala nekonzistentní. To se provádí vytvořením pravidel v databázi s názvem omezení, které specifikují, jak musí být synchronizovány nadbytečné kopie informací, což může snadno učinit postup normalizace zbytečným. Je to nárůst logiky složitost návrhu databáze a větší složitost dalších omezení, díky nimž je tento přístup nebezpečný. Omezení navíc zavádějí a kompromis, zrychlení čtení (VYBRAT
v SQL) při zpomalení zápisů (VLOŽIT
, AKTUALIZACE
, a VYMAZAT
). To znamená, že může nabídnout denormalizovaná databáze s velkým zatížením zápisu horší výkon než jeho funkčně ekvivalentní normalizovaný protějšek.
Denormalizace versus nenormalizovaná data
Denormalizovaný datový model není stejný jako datový model, který nebyl normalizován, a denormalizace by měla proběhnout až poté, co proběhne uspokojivá úroveň normalizace a že byla vytvořena všechna požadovaná omezení a / nebo pravidla pro řešení inherentních anomálie v designu. Například všechny vztahy jsou v třetí normální forma a jakékoli vztahy se závislostmi na spojení a více hodnotami jsou zpracovány odpovídajícím způsobem.
Příklady technik denormalizace zahrnují:
- „Ukládání“ počtu prvků „mnoho“ ve vztahu jedna k mnoha jako atribut relace „jeden“
- Přidání atributů do relace z jiné relace, ke které bude připojena
- Hvězdná schémata, které jsou také známé jako modely faktické dimenze a byly rozšířeny na schémata sněhové vločky
- Předpřipravená shrnutí nebo OLAP kostky
S pokračujícím dramatickým nárůstem všech tří úložišť, výpočetního výkonu a šířky pásma na všech úrovních se denormalizace v databázích změnila z neobvyklé nebo rozšiřující techniky na běžnou nebo dokonce na normu. Jednou z konkrétních nevýhod denormalizace bylo například to, že „využívá více úložiště“ (tj. Doslova více sloupců v databázi). Ve všech, s výjimkou těch nejnáročnějších představitelných systémů, byl tento konkrétní aspekt irelevantní; nebezpečí použití většího úložiště není problém.
Viz také
Reference
- ^ G. L. Sanders a S. K. Shin. Účinky denormalizace na výkon RDBMS. Ve sborníku z konference HICSS, leden 2001.
- ^ S. K. Shin a G. L. Sanders. Denormalizační strategie pro získávání dat z datových skladů. Decision Support Systems, 42 (1): 267-282, říjen 2006.