Programmeren en Mysql Tutorial

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.


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;

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


Reageer op het artikel "MySQL Inleiding"


Er zijn nog geen reacties geplaatst op dit artikel.