67
Ukládání dat aneb kam s nimi? souborová—databázová koncepce

Ukládání dat aneb kam s nimi? souborová—databázová koncepce

Embed Size (px)

DESCRIPTION

Ukládání dat aneb kam s nimi? souborová—databázová koncepce. Souborová koncepce. Data jsou uložena v izolovaných souborech . S každým souborem pracuje určitá aplikace Možné operace: Vytvořit, otevřít, zavřít, zrušit Čtení souboru Zápis do souboru, úpravy Vytvoření kopií a verzí souboru. - PowerPoint PPT Presentation

Citation preview

Ukládání dataneb

kam s nimi?

souborová—databázová koncepce

Souborová koncepce Data jsou uložena v izolovaných souborech.

S každým souborem pracuje určitá aplikace

Možné operace:Vytvořit, otevřít, zavřít, zrušitČtení souboruZápis do souboru, úpravyVytvoření kopií a verzí souboru

Souborová koncepce – výhody Jednoduché pořízení

(nahrajeme do adresáře)

Snadné naplnění (kopírování mezi složkami)

Pocit přehlednosti (při menší velikosti data přehlédneme, při větším počtu – viz nevýhody)

Souborová koncepce – nevýhody Redundance

(1 údaj obsažen 2× i víckrát)

Nekonzistence dat (2 kopie téhož nejsou stejné)

Obtížnost přístupu k datům (každý požadavek uživatele vyžaduje nový program)

Obtížné vyhledávání (pokud si myslíme, že si pamatujeme, kde co máme, není to pravda)

Souborová koncepce – nevýhody Izolace dat

(data jsou v různých izolovaných souborech různých formátů).

Problémy s více uživateli (aktualizace dat více uživateli vede k nekonzistenci).

Problémy s ochranou dat (je obtížné zajistit utajení dat před neoprávněným přístupem).

Souborová koncepce – nevýhody Problémy s integritou dat

(data nemají žádná pravidla – integritní omezení).

Nízké prostředky pro vytváření vazeb mezi záznamy souborů.

Databáze Soubor informací, tvořený znaky, čísly,

řetězci apod.

Struktura databáze umožňuje vyhledávání dat pomocí počítačových systémů

Data jsou centrálně strukturovaná

Data definována podle schématu

Existuje nezávisle na aplikačních programech

Databáze obsahuje Datové prvky (záznam elementárních

hodnot)

Vztahy mezi prvky (datové struktury)

Integritní omezení (podmínky)

Schéma (popis dat pro uživatele)

Databáze – výhody Nezávislost na programech

Efektivní přístup k datům

Zkrácený vývoj aplikací

Zajištěna integrita dat

Databáze – výhody Zajištěna ochrana dat

Řízená správa dat a transakcí s nimi

Možnost přístupu více uživatelů

Opravy chyb a zotavení

Databáze – výhody jinak

Perzistence – data nezávislá na programech Sdílení – k datům může více uživatelů Integrita – konzistence dat, integrita (podmínky) Autorizace – řízení přístupových práv Neredundance – údaje se v databázi zbytečně

neopakují Nezávislost – programy nejsou závislé na uložení

dat

SŘBD Systém řízení báze dat

Centrální správa databáze

Obecný sw systém pro řízení sdíleného přístupu k databázi

Zajišťuje bezpečnost

Zajišťuje integritu uložených dat

DataBázový Systém – DBS

DataBáze + Systém Řízení Báze Dat

DB + SŘDB = DBS

DATABÁZE

DATA METADATA

SŘBD

Metadata Údaje doplňující uložená

data „Data o datech“ Příklad:

EXIF údaje o fotografii nebo grafice

Metadata – znak v tabulce Příklad definice

znaku á v tabulce

Vyhledávání podle pozice v tabulce (pořadové číslo)

Vyhledávání podle metadat (popis znaku)

Metadata – znak v tabulce

Vyhledávání podle pozice v tabulce (pořadové číslo)Vyhledávání podle metadat (popis znaku)

Typy dat Text, kombinace text + číslo

bota č. 7 Numerický

12345 Datový

12. ledna Logický

ano–ne Automatické číslo (počítadlo)

1,2,3… Poznámka

kouše Objekt (např. tabulka z Excelu)

*.xls Hypertextový odkaz

www.bivs.cz

DataAtribut 1 Atribut 2 Atribut 3 … … Atribut n

