Relační databázový server - MySQL

Lehce o MySQL

Databázový server MySQL je jedničkou na poli otevřených databázových systémů již řadu let. V poslední době však klepe na dveře nová verze 5.0. Systém MySQL vyvinula švédská společnost TcX.

Co je MySQL?

MySQL je databázový server, který funguje na mnoha operačních systémech (zejména UNIXových). Mezi jeho hlavní přednosti patří jednoduchá instalace a obsluha, nízká cena (MySQL je zdarma) a vysoký výkon. MySQL se snaží být kompatibilní se standardem ANSI SQL92, což se vývojářům prakticky daří. Některé vlastnosti ale vypouští, jiné zase přidává. K MySQL si samozřejmě můžete stáhnout klientská API pro mnoho jazyků (C/C++, Perl, Python, Java...) nebo ODBC ovladače.

Vlastnosti MySQL

MySQL je relační databází. Je proto logické, že v ní můžeme vytvářet tabulky, přidávat záznamy či data vybírat v souladu s normou SQL. Co se týče datových typů, zde nabízí MySQL široké spektrum možností - od jednoduchých číselných a datumových až po boolean, text či blob. Naproti tomu MySQL nenabízí taková rozšíření, jako jsou vnořené selecty (SELECT ... FROM SELECT ...), uložené procedury a triggery (umožňuje ale vytvářet vlastní funkce např. pro agregaci atp.), cizí klíče (server sice SQL příkazy FOREIGN KEY spolkne kvůli kompatibilitě SQL skriptů, ale cizí klíče nevytváří) a také pohledy (views).

Nadruhou stranu má MySQL spoustu rozšíření. Mezi zajímavé drobnosti bych zařadil podmíněné mazání tabulek (DROP TABLE IF EXISTS tabulka), RENAME TABLE, regulární výrazy nebo funkci LAST_INSERT_ID(). MySQL také nabízí dvě zajímavá rozšíření, která stojí za to hlouběji prozkoumat. Je to možnost replikace a fulltextového indexování. Pomocí replikace můžete snadno vytvářet "otroky" (slaves), servery, jenž budou připojeni na centrální (master) server a budou si obnovovat všechny změny. Díky tomu můžete například distribuovat zátěž na více databázových strojů. Replikace se v MySQL snadno konfiguruje (musíte aktivovat tzv. binární logy) a dá se výhodně využít také pro záložní účely. Nakonec bych ještě rád poznamenal, že replikace je v MySQL pouze jednosměrná.

Další zajímavou vlastností MySQL serveru je fulltextový index. Nad poli VARCHAR a TEXT je možno vytvořit fulltextový index, který umožňuje vyhledávání přímo příkazem SELECT ... MATCH ... AGAINST. Příkaz je schopen vrátit jakýsi index shody pro každý záznam. Aplikace si může výsledek setřídit podle tohoto indexu a zobrazit příslušné záznamy nebo provádět jiné věci. Ačkoli je fulltextový index poměrně novou věcí, funguje dobře i s češtinou.

Databáze je o tabulkách

MySQL nabízí několik druhů tabulek. Jsou to standardní netransakční typy (MyISAM, ISAM, MERGE, HEAP) a transakční typy (BDB, InnoDB). Výhodou netransakčních typů tabulek je jejich vyšší výkon. U kritických aplikací (účetnictví, bankovnictví...) má bezpečnost a spolehlivost přednost před výkonem a právě zde se používají transakční tabulky. Pomocí SQL příkazů BEGIN/COMMIT/ROLLBACK můžete bezpečně měnit data v tabulkách tak, aniž by se porušila integrita dat. Při výpadku je server schopen nastartovat tak, aby byla tato integrita zajištěna.

Správa databáze přes webové rozhraní

Jedním z nejlepších prostředí pro vzdálenou správu db je phpMyAdmin. Přístup k uživatelské databázi je zabezpečen přihlášením, poté se dají v db přehledně vytvářet tabulky a jejich struktura. Samozřejmostí je plnění tabulky daty a zadávání SQL dotazů.

Našli jste chybu? Nerozumíte obsahu? Jsou informace neaktuální? Pošlete nám prosím váš komentář - pomůžete tím zlepšit tyto stránky. Díky.