Ep. 24 – Potrebujem vedieť databázy?
Je tu konečne epizódka, ktorá sa nevenuje OOP. V epizóde číslo 24 sa pozrieme na to, či programátor potrebuje ovládať databázy. Najprv si v skratke povieme, čo to databázy vlastne sú. Postupne sa pozrieme na to, či ich treba ovládať a keď, tak čo konkrétne by si určite nemal vynechať pri ich štúdiu.
00:00 – 00:51 Úvod
00:52 – 02:55 Čo sú to vlastne databázy?
02:56 – 04:19 Typy databáz
04:20 – 05:33 Prečo relačná databáza? Čo je to tá relácia?
05:34 – 09:19 Prečo mi nestačí iba súbor?
09:20 – 10:20 Kto by mal ovládať databázy?
10:21 – 13:11 Relačné vs. nerelačné databázy
13:12 – 15:57 Čo sa z databáz oplatí vedieť?
15:58 – 17:26 Načo SQL, keď za mňa všetko spraví ORM?
17:27 – 18:02 Záver
Čo sú to databázy?
- miesta, kam môžeme ukladať dáta, ktoré naša aplikácia potrebuje
- do databázy ukladáme dáta, ktoré majú existovať aj po ukončení aplikácie – persistentne
- premenné/objekty sú počas behu uložené iba v RAMke a po ukončení aplikácie zanikajú
- ak ich chceme ponechať, použijeme databázu
Typy databáz
- relačné – MySQL, PostgreSQL, SQLite
- nerelačné – MongoDB (dokumentová), … Redis, neo4j, Cassandra
Relačné databázy
- pracujú s entitami – objekty v databáze – zákazník, používateľ, zariadenie, platba, produkty, …
- medzi entitami sa definujú vzťahy – relácie (z eng. relation)
- zákazník má N objednávok, objednávka ma N tovarov, objednávka má 1 platbu (alebo aj viac)
- entity a vzťahy medzi nimi sa určujú pri návrhu databáz, nie je jedno správne riešenie
Databázy sú iba súbory
- aj keď sa to tak na prvý pohľad nemusí zdať, databázy sú naozaj iba súbory
- sú to však súbory, ktoré sú prispôsobené na to, aby sa do nich dalo rýchlo zapisovať a rýchlo čítať
- tak ako video súbor je prispôsobený na ukladanie a prehrávanie videa, tak aj databáza je určená na ukladanie dát
- knižnice, ktoré pracujú s databázami sú vlastne iba programy, ktoré vedia správne s týmto súborom pracovať
Kto by mal ovládať databázy?
- každý developer by mal ovládať aspoň základy
- keď už nič, tak aspoň na pohovore je fajn, keď človek tie databázy pozná
- android developer ich potrebuje
- iOS developer ich potrebuje
- backend developer ich potrebuje
- frontend developer nie až tak
- desktop developer ich potrebuje
- game developer ich tiež môže potrebovať
- wordpressákovi sa tiež zídu databázy
Čo sa z databáz oplatí vedieť
- CRUD operácie
- SELECT, UPDATE, DELETE, CREATE, …
- JOINy sú iba bonus, stačí vedieť, čo približne robia
- základný návrh databáz – tabuľky, entity, vzťahy medzi entitami (one-to-one, one-to-many, many-to-many)
- veľa vecí vie už za teba robiť aj ORMko, ale aj tak sa oplatí tieto veci vedieť kvôli tomu, aby si vedel čo to ORM na pozadí robí