Inleiding
Transacties, referentiële integriteit, normaliseren, relaties, primary keys, foreign keys…allemaal zaken die bij een database-ontwerp om de hoek komen kijken. Een veel gebruikte term bij database-ontwerpen is ACID:
Atomicity : Transacties worden óf helemaal afgerond, of falen volledig.
Consistency : Integriteit van data blijft gewaarborgd.
Isolation : Een transactie blijft onzichtbaar voor andere processen totdat deze is afgerond
Durability : Het systeem blijft consistent na bijvoorbeeld een crash tijdens een transactie.
In deze tutorial hoop ik je wegwijs te maken hoe MySQL de meeste van deze zaken heeft geïmplementeerd door de InnoDB tabel-engine te gebruiken. (De meeste, behalve Durability, InnoDB werkt met een transaction-log welke in geval van een crash kan worden gebruikt om te recoveren, maar daar heb ik slechte ervaringen mee).
MySQL-tabellen maken standaard gebruik van de MyISAM-engine, zo’n engine bepaalt welke functionaliteit je allemaal kunt gebruiken. In het voorbeeld spreek ik over de InnoDB-engine, het lijkt me dus verstandig om de belangrijkste verschillen tussen die 2 te bekijken:
MyISAM:
- Fulltext index
- Geen transactions
- Geen PK / FK-relaties
InnoDB:
- Géén fulltext index
- Wél transactions
- Wél PK / FK-relaties
Inhoudsopgave
- Inleiding
- Wat zijn transactions?
- Wat zijn PK / FK-relaties
- Het leuke werk, integriteit behouden
- Een stukje voorbeeldcode
- Tips & Tricks