Zhrnutie na Kľúčové IT koncepty a finančné metriky

Kľúčové IT Koncepty a Finančné Metriky: Komplexný Prehľad

Úvod

Databázy sú systémy na ukladanie, organizovanie a rýchle získavanie dát. Tento materiál vysvetľuje hlavné druhy databáz, význam indexov a rozdiely medzi typmi pamäťových prístupov v programovaní. Je určený pre študenta, ktorý sa učí samostatne a chce získať praktické zručnosti a prehľad.

Definícia: Databáza je organizovaný súbor dát uložený tak, aby umožňoval efektívne vkladanie, aktualizáciu a vyhľadávanie.

1. Druhy databáz

Rozdeľujeme databázy podľa štruktúry a spôsobu ukladania dát.

1.1 Relačné databázy (RDBMS)

  • Dáta sú uložené v tabuľkách (riadky = záznamy, stĺpce = atribúty).
  • Používa sa SQL na dopytovanie a manipuláciu (napr. MySQL, PostgreSQL, Oracle).
  • Vhodné pre silne štruktúrované údaje so vzťahmi medzi tabuľkami.

Praktický príklad: Systém pre evidenciu študentov – tabuľka Students(id, meno, priezvisko), Courses(id, nazov), Enrollment(student_id, course_id).

1.2 Nerelačné databázy (NoSQL)

  • Nie sú organizované do klasických tabuliek, ponúkajú flexibilitu v schéme.
  • Vhodné pre veľké objemy dát, rýchle čítanie/zápis a horizontálne škálovanie.

Typy NoSQL databáz:

  • Dokumentové (MongoDB): dáta vo formáte JSON-like dokumentov.
  • Kľúč-hodnota (Redis): jednoduché páry kľúč -> hodnota, veľmi rýchle operácie.
  • Grafové (Neo4j): optimalizované pre reprezentáciu vzťahov ako uzly a hrany.
  • Stĺpcové (Cassandra): efektívne pre veľké distribuované dataset-y s rýchlym zápisom.

Praktický príklad: Ukladanie profilov používateľov ako dokumenty v MongoDB, kde každý dokument môže mať iné polia.

1.3 In-memory databázy

  • Dáta sú držané v RAM, čo poskytuje veľmi nízke latencie (napr. Redis v pamäti).
  • Použitie: cache, rýchle fronty, dočasné úložisko pre rýchle operácie.

1.4 Distribuované databázy

  • Dáta sú rozložené na viacerých serveroch alebo geolokačne.
  • Umožňujú vysokú dostupnosť a škálovateľnosť, ale zvyšujú zložitosť konzistencie.
💡 Vedeli ste?Fun fact: Redis možno používať ako cache, message broker a tiež ako perzistentná in-memory databáza so snapshotmi alebo AOF (append-only file) režimom

2. Index v databáze

Indexy zrýchľujú vyhľadávanie v tabuľkách podobne, ako obsah v knihe zrýchľuje nájdenie kapitoly.

Definícia: Index je dátová štruktúra, vytvorená na jednom alebo viacerých stĺpcoch tabuľky, ktorá umožňuje rýchlejšie vyhľadávanie a triedenie.

Prečo používať indexy

  • Zrýchľujú SELECT dotazy, WHERE filtre a ORDER BY.
  • Znižujú počet čítaní diskových blokov pri vyhľadávaní.

Typy indexov

  • Primárny index – vytvorený na primárnom kľúči tabuľky (unikátny, garantuje identifikáciu riadka).
  • Sekundárny index – index na inom stĺpci, ktorý zlepšuje dotazy podľa tohto stĺpca.
  • Zložený index – index vytvorený na viacerých stĺpcoch naraz (napr. (priezvisko, meno)).

Nevýhody indexov

  • Zvyšujú priestorovú náročnosť (vyžadujú miesto pre indexové štruktúry).
  • Spomaľujú operácie zápisu (INSERT, UPDATE, DELETE), pretože indexy sa musia aktualizovať.

Porovnanie typov indexov:

Typ indexuPoužitieVýhodyNevýhody
PrimárnyIdentifikácia riadkuUnikátnosť, rýchly prístup podľa PKN/A
SekundárnyVyhľadávanie podľa iného stĺpcaZlepší dotazy podľa tohto stĺpcaZvýšenie nákladov na zápis
ZloženýDotazy používajúce viac stĺpcovPodporuje vyhľadávanie podľa kombinácie políIndex sa nevyužije pri dopytoch mimo poradia polí

Praktický príklad: Ak často dopytujete používateľov podľa (priezvisko, meno), vytvorte zložený index na týchto dvoch stĺpcoch.

💡 Vedeli ste?Did you know that použitie indexov môže zmeniť plán vykonania dotazu tak, že databáza použije full table scan alebo index scan v závislosti od sily selektivity filteru?

3. Príklady reálnych aplikácií

  • E-shop: relačná databáza pre objednávky a zákazníkov, NoSQL cache pre produktové stránky (rýchle načítanie).
  • Sociálna sieť: grafová databáza pre vzťahy medzi používateľmi, stĺpcová databáza pre analytické dotazy.
  • IoT riešenia: stĺpcové alebo NoSQL databázy pre rýchly zápi
Zaregistruj sa pre celé zhrnutie
KartičkyTest znalostíZhrnutiePodcastMyšlienková mapa
Začni zadarmo

Už máš účet? Prihlásiť sa

Databázy - prehľad

Klíčová slova: Virtualizácia, DNS, Databázy, Návratnosť investícií

Klíčové pojmy: Databázy sú systémy na ukladanie a vyhľadávanie dát, Relačné DB používajú tabuľky a SQL, NoSQL typy: dokumentové, kľúč-hodnota, grafové, stĺpcové, In-memory DB držia dáta v RAM pre nízku latenciu, Distribuované DB zvyšujú dostupnosť, zložitosť konzistencie, Index zrýchľuje SELECT, ale spomaľuje zápisy, Primárny, sekundárny a zložený index majú rôzne použitia, Priamy vs. nepriamy prístup: ukazovatele vs. referencie, Dynamická pamäť sa alokuje za behu, potrebuje uvoľnenie, Stack vs. heap: rýchlosť vs. flexibilita

## Úvod Databázy sú systémy na ukladanie, organizovanie a rýchle získavanie dát. Tento materiál vysvetľuje hlavné druhy databáz, význam indexov a rozdiely medzi typmi pamäťových prístupov v programovaní. Je určený pre študenta, ktorý sa učí samostatne a chce získať praktické zručnosti a prehľad. > **Definícia:** Databáza je organizovaný súbor dát uložený tak, aby umožňoval efektívne vkladanie, aktualizáciu a vyhľadávanie. ## 1. Druhy databáz Rozdeľujeme databázy podľa štruktúry a spôsobu ukladania dát. ### 1.1 Relačné databázy (RDBMS) - Dáta sú uložené v tabuľkách (riadky = záznamy, stĺpce = atribúty). - Používa sa SQL na dopytovanie a manipuláciu (napr. MySQL, PostgreSQL, Oracle). - Vhodné pre silne štruktúrované údaje so vzťahmi medzi tabuľkami. Praktický príklad: Systém pre evidenciu študentov – tabuľka Students(id, meno, priezvisko), Courses(id, nazov), Enrollment(student_id, course_id). ### 1.2 Nerelačné databázy (NoSQL) - Nie sú organizované do klasických tabuliek, ponúkajú flexibilitu v schéme. - Vhodné pre veľké objemy dát, rýchle čítanie/zápis a horizontálne škálovanie. Typy NoSQL databáz: - Dokumentové (MongoDB): dáta vo formáte JSON-like dokumentov. - Kľúč-hodnota (Redis): jednoduché páry kľúč -> hodnota, veľmi rýchle operácie. - Grafové (Neo4j): optimalizované pre reprezentáciu vzťahov ako uzly a hrany. - Stĺpcové (Cassandra): efektívne pre veľké distribuované dataset-y s rýchlym zápisom. Praktický príklad: Ukladanie profilov používateľov ako dokumenty v MongoDB, kde každý dokument môže mať iné polia. ### 1.3 In-memory databázy - Dáta sú držané v RAM, čo poskytuje veľmi nízke latencie (napr. Redis v pamäti). - Použitie: cache, rýchle fronty, dočasné úložisko pre rýchle operácie. ### 1.4 Distribuované databázy - Dáta sú rozložené na viacerých serveroch alebo geolokačne. - Umožňujú vysokú dostupnosť a škálovateľnosť, ale zvyšujú zložitosť konzistencie. Fun fact: Redis možno používať ako cache, message broker a tiež ako perzistentná in-memory databáza so snapshotmi alebo AOF (append-only file) režimom ## 2. Index v databáze Indexy zrýchľujú vyhľadávanie v tabuľkách podobne, ako obsah v knihe zrýchľuje nájdenie kapitoly. > **Definícia:** Index je dátová štruktúra, vytvorená na jednom alebo viacerých stĺpcoch tabuľky, ktorá umožňuje rýchlejšie vyhľadávanie a triedenie. ### Prečo používať indexy - Zrýchľujú SELECT dotazy, WHERE filtre a ORDER BY. - Znižujú počet čítaní diskových blokov pri vyhľadávaní. ### Typy indexov - **Primárny index** – vytvorený na primárnom kľúči tabuľky (unikátny, garantuje identifikáciu riadka). - **Sekundárny index** – index na inom stĺpci, ktorý zlepšuje dotazy podľa tohto stĺpca. - **Zložený index** – index vytvorený na viacerých stĺpcoch naraz (napr. (priezvisko, meno)). ### Nevýhody indexov - Zvyšujú priestorovú náročnosť (vyžadujú miesto pre indexové štruktúry). - Spomaľujú operácie zápisu (INSERT, UPDATE, DELETE), pretože indexy sa musia aktualizovať. Porovnanie typov indexov: | Typ indexu | Použitie | Výhody | Nevýhody | |---|---:|---|---| | Primárny | Identifikácia riadku | Unikátnosť, rýchly prístup podľa PK | N/A | | Sekundárny | Vyhľadávanie podľa iného stĺpca | Zlepší dotazy podľa tohto stĺpca | Zvýšenie nákladov na zápis | | Zložený | Dotazy používajúce viac stĺpcov | Podporuje vyhľadávanie podľa kombinácie polí | Index sa nevyužije pri dopytoch mimo poradia polí | Praktický príklad: Ak často dopytujete používateľov podľa (priezvisko, meno), vytvorte zložený index na týchto dvoch stĺpcoch. Did you know that použitie indexov môže zmeniť plán vykonania dotazu tak, že databáza použije full table scan alebo index scan v závislosti od sily selektivity filteru? ## 3. Príklady reálnych aplikácií - E-shop: relačná databáza pre objednávky a zákazníkov, NoSQL cache pre produktové stránky (rýchle načítanie). - Sociálna sieť: grafová databáza pre vzťahy medzi používateľmi, stĺpcová databáza pre analytické dotazy. - IoT riešenia: stĺpcové alebo NoSQL databázy pre rýchly zápi