MySQL

Fra Wikipedia, den frie encyklopedi.

MySQL er en SQL-databasetjener som er lisensiert under GPL. Denne databasetjeneren er veldig mye brukt, og er en vesentlig del av LAMP-systemer, hvor M-en står for nettopp MySQL.

MySQL er utviklet og vedlikeholdt av svenske MySQL AB, som i motsetning til andre organisasjoner som Apache, er et profit-firma.

Innholdsfortegnelse

Plattformer

MySQL kjører på mange plattformer — inkludert AIX, BSDi, FreeBSD, HP-UX, Linux, Mac OS X, NetBSD, Netware, OpenBSD, OS/2 Warp, QNX, SGI IRIX, Solaris, SunOS, SCO OpenServer, SCO UnixWare, Tru64 og mange versjoner av Windows.

Programmeringsspråk

Programmeringsspråk som kan koble til MySQL-databaser er blant annet: C, C++, Eiffel, Smalltalk, Java, Lisp, Perl, PHP, Python, Ruby, og Tcl; hver av dem bruker en spesifikk API. Et ODBC-grensesnitt kalt MyODBC tillater andre programmeringsspråk som støtter ODBC-grensesnittet å kommunisere med en MySQL-database. MySQL bruker ANSI C som sitt hovedspråk.

Bruksområder

MySQL er populær som databasetjener for nettbaserte tjenester, og det finnes mange eksempeler på åpen kildekode-programvare som bruker MySQL, eksempelvis MediaWiki, PHP-Nuke , Slashcode og phpBB.

MySQL og PHP nevnes ofte i samme åndedrag, og de har sammen fått ett eget navn, LAMP, som står for Linux, Apache, MySQL og PHP. Noen ganger ser man også at L-en er byttet ut med en W, WAMP, når den samme kombinasjonen brukes på MS Windows platformen.

Kritikk av MySQL

Tidlige versjoner av MySQL hadde få av funksjonene som ellers er å finne i RDBMS-databaser, og selv den nyeste versjonen mangler viktige funksjoner. Dette har fått noen kjente databaseeksperter, som
Chris Date
og
Fabian Pascal
til å kritisere MySQL for å ikke være noen RDBMS. Tidligere fikk også MySQL masse kritikk for mangel på transaksjoner og ACID-kompatibilitet, som er viktig for å sikre integriteten til dataene. I samme kategori får MySQL masse kritikk for hvordan den behandler NULL-verdier, standardverdier og verdier som ikke passer med kolonnetypen den settes inn i.

Eksempel:

   CREATE TABLE null_1 (
     id    INT         NOT NULL,
     text1 VARCHAR(32) NOT NULL,
     text2 VARCHAR(32) NOT NULL DEFAULT 'foo'
   );
 
   INSERT INTO null_1 (id) VALUES(1);
   INSERT INTO null_1 (text1) VALUES('test');
 
   SELECT * FROM null_1;
   | id | text1 | text2 |
   | 1  |       | foo   |
   | 0  | test  | foo   |


   CREATE TABLE bounds_test (
     id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
     price NUMERIC(4,2),
     code VARCHAR(8),
     numbers_only INT
   );
   
   INSERT INTO bounds_test VALUES (
     99999999999999,
     21474.83,
     'ABCDEFGHIJK',
     'A quick brown dolphin...'
   );
   
   SELECT * FROM bounds_test;
   | id         | price  | code     | numbers_only |
   | 2147483647 | 999.99 | ABCDEFGH | 0            |

Her burde ikke MySQL ha godtatt noen av verdiene som ble satt inn i tabellene – legg merke til hva den har erstattet verdiene med.


Lisensiering

Både MySQL-tjenerprogramvare og klientbibliotek er distributert under en dobbellisens. Brukere kan velge mellom GNU General Public License [1] (http://www.mysql.com/products/licensing/opensource-license.html) og en kommersiell lisens. Dette prinsippet omtaler de som "Quid pro quo", og det går ut på at hvis man vil bruke og distribuere proprietær applikasjon med deres MySQL drivere må man betale for en kommersiell lisens, mens det er fritt for bruk i GPL lisensierte programmer.

Hvorfor navnet?

Mange tror "My" i "MySQL" er engelsk for "min" eller "mitt". MySQLs grunnleggere kan ikke med sikkerhet si hvor navnet kommer fra, men blant de sannsynlige opprinnelsene er faktumet at datteren til grunnleggeren Monty Widenius heter "My".[2] (http://dev.mysql.com/doc/mysql/en/History.html)

Andre SQL-databasetjenere

Eksterne ressurser


Personal tools