Proč normalizovat?
postup návrhu relační databáze, který:
- omezuje redundanci (zbytečné duplikování údajů),
- chrání před anomáliemi při práci s daty
Anomálie - co se rozbije bez normalizace
- Update: jednu informaci musíš měnit na více místech (a někde zapomeneš)
- Insert: nejde vložit část informací bez jiné (např. zákazník bez objednávky)
- Delete: smazáním řádku omylem smažeš i informaci, kterou chceš zachovat
Co je to ACID? 🍄
ACID = vlastnosti transakcí v relačních DB (hlavně OLTP):
- A: Atomicity (Atomicita): transakce proběhne celá, nebo vůbec
- C: Consistency (Konzistence): databáze přejde z jednoho korektního stavu do jiného
- I: Isolation (Izolace): souběžné transakce se neovlivní tak, aby porušily konzistenci
- D: Durability (Trvalost): po potvrzení transakce data zůstanou zachována
OLTP vs OLAP (kde se normalizace používá)
OLTP: Online Transaction Processing
- typicky produkční aplikace (e-shop, bankovnictví, evidence)
- hodně CRUD, hodně zápisů
- důraz na konzistenci a transakce → databáze bývá více normalizovaná
- nevýhoda: pro čtení často více JOINů (může být pomalejší na složité dotazy)