🗃️ Data, databáze a SŘBD (DBMS)

Školní kartotéka

O čem to je

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ů.

Nové pojmy

DataZaznamenané údaje: čísla, texty, data narození. Sama o sobě nemusí nic říkat.„3“, „Novák“, „2008-05-14“
InformaceData, která mají pro člověka význam, protože víme, co znamenají.„Jan Novák dostal z matematiky trojku.“
DatabázeUspořádaný soubor vzájemně souvisejících dat uložených tak, aby se v nich dalo rychle hledat a měnit je.Databáze žáků, předmětů a známek jedné školy.
SŘBD (DBMS)Systém řízení báze dat (Database Management System). Program, který databázi spravuje: ukládá data, hledá v nich, hlídá oprávnění a souběžný přístup.MySQL, MariaDB, PostgreSQL, SQLite, Microsoft SQL Server, Oracle Database.
Databázový systémDatabáze (data) spolu se SŘBD (programem), který s ní pracuje.Data žákovské knížky + PostgreSQL, který je spravuje.

Proč ne obyčejné soubory

Problém se souboryJak 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íší seSŘBD řídí souběžný přístup
každý vidí všechnooprávnění pro jednotlivé uživatele
po havárii se data ztratítransakce, zálohy a obnova

Jak s databází mluvíš

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.

Je „37,2“ informace?
Samo o sobě je to data. Informací se stane, až víme, co znamená: „Petr má teplotu 37,2 °C.“
Škola eviduje adresu žáka v třídní knize i v seznamu na obědy. Co se stane, když se žák přestěhuje a změní se jen jeden seznam?
Údaje si budou odporovat, to je nekonzistence. Jejím zdrojem je redundance (adresa uložená dvakrát). Databáze má adresu jen jednou a oba seznamy na ni odkazují.
✗Databáze a SŘBD (DBMS) je totéž.
✓Databáze jsou data, SŘBD je program, který je spravuje.

MySQL není databáze, ale systém řízení báze dat. V jednom SŘBD může běžet mnoho databází.

Databáze je uspořádaný soubor souvisejících dat, SŘBD (DBMS) program, který je spravuje. Databázový systém odstraňuje redundanci a nekonzistenci, řídí souběžný přístup a oprávnění. Komunikuje se jazykem SQL.

Druhy databází

O čem to je

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í.

Nové pojmy

Databáze a SŘBDDatabáze jsou uspořádaná související data. SŘBD (systém řízení báze dat, anglicky DBMS) je program, který je ukládá, hledá a chrání.Databáze e-shopu spravovaná v MySQL.
Databázový modelZpůsob, jak jsou data v databázi uspořádaná a propojená.relační (tabulky), dokumentový, grafový
Relační databázeData jsou v tabulkách (relacích) s řádky a sloupci. Tabulky se propojují přes společné hodnoty (klíče). Pracuje se v jazyce SQL.Tabulka zaci a tabulka znamky propojené číslem žáka.
NoSQL databázeSouhrnné označení pro databáze, které nepoužívají klasické tabulky. Patří sem dokumentové, klíč–hodnota a grafové databáze.MongoDB (dokumenty), Redis (klíč–hodnota), Neo4j (graf).
SQLStandardizovaný jazyk pro práci s relačními databázemi. Dotazem v něm data čteš, vkládáš, měníš i mažeš a vytváříš tabulky.SELECT jmeno FROM zaci;

Přehled modelů

ModelJak ukládá dataHodí se proPříklad SŘBD
hierarchickýstrom: rodič a jeho potomcistarší systémy, adresářeIBM IMS
síťovýzáznamy propojené odkazy, i víc rodičůdnes historickýIDS
relačnítabulky propojené klíčivětšina běžných aplikacíPostgreSQL, MySQL, SQLite
dokumentový (NoSQL)dokumenty podobné JSONproměnlivá struktura datMongoDB
klíč–hodnota (NoSQL)dvojice klíč a hodnotarychlá mezipaměťRedis
grafový (NoSQL)uzly a hrany mezi nimisociální sítě, doporučováníNeo4j

Roztřiď systémy řízení báze dat podle toho, jestli jsou relační.

Kdo s databází pracuje

  • Správce databáze (DBA): instaluje SŘBD, zálohuje, nastavuje oprávnění a výkon.
  • Návrhář a vývojář: navrhuje tabulky a píše aplikace, které databázi používají.
  • Koncový uživatel: pracuje s daty přes aplikaci a SQL ani nevidí.
Která databáze se hodí pro elektronickou žákovskou knížku?
Relační. Data mají pevnou strukturu (žák, předmět, známka, datum) a jsou mezi sebou propojená. Relační SŘBD navíc hlídá integritu a dobře zvládá souběžné zápisy učitelů.
Sociální síť chce rychle zjistit „přátele přátel“. Jaký model se nabízí?
Grafový. Lidé jsou uzly a přátelství hrany. Procházení vazeb je v grafové databázi přirozené a rychlé. Jde to i relačně, ale dotazy přes mnoho úrovní jsou složitější.
✗SQL je databáze od firmy Microsoft.
✓SQL je jazyk pro práci s relačními databázemi. Microsoft SQL Server je jeden z mnoha SŘBD, který tento jazyk používá.

Název SQL nese více produktů (MySQL, PostgreSQL, SQL Server), ale jazyk sám je standard (ISO/IEC 9075).

Nejrozšířenější je relační model: tabulky propojené klíči a jazyk SQL. NoSQL databáze (dokumentové, klíč–hodnota, grafové) se hodí pro proměnlivá nebo silně propojená data. SŘBD spravuje DBA, používají ho vývojáři i koncoví uživatelé.