2022 Výuka ● Telefony a ostatní zařízení vypnout ● Studenti vykonávají pouze činnosti nařízené pedagogem ● Bezpečnost, provozní řád ● Hodnocení – Písemné zkoušení – Ústní zkoušení – Domácí úkoly – Seminární práce ● Přednášky – pondělí, 14:25, A307 ● Cvičení – čtvrtek, 13:40, D006, sraz před budovou Obsah ● Návrh relačních databázových systémů ● SQL ● Bezpečnost ● Správa databáze ● NoSQL Databáze ● Databáze (neboli datová základna) – Je uspořádaná množina dat. Data jsou vzájemně logicky propojena. ● Data – Údaje získané měřením nebo pozorováním ● obrazem reality a dějů v ní probíhajících – Z dat a vztahů mezi nimi získáváme informace ● Příklad data vs informace – Data: Karel Novák, informační technologie, 32500 – Doplníme kontext: jméno, oddělení, plat Databáze ● Databázový objekt – pojmenovaná datová struktura uložená v databázi = tabulka ● Databázový model – Způsob uložení dat v databázi ● Soubor – kolekce příbuzných záznamů uložených v operačním systému do jedné společné struktury DBMS ● DataBase Management System (Systém pro řízení báze dat - SŘBD) – zajišťuje práci s databází, tzn. tvoří rozhraní mezi aplikačními programy a uloženými daty a také poskytuje veškeré služby pro správu a údržbu databáze ● Občas se pojem zaměňuje s pojmem databázový systém. Termín Databázový systém jako celek je považován DBMS dohromady s datovou základnou. – Služby ● Ukládání dat do souborů (na disk, do paměti) ● Správa souběžných přístupů k datům a zabránění konfliktním přístupům ● Transakční zpracování dat – pokud dojde uvnitř dávky příkazů k chybě je celá dávka odmítnuta ● Dotazovací jazyk ● Zálohování dat ● Ochrana dat před neoprávněným přístupem Datová abstrakce Historie ● Potřeba ukládat data s příchodem počítačů ● Zpracování dat pomocí strojového kódu přestalo vyhovovat ● 1959 – požadavek na vznik univerzálního databázového jazyka ● 1960 – COBOL ● 1960 – 1970 hierarchické a síťové databáze ● 1970 – Návrh relační databáze ● 1973 – Ingres – jazyk QUEL ● 1974 – SQL ● 1978, 1979 – IBM Db2, Oracle Database ● 1990 – Objektově relační databáze ● 2000 – NoSQL, NewSQL databáze ● 2008 – Blockchain Databázové modely ● Databázový model – Způsob uložení dat v databázi Databázové modely ● Flat file – Uložení dat do souboru bez informací o struktuře dat – Organizaci dat zajišťuje samotná aplikace Databázové modely ● Hierarchický model – Jeden soubor = jeden typ dat (tzv. node) – Nody spojeny ukazateli – ten říkal která data jsou v jakém souboru – Vazba 1:N (na každý node mohl odkazovat jen jeden pointer z rodiče) Databázové modely ● Síťový model – Přidává pojmenování vztahů mezi entitami – Procházení databáze = nacházení cesty k požadovaným datům Databázové modely ● Síťový model Databázové modely ● Relační model – Edgar Codd – Data jsou uložena v dvourozměrných tabulkách, propojených prostřednictvím samotných dat ● ACID (atomicity, consistency, isolation, durability) – Atomicita ● operace se provede buď celá, nebo vůbec – tedy výsledkem nebude žádný nedefinovaný mezistav. – Konzistence ● transakce nesmí narušit databázovou integritu – Izolace ● současně probíhající transakce se nesmí ovlivnit. – Trvalost ● pokud je transakce dokončena, znamená to, že je zaznamenána trvalým způsobem, takže ji nevymaže například následný výpadek napájení. ● Databázová transakce – skupina příkazů, které převedou databázi z jednoho konzistentního stavu do druhého Databázové modely ● Relační model "key" login first last mark Samuel Clemens lion Lion Kimbro kitty Amber Straub login phone mark 555.555.5555 "related table" Databázové modely ● Objektový model – Objektové databáze uchovávají komplexní data a vztahy mezi daty, bez mapování vztahů řádků a sloupců, což je činí velmi pohodlnými pro aplikaci, pracující s komplexními daty. – Objekty mají relaci N:N a jsou přístupné přes ukazatele. Databázové modely ● Objektově relační model – Kombinace relačního a objektového modelu ● Rozšíření relačního modelu o objekty a konstrukty pro manipulaci nových datových typů. ● Zachovány jsou relační základy. ● Kompatibilita s existujícími relačními jazyky. Databázové modely Přehled SQL DBMS ● Microsoft Access (Microsoft JET) ● Microsoft SQL Server ● Oracle ● Sybase ● PostgreSQL NoSQL ● Na rozdíl od předchozích modelů nepoužívá tabulky ● Struktura ukládání například stromová, grafová, klíč-hodnota ● Konzistence nemusí být zaručena ● Lze jednoduše škálovat ● Různé operace mají výrazně odlišnou složitost ● Vhodné pro velké objemy dat Přehled NoSQL DBMS ● MongoDB ● CouchDB ● Redis Blockchain ● Blockchain – Distribuovaná decentralizovaná databáze – Záznamy pouze přibývají – Chráněny proti neoprávněnému zásahu jak z vnější strany, tak i ze strany samotných uzlů – Příklad: účetní kniha This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License. It makes use of the works of Mateus Machado Luna.