19. MySQL

  • význam, charakteristika databázového systému, prostředky, verze, MySQLi

– obecný pojem databáze – smyslem je strukturovaně ukládat data tak, abychom je mohli později prezentovat nebo používat jako užitečné informace (např. počítadlo přístupů – v tabulce jsou pouze záznamy přístupů a pomocí dotazování lze zjistit jejich počet, strukturovat je podle atributů a z toho např. získat kolikrát určitý návštěvník zobrazil např. náš web) – užitečná informace je až v momentu, kdy získáme konkrétní číslo v určitém kontextu.

– charakteristika – jedná se o relační databázový systém ťj. data organizovaná v tabulkách – pole a záznamy a pomocí dotazů je možno k datům přistupovat, relace umožňují datovou asociaci (tvorba vazeb); projekt MySQL nyní vlastní firma Oracle a je nadále pod licencí GNU-GPL. MySQL využívá univerzální SQL jazyk (Open Source)

– prostředky: datové úložiště – souborový systém – obslužný SW (např. programovací jazyky založené na C = PHP), obslužnou aplikací je webový server s PHP a na něm napsaný – PhpMyAdmin – webová stránka, která umožňuje spravovat … prostředky ovlivňují chod SŘBD a organizaci dat – úložiště typu MyISAM a nebo InoDB ovlivňují např. to, jak budou velké datové soubory jedné tabulky, způsoby řízení …

– verze: oficiální info na https://www.mysql.com/ momentálně nejnovější v 8.0 ale stále běžně na webhostingu se používají v 5.x … nejnovější webové aplikace jsou závislé na aktuálnosti obou subsystémů verze PHP i MySQL např. Moodle – nejnovější verze si vyžaduje min. PHP v7 a MySQL v.5.x a při alších aktualizacích se požadavky na aktuálnost zvyšují

– MySQLi – verze tzv. improved – vylepšená kvůli bezpečnostním hrozbám (SQL injektáže a jiných způsobů hackování) – všechny vylepšené funkce knihovny jsou na začátku mysqli_query, mysqli_fetch_array, mysqli_ …. ale ani MySQLi není nejdokonalejší způsob prevence proti hacku … alternativně je lepší používat objektový přístup a především knihovnu PDO (předdefinované dotazy – predefined statement object …)

  • nástroje pro správu

– standardně se používá PMA – PhpMyAdmin ale existují i jiné alternativy – většinou se jedná o PHP aplikace, jiné alternativy závisí na typu konektoru.

– známé konektory: ADO.NET, C, C++, JDBC, ODBC, Perl, PHP, Python, Ruby více na: http://www.junext.cz/mysql/

– PMA – umožňuje prakticky to samé jako Access – editace, tvorba, mazání … dokonce i správu uživatelů a dokkonce i export celého systému (dump) nebo import pro snadnou migraci (přesun ze serveru na server)

  • připojení webové aplikace

– ukázka PHP konektoru:

$relace_pripojeni = mysqli_connect(„localhost“, „root“, „vertrigo“, „blog“);

– 1. parametr – adresa počítače vyřizujícího SQL dotazy (IP adresa nebo URL)

– 2. parametr – jméno uživatele

– 3. parametr – heslo uživatele

– 4. parametr – název aktivní databáze

– dále se v PHP aplikaci pro volání dalších dotazů využívá relace spojení uložená v proměnné $relace_pripojeni

např. $data=mysqli_query($relace_pripojeni, „SELECT * FROM tabulka“);

  • SQL (DDL, DCL, DML)

– SQL – strukturovaný dotazovací jazyk

– příkazy rozdělujeme do tří základních kategorií

– DDL – data definition language – např. CREATE TABLE …

– DCL – data control language – např. PRIVILEGES (např nastavení oprávnění manipulace s databází nějakému uživateli … zkrátka řízení správy uživatelů … zajiště, že ne každý může mít přístup ke všemu

– DML – data manipulation language – např. UPDATE, DROP TABLE, SELECT …

více k syntaxím na http://www.junext.cz/mysql/

  • využití, migrace

– systém MySQL se stal kvůli své jednoduchosti a nevelké robustnosti systému k hojně využívaným SŘBD, nejčastěji pro ukládání dat webových stránek, ale existují i desktopové aplikace, které ji mohou využívat

jiné alternativy k MySQL např. ProgreSQL nebo LiteSQL …. ve webovém prostředí

– migrace se provádí příkazy v PMA export oddělených databází nebo najednou (dump)