Záznam (věta)

Položka

Záznam, věta

J i r i H a s e k

25 pozic 25 pozic

Druhy databázových systémů Hierarchický model

Síťový model

Relační databázový systém

Objektově orientovaný

Multidimenzionální databáze OLAP

Datové sklady

Záznam Student s osobním číslem složil v kurzu

zkoušku dne a s výsledkem…

Student Kurs

číslo jméno A-1 A-2

C1 Adam 20090110

C2 Blažej 20091010

C3 Cyril 20090612 20090715

C4 David 20090919

Hierarchický model Seřazení podle názvu kurzu

A-1

C1 Adam 20090110

C2 Blažej 20091010

C3 Cyril 20090612

A-2

C3 Cyril 20090715

C4 David 20090919

Hierarchický model Historicky nejstarší

Vychází z přirozeného uspořádání

Stromová struktura (rodokmen)

Vztah označen 1 : NRodiče mohou mít 0 až n dětíDítě může mít jen jedny rodiče

Nevýhoda – redundance dat

Síťový model

A1 A2

20090110 20091010 20090612 20090715 20090919

C1 Adam C2 Blažej C3 Cyril C4 David

Síťový model Zobecnění hierarchického modelu Vztah 1 : N, navíc i M : N Př.: Autor – Nakladatelství Jeden autor vydává knihy ve více

nakladatelstvích Jedno nakladatelství vydává knihy více

autorů

Nevýhoda: náročná realizace a aktualizace

Relační model

26

číslo popis atd.

C1 Adam

C2 Blažej

C3 Cyril

C4 David

číslo popis atd.

A-1 databáze 2/2 z, Zk

A-2 angličtina 0/2 z

číslo studenta číslo kurzu zkouška dne hodnocení

C1 A-1 20090110 1

C2 A-1 20091010 2

C3 A-1 20090612 2

C3 A-2 20090715 3

C4 A-2 20090919 1

Zkouška v kurzu

Vztahy

Student

Relační databáze Nejpropracovanější Základem jsou relace – dvourozměrné

tabulky s pojmenovanými sloupci Pořadí sloupců je libovolné Nevýhoda

Větší počet přístupů do paměti – pomalejší Výhoda

Snížení objemu dat, možnost deduplikace

Relační databáze Ukládají data do oddělených tabulek

Zajišťuje to rychlost a flexibilitu.

Tabulky popisují nějakou část reálného světa

Relační databáze Předměty zachycované tabulkami mohou

být spolu v nějakém vztahu.

I jednotlivé vztahy mezi tabulkami jsou reprezentovány tabulkami

Na tabulky i na vztahy mezi nimi se dá pohlížet jako na relace.

Relační databáze Výhoda v jednoduchostí – vše je uloženo

v tabulkách, tabulky mají sloupce, v každém sloupci jsou data určitého typu

Jednoduchost relací je ve složitých aplikacích problém

Komplikované úlohy se pod relačními databázemi implementují velice těžko

Objektový model Neodděluje data a funkce

Od konce 90. let

Vhodný pro data se složitou strukturou (text, text s odkazy, obrázky, video, zvukové záznamy)

Vyžaduje nový způsob ukládání dat a obsluhu transakcí*

* Transakce je posloupnost akcí (čtení, zápis, výpočet) ,se kterou se zachází jako s jedním celkem. Např. dotaz v SQL

Objektový model – vlastnosti Plná podpora objektů

Zapouzdření

Dědičnost

Polymorfizmus

Jednoznačná identifikace objektu

Reference mezi objekty

Zapouzdření Zajišťuje, aby jeden objekt se nemohl

dostat k vnitřnímu obsahu jiného objektu (pouzdro)

Zabraňuje tak nekonzistenci

Každý objekt zpřístupňuje rozhraní s nímž pracuje – jiná možnost není

Dědičnost Objekty organizovány ve stromové struktuře

Možnost, aby jeden objekt byl potomkem jiného objektu

Dědí jeho schopnosti, k nimž přidává vlastní rozšíření

Implementace rozdělením objektů do tříd, každý objekt je instancí nějaké třídy

Každá třída může dědit od jiné třídy

Instance třídy Instance třídy je konkrétní datový objekt v

paměti odvozený z nějakého vzoru (třídy) Objekt představuje základní stavební prvek

