DVOP3 WBB
Bc. Matěj Cajthaml ©
Smíchovská střední průmyslová
škola a gymnázium
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?
Ve vámi zvoleném jazyce a knihovně pro backend se připojte k databázi a získejte data z tabulky.
Pro komunikaci s databází často máte tzv. pool připojení — k čemu slouží?
Co je to agregace?
AVG, SUM, MIN, MAX, COUNT
Zjistěte, k čemu slouží HAVING.
Co je to primární klíč?
NULLMůže mít tabulka více primárních klíčů?
serial
Na backendu se připojte k databázi a získejte data z tabulky. Zobrazte je na frontendu. Data vyfiltrujte pomocí výběru z parametru z URL.
parametrumůžeme vložit vlastní SQL kód
Vytvořte správný způsob získání dat z databáze, který bude zabezpečený proti SQL Injection.
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í?
Najděte knihovnu nebo si napište vlastní nástroj pro migrace databáze.
poddatabáze
publicSET schema 'public';CREATE SCHEMA "cats_idle";Ve většině aplikací se nepíší SQL dotazy přímo. Proč?
Ve vámi zvoleném jazyce a knihovně pro backend nalezněte knihovnu pro ORM. Pomoci ní se připojte k databázi, získejte data z tabulky a upravte je.
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 nebo získejte databázi na portálu v záložce Služby pro studium. Připojte se k databázi.
findOnefindinsertOneinsertManyupdateOneupdateManydeleteOnedeleteManycountDocumentsdistinctsortlimitskipprojectVe vámi zvoleném jazyce a knihovně pro backend nalezněte knihovnu pro ODM. Pomoci ní se připojte k databázi, získejte data z kolekce a upravte je.
Jaké jsou výhody a nevýhody driveru a knihovny ODM?
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?
Najděte si informace o následujících technologiích:
Děkuji za pozornost!