<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="nl">
		<id>https://wiki.fok.nl/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Rickmans</id>
		<title>FOK!wiki - Gebruikersbijdragen [nl]</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.fok.nl/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Rickmans"/>
		<link rel="alternate" type="text/html" href="https://wiki.fok.nl/index.php/Speciaal:Bijdragen/Rickmans"/>
		<updated>2026-08-16T18:35:02Z</updated>
		<subtitle>Gebruikersbijdragen</subtitle>
		<generator>MediaWiki 1.30.2</generator>

	<entry>
		<id>https://wiki.fok.nl/index.php?title=MySQL&amp;diff=12321</id>
		<title>MySQL</title>
		<link rel="alternate" type="text/html" href="https://wiki.fok.nl/index.php?title=MySQL&amp;diff=12321"/>
				<updated>2005-04-03T06:36:40Z</updated>
		
		<summary type="html">&lt;p&gt;Rickmans: /* Keuze InnoDB of MyISAM */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''MySQL''' is een [[opensource]] [[relationele database|relationeel database]] management systeem (DBMS), die gebruik maakt van [[SQL]]. Het MySQL softwarepakket bestaat onder meer uit een [[server|serverprogramma]], doorgaans mysqld genoemd, waarbij de d voor [[daemon]] staat, wat de [[Unix]] of [[Linux]] term is voor een proces dat netwerkconnecties aanneemt. Verder bestaat het uit een verzameling [[client|clientprogramma's]], zoals mysql en mysqldump waarmee automatisch of interactief met de server gecommuniceerd kan worden. MySQL is een populair database management systeem die voor het gestructureerd opslaan van gegevens voor zeer veel toepassingen wordt gebruikt. Voorbeelden van websites die gebruikmaken van MySQL zijn de sites van Wikipedia, de gratis encyclopedie. Een bekende MySQL [[frontend]] is [[PHPMyAdmin]], een [[webbased]] MySQL [[administratie]] programma geschreven in [[PHP]].&lt;br /&gt;
&lt;br /&gt;
Waar de naam ''MySQL'' vandaan komt is onduidelijk, maar men vermoedt dat het komt omdat het dochtertje van mede oprichter, Monty Widenius, My heet.&lt;br /&gt;
&lt;br /&gt;
=== Geschiedenis ===&lt;br /&gt;
MySQL begon als een manier om een snelle verbinding te maken met de tabellen van [[mSQL]]. Na wat testen bleek echter dat mSQL niet snel en flexibel genoeg was. Er kwam een nieuwe [[API]] die leek op die van mSQL en later werd gebruikt om mSQL applicaties makkelijker te [[porten]] naar MySQL. Door de vele jaren is MySQL uitgegroeid tot een van de populairste SQL databases, mede dankzij de [[Opensource|open source]] beweging.&lt;br /&gt;
&lt;br /&gt;
=== Gebruik ===&lt;br /&gt;
MySQL wordt veel gebruikt in combinatie met [[Linux]], [[Apache|Apache]] en [[PHP]] of [[Perl]]. Deze combinatie van software wordt [[LAMP]] genoemd. MySQL kan echter ook worden gebruikt op andere [[besturingssysteem|besturingssystemen]].&lt;br /&gt;
&lt;br /&gt;
MySQL wordt gebruikt om data op te slaan. Dit kan tekst zijn maar ook afbeeldingen.&lt;br /&gt;
&lt;br /&gt;
MySQL is ook de meest gangbare database voor opensource fora, Content Management Systemen ([[CMS]])of [[blog]]-software zoals [[XOOPS]] of [[Mambo]].&lt;br /&gt;
&lt;br /&gt;
=== Keuze InnoDB of MyISAM ===&lt;br /&gt;
&lt;br /&gt;
Een belangrijke keuze die je moet maken bij de implementatie van gegevensbanken met MySQL is het opslagsysteem. Standaard is MyISAM de opslagmotor, vooral gekenmerkt door snelheid. Het spreekt vanzelf dat het ontwerp op een genormaliseerde manier moet gebeuren maar bij de implementie (met SQL DDL) worden geen relaties(relationships!) gedefinieerd. Deze relaties (en de referenti?le integriteitsacties) worden bepaald in de middleware(in PHP, of ...).&lt;br /&gt;
&lt;br /&gt;
Voorbeeld met MyISAM: &lt;br /&gt;
Gebruikers kiezen een uur uit &amp;quot;Uur&amp;quot; dat wordt opgeslagen in &amp;quot;Contact&amp;quot;. Niet echt genormaliseerd want &amp;quot;bezet&amp;quot; is een procesgegeven dat je ook uit &amp;quot;contact&amp;quot; kunt halen. Maar het voorbeeld illustreert wel het ontbreken van de definitie van een relatie. Het is de [[middleware]]  die de relatie verzorgt.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CREATE TABLE `Contact` (&lt;br /&gt;
  `user_id` mediumint(8) unsigned NOT NULL default '0',&lt;br /&gt;
  `Naam` varchar(120) NOT NULL default '',&lt;br /&gt;
  `Uur` time NOT NULL default '00:00:00',&lt;br /&gt;
  PRIMARY KEY  (`user_id`),&lt;br /&gt;
  UNIQUE KEY `ContactID` (`user_id`)&lt;br /&gt;
) TYPE=MyISAM;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CREATE TABLE `Uren` (&lt;br /&gt;
  `UurID` smallint(6) NOT NULL auto_increment,&lt;br /&gt;
  `Uur` time NOT NULL default '00:00:00',&lt;br /&gt;
  `Bezet` enum('vrij','bezet') NOT NULL default 'vrij',&lt;br /&gt;
  PRIMARY KEY  (`UurID`),&lt;br /&gt;
  UNIQUE KEY `UurID` (`UurID`)&lt;br /&gt;
) TYPE=MyISAM;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Een andere opslagmotor, InnoDB, voldoet wat transacties betreft aan de [[ACID]]-standaard en laat bovendien toe voorwaarden toe te kennen aan vreemde sleutels. Relaties en referenti?le integriteitsacties kunnen hier dus wel met [[SQL]] [[DDL]] gedefinieerd worden. De prijs die je betaalt is snelheidsverlies.&lt;br /&gt;
&lt;br /&gt;
Voorbeeld met InnoDB:&lt;br /&gt;
Stel dat een auteur meerdere boeken kan schrijven, maar dat een boek slechts door ??n auteur wordt geschreven:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CREATE TABLE `auteur` (&lt;br /&gt;
  `AuteurID` int(10) unsigned NOT NULL auto_increment,&lt;br /&gt;
  `Naam` varchar(45) NOT NULL default '',&lt;br /&gt;
  `Voornaam` varchar(45) default NULL,&lt;br /&gt;
  PRIMARY KEY  (`AuteurID`)&lt;br /&gt;
) ENGINE=InnoDB;&lt;br /&gt;
&lt;br /&gt;
CREATE TABLE `werk` (&lt;br /&gt;
  `WerkID` int(10) unsigned NOT NULL auto_increment,&lt;br /&gt;
  `Titel` varchar(45) NOT NULL default '',&lt;br /&gt;
  `AuteurID` int(10) unsigned NOT NULL default '0',&lt;br /&gt;
  PRIMARY KEY  (`WerkID`),&lt;br /&gt;
  KEY `FK_Werk_1` (`AuteurID`),&lt;br /&gt;
  CONSTRAINT `ddd` FOREIGN KEY (`AuteurID`) REFERENCES `auteur` (`AuteurID`) ON DELETE CASCADE ON UPDATE CASCADE&lt;br /&gt;
) ENGINE=InnoDB;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Let hierbij op de randvoorwaarde CONSTRAINT en de bijhorende acties ON DELETE en ON UPDATE&lt;br /&gt;
Uiteraard kan je met een GUI-tool zoals [MySQL Query Browser] de implementatie verzorgen a.h.v. de table editor:&lt;br /&gt;
&lt;br /&gt;
[[Afbeelding:MySQLQueryBrowser.gif]]&lt;br /&gt;
&lt;br /&gt;
Naast de keuze van de referentiële integriteit, kan de functie van je table bepalend zijn voor je tabletype. Veelal wordt InnoDB gebruikt indien het een table betreft, waar veel naar geschreven wordt, maar ook veel data opgehaald en geupdated. Kortom een table die aan verandering onderhevig is. MyIsam wordt benut, als het een table betreft, waar bijvoorbeeld alleen vanuit geselecteerd wordt. Het onderscheid tussen beiden wordt gemaakt doordat MyIsam table level locking heeft en InnoDB rowlevel locking.&lt;br /&gt;
&lt;br /&gt;
=== Externe link ===&lt;br /&gt;
*[http://www.mysql.com MySQL]&lt;br /&gt;
*[http://dev.mysql.com/manual MySQL handleiding]&lt;br /&gt;
*[http://dev.mysql.com/downloads/query-browser/1.1.html Mysql Query Browser]&lt;br /&gt;
[[Categorie:Databases]]&lt;br /&gt;
[[Categorie:Linux]]&lt;br /&gt;
[[Category:Digital Corner]]&lt;/div&gt;</summary>
		<author><name>Rickmans</name></author>	</entry>

	</feed>