InfoNu.nl > Pc en Internet > Programmeren > MySQL inleiding

MySQL inleiding

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. 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 betekent 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

Eén 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;

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;

Let hierbij op de randvoorwaarde CONSTRAINT en de bijhorende acties ON DELETE en ON UPDATE.
© 2006 - 2018 Besto, het auteursrecht (tenzij anders vermeld) van dit artikel ligt bij de infoteur. Zonder toestemming van de infoteur is vermenigvuldiging verboden.
Gerelateerde artikelen
MySQL Hosting. Waar moet je opletten?MySQL Hosting. Waar moet je opletten?Wil je MySQL gebruiken in je hosting omgeving? MySQL is een heavy-duty database server. Het wordt gebruikt in combinatie…
De gratis webserver ApacheDe gratis webserver ApacheApache is een gratis opensourse-webserver, gestart in 1995 om, ter vervanging van de NCSA webserver een geheel nieuwe we…
GLPI Hardware Inventory ManagementGLPI Hardware Inventory ManagementGLPI (Gestionnaire libre de parc informatique )is een online databank applicatie waar iedereen van gebruik kan maken voo…
Debian, nginx en PHP-FPM installerenDebian, nginx en PHP-FPM installerenDe combinatie nginx en PHP-FPM is ijzersterk, het is supersnel en kan met mindere 'server performance' meer resultaat le…
Hoe installeer ik een Wordpress BlogHoe installeer ik een Wordpress BlogMet Wordpress software kun je prachtige websites en blogs maken. Dit is een erg nuttige en gebruiksvriendelijke applicat…

Reageer op het artikel "MySQL inleiding"

Plaats als eerste een reactie, vraag of opmerking bij dit artikel. Reacties moeten voldoen aan de huisregels van InfoNu.
Meld mij aan voor de tweewekelijkse InfoNu nieuwsbrief
Ik ga akkoord met de privacyverklaring en ben bekend met de inhoud hiervan
Infoteur: Besto
Gepubliceerd: 07-10-2006
Rubriek: Pc en Internet
Subrubriek: Programmeren
Schrijf mee!