NoSQL databáze
Big Data
Big Data označuje soubory dat, která jsou příliš velká nebo komplexní na zpracování tradičními nástroji. Definují ho tzv. 3V (někdy 5V):
- Volume (objem) — petabyty a více (sociální sítě, IoT, logy)
- Velocity (rychlost) — data vznikají a musí být zpracovávána v reálném čase
- Variety (různorodost) — strukturovaná, polo-strukturovaná i nestrukturovaná data
- Veracity (věrohodnost) — kvalita a přesnost dat
- Value (hodnota) — užitečnost pro business
Příklady: clickstream z webů, transakce bank, logy serverů, záznamy ze senzorů, příspěvky na sociálních sítích.
NoSQL databáze
NoSQL (Not Only SQL) označuje databáze, které nespoléhají na relační model a pevné schéma. Vznikly pro potřeby Big Data a webových aplikací.
Datové formáty v NoSQL
| Formát | Popis | Příklad |
|---|---|---|
| JSON | Textový formát klíč-hodnota, hierarchický | {"jmeno":"Jan"} |
| BSON | Binární JSON (efektivnější, více typů) | Interní formát MongoDB |
| XML | Značkovací jazyk, silně hierarchický | <jmeno>Jan</jmeno> |
| CSV | Tabulková data oddělená čárkou | Jan,20,Praha |
Typy NoSQL databází
| Typ | Model dat | Příklady |
|---|---|---|
| Dokumentové | JSON/BSON dokumenty | MongoDB, CouchDB |
| Klíč–hodnota | Jednoduchý slovník | Redis, DynamoDB |
| Sloupcové | Data uložena po sloupcích | Cassandra, HBase |
| Grafové | Uzly a hrany (vztahy) | Neo4j, ArangoDB |
Relační vs. NoSQL
| Relační (SQL) | NoSQL | |
|---|---|---|
| Schéma | Pevné (tabulky) | Flexibilní (dokumenty) |
| Škálování | Vertikální (silnější server) | Horizontální (více serverů) |
| ACID | Plná podpora | Omezená (BASE model) |
| Vhodné pro | Strukturovaná data, složité dotazy | Big Data, rychlé zápisy, nestálé schéma |
MongoDB
MongoDB je dokumentová NoSQL databáze. Data ukládá ve formátu BSON (Binary JSON). Základní pojmy:
- Databáze — kontejner pro kolekce (≈ database v SQL)
- Kolekce — skupina dokumentů (≈ tabulka v SQL)
- Dokument — jeden záznam ve formátu JSON/BSON (≈ řádek v SQL)
- _id — automaticky generovaný unikátní identifikátor dokumentu
Struktura dokumentu
{
"_id": ObjectId("..."),
"jmeno": "Jan Novák",
"vek": 25,
"adresa": {
"mesto": "Praha",
"psc": "110 00"
},
"hobbies": ["programování", "šachy"]
}CRUD operace
Čtyři základní operace s daty:
| Operace | SQL | MongoDB |
|---|---|---|
| Create | INSERT | insertOne / insertMany |
| Read | SELECT | find / findOne |
| Update | UPDATE | updateOne / updateMany |
| Delete | DELETE | deleteOne / deleteMany |
// Vložení dokumentu
db.uzivatele.insertOne({ jmeno: "Jana", vek: 22 });
// Výběr — všichni uživatelé starší 18
db.uzivatele.find({ vek: { $gt: 18 } });
// Aktualizace — zvýšení věku o 1
db.uzivatele.updateOne(
{ jmeno: "Jana" },
{ $set: { vek: 23 } }
);
// Smazání
db.uzivatele.deleteOne({ jmeno: "Jana" });Agregace a MapReduce
Agregační pipeline
Zpracování dokumentů ve více krocích (stages).
db.objednavky.aggregate([
{ $match: { stav: "zaplaceno" } }, // filtr
{ $group: { _id: "$zakaznik", // seskupení
celkem: { $sum: "$castka" } } },
{ $sort: { celkem: -1 } } // řazení
]);MapReduce
Programovací model pro zpracování velkých dat. Skládá se ze dvou fází:
- Map — každý dokument se transformuje na páry klíč–hodnota
- Reduce — hodnoty se stejným klíčem se agregují
// Map: vydej počet objednávek za zákazníka
const mapFn = function() {
emit(this.zakaznik, 1);
};
// Reduce: sečti
const reduceFn = function(key, values) {
return Array.sum(values);
};V moderním MongoDB je MapReduce nahrazeno efektivnější agregační pipeline.
Kvíz
BETAKde se JavaScript primárně spouští?
JavaScript vznikl jako lehký doplňkový skriptovací jazyk pro obohacení stránek a pro oživení pevných HTML okének přímo v otevřeném prohlížeči (tzv. client-side). Obstarává pohyb na stránce bez nezbytného neustálého volání ven přes sítě k serveru s přečítáním webu.
Jaký příkaz v JavaScriptu deklaruje proměnnou s blokovou platností?
Označení pro definici 'let' ošetřuje existenci v proměnných uvnitř čistě aktuálního vytvořeného svázaného ohradeném složenými závorky – například u obsahu for nebo do if cyklu (na narozdíl pro starších chaotikčjích varu, jež pronikoval a zasahol nad globálňích rozsaha mimo závorkah do pamétů kodu o spouře u starých js kódovani) v modernč js u ohraničené pamětí pro složenam k bloku kodu.
Co je to DOM?
Pojem DOM od znemení pro Document Object Model poskytne v RAM u prohlížeeče překreslena ústavný virtuálám stomovam a struktuře o jednotlivách a na sebe napojených elementů u oken stránek (HTML domem kmeny) a přetvrženem u pamětových uzlicích do objktové pláne z nehoz múze po stoupsáni ve scripte s JS kody mněnit na obrazovém div element pro vizuál stranky za živo.
Co dělá `document.getElementById('id')`?
Spojení za přikáz u javascriptu, o naváznam v operácii DOM nad stromových uzlech co bez odkladu probledaje po straném webe celú památku nez nezachycuje jeden jeinčty speciefickej stacionárnom ozancečním Id=(slovo). Pro ulozenie jej do pametích uvnitri JS si nasetit jmena ve scripte pre interaktivnim zménam tlačkám okenu bez obnovy k cílum od vyhledavace za unikatnách udavánım HTML tagám prvek z idčkú do js proménem pro manipuluci tagóm ve scriptu.
Co je to JSON?
Extremně rozśiríní populářném standerdom od odvozenym z zápisnách JavaScriptovým ojbektích za čitelně psané slovo ke sdržovani z obálem s dat do krasnóm rezetevém (ključ a dvojtečkách na hodntou), plní pro obrí vázáno od presnosovym serveru s dátu a apickami formátu bez obrzí hruzych XMLka s malom a přeškem formátu u srozumene i mezi pythonum, na php serverov pro data na poli predanih daty u oken netem pro formátovani stringú databazim v JSON stringi pre datovu ulohám textuv z hodnot a klůcu v js datach.
Co je to async/await v JavaScriptu?
Čisticíe snaho a zápíšou syntaxe v skriptech usnadňuje práců u dat od internetem ze síití ve formam 'A-synkróných' tzn volnam chodem plynoucích ocekávanćch pozadam bez zablakovem chodu od celestho js vlaknemi ve prohližečam pro úkny od webum stahuejic chvilim u API o zpusobiem pre psanim o 'na venek pripomínajicm asyc kodam z preckanym synchronem jako 'pockem ze slovo u vnite pockáni Awaitem pre ziskám dál. Pro cistu struktum pred zamocenou kodem 'Pecklo-Callbackovem' za ucelum z prehledno stahovací dotam k js scriptům.
Co je Node.js?
Sebrano čistou ryclom siloum prohlíížečová ho a c ++ JS V8 procesorovém engine Google k behüm v Chromam ze stránek, Ryan Dahl osudovem vydělí jsa z vniřko okek o vymalovo a zabalim js ze svobidného nezávislo pre vývoj od tvroení v serverím běhu! Taky s asynchrnom z mocnejší rychlstů přešlom od jsovéh skptriptě o oživění od u clentiu do net pro aplikkacen na wevových datach, api a console chodu dál mím prohlížeč pre celoch svety beckendi na jazyčoch na Javascriptum Node.js prostšem za pc na stanicém do serverách u chode pro logigam webo s cílom i skriptém aplikáci js jazyce i na urovna serveru pc ze strány zad!
Jaká metoda Fetch API slouží k získání dat ze serveru?
Na stahovánim z webo cizi pro odeslánou se API bez prostarým a složítehom hrubim ajaxovym XHR XMLHttpRequest objektom v nvem ES6 zavedl jsa jednoduchym ze spojem od asynchronám pre promises z příslibi za stahujeim u js oká 'fetch(zdeURL)'. Pote musi navázenim a s 'then((odpove=>odebram)' z ocekávaném rozkuse po stahném ockavam pre prijtom dat ze zaslamom cizem od stazenem z internet do objektom u pametich v skriepum js k proménnej u fetch(url).then...
Co je to Canvas v HTML/JavaScript?
Plátním s nazvíšken '<canvas>' z po cistam pro HTMl elementéch u volnech prazne ploškem si ho zabírne Javascriptem o ryclé vykreslovanúm matematice u kresby skize z api u kontextem pro čaram na pixel. JS u kodu na nem čarovném kreslým za chodu generujem hruze a hrmadnem a v tvařem pre hričky obrazcé, o grafeche 2Dd pre prohližeš z programovym s prvkym z o vykresovácím v HTML cistých divach obdélništěk tagú HTML canvas tvare piskle u rastrů obrázků obdédeličkom na zivó pro rendering pre plátna z jsko malbou rasterném tváři z her z webam.
Jak se označuje funkce v JavaScriptu?
Klasice za pouzittım slovním v prvkú angliecke funkcem za označovaného JS z psaném v príkaze od zápim pre blocky z pod jménu, k vytvorění uložienné operácium památku pro opakujem akcí a pro voláni ze kodoch dalom s přikazem se zapsalo predefinové ve formom klíčových a 'function nazv_Funkcie()', nasledeovane pro zavorki pro patametria na zavinutč a s vnitenim slložené z závorekk pre blokom z kódu za fce do `{}` logiky funkce uvnit z funkcio pro kód!