PHP - 25. díl – úvod do databází

Pokud se řekne PHP, často se druhým dechem řekne databáze, nejčastěji MySQL. Protože použití databází spolu s PHP je velmi časté a účelné, budeme i v tomto seriálu věnovat databázím.

Samotné PHP dokáže spolupracovat s velkou spoustou různých databází, i když se asi nejčastěji používá s MySQL. V seriálu se zaměříme na základy používání pouze s MySQL databází, ale to vůbec neznamená, že PHP není použitelné s celou spoustou jiných databází.

Dnešní část bude spíše teoretický a krátký úvod do databází.

Co je to MySQL?

Jednoduše se dá říci, že MySQL je databázový systém. Takových systémů existuje celá řada, například Oracle, MS SQL, nebo třeba Sybase. MySQL je systém, který se etabloval především ve webových aplikacích, a který je dost preferovaný při spolupráci s PHP.

Samo o sobě patří MySQL spíše k těm jednoduchým databázovým systémům. Ve své podstatě je MySQL ořezaný o některé možnosti, kterou mají jiné databázové systémy. Důsledkem ořezání je nenáročnost MySQL na zdroje počítače a zvýšení rychlosti u některých operací. Jednoduše shrnuto, MySQL je malý, rychlý, jednoduchý a nenáročný databázový systém.

MySQL patří mezi databázové systémy, které vyvolávají mohutné diskuse pod články. Někteří lidé MySQL zatracují, jiní jí zase mohutně chválí. Pravdou je, že MySQL nemá takové schopnosti a možnosti jako mnohé velké databázové systémy, ale MySQL do této oblasti ani nemíří. MySQL je projektován pro jednoduché databáze, byť třeba s obrovskou spoustou údajů. Každopádně MySQL se prosadila především do oblasti malých webových databází, kde jí budeme používat i my.

Další díly seriálu pak zaměřím pouze na MySQL databázový systém.

Co je to databáze?

Databázi si můžeme představit jako prostor, do kterého se ukládají všechny potřebné údaje. Zpracováním a přístupem údajů v databázi bývá pověřen program, kterému se říká DBMS (DataBase Management System), nebo česky SŘBD (Systém Řízení Báze Dat). Celé je to tedy zařízeno tak, že veškeré zpracování, ukládání a získávání dat je prováděno DBMS programem. Jakákoli aplikace, která databázi používá vždy přistupuje přes tento DBMS program.

Mezi DBMS patří řada programů v nejrůznějších cenových kategoriích. Většina profesionálních a komerčních DBMS nejsou programy nikterak levné a jejich cena se pohybuje ve velmi vysokých částkách. Naštěstí existují v kategorii DBMS i programy, které jsou v nízké cenové relaci, nebo zcela zdarma. Představitelem těchto DBMS systémů jsou například MySQL, PostgreSQL, nebo Firebird.

Naprostá většina dnešních DBMS staví na tzv. relačním modelu dat. V tomto modelu jsou veškerá data uspořádána do databázových tabulek. Každá tabulka zpravidla uspořádává údaje o určitém objektu. Databázová tabulka je uspořádána do řádků a sloupců. Například budeme-li mít tabulku se seznamem osob, bude každý řádek odpovídat jedné osobě. Sloupce pak obsahují konkrétní údaje o osobách, v našem případě by to třeba mohlo být: Jméno, Rodné číslo, Adresa, Telefon.

Co je to SQL?

Jak už jsem zmínil, přístup k údajům uloženým v databázi obstarává DBMS program. Aby mohly jiné aplikace používat také údaje z databáze, musí DBMS program nabízet rozhraní, pomocí kterého budou moci ostatní aplikace s DBMS spolupracovat.

Při práci s DBMS programem se používá osvědčený model klient/server. V roli serveru vystupuje DBMS program nabízející své služby. DBMS program je tak nepřetržitě spuštěn a čeká na požadavky od klientů - jiných aplikací. Na tyto požadavky pak odpovídá a reaguje na ně. Protože DBMS program vystupuje v roli serveru, říká se mu také databázový server.

Pro zápis požadavků na databázový server se dnes nejčastěji používá SQL jazyk. SQL je anglická zkratka znamenající Structured Query Language. Tento jazyk dnes používá naprostá většina databázových serverů. Proto se takovým serverům říká zjednodušeně SQL servery. S SQL jazykem se postupně seznámíme, protože i v PHP zapisujeme požadavky pomocí tohoto jazyka. Samotný SQL obsahuje vše potřebné pro práci s databázemi - ať už příkazy pro práci na vytvoření, rušení, modifikování tabulky, tak i pro práci s údaji samotnými - přidávání, změnu, rušení a vyhledávání údajů.

Jazyk SQL má za sebou poměrně dlouhý vývoj. Jeho prototyp by poprvé implementován v roce 1974 společností IBM. Od té doby má za sebou SQL bouřlivý vývoj, a dá se říci, že jazyk SQL se dodnes stále vyvíjí, hlavně co se týká přidávání nových technologií. Skutečným faktickým standardem se stal SQL až v roce 1986, kdy se dočkal standardizace díky organizaci ANSI. Od té doby se tedy SQL stal univerzálním nástrojem pro programování databází. Dnes se každý, kdo se dostává do styku s vývojem, či laděním databází, musí seznámit s jazykem SQL, který je prakticky u databází všudypřítomný.

Pomocí jazyka SQL tedy říkáme, co chceme v databázi provést. Jazyk SQL se skládá ze dvou základních částí, jednak z části DDL, a jednak z části DML. Příkazy DDL jsou zkratkou za Data Definition Language, a slouží k definici a modifikaci tabulek a dalších databázových objektů. Příkazy DML jsou zase zkratkou za Data Manipulation Language a slouží již opravdu pro manipulaci s databázovými údaji.

Jak to vše souvisí s PHP?

V roli klienta pro databázový server může jako aplikace vystupovat i PHP. Tedy PHP se může spojit s databázovým serverem a využívat jeho služby, požadovat zápis, nebo získání určitých údajů z databáze. To znamená, že naše PHP skripty mohou obsahovat příkazy zapsané v jazyce SQL a PHP může zpracovávat výsledky SQL po provedení na databázovém serveru.

V praxi má každý SQL server svůj vlastní protokol, a proto PHP musí umět s každým SQL serverem komunikovat trochu jinak. Ale jak už jsem napsal, PHP umí komunikovat s mnoha SQL servery, mimo jiné třeba s Oracle, Sybase, Informix, MySQL, PostgreSQL. Pro účely našeho seriálu se však omezíme na MySQL.

Dnešní díl byl velice krátkým úvodem do databází. V příštích dílech se postupně začneme zabývat SQL jazykem samotným.

Diskuze (8) Další článek: Windows Server 2003 Security Guide volně ke stažení

Témata článku: Software, Programování, PHP, Anglická zkratka, Díl, Malý objekt, Cenová relace, Určitý objekt, Naprostá většina, Skutečný fakt


Určitě si přečtěte

Nvidia představila grafické karty GeForce RTX 3090, RTX 3080 a RTX 3070. Známe české ceny

Nvidia představila grafické karty GeForce RTX 3090, RTX 3080 a RTX 3070. Známe české ceny

** Nvidia uvedla nové desktopové grafické karty GeForce RTX 3000 ** Jedná se o modely GeForce RTX 3070, 3080 a 3090 ** K výrobě se používá 8nm technologii od Samsungu

Karel Javůrek | 67

Porovnání deseti cloudových disků: kam a za kolik uložit 100 GB, 1 TB a 10 TB dat?

Porovnání deseti cloudových disků: kam a za kolik uložit 100 GB, 1 TB a 10 TB dat?

** Zjistili jsme, kam do cloudu nejvýhodněji uložíte data ** Vytvořili jsme žebříček cen deseti cloudových úložišť ** Ceny se liší - často i velice výrazně!

Karel Kilián | 102


Aktuální číslo časopisu Computer

Megatest mobilů do 8 000 Kč

Test bezdrátových headsetů

Linux i pro začátečníky

Jak surfovat anonymně