10 grootste fouten bij database-ontwikkeling

Google developer

Gepubliceerd: Donderdag 12 november 2009

Het ontwerpen en ontwikkelen van een database is geen eenvoudige taak. Ook experts maken fouten, en met louter theoretische kennis en goede bedoelingen kom je niet ver.

Toon volledig artikel

Tucson op Donderdag 12 November 2009 14:17

image

Databases blijven een vak apart en daarvoor zijn dus gespecialiseerde mensen nodig. Ik merk vaak dat een database ontwerp er 'even bij gedaan wordt'. Niet altijd even verstandig, al hangt dat sterk af van het doel, verwachtte load, systeem, disk ruimte, soort hardware en andere parameters, maar net als voor alles geldt, iedereen zijn vak, je kan niet alles weten.

Ik weet aardig wat van databases, maar ga mij niet vragen een high performance database op te zetten die een load van 1500 connections kan verwerken met een data load van enkele gigabytes per uur. (Noem maar wat) En dan ook nog secure etc etc.

lodi op Donderdag 12 November 2009 16:21

image

Hoe zit het eigenlijk met opleidingen? Ik heb het gehad als 'vakje' maar verder dan 10 records ben ik niet gekomen en voor een niet-perfecte normalisatie kreeg je nog gewoon strafpunten. Performance etc. zijn nooit aan bod gekomen.

Zaken als databases (en beveiliging) zijn natuurlijk ook niet interessant want het levert niets zichtbaars op in je applicatie. En in je ontwikkelomgeving met pak 'm beet 1 concurrent user merk je het verschil ook niet echt.

Anonymous Coward op Donderdag 12 November 2009 19:21

image

De Open Universiteit geeft wel goede cursussen hierover. Normalisatie is inderdaad lang niet altijd goed, maar je moet je wel bewust zijn van het vraagstuk en weten waarom je al dan niet normaliseert.

Zwooop op Vrijdag 13 November 2009 00:53

image

Het grootste probleem is dat je van die tools hebt waarmee je makkelijk effe wat in elkaar klikt. LAMP servertje, database klussen, scriptjes eromheen en tada, website. Vervolgens ben je volgens je visitekaartje opeens database-driven website developer. Ofzo.
Je kunt nooit in 1 keer een perfecte database in elkaar zetten, dat is een groeiend proces. De enige manier om erachter te komen of hij goed is, zeker bij de wat grotere en complexere bedrijven, is om een ontwikkeltraject te doen met echte feedback. Wat je wel kunt (en moet) doen, is een zodanige structuur neerzetten die bij een bepaald toepassingsgebied past. Dat vereist opleiding, inzicht en ervaring, en is dus niet goedkoop. Maar dan ben je dus nog maar aan het begin.

Verder wel een beetje jammer van die 10 open deuren. Of het moet zijn dat het artikel gericht is op managers die erover denken om een database te laten bouwen. Alleen is het daarvoor een beetje onbegrijpelijk.

Hoe dan ook, met name in informatica-opleidingen zou er zeker meer dan 'een vakje' mogen zijn over gestructureerd nadenken. Niet specifiek gekoppeld aan database design, maar meer in het algemeen. Out of the box denken en dwarsverbanden kunnen leggen kun je leren, maar je moet er ook wel een beetje aanleg voor hebben. Ieder z'n vak...

arsimo op Donderdag 12 November 2009 15:22

image

Het zijn wel inkoppers, deze 'tips', maar op netjes op rijtje heeft wel zijn nut. Op sommige punten valt wel wat af te dingen ook, maar enig verschil van inzicht is niet erg.

Vervelender vind ik is dat helaas onzorgvuldig met terminologie wordt omgesprongen, zo wordt enkele malen het woord Database gebruikt terwijl DBMS (Database Management System) wordt bedoeld. Dit maakt het voor (vooralsnog) minder ingeweiden verwarrend, terwijl die lijst juist voor die groep bedoeld is.

Caesar Tjalbo op Donderdag 12 November 2009 15:36

image

Fout 2: de verkeerde database kiezen Fout 8: Elke database op dezelfde manier benaderen

Hoewel databases volgens dezelfde principes werken met SQL-queries en dezelfde structuren kennen, moet je toch beseffen dat ze van elkaar verschillen.
Wel een beetje komisch. Fout 11: denken dat er niet meer is dan alleen relationele databases. Het gaat niet alleen om legacy, al kan je SQL embedden in COBOL, maar ook om andere vormen van databases. Via Slashdot kwam ik van de week op deze blogpost terecht.

netlemon op Donderdag 12 November 2009 15:38

image

Dit is nog eens nieuws.

Vincentlaborant op Donderdag 12 November 2009 15:42

image

Nee dit is een gesponsord bericht. Wedden dat Oracle dit bericht sponsort.

.EdP. op Donderdag 12 November 2009 15:50

image zomerhack badge 1

... volgens vicepresident van product management Deb Woods van Ingres ...

Vincentlaborant op Donderdag 12 November 2009 15:55

image

Dat wil niet zeggen dat Oracle het niet sponsort. Die pipo van Ingres mag een keertje leuk meepraten dus daar moet je je niet op blindstaren.

DeliciouslyImperfect op Donderdag 12 November 2009 16:28

image

En wat dan nog? Zolang ze er niet in suggereren dat Oracle de beste keuze is maakt dat toch niet uit?

netlemon op Donderdag 12 November 2009 20:43

image

Weet je wat? Plaats anders ook even een checklist voor mensen die hun oma vrijstaand willen gaan maken van een drukke achtergrond in Photoshop.

Mijn punt is: het maakt me niet uit of het gesponsord is of niet, goed bedoeld is of gewoon een grap. Dit is een nieuwssite, geen plek om tutorials te plaatsen. Even los van de inhoudelijke kwaliteit van de tutorial zelf. Laat dat alsjeblieft aan sites over die zich er in specialiseren (lees: waar ook echt naar tutorials gezocht wordt mocht het nodig zijn).

Het niveau van Webwereld stort elk jaar weer een beetje meer in.

Kaiser Söze op Donderdag 12 November 2009 20:05

image

Open deuren nog verder open schoppen is ook knap!

De helft van deze punten is ook van toepassing op het bouwen van de Eiffeltoren, Het uitvoeren van een maanreis en elke andere aktiviteit die de inzet van een groter team vergt.

Dn Dick op Donderdag 12 November 2009 23:35

image

“Ik heb het recent meegemaakt dat het systeem in eerste instantie een bug leek te hebben, maar dat het bedrijf het eigenlijk verkeerd had geconfigureerd waardoor het inging tegen een eerder gedefinieerde preconditie. Dat conflicteerde met een van de sleutelparameters van de gehele database-architectuur, waardoor het systeem onvoorspelbare resultaten terugstuurde”, zegt David Cartwright

Hahaha... dit is van het kaliber 'ik had een sterretje in mijn voorruit en toen ging het vriezen en toe zei ie krak en toen belde ik een meneer en die zette er toen een nieuwe ruit in en toen ging ik weer lachen'.

Als-je-blieft. Zeg dan niks ;)

Botterik op Vrijdag 13 November 2009 01:28

image

Geneuzel van een stagiare die niet weet dat alles in de helft van de tijd moet gebeuren.

ODF op Vrijdag 13 November 2009 11:00

image

Ook in het onderdeel hoe-zet-je-een-database-met-gegevens-op gaat nog al eens wat vaak mis.

Een voorbeeld is de database van Vektis, een semi-overheidsinstantie die de registratie en administratie moet stroomlijnen voor de zorg.

Men heeft bijvoorbeeld bij het aanmaken van de groep psychologen er voor gekozen dat nummers vaker gebruikt mogen worden met het enige onderscheid dat praktijken van psychologen 1 nul minder heeft staan in het nummer. Bijvoorbeeld psycholoog A heeft AGB-code 94000012 en praktijk B AGB-code 9400012. Een digibeet kan zelfs zien dat hier fouten in gaan ontstaan bij het handmatig invoeren in formulieren en andere systemen en dat is dus ook gebeurt.
Als Vektis gekozen had voor een onderscheid met misschien een letter of een ander cijfer dan was het onderscheid een stuk duidelijker.

Het mag duidelijk wezen dat Vektis deze fout niet wil/kan inzien.

Lennart op Vrijdag 13 November 2009 11:02

image zomerhack badge 3

Dit soort artikelen hoeft voor mij echt niet hier. Als ik wat wil weten over database design dan ga ik niet naar webwereld. Daar verwacht ik nieuws. Geen oppervlakkige lul-specialtjes vol sluikreklame.

bazs2000 op Zaterdag 14 November 2009 00:16

image

@Lennard, toch biedt een artikel als deze wel de ruimte om er een discussie over te starten.

Ik ben een analist binnen een groot telecombedrijf en weet maar al te goed hoe slechte databases tot slechte performance zullen leiden. Mijn 'leven' bestaat uit het analyseren van data en het presenteren van cijfers en doe op basis van mijn bevindingen ook voorspellingen.

Een jaar geleden is er een ommekeer gekomen in de manier waarop data kon worden gepresenteerd en becijferd, hiertoe werd er een webbased schil gelegd om een te grote Oracle-database.

3/4 jaar doe ik er al over om alleen al te begrijpen hoe de structuren in elkaar steken en sinds kort heb ik toegang tot de database zelf. Aan de hand van onze bedrijfsmodellen heb ik noodgedwongen de wijze waarop wij onze gegevens willen zien nagebootst in query's en wel op een manier die ikzelf verafschuw.

Mijn grootste nachtmerrie is een tabel die zoveel informatie probeert te vangen vanuit meerdere bronnen terwijl er meerdere miljoenen records in staan. Mijn nachtmerrie is geen materie meer die alleen in de slaap voorkomt, ik heb hier dagelijks mee te maken.

Het kost zeer veel tijd om deze data te beheersen terwijl ik analist ben. Ik moet mij niet bezig willen houden met een database, deze moet goed gebouwd en onderhouden worden. Bedrijven kunnen veel willen maar stellen onrealistische eisen in sommige gevallen. Zelfs zo onrealistisch dat de eigen processen eraan onderdoor dreigen te gaan.

Tegenwoordig heb ik een vaste dag met een database-engineer ingeroosterd waarbij wij kijken naar zwakke plekken, dat is kolder ende waanzin maar jammerlijk onmisbaar.

Caesar Tjalbo op Zaterdag 14 November 2009 12:54

image

@Lennard, toch biedt een artikel als deze wel de ruimte om er een discussie over te starten. Op WebWereld? Lijkt me sterk dat je als professional hier bijgespijkerd wordt of op niveau blijft doorpraten. Dit artikel is informatief voor iedereen die nog nooit inhoudelijk met databases bezig is geweest, voor ieder ander zijn het vooral open deuren.

Ik heb er geen probleem mee, ik vind het heel nuttig dat een 'leek' zo een kijkje in de keuken krijgt en als dit artikel ertoe leidt dat er ook maar een (1!) CIO bij een deskundige te rade gaat voordat er data opgeslagen wordt, dan is dit artikel het aantal bytes in goud waard. Wellicht dat jouw nachtmerries dan voorkomen kunnen worden.

Anonymous Coward op Zaterdag 14 November 2009 19:38

image

Voor mij is de kern, en dat geldt ook voor andere onderwerpen, dat door bezuinigingen en uitspraken als: ICT is toch als water uit de kraan, niet voldoende gekwalificeerd personeel wordt aangenomen met een groeimogelijkheid die amper boven secretaresse-niveau uitkomt, waardoor we opgezadeld worden met een database die kraakt en piept als je er een beetje load op zet en dagen offline is na een virusincident.

ikkuh op Zaterdag 18 December 2010 15:07

image

Heb niks gelezen over het meest voorkomende en vertragende probleem dat ik in zo'n beetje elke database weer tegenkom:

Missende/incomplete/incorrecte indexes!!!

volledig uitnormaliseren is indd. niet altijd evenhandig en maakt queries vaak overdreven lang en omslachtig.
Toch als je maar de juiste indexes aanmaakt valt er meestal binnen een redelijke request tijd nog wel een resultaatje uit te halen.

Om te kunnen reageren, dient u ingelogd te zijn.

Nieuwsbrief

Ontvang dagelijks een overzicht van het laatste ICT-Nieuws in uw mailbox

Peiling

Loading Poll

Video: World Tech Update: Darpa's robot oorl...

World Tech Update: Darpa's robot oorlogspaard (video)

Verleden nieuws