Het is weer eens tijd voor een ouderwetse IT-blog. Er waren applicaties waarin de geregistreerde gegevens steeds maar veranderden. Eerst was de mobiele telefoon gewoon een type telefoon. Later bleek hij ook weer eigenschappen als IMSI en IMEI te hebben. Zo bleven we lekker bezig. Op een dag gingen we aan de slag met het flexibele gegevensmodel. Waar de entiteiten en hun velden eenvoudig te bewerken zijn zonder de database aan te passen.
Hier zie je dat gegevensmodel, maar dan sterk vereenvoudigd:
De mogelijkheden waren enorm en het werkte echt. Maar er zaten ook nadelen aan. De performance was een moeilijk verhaal en eenvoudige queries werden opeens zeer complex. Vergelijk ze maar eens:
select geslachtsnaam from persoon;
select kw.waarde from kenmerkwaarde kw where kw.kenmerk = (select k.id from kenmerk k where kw.kenmerk = id and k. waarde = ‘geslachtsnaam’ and k.object = (select o.id from object o where o.waarde = ‘persoon’));
Dat levert natuurlijk een keer zeer onverwachte en moeilijk te vinden fouten op. Omdat ook nog eens bleek dat het gegevensmodel eigenlijk helemaal niet zo hard meer wijzigde zijn we hier niet in verder gegaan. En zitten we weer vast aan harde gegevensmodellen.
De problemen van allemaal verschillende applicaties met hun eigen gegevensmodellen zijn gebleven. In 2014 is de wereld vol van uitwisselingsprotocollen, servicebussen en datawarehouses. Dat kan heus beter!
Stel dat je organisatie groot genoeg is om zelf te ontwikkelen. Stel dat je zegt “Wij werken voortaan met één gegevensmodel”. Gooi er een paar database appliances tegenaan en port je applicaties daarheen. Natuurlijk, in verband met performance zal je nog steeds een datawarehouse gebruiken. Maar verder kom je een heel eind. De wereld is in één klap een stuk minder complex en star. Kan dat dan? Ja, dat kan uitstekend.
Veel bedrijven gebruiken software van leveranciers. Software die voor een brede markt gemaakt is. Voor die bedrijven werkt dit pas als die leveranciers applicaties bouwen die op jouw gegevensmodel draaien. Dat zal voorlopig nog even moeilijk blijven. Maar ook voor deze bedrijven ligt er een mooie toekomst in het IT landschap.
Hans van Buuren, Enterprise Architect