objektově orientovaného programování. Každý takový objekt má své vlastní atributy

a metody podle vzoru (třídy). Instance bývá obvykle vytvořena pomocí

konstruktoru a klíčového slova new.

Polymorfizmus Objekt se chová podle toho, jaké třídy je

instancí

Chování se liší podle implementace

Různá struktura dat i metod

Integrita Podmínka, kterou omezujeme možné

hodnoty atributů, nebo možné manipulace se záznamy, které existují ve vazbě k záznamům jiné tabulky

Příklad: V tabulce je uvedeno pohlaví.Omezení určuje, že v položce je uvedeno

buď muž nebo žena

Structured Query Language – SQL Sada příkazů pro ovládání databází

První byl SEQUEL (Structured English Query Language) – syntaktická tvorba příkazů co nejblíže angličtině

SQL součástí všech relačních databázových systémů (Progres, INFORMIX, SyBase, Oracle)

Structured Query Language – SQL

V rámci tohoto standardu byly definovány následující podskupiny

DML – Data Manipulation Language (Příkazy pro manipulaci s daty)

DDL – Data Definition Language (Příkazy pro definici struktury databáze)

DCL – Data Control Language (Příkazy pro řízení dat)

SQL příkazy Příkazy pro manipulaci s daty

(SELECT, INSERT, UPDATE, DELETE, …) Příkazy pro definici dat

(CREATE, ALTER, DROP …) Příkazy pro řízení přístupových práv

(GRANT, REVOKE) Příkazy pro řízení transakcí

(START TRANSACTION, COMMIT, ROLLBACK) Ostatní nebo speciální příkazy

Manipulace s daty SELECT – výběr, seskupení, řazení dat

INSERT – vložení dat do tabulek databáze

UPDATE – změna dat tabulek databáze

DELETE – smázení dat tabulek databáze

Definice struktury databáze CREATE – vytváří v databázi nový objekt,

vazbu mezi tabulkami

ALTER – mění objekty databáze (strukturu databáze, schéma)

DROP – ruší objekty v databázi

Řízení přístupových práv GRANT – přiřazuje konkrétnímu uživateli

přístupová práva k datům

REVOKE – odebírá konkrétnímu uživateli přístupová práva

Řízení dat START TRANSACTION – začátek

transakce

COMMIT – potvrzení transakce

ROLLBACK – pokud během transakce vznikla chyba, příkaz vrátí databázi do stavu před spuštěním transakce

OLAP Online Analytical Processing

Vznik roku 1993, autorem E. F. Codd, otec relačních databází.

OLAP databáze – odpovědi na komplexní dotazy pracující s více dimenzemi

Umožňuje uspořádat velké objemy dat

OLAP Základem je tvorba dotazů a sestav

Zpracovávají data z klasických databází

Vytváří vícerozměrné struktury („kostky“)

Nabízejí pohled na data z mnoha perspektiv:

Příklad: kolik jsme prodali praček v regionu západních Čech za poslední čtvrtletí?

OLAP Vhodné pro analýzu komplexních vazeb

mezi daty.

OLAP databáze jsou pro analýzu dat výhodnější než klasické relační databáze OTLP

Ukládají data tak, že předpočítávají agregace (shlukují data)

OLAP Obsahují dva základní typy dat:

Míra – čísla, hodnoty (náklady, výnosy, zisky, ztráty, prodeje, počty reklamací…)

Průměr a množství – používají se ke zpracování údajů (měr)

Zpracování obvykle pomocí Business Intelligence

ROLAP Struktura s agregačními tabulkami přímo

v relační databázi, Mluvíme o tzv. ROLAPu (relational OLAP)

MOLAP, HOLAP MOLAP (multidimensional OLAP).

Vytváří vlastní proprietární soubory, pak se jedná o MOLAP

HOLAP (hybrid OLAP)

„Střední cesta“, data zůstávají v relační databázi a zvlášť jsou uloženy agregace a metadata.

Rozdíl mezi OLAP a OLTP

Data jednorázově nahrána

Nejsou průběžně akrtualizována

Neukládají se v 3NF formě

Používá více indexů než OLTP

Snadné a bezpečné ukládání dat

Bezpečné provádění změn a aktualizací

Doporučené ukládání v 3NF formě

Používá méně indexů než OLAP

OLAP OLTP

Rozdíl mezi OLAP a OLTP

