MySQL

MySQL je slobodný a otvorený viacvláknový, viacužívateľský SQL relačný databázový server.
MySQL je podporovaný na viacerých platformách (ako Linux, Windows či Solaris) a je implementovaný vo viacerých programovacích jazykoch ako PHP, C++ či Perl. Databázový systém je relačný, typu DBMS (database management system). Každá databáza je v MySQL tvorená z jednej alebo viacerých tabuliek, ktoré majú riadky a stĺpce. V riadkoch sa rozoznávajú jednotlivé záznamy, stĺpce udávajú dátový typ jednotlivých záznamov, pracuje sa s nimi ako s poľami. Práca s MySQL databázou je vykonávaná pomocou dopytov (anglicky queries), ktoré sú tvorené programovacím jazykom SQL (Structured Query Language).

Programovacie jazyky
Knižnice pre prácu s MySQL databázami sú dostupné vo všetkých hlavných programovacích jazykoch pomocou príslušných API funkcií. Okrem toho ODBC rozhranie s názvom MyODBC povoľuje prídavné programovacie jazyky, ktoré pomáhajú ODBC rozhraniu komunikovať s MySQL databázou, napríklad ASP alebo ColdFusion. MySQL server a oficiálne knižnice sú implementované predovšetkým v ANSI C/ANSI C++.

Aplikácie
MySQL je populárny pre jeho použitie vo webových aplikáciach a databázových komponentoch LAMP,MAMP, a WAMP platforiem (Linux/Mac/Windows-Apache-MySQL-PHP/Perl/Python),a pre jeho nástroje na hľadanie chýb ako Bugzilla, ktoré používajú otvorené zdrojové kódy. Jeho obľúbenosť vo vzťahu k tvorbe webových aplikácií je úzko zviazaná s popularitou PHP-čka a Ruby on Rails, ktoré sú často kombinované s MySQL.

PHP a MySQL sú základné komponenty pre tvorbu redakčných systémov (CMS) ako napríklad Joomla!, WordPress, phpBB, Ebay alebo Drupal.Wikipédia beží na softvéri MediaWiki, ktorý je napísaný v PHP-čku a taktiež používa databázu MySQL.

Dokumentácia a administrácia
Informácie na použitie MySQL je možné nájsť na firemnej stránke pod sekciou dokumentov. Je tiež napísaných veľa kníh o MySQL. Na administráciu MySQL databázy je možné použiť príkazový riadok(príkaz:mysql and mysqladmin). Tiež je možné si stiahnuť zo stránky výrobcu GUI (grafické používateľské rozhranie) administrátorské nástroje: MySQL Administrator a MySQL Query Browser. Oboje z GUI nástrojov sú teraz zhrnuté v jednom balíčku s názvom MySQL GUI Tools. V prílohe o  spomínaných nástrojoch spomenutých pri MySQL AB, je prístupných viacero iných komerčných a nekomerčných nástrojov. phpMyAdmin je voľne šíriteľné webové administrátorské rozhranie realizované v PHP.

Licencovanie
Spoločnosľ Oracle robí MySQL Server dostupný ako voľný software pod licenciou GNU General Public License (GPL), no jednako tiež ponúkajú členstvo MySQL Enterprise, vhodné pre pracovníkov a dvojaké licencovanie pod bežným konceptom licencie pre použitie iné než uvedené (alebo nekompatibilné s podmienkami) v GPL.

Tak ako MySQL serverový software sám a clientské knižnice sú distribuované pod dvojakým licencovaním. Užívatelia majú na výber GNU General Public License, ktorú MySQL rozšírila o FLOSS Licenčnú výnimku. Umožnuje v licencii nahradiť licencovaný software nahradením MySQL klientských knižníc inými OSI kompilátmi s licenciou Open Source, ktoré nie sú v zhode s GPL.

Zákazníci ktorí si neželajú podmienky GPL si môžu zakúpiť zvláštnu licenciu. Podobne ako mnoho open-source programov, značka "MySQL" je chránená obchodnou známkou a môže sa použiť výhradne s povolením držiteľa práv. Niektorí užívatelia pokračovali nezávisle od seba na vývoji skorších verzií klientských knižníc, tieto boli distribuované pod menej obmedzujúcou General Public License LGPL.

Vydania
Bol istý rozchod v názoroch týkajúci sa distribúcie GPL MySQL knižničných súborov súčasne s open-source aplikáciami. Hlavný rozpor nastal s PHP, licenčne nekompatibilným s GPL. Neskôr bol tento problém odstránený, keď MySQL vytvoril licenčnú výnimku ktorá výhradne povoľovala zahrnutie MySQL klientských knižníc v open-source projektoch, za podmienky vlastníctva licencie na OSI-kompilát Open Source vrátane PHP licencie.

V Septembri 2005, MySQL AB a SCO sformovali partnerstvo pre "joint certification", marketing, predaj, školenie a pracovný vývoj na komerčnej verzii databázy pre nový OpenServer verzii 6 so systémom UNIX firmy SCO. SCO spôsobil rozchod názorov počnúc rokom 2003 s množstvom veľkých súdnych sporov vzťahujúcich sa na Operačný Systém LINUX. Mnoho MySQL zamestnancov vyjadrilo názor, že spoločnosť mala účel slúžiť koncovým používateľom, bez ohľadu na operačný systém, ktorý si zvolia, a že spoločnosť má nechať súd, aby posúdil spor licencovania SCO, a že mnoho bežných open-source databáz podobne tiež bolo určených a podporovalo SCO OpenServer.

V Októbri 2005, spoločnosť Oracle Corporation obdržala Innobase OY, Fínskej spoločnosti ktorá vyvinula InnoDB úložný engine ktorý dovoľoval MySQL ponúknuť funkcionality ako sú transakcie a cudzie kľúče. Oracle vydal tlačové vyhlásenie po tom, ako zmluvy, ktoré mali vypršať v roku 2006 na používanie softwaru spoločnosti MySQL AB, dosiahli obnovu. Počas MySQL používateľskej konferencie v Apríli 2006, MySQL vydal tlačové vyhlásenie v ktorom potvrdil že MySQL a Innobase OY pristúpili na mnohoročné predĺženie ich licencií. Vo februári 2006, Spoločnosť Oracle obdržala Softvér Sleepycat, od vývojárov Berkley DB, databázový engine vytvorený už spolu s MySQL úložným enginom.

API
Mnoho programovacích jazykov s jazykovo špecifickými API obsahuje knižnice na prístup k databázam MySQL. Patria sem konektor MySQL Connector/Net pre jazyky .NET/CLI a ovládač JDBC pre jazyk Java.

Rozhranie ODBC s názvom MySQL Connector/ODBC navyše umožňuje ďalším programovacím jazykom, ktoré podporujú rozhranie ODBC, komunikovať s databázou MySQL, napríklad ASP alebo ColdFusion. Metóda dotazu HTSQL-založená na URL sa dodáva aj s adaptérom MySQL, ktorý umožňuje priamu interakciu medzi databázou MySQL a akýmkoľvek webovým klientom prostredníctvom štruktúrovaných adries URL. Existujú ďalšie ovládače pre jazyky ako Python alebo Node.js.

Kritika
Kritizovaný bol odklon MySQL od SQL štandardov v predmete chápania 'NULL' a predvolených hodnôt. Vo verziách nižších ako 5.0 bolo možné ukladanie dátumu vyššieho než je posledný deň v mesiaci s menej než 31 dňami. Tiež aritmetické operácie boli náchylné k pretečeniu celočíselných typov, alebo orezania čísiel s pohyblivou desatinou čiarkou. Od verzie 5 servera, je zachádzanie s nepovolenými hodnotami rozličné podľa použitia "SQL Mode" SQL módu nastaveného na serveri, ktorý je predvolene nastavený na povolenie týchto výnimiek, ktoré sa kritikom nepáčia.

Po vydaní verzie beta MySQL 5.0, v Marci 2005, David Axmark, spoluzakladateľ MySQL, povedal že "ľudia kritizovali MySQL odkedy sme začali pre dôvod chýbajúcich úložných procedúr, prepínačov a pohľadov". a "My opravujeme 10 rokov kritiky v jednom vydaní." Bol vydaný build 5.0.15 MySQL 5.0 z 13 Októbra pre produkčné použitie 24 Októbra 2005, po viac než dvoch miliónoch stiahnutí počas 5.0 beta cyklu.

Budúce verzie
Zo záznamu vývoja MySQL 5.1 sa rysuje podpora pre:
 Pripojiteľný úložný engine API
 Štiepenie
 Planovanie udalostí
 XML funkcie
 Replikácia založená na užívateľských úrovniach
 Podpora pre paralelné výpočty je tiež časť plánu vývoja pre budúce verzie.
 Cudzí kľúč podporuje všetky úložné enginy so zameraním pre uvoľnenie MySQL 6.1 (tiež prezentované pre 3.23.44 pre InnoDB).
 Na novom úložnom engine, nazvanom Falcon sa tiež ešte pracuje.

Charakteristické vlastnosti
Nasledujúce vlastnosti sú implementované v MySQL, ale nie v ostatných RDBMS:
 Viacnásobné úložné enginy povoľujú vybrať si jeden, ktorý je najviac efektívny pre každú tabuľku v aplikácii(v MySQL 5.0, úložné enginy musia byť kompilované; v MySQL 5.1, úložné enginy môžu byť dynamicky vytvárané)
 Pôvodné úložné enginy (MyISAM, Falcon, Merge, Memory (heap), Federated, Archive, CSV, Blackhole, Cluster, BDB, EXAMPLE), and Maria
 Spoločne vyvinuté úložné enginy (InnoDB, solidDB, NitroEDB, BrightHouse)
 Spoločensky vyvinuté úložné enginy (memcached, httpd, PBXT)
 Custom úložné enginy
 Groupovanie, zhromažďovanie viacnásobných transakcií z viacerých pripojení naraz na zvýšenie operácií za sekundu

Špecifikacia programu
MySQL pracuje na rôznych platformách-vrátane AIX, BSDi, FreeBSD, HP-UX, i5/OS, Linux, Mac OS X, NetBSD, Novell NetWare, OpenBSD, OS/2 Warp, QNX, IRIX, Solaris, SunOS, SCO OpenServer, SCO UnixWare, Tru64, Windows 95, Windows 98, Windows ME, Windows NT, Windows 2000, Windows XP, a 32-bit verzii na Windows Vista (nie na 64-bit verzii). Port od  MySQL pre OpenVMS je tiež prístupný.

MySQL Enterprise Server(Podnikový server) je uvolnený jedenkrát za mesiac a zdroje môžu byť obdržané od  zákazníka Enterprise site alebo od MySQL's BitKeeper repository,obaja pod  GPL licenciou. MySQL Community Server je publikovaný na nešpecifikovanej schéme pod GPL a obsahuje všetky chyby ktoré sú s posledným MySQL Enterprise Server uvolnené. Dvojité nie su dlhšie stanovené MySQL všetky spustí z Community Server.

Kód v MySQL je písaný v jazyku C a C++. SQL syntaktický analyzátor používaný yacc a home-brewed lexer. Dokument popisujúci nejaké interné štruktúry v kóde a kódovacej smernici je dosiahnuteľný-dostupný z MySQL web stránky.

Podpora
Cez MySQL Enterprise MySQL AB ponúka podporu automaticky, vrátane 24/7 servisu s 30-minútovou odozvou. Tým podpory má priamy prístup k vývojovým projektantom, ktorí sú potrební pre definovanie problému. Mimo hlavných fór a zoznamu adresátov, zamestnancov a iných uživatelov sú často dostupne viaceré IRC kanále v prípade asistencie.

Zákazníci MySQL Enterprise sa tešia prístupu strojových a softwarových čo je preskúšaný a špeciálny operačný systém, a prístup k mesačným updatom s poslednými opravenými chybami. Rôzne úrovne Enterprise členov sú užitočné, z premenlivými časmi odozvy a funkcie merania a núdzová podpora prostredníctvom severov prevádzkou ladenia  a systém architektúry správ. The MySQL Network Monitoring a Advisory Service monitorujú pomocné programy pre databázové servery a sú k dispozícii len pre MySQL Enterprise zákazníkov.

MySQL aplikácia roka: Víťazi 
 2007
 YouTube
 Amp'd Mobile
 Adobe
 2006
 Nokia - používa MySQL Cluster na udržanie informácií v reálnom čase o užívateľoch mobilných sietí
 flickr - používa MySQL na správu miliónov fotiek a užívateľov
 NetQOS - využíva MySQL na riadenie najväčšej siete na svete - Chevron, American Express a Boeing.
 2005
 CNET Networks
 Friendster -  v roku 2005 viac ako 85 miliónov dynamických prehliadaní stránok za deň, schopný podporovať viac ako 1.5 miliardy MySQL query za deň
 Wikipedia -  začiatkom roka 2005 viac ako 200 miliónov query a 1.2 miliónov updatov za deň s maximom 11 000 query za sekundu

Výslovnosť 
MySQL sa oficiálne vyslovuje (maɪˌɛskjuːˈɛl), nie "My esquel". Toto dodržiava oficiálnu ANSI výslovnosť SEQUEL bola skoršia verzia databázového jazyka IBM, predchodca jazyka SQL. Časť "My" pochádza možno z mena Wideniusovho prvého dieťaťa, hláskovaného "My" ale vyslovovaného po švédsky ako mü (my)

História
 MySQL bolo prvýkrát interne vydané 23.mája 1995
 verzia pre Windows bola vydaná 8.januára 1998 pre Windows 95 a NT
 verzia 3.23: beta verzia od júna 2000, vydaná v januári 2001
 verzia 4.0: beta verzia od augusta 2002, vydaná v marci 2003 (uniony)
 verzia 4.1: beta verzia od júna 2004, vydaná v októbri 2004 (R-stromy, B-stromy, poddotazy, pripravené príkazy)
 verzia 5.0: beta verzia od marca 2005, vydaná v októbri 2005 (kurzory, uložené procedúry, spúšťače, pohľady, XA transakcie)
 verzia 5.1: momentálne v príprave (od novembra 2005) (organizátor úloh, rozdeľovanie, API pre plugin, riadková replikácia, tabuľka logov na servri)
 Sun Microsystems oznámili svoj zámer získať MySQL AB 16.januára 2008

Referencie

Iné projekty 

Databázové systémy
Slobodný softvér