MySQL

**MySQL** je slobodný a otvorený viacvláknový, viacpouží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. Používatelia majú na výber GNU General Public License, ktorú MySQL rozšírila o FLOSS Licenčnú výnimku. Umožňuje 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í použí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
* Plánovanie udalostí
* XML funkcie
* Replikácia založená na použí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 uvoľnené. 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 používateľov 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 používateľoch mobilných sietí
** flickr – používa MySQL na správu miliónov fotiek a použí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

Kategória:Databázové systémy
Kategória:Slobodný softvér