Pohled globální Komplexní dotazy na

více parametrů

Pohled detailní Jednoduché dotazy,

jednoduché transakce

OLAP OLTP

Vysvětlivky Třetí normální forma (3NF)

Soubor doporučení (metodika) pro návrh datové struktury databáze

Optimální využití vlastností systému OLTP 

INDEX Databázová konstrukce pro zrychlení

vyhledávání v databáziVýrazně urychluje odpovědi na dotazyOptimalizace pro fulltextové vyhledávání.

Srovnávací tabulka Z referátu Zdeňka Koubka

Znak OLTP OLAP

Charakteristika Provozní zpracování Informační zpracování

Orientace Transakční Analytická

UživatelÚředník, databázový administrátor

Znalostní pracovník (manažer, analytik)

Funkce Každodenní operaceDlouhodobé informační požadavky, podpora rozhodování

DataSoučasná, zaručeně aktuální

Historická

Sumarizace dat Základní, vysoce detailní Shrnutá, kompaktní

Náhled Detailní Shrnutý, multidimensionální

Jednotky práceKrátké, jednoduché transakce

Komplexní dotazy

Přístup Číst a zapisovat Většinou pouze číst

Zaměření Vkládání dat Získávání informací

Počet dostupných záznamů Desítky Miliony

Počet uživatelů Tisíce Stovky

Velikost databáze 100 MB až GB 100 GB až TB

PřednostiVysoký výkon, vysoká přístupnost

Vysoká flexibilita, nezávislost koncového uživatele

Datové sklady Data Warehouse (DWH)

Speciální typ relační databáze

Analytické dotazování nad rozsáhlými soubory dat

Definice datového skladu Charakteristiky popsal William Inmon

Orientace na subjekt Integrovanost Nízká proměnlivost Historizace

Orientace na subjekt

Co nejmenší redundance

Normalizace dat (3NF) Vnitřní provázání celků Malé nároky na paměť

Separace funkčních celků

Struktura přehledná pro uživatele

Velké nároky na paměť

Relační databáze Datový sklad

Integrovanost

Provozní aplikace pracuje se „svými“ specifickými daty

Úlohu řeší jen s těmito daty

Shromáždění informací z různých zdrojů

Seskupení podle logického významu

Všechna data pohromadě

Viz Orientace na subjekt

Relační databáze Datový sklad

Nízká proměnlivost

Data jsou průběžně upravována a doplňována

Data nahrávána v dávkách

Např. denní nebo týdenní dávky

Po nahrání se data neupravují, nemodifikují

Relační databáze Datový sklad

Historizace

Data udržována v aktuální podobě

Jiný stav uživatele obvykle nezajímá

Data udržována v historické podobě

Možnost analýzy časového vývoje

Relační databáze Datový sklad

Technické charakteristiky Nástroj pro nahrávání dat z různých zdrojů

Různé datové formátyRůzné fyzické umístěníKombinace relačních i jiných databází

Data ukládána s ohledem na snadnou editaci

Snadné a rychlé provádění složitých dotazůPoužití OLAP

Dotazy v datovém skladu Není předem známo jaké úlohy se budou řešit

Potřeba flexibilních analytických nástrojů

Obvykle je znám pouze typ úlohy

Nikdy všechny dotazy a úlohy

Datový sklad – faktová tabulka Datový sklad členěn do schémat Každé schéma – analyzovaná funkční

oblast Jádrem schématu faktová tabulka (jedna

nebo více) V nich analyzovaná data Faktové tabulky – detailní údaje ze všech

zdrojů Více údajů než ostatní tabulky

Datový sklad – dimenze Dimenze je tabulka Obsahují seznamy hodnot ke kategorizaci a

třídění dat S faktovými tabulkami spojeny pomocí

cizích klíčů

Příklad Informace o prodejích Zdroj: pokladny hypermarketu

Analýza: Doba prodejeProdejnaTyp zbožíDodavatelVliv akcíPlatby (karta, hotově)

Příklad Schéma Prodej Faktová tabulka Položky prodeje

Typ zbožíCena Počet kusů

Příklad Dimenze pro třídění

Datum a hodina (týden, měsíc)Prodejna

Foto ŠkodaTyp zboží

Digitální zrcadlovka Pentax K-5IIKategorie zboží

Digitální zrcadlovkaOddělení

ZrcadlovkyDodavatel

Pentec