Dřív měla škola papírovou kartotéku: na každého žáka jednu kartu se jménem, adresou a známkami. Hledat v ní bylo pomalé. Když se žák přestěhoval, musela sekretářka přepsat adresu na všech kartách, kde byla. Někde zapomněla a údaje si začaly odporovat.
Dnes jsou údaje v databázi. Používá ji elektronická žákovská, e-shop, banka, nemocnice i mobilní hra. Než se naučíš s databází pracovat, potřebuješ znát pár základních pojmů.
| Problém se soubory | Jak ho řeší databázový systém |
|---|---|
| stejný údaj na více místech (redundance) | údaj je uložený jednou, ostatní místa na něj odkazují |
| údaje si odporují (nekonzistence) | pravidla integrity nedovolí uložit nesmysl |
| dva lidé zapisují současně a přepíší se | SŘBD řídí souběžný přístup |
| každý vidí všechno | oprávnění pro jednotlivé uživatele |
| po havárii se data ztratí | transakce, zálohy a obnova |
S relační databází se komunikuje jazykem SQL (Structured Query Language). Napíšeš dotaz, SŘBD ho provede a vrátí výsledek. Aplikace (web, mobil) posílá SQL dotazy za tebe.
MySQL není databáze, ale systém řízení báze dat. V jednom SŘBD může běžet mnoho databází.
Knihovna řadí knihy do regálů, ale fotky v telefonu máš v albech a kamarády na sociální síti propojené se všemi jejich kamarády. Různá data se hodí uspořádat různě. Podobně existují různé databázové modely.
Ve škole i v praxi se nejvíc používají relační databáze s tabulkami. Měl bys ale vědět, že existují i jiné a kdy se hodí.
zaci a tabulka znamky propojené číslem žáka.SELECT jmeno FROM zaci;| Model | Jak ukládá data | Hodí se pro | Příklad SŘBD |
|---|---|---|---|
| hierarchický | strom: rodič a jeho potomci | starší systémy, adresáře | IBM IMS |
| síťový | záznamy propojené odkazy, i víc rodičů | dnes historický | IDS |
| relační | tabulky propojené klíči | většina běžných aplikací | PostgreSQL, MySQL, SQLite |
| dokumentový (NoSQL) | dokumenty podobné JSON | proměnlivá struktura dat | MongoDB |
| klíč–hodnota (NoSQL) | dvojice klíč a hodnota | rychlá mezipaměť | Redis |
| grafový (NoSQL) | uzly a hrany mezi nimi | sociální sítě, doporučování | Neo4j |
Roztřiď systémy řízení báze dat podle toho, jestli jsou relační.
Název SQL nese více produktů (MySQL, PostgreSQL, SQL Server), ale jazyk sám je standard (ISO/IEC 9075).