Op vrijdag 28 december 2001 14:31 schreef Thargol het volgende:
Normalizeren is handig voor een datamodel. Echter in de praktijk blijkt vaak dat je query's veel sneller kunt krijgen als je je database niet volledig normalizeert. Uit performance overwegingen gebruik ik dus regelmatig redundante data.
Ik vind het nogal wat omdat dus 'fundamenteel fout' te noemen. Dit is typisch zo'n geval waar de theorie niet 100% aansluit bij de praktijk. Op het werk gebruik we altijd twee datamodellen, een voor het begrip en voor de implementatie.
ik doel niet op tabellen die nog een kolommetje 'count' handhaven, maar meer op onjuist splitste tabellen, of 1op1 relaties...
Dit is fout: (tenonrechte gesplitst)
RodeProducten(id,formaat,vorm)
BlauweProducten(id,formaat,vorm)
moet zijn:
Producten(id,formaat,vorm,kleur)
Dit is fout: (1op1)
parenttabel(id,kindid, veld1)
kindtabel(id,parentid, veld2)
moet zijn:
Tabel(id,veld1,veld2)Ook het ontwerpen van indexes is lastig in je datamodel. De keuze van welke indexes er zijn is namelijk afhankelijk van de query's die je allemaal wilt gaan doen. Als je die allemaal al tijdens je ontwerpfase kunt verzinnen heb je goed werk geleverd, maar neem je naar mijn mening de lol bij de programmeurs weg. Ook is het zo dat de nieuwere SQL-server (SQL7, SQL2000) automatisch indexen maken en de noodzaak voor het ontwerpen van indexen minder is.
Ik wil me voornamelijk richten op het eenvoudiger MySql, omdat daar de fouten in gemaakt worden. Mensen die werken met SQL-server en Oracle hebben doorgaans een opleiding gehad waarin je voldoende leert.
Dingen die dus niet heel er uitgebreid aan bod zullen komen:
- foreign key constraints. (het concept foreign key natuurlijk wel)
- Stored procedures
- Triggers
- Procedurele SQL
- multidimensionale resultaten
- niet-lineare resultaten
Dingen die misschien ook behandeld kunnen worden zijn :
*
eenvoudige join-statements.
Veel newbies splitsen hun tabellen niet omdat een join zo moeilijk lijkt.
*
Toelichting datatypes
Het verschil tussen char en varchar is er toch echt wel, terwijl veel mensen het toch niet weten/begrijpen.
*
Voordelen van DBMS boven een file-based datastorage.
Lijkt me duidelijk...
Ik denk dat ik na nieuw jaar (D.V.) ga beginnen...