databaza Flashcards
(13 cards)
Vysvetli rozdiel medzi relačnou a nerelačnou databázou
Relačná databáza (RDBMS):
Ukladá dáta do tabuliek (riadky a stĺpce).
Tabuľky môžu byť prepojené pomocou primárnych a cudzích kľúčov.
Používa sa SQL na manipuláciu s údajmi.
Príklady: MySQL, PostgreSQL, Oracle, SQL Server.
Nerelačná databáza (NoSQL):
Nevyužíva klasickú tabuľkovú štruktúru.
Môže ukladať dáta vo formáte JSON, dokumenty, kľúč–hodnota, grafy atď.
Je vhodná pre flexibilné a rozsiahle dátové štruktúry.
Príklady: MongoDB, Redis, Cassandra, Neo4j.
Čo je to primárny kľúč a aký je jeho význam v tabuľke?
Primárny kľúč (Primary Key):
Je to stĺpec alebo kombinácia stĺpcov, ktorý jednoznačne identifikuje každý riadok v tabuľke.
Nemôže obsahovať duplikáty ani hodnoty NULL.
Často sa používa stĺpec id, ale môže to byť aj iný stĺpec (napr. rodne_cislo).
Aký je rozdiel medzi príkazmi DELETE, TRUNCATE a DROP v SQL?
DELETE:
Vymaže vybrané riadky z tabuľky (pomocou WHERE).
Záznamy možno obnoviť, ak je transakcia (ROLLBACK).
Pomalší, loguje každý riadok.
TRUNCATE:
Vymaže všetky riadky z tabuľky rýchlo.
Nie je možné vrátiť späť (bez transakcie).
Štruktúra tabuľky zostáva.
DROP:
Zmaže celú tabuľku (aj štruktúru).
Zmizne aj všetky dáta, indexy, väzby.
Čo je to normalizácia databázy? Popíš aspoň prvé tri normálne formy.
Normalizácia je proces, ktorým sa databázová tabuľka rozdeľuje a upravuje, aby sa:
odstránili duplicity,
zvýšila konzistencia dát,
znížila nadbytočnosť.
Prvé tri normálne formy:
1NF (prvá normálna forma):
Všetky stĺpce obsahujú atomické (nedeliteľné) hodnoty.
Žiadne polia neobsahujú zoznamy alebo viacnásobné hodnoty.
✔ Príklad: Namiesto „telefóny = ‘123, 456’“ → vytvoriť samostatné riadky.
2NF (druhá normálna forma):
Musí byť v 1NF.
A všetky ne-kľúčové stĺpce závisia od celého primárneho kľúča.
Týka sa tabuliek s zloženým kľúčom (viacero stĺpcov ako PK).
3NF (tretia normálna forma):
Musí byť v 2NF.
Žiadny stĺpec nesmie závisieť od iného ne-kľúčového stĺpca (žiadne tranzitívne závislosti).
Čo je to cudzí kľúč (foreign key) a ako funguje referenčná integrita?
Cudzí kľúč (foreign key) je stĺpec v jednej tabuľke, ktorý odkazuje na primárny kľúč inej tabuľky.
Slúži na prepojenie tabuliek – vytvára vzťahy medzi nimi.
Referenčná integrita zaručuje, že hodnoty v cudzom kľúči musia existovať v odkazovanej tabuľke.
Čo je index v databáze? Kedy sa oplatí použiť index a aké má nevýhody?
Index v databáze je štruktúra, ktorá zrýchľuje vyhľadávanie v tabuľke.
Funguje podobne ako index v knihe – umožňuje rýchle nájdenie riadkov podľa hodnôt v určitom stĺpci.
Môže byť na ľubovoľnom stĺpci, nielen na primárnom kľúči.
Výhody:
Rýchle vyhľadávanie a filtrovanie.
Zrýchľuje WHERE, JOIN, ORDER BY, atď.
Nevýhody:
Zaberá miesto v pamäti/disku.
Spomaľuje operácie INSERT, UPDATE, DELETE, lebo treba meniť aj index.
Vysvetli rozdiel medzi INNER JOIN, LEFT JOIN, RIGHT JOIN a FULL JOIN.
INNER JOIN
Vráti iba tie riadky, ktoré majú zhodu v oboch tabuľkách.
LEFT JOIN (alebo LEFT OUTER JOIN)
Vráti všetky riadky z ľavej tabuľky + zodpovedajúce z pravej (ak existujú).
Ak nie je zhoda, vráti NULL.
- RIGHT JOIN
Opak LEFT JOIN – vráti všetky riadky z pravej tabuľky a zodpovedajúce z ľavej. - FULL JOIN (alebo FULL OUTER JOIN)
Vráti všetky riadky z oboch tabuliek – ak nie je zhoda, doplní NULL.
Čo je transakcia v databáze? Vysvetli ACID vlastnosti.
Transakcia je skupina SQL príkazov, ktoré sa vykonajú ako jeden celok.
Buď sa všetky vykonajú, alebo žiadna – nedôjde k neúplnému zápisu.
Typický príklad: prevod peňazí medzi účtami – musí sa odpočítať z jedného a pripočítať k druhému.
ACID vlastnosti transakcie:
A – Atomicita
Transakcia sa vykoná celá alebo vôbec.
C – Konzistencia
Po transakcii zostáva databáza v platnom stave (napr. súčet peňazí sa nezmení).
I – Izolácia
Paralelné transakcie sa navzájom neovplyvňujú.
D – Trvácnosť (Durability)
Po potvrdení (commit) sa zmeny nezmazú ani po výpadku systému.
Ako by si zabezpečil databázu pred neoprávneným prístupom a stratou dát?
Prístupové práva, Silné heslá a autentifikácia, Šifrovanie dát…
co je pohlad view
Pohľad (view) je vlastne uložený SELECT dotaz, ktorý sa správa ako virtuálna tabuľka.
Nepresúva ani neukladá fyzicky dáta, ale zobrazuje ich podľa definície dotazu.
Napríklad môžeš mať pohľad, ktorý z rôznych tabuliek zobrazuje len vybrané stĺpce alebo riadky podľa podmienky.
co je agregacia
Tvoja odpoveď je približne správna, ale doplním:
Agregácia v SQL znamená použitie funkcií (napr. SUM, COUNT, AVG, MIN, MAX), ktoré zhrnú alebo spočítajú dáta podľa určitej skupiny (napr. podľa stĺpca alebo podmienky).
co je ulozena procedura
Uložená procedúra je preddefinovaný blok SQL príkazov uložený priamo v databáze.
Môžeš ju spustiť viackrát s rôznymi vstupmi, čo uľahčuje opakované a komplexné operácie.
Pomáha zrýchliť prácu a zlepšiť bezpečnosť (napr. menšia potreba meniť kód v aplikácii).
co je normalizacna forma
Normalizačná forma je pravidlo alebo úroveň, podľa ktorej sa databázová tabuľka usporadúva, aby sa minimalizovali duplicity a závislosti medzi dátami.