
MySQL Inleiding
MySql is een database, gebaseerd op SQL de meest gebruikte database taal. Hiermee kan je makkelijk een database beheren. MySql wordt vaak gebruikt in combinatie met PHP.
Inleiding
MySql is een open-source RDBMS (Relationele databaase management systeem), MySql maakt gebruik van Sql, het wordt vaak gebruikt voor webtoepassingen zoals Gastenboeken en Fora. Meestal in combinatie met PHP. Het software pakket van MySql bestaat ondermeer uit een serverprogramma, mysqld genoemd. De d betekend Deamon. Deamon is de Unix - of Linux-term die gebruikt wordt voor een proces dat netwerkconnecties aanneemt. Verder zitten er in dit pakket nog enkele clientprogramma's zoals mysql en mysqldump. Hiermee kan automatisch of interactief met de server worden gecommuniceerd.Enkele website's die gebruik maken van Mysql zijn: Infonu.nl, MaffiaXL.nl en nog vele duizenden meer. Een bekend beheer systeem voor MySql is phpMyAdmin, een MySql-administratieprogramma geschreven in PHP.
De naam MySql
Hoe ze bij de naam MySql komen is niet bekend, er bestaat een vermoeden dat het genoemd is naar het dochtertje van medeoprichter Monty Wildenius, haar naam is My.Geschiedenis van MySql
De eerste versie van MySql kwam uit in 1995. Het begon als een snelle manier om te verbinden met de tabellen van mSql. Maar na enkele testen bleek dat mSql niet snel en flexibel genoeg was. Er kwam toen een nieuwe API die veel weg had van mSql en later werd gebruikt om mSql-programma's makkelijker te porten naar MySql. Dankzij de open source-beweging is Mysql in vele jaren uitgegroeid tot één van de populairste Sql-Databases.Keuze InnoDB of MyISAM
Éen van de belangrijkste keuzen die je moet maken bij het implementeren van gegevensbanken met MySql is het opslagsysteem. Er zijn twee verschillende soorten, MyISAM en InnoDB, standaard wordt MyISAM gebruikt, vooral vanwege de snelheid. Het spreekt vanzelf dat het ontwerp op een genormaliseerde manier gebeuren moet. Maar bij het implementeren worden geen relaties gedefineerd. Deze relaties worden bepaald in de middleware (PHP of ...).Voorbeeld met MyISAM
Gebruikers kunnen een uur kiezen uit "Uren" en dat wordt opgeslagen in "Contact". Dit is niet echt genormaliseerd, want "bezet" is een procesgegeven dat je ook uit "contact" kunt halen. Dit voorbeeld laat wel zien dat het ontbreken van de definitie van een relatie. Het is de middleware die daar voor zorgt.CREATE TABLE `Contact` (
`user_id` mediumint(8) unsigned NOT NULL default '0',
`Naam` varchar(120) NOT NULL default '',
`Uur` time NOT NULL default '00:00:00',
PRIMARY KEY (`user_id`),
UNIQUE KEY `ContactID` (`user_id`)
) TYPE=MyISAM;
CREATE TABLE `Uren` (
`UurID` smallint(6) NOT NULL auto_increment,
`Uur` time NOT NULL default '00:00:00',
`Bezet` enum('vrij','bezet') NOT NULL default 'vrij',
PRIMARY KEY (`UurID`),
UNIQUE KEY `UurID` (`UurID`)
) TYPE=MyISAM;
`user_id` mediumint(8) unsigned NOT NULL default '0',
`Naam` varchar(120) NOT NULL default '',
`Uur` time NOT NULL default '00:00:00',
PRIMARY KEY (`user_id`),
UNIQUE KEY `ContactID` (`user_id`)
) TYPE=MyISAM;
CREATE TABLE `Uren` (
`UurID` smallint(6) NOT NULL auto_increment,
`Uur` time NOT NULL default '00:00:00',
`Bezet` enum('vrij','bezet') NOT NULL default 'vrij',
PRIMARY KEY (`UurID`),
UNIQUE KEY `UurID` (`UurID`)
) TYPE=MyISAM;
Voorbeeld met InnoDB
Een andere mogelijkheid is InnoDB, deze voldoet wat betreft transacties aand e ACID-standaard. En deze laat bovendien toe voorwaarden toe te kennen aan vreemde sleutels. Relaties tussen tabellen en referentiële integriteitsacties kan je hier dus wel met SQL-DDL gedefinieren. Het enige wat dit kost is tijd, dit is alleen tijdens het manipuleren.Stel dat een auteur meerdere boeken kan schrijven, maar dat een boek slechts door één auteur wordt geschreven:
CREATE TABLE `auteur` (
`AuteurID` int(10) unsigned NOT NULL auto_increment,
`Naam` varchar(45) NOT NULL default '',
`Voornaam` varchar(45) default NULL,
PRIMARY KEY (`AuteurID`)
) ENGINE=InnoDB;
CREATE TABLE `werk` (
`WerkID` int(10) unsigned NOT NULL auto_increment,
`Titel` varchar(45) NOT NULL default '',
`AuteurID` int(10) unsigned NOT NULL default '0',
PRIMARY KEY (`WerkID`),
KEY `FK_Werk_1` (`AuteurID`),
CONSTRAINT `ddd` FOREIGN KEY (`AuteurID`) REFERENCES `auteur` (`AuteurID`) ON DELETE
CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB;
`AuteurID` int(10) unsigned NOT NULL auto_increment,
`Naam` varchar(45) NOT NULL default '',
`Voornaam` varchar(45) default NULL,
PRIMARY KEY (`AuteurID`)
) ENGINE=InnoDB;
CREATE TABLE `werk` (
`WerkID` int(10) unsigned NOT NULL auto_increment,
`Titel` varchar(45) NOT NULL default '',
`AuteurID` int(10) unsigned NOT NULL default '0',
PRIMARY KEY (`WerkID`),
KEY `FK_Werk_1` (`AuteurID`),
CONSTRAINT `ddd` FOREIGN KEY (`AuteurID`) REFERENCES `auteur` (`AuteurID`) ON DELETE
CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB;
Let hierbij op de randvoorwaarde CONSTRAINT en de bijhorende acties ON DELETE en ON UPDATE. © 2006 - 2010 Besto, gepubliceerd in Programmeren (Pc en Internet) op 07-10-2006. Het auteursrecht van dit artikel ligt bij de infoteur. Zonder toestemming van Besto is vermenigvuldiging van dit artikel verboden. Meer...
Verwante artikelen
- LAMP omgeving, wat is dat?: De term LAMP wordt in de informatietechnologie steeds vaker gebruikt. LAMP wordt gebruikt om een bepaalde omgeving in aan te duiden. Het verwijst naar de combinatie van de softwar…
- Overzicht gratis webhosts: Een kleine website beheren kost je al snel € 50 per jaar. Gelukkig zijn er ook organisaties die een gratis webhosting service aanbieden. Hier kan je dan je kleine website kwijt op…
- Snel en makkelijk je eigen website of blog: Wordpress.org: Een eigen website, een eigen blog, ... Overal hoor je het. Maar wat is het nu eigenlijk? En hoe maak ik er snel één? Lees snel verder om deze antwoo…
- PHP Hypertext Preprocessor: PHP Hypertext Preprocessor, beter bekend als PHP, is een scripttaal die voornamelijk wordt gebruikt voor het programmeren van dynamische websites. Oorspronkelijk heette het Person…
- Tutorials: Wat houdt het in?: Een artikel waar het begrip "tutorial" in wordt uitglegd. Ook wat de beste manier is om de juiste tutorials te vinden.

Reageer op het artikel "MySQL Inleiding"

Er zijn nog geen reacties geplaatst op dit artikel.

