R20/Consultancy B.V. - The website of Rick F. van der Lans

R20/Consultancy B.V.

The website of Rick F. van der Lans

Home page
Up

Als sterren aan de horizon verdwijnen

Auteur: Rick F. van der Lans
Geschreven: mei 2001
Gepubliceerd in: Computable, jaargang 2001, nummer 27

In de beginfase van datawarehousing lag het accent op de technologie. Door de interesse voor onderwerpen als CRM (Customer Relationship Management) en analytics, is de aandacht verschoven van minder technische zaken naar onderwerpen als wat de manager eigenlijk nodig heeft. Toch is er één hardnekkige, technische discussie die maar aandacht blijft krijgen: moet het ontwerp van het datawarehouse opgebouwd worden volgens een sterschema of een sneeuwvlokschema?

Voor de niet-ingewijden, praten over ster- en sneeuwvlokschema's is gewoon een manier om het woord denormaliseren te omzeilen. En die term kent u waarschijnlijk nog wel, het heeft te maken met het ontwerpen van relationele databases. In een notendop, denormaliseren houdt in dat gegevens op een bepaalde manier gedupliceerd worden. En een sterschema is een gedenormaliseerde versie van het equivalente sneeuwvlokschema. Ze bevatten dezelfde gegevens, maar zijn anders georganiseerd. 

Nog steeds zijn er enkele specialisten die er van overtuigd zijn dat sterschema's, door hun gedenormaliseerde structuur, altijd de performance verbeteren van de vragen die door warehouse-gebruikers gesteld worden. Een enkeling geeft ook alternatieve argumenten, maar performance is toch wel het doorslaggevende argument om voor een sterschema te kiezen. Het is echter een ongeldig argument waardoor er onnodig langzame datawarehouses gecreëerd worden en er dure hardware aangeschaft moet worden om alsnog de gewenste performance te realiseren.

Het valt me altijd op dat de voorstanders van sterschema's de beloofde performance-verbeteringen zelden onderbouwen met cijfers. Ze poneren het gewoon als een wetmatigheid, zoiets als: water stroomt altijd naar beneden. Alsof een join (operatie om tabellen te combineren) van x tabellen per definitie langzamer is dan die van op x-1 tabellen. Was het leven maar zo makkelijk. Die performance is afhankelijk van vele aspecten, waaronder aantal rijen, aantal verschillende waarden, beschikbaar intern geheugen en de distributie van waarden.

Waar komt dit misverstand dan vandaan? En waarom zijn er toch zoveel mensen mee bezig? Laten we eens een vergelijking trekken met 'formule 1 racen'. Stel dat ik ben uitgenodigd in de pits. Tijdens de race wordt mij gevraagd een van de auto's sneller te maken. Een leuke uitdaging, echter, omdat ik geen auto-expert ben, ben ik beperkt in de trucs die ik kan toepassen. Ik zal me moeten beperken tot het kantelen van de voor- en achterflappen en ik zal wat spelen met de bandenspanning. Waarom? Omdat ik ze dat op televisie heb zien doen, en ik denk ongeveer dat ik begrijp hoe het werkt: hoe platter de flappen, des te minder de wrijving op de rechte stukken en hoe meer rechtop de flappen des te meer plakvermogen in de bochten. Een expert kent nog veel meer knopjes waaraan hij kan draaien. 

Het blind kiezen voor een sterschema om performance te verbeteren, is vergelijkbaar met mijn gestuntel met de flappen. De andere, meer interne technieken zijn onbekend en dus beperken ontwerpers zich tot de technieken die ze wel kennen en begrijpen. 

Het advies is, als u niet alle hoeken en gaten van een relationele database server kent, dus als u bijvoorbeeld niets eens weet wat een 'freespace'-parameter is, houdt u zich dan niet bezig met performance-zaken! Laat dat maar over aan de specialisten. Gebruik performance dus niet als argument om voor een sterschema te kiezen.

Kijken we naar de toekomst van datawarehouses, dan zal ook daar het sterschema problemen gaan geven. Ten eerste, we zien langzaam het datawarehouse evolueren van een statische naar een dynamische omgeving. De snelheid waarmee de gegevens in datawarehouses bijgewerkt moeten worden, wordt opgevoerd. Indien dit gebeurt, zullen de gedenormaliseerde databasestructuren die snelheid negatief beïnvloeden. Gedupliceerde gegevens vertragen altijd de performance van het bijwerken van gegevens.

Ten tweede, databaseservers zijn langzaamaan aan het veranderen in zogenaamde 'main-memory' ofwel 'in-memory' databaseservers. Dit wil zeggen dat ze zullen proberen zoveel mogelijk gegevens in geheugen vast te houden en ze zullen trachten vragen te beantwoorden zonder de harde schijven hiervoor te benaderen. Bekende leveranciers, zoals IBM, Microsoft en Oracle, zijn hiermee bezig, maar ook leveranciers van nieuwe producten, zoals Bull, Polyhedra en TimesTen, volgen deze route. De algoritmes in deze producten werken het best, als alles in het interne geheugen past. We moeten dus proberen onze databases zo klein mogelijk te houden, omdat de kans dan groter is dat alles in geheugen past. Zoals reeds vermeld, een ontwerp waar gebruik gemaakt wordt van sterschema's is gedenormaliseerd, dus bevat dubbele gegevens, dus maakt de database groter. U kunt zelf wel de conclusie trekken.

Laten we gewoon realistisch zijn. Soms is een sterschema sneller en soms een sneeuwvlokschema. Vraag uw database-experts wat het beste is voor uw situatie. En vergeet niet, de oplossing die nu de snelste is, hoeft dat bij een volgende versie van uw databaseserver niet meer te zijn.

Eigenlijk doet de gehele discussie rond sterschema's denken aan het volgende. De Sumerieërs wisten zo'n 5000 jaar geleden reeds dat de aarde rond was. Die kennis is ooit verloren gegaan, want een lange tijd dachten we dat de aarde plat was. Totdat iemand het licht zag: de aarde was toch rond. Laten we maar hopen dat de periode waarin we dogmatisch sterschema's toepassen niet zo lang zal duren als de aarde-is-plat periode.

 

If you have any questions or remarks concerning this website, please send us an email: info@r20.nl.
Copyright © 2009 R20/Consultancy B.V.