ABIS Infor - 2012-04

Ken je eigen database

Steven Scheldeman (ABIS) - 1 maart 2012

Samenvatting

Het is vandaag de dag bijna ondenkbaar dat een bedrijf nog werkt zonder gebruik te maken van een database. Natuurlijk gaat dit niet zonder dat men de taal kent die nodig is om die database te ondervragen (SQL) en de software van die database (DB2, Oracle, SQL Server, MySQL, ...) beheerst. Wat echter vaak over het hoofd wordt gezien is dat een grondige kennis van het platform en de beheersing van SQL, niet hetzelfde is als kennis van de eigen database.

Design: het leggen van de fundamenten

Iedereen weet dat het design van een database van levensbelang is voor de efficiëntie ervan. Beginnende bij het analyseren van de informatie zoals die door het bedrijf gebruikt wordt en eindigend in de ultieme structuren van tabellen en views, elke stap zal zijn invloed hebben op het gebruik van deze database. De fundamenten die hier gelegd worden, zullen hun invloed hebben op elke query en daarom is het van levensbelang dat men in deze fase de bouwplannen duchtig documenteert.

Implementatie en onderhoud: de constructie van het gebouw

Eenmaal het design van de database op punt staat, dient dit vertaald te worden in de effectieve logische en fysische structuren die we voortaan "de Database" zullen noemen. Hierbij worden heel wat vereisten met betrekking tot prestaties, geheugen gebruik, indices, integriteit van de data, triggers, procedures ... via SQL gerealiseerd. Ook hier is documentatie van het grootste belang, want zonder documentatie beschikken we niet over een plattegrond van onze database.

Bijkomend is een database niet statisch. Doorheen de tijd veranderen de noden van ons bedrijf, en dus ook de vereisten die we stellen aan de database. Anders uitgedrukt, doorheen de tijd bouwen we verder aan ons "gebouw": er worden nieuwe kolommen en zelfs tabellen toegevoegd, sommige raken in onbruik, kortom, onze database "leeft". En natuurlijk vereist dit een constante aanpassing van de "plattegrond".

Opvragen van gegevens: een schattenjacht in het kasteel

Uiteindelijk zijn we dan aangekomen bij het bestaansrecht van de database: het efficiënt ophalen en aanpassen van de voor ons bedrijf levensnoodzakelijke gegevens. En wat blijkt er nu? Voor vele gebruikers is het efficiënt ophalen van de gegevens eerder een schattenjacht naar het goud, dan een voor de hand liggende zaak. Waaraan ligt dit?

Een eerste stap - die elk bedrijf meestal goed doorheeft - is een goede bruikbare kennis van SQL. Daarmee bedoelen we niet alleen een syntactische kennis, maar ook een grondig begrip van de uitvoering van een query. Weten hoe een query achter de schermen wordt uitgevoerd, zal de efficiëntie - soms zelfs extreem - ten goede beïnvloeden.

Een tweede stap is de analyse van de vraag. Deze is zo belangrijk dat sommige bedrijven daar zelfs een afzonderlijk team op zetten. Het is nu eenmaal een gegeven dat wij als mens in de formulering van onze vraag om informatie niet altijd accuraat genoeg zijn: soms zijn we te vaag, soms zijn we te strikt. Wat meestal leidt tot een overdosis aan informatie, of juist een tekort. De correcte interpretatie van de vraag is dus evenzeer van belang, als de correcte kennis van SQL.

Een derde stap wordt echter heel vaak over het hoofd gezien: kennis van de eigen database of anders uitgedrukt, een grondig gedocumenteerde plattegrond die ons de weg toont naar de gezochte data.

Zo'n plattegrond zou onzer inziens moeten bestaan uit een drietal onderdelen: een schematische tekening van de database, een syntactische beschrijving van alle tabellen en kolommen en - ontzettend belangrijk, maar meestal ontbrekend - een semantische beschrijving van alle tabellen en kolommen.

Op dit ogenblik zijn er heel wat GUI's die een schema zonder enig probleem kunnen genereren en een zeer grondige syntactische beschrijving leveren. Dit is niet verwonderlijk omdat de catalogus van de database - een intrinsiek onderdeel van de software - hiervoor geraadpleegd kan worden. De semantische beschrijving dient echter door werknemers zelf opgesteld te worden ... en hiervoor ontbreekt vaak de tijd.

Het documenteren van elke tabel en elke kolom voor zover het de betekenis van de data betreft ("Dit nummer is het effectieve aantal exemplaren dat er aanwezig is in ons magazijn") vergt tijd en heel wat inspanning. Deze inspanning levert, eenmaal zij gedaan is, echter heel wat op. Nieuwe werknemers hebben onmiddellijk een betekenisvolle beschrijving van de database ter beschikking waarmee ze zelfstandig aan de slag kunnen. De tijdswinst is enorm: zowel qua begrijpen van de database, als qua nood aan begeleiding van anderen. Ten minste als nieuwe werknemers de tijd krijgen (enkele dagen) om deze documentatie te bestuderen.

Cursussen op maat

Deze vaststellingen in de werkomgeving van vele van onze klanten hebben ertoe geleid dat wij bij ABIS onze cursussen hierop toeleggen. Het beheersen van SQL gaat bij ons dan ook verder dan een zuiver syntactische opleiding. Er wordt aandacht besteed aan de uitvoeringsvolgorde van een query, aan de interpretatie van een vraag en aan de structuur van een database. Dit alles gebeurt in etappes, waarbij we de cursisten doorheen opeenvolgende cursussen van leek tot efficiënte query-schrijver begeleiden. En op aanvraag gebruiken we de eigen database van de cursist als oefenmateriaal tijdens de begeleiding.