DVOP WBB
Bc. Matěj Cajthaml — SSPŠ
©
NoSQL označuje databáze, které nejsou relační a nejsou vždy založeny na SQL. Dotazování je často zcela jiné než u relačních databází.
Co znamená, že je databáze persistentní? Může být nepersistentní?
Téma databází je velmi rozsáhlé (klidně na celý rok), ukážeme si podstatné základy jak relační postgres databáze, tak i dokumentové MongoDB databáze.
Co znamená, že je databáze relační?
kardinality
Graficky znázorňujeme jednotlivé soubory jako čtverce se jménem a jednotlivé soubory propojujeme čáry (jako relace) mezi nimi. Kardinalitu určujeme na každé stráně pomocí:
1
, 1..*
, 0..*
Pro účely studia máte k dispozici postgres databázi na portálu. Nyní si ukážeme, jak se k ní připojit.
Používáme nástroj adminer, existují ale i jiné alternativy, jako např. phpmyadmin nebo pgadmin.
nadřazenýjazyk, který se liší od SQL
;
Můžeme upravovat více řádek najednou?
pg
Co je to agregace?
AVG
, SUM
, MIN
, MAX
, COUNT
Zjistěte, k čemu slouží HAVING
.
Co je to primární klíč?
NULL
Může mít tabulka více primárních klíčů?
serial
pg
pg
Je dříve uvedený kód v pořádku?
parametrumůžeme vložit vlastní SQL kód
INNER JOIN
, LEFT JOIN
, RIGHT JOIN
, FULL JOIN
a další
Vazby, které jsme si kreslili a nebo o nich mluvili, nebyly vytvořeny uvnitř schématu.
Jak v dříve uvedeném schématu DB budeme vkládat nové kočky? Co když majitel nebude existovat?
Nyní umíme vytvořit vazbu 1:N. Jak vytvoříme vazbu 1:1?
Nyní umíme vytvořit vazbu 1:N a 1:1. Jak vytvoříme vazbu M:N?
Příkazy SQL lze upravovat již existují tabulky. Proč bychom to dělali?
Co se bude nacházet v souboru s migrací?
poddatabáze
public
SET schema 'public';
CREATE SCHEMA "cats_idle";
Ve většině aplikací se nepíší SQL dotazy přímo. Proč?
Jaké data a v jakém formátě by se data měla v DB uchovávat?
Co je to atomizace?
Navrhněme si databázi!
JSONobjekty
Jak se líší JSON od BSON?
Co myslíte, že jsou výhody mongo databáze?
Co myslíte, že jsou nevýhody mongo databáze?
Není na minulé ukázce něco zvláštního?
Velká výhoda Mongo jsou replikace a sharding. Co to znamená?
Vytvořte si účet na atlasu a vytvořte si databázi.
findOne
find
insertOne
insertMany
updateOne
updateMany
deleteOne
deleteMany
countDocuments
distinct
sort
limit
skip
project
obj.save
obj.remove
.find
.findOne
.updateOne
Jaké jsou výhody a nevýhody mongoose a driveru?
Jaká z databází je lepší? Jakou použijete pro další projekt?
stages
match— filtrování
group— seskupení
sort— řazení
Groupstage
_id
— hodnota agregovaného polecount
— počet dokumentůsum
— součet hodnotavg
— průměr hodnotmin
— nejmenší hodnota
stageopakovat? Kolik
stagemůže v jedné agregaci být?
Zjistěte, co je to Map-Reduce a jak se používá.
K čemu se hodí sledování?
Jak uvnitř MongoDB můžeme vytvořit relaci? A co propojení?
_id
datového typu ObjectIdbuzz word
Kde se berou data?
V jakém formátu data mohou být?
Jak velké množství dat ukládat?
Co je to vertikální a horizontální škálování?
Patří sharding a replikace do bigdata?