260 likes | 380 Views
Aplikační a programové vybavení. Databáze (obecně). Pojmy. data – údaje získané pozorováním, měřením informace – interpretace dat a vztahů mezi nimi (data, která snižují míru entropie) databáze / báze dat (DB) – obecná struktura pro uchovávání dat
E N D
Aplikační a programové vybavení Databáze (obecně)
Pojmy • data – údaje získané pozorováním, měřením • informace – interpretace dat a vztahů mezi nimi (data, která snižují míru entropie) • databáze / báze dat(DB) – obecná struktura pro uchovávání dat • systém řízení báze dat (SŘBD) – programové prostředky pro správu dat v databázi • databázový systém (DBS) – databáze a systém řízení báze dat • rozhraní – prostředky k propojení systémů
Hromadné zpracování dat • Cílem HZD je získat z dat informace. • Nejvíce aplikací pro hromadné zpracování dat tvoří informační systémy: • podnikové IS • specializované (speciální) IS • Podnikový informační systém je tvořen množstvím agend (např: sklad, účetnictví, mzdy, výroba, evidence docházky). • Specializovaný IS je úzce zaměřený na konkrétní činnost.
Hromadné zpracování dat - agendy • Často bývá spojená datová a aplikační vrstva. • Informační systém je tvořen souborem nezávislých programů – agend. • IS je tvořen souborem několika specializovaných ISů. • Formát a struktura dat jsou definované potřebami každé agendy. • problémy: • závislost dat a programu (agendy) • nekompatibilita a izolovanost • redundance a nekonzistence
Hromadné zpracování dat - agendy • izolovanost a nekompatibilita dat – datový formát definuje aplikace, jiná aplikace nemůže data využívat • redundance (nadbytečnost) – jedny údaje jsou uloženy na několika místech • nekonzistence (rozpory) – vzniká při neúplné aktualizaci redundantních dat • špatné možnosti zabezpečení dat • pro neplánované dotazy je potřeba nová aplikace • problém zajištění integrity dat
Integrita dat • integrita (celistvost) – stav databáze, ve kterém jsou všechna data úplná a korektní • příklady: • věk je kladné číslo • každý člověk má věk (pole věk nesmí být prázdné) • každý občan ČR má trvalé bydliště • k porušení integrity může dojít: • špatným ošetřením vstupních dat • chybnou definicí databáze (chybou aplikace) • chybou databázového serveru
Hromadné zpracování dat - agendy • Důvody použití: • Historie – nerozvinuté prostředky pro databázové systémy • Paralelní vývoj více aplikací a nerozvinutá systémová integrace: • Různé aplikace v průběhu vývoje mohou začít požadovat stejná data • Sloučení společností s různými informačními systémy • Jednodušší počáteční vývoj, mělo by se ale počítat s budoucí integrací
Hromadné zpracování dat - databáze • Často jsou spojené s třívrstvou architekturou. • Data jsou uložena a spravována centrálně. • Datové soubory mají jednotnou vnitřní strukturu, skrytou vnějším aplikacím. • K datům je možno přistupovat jen prostřednictvím rozhraní databázového systému (SŘBD). • Je vyřešen současný přístup více klientů, oprávnění, integrita dat atd. • Operace v DBS jsou optimalizované, mají malou časovou složitost.
Datový model • soubor prostředků k modelování a popisu dat • výstupem je databázové schéma – deklarace databáze (šablona databáze) • různé prostředky: • funkce • množiny • grafy • relace • objekty • Databáze je něco, do čeho se dají uložit data. • Databázové schéma je popis struktury databáze.
Hierarchický model • Data jsou organizována ve stromových strukturách. • Mezi záznamy je pouze vztah rodič-potomek: • potomek má jednoho rodiče • rodič může mít více potomků • Pro databáze není příliš výhodné a obecně se nepoužívá. • Speciální využití: • DNS, LDAP • Souborové systémy • XML . cz com mendelu seznam
Síťový model • Vznikl rozšířením hierarchického modelu. • Každá datová položka (uzel) může být propojena a libovolným počtem jiných položek. • Umožňuje vazby 1:N, N:M i cyklické vazby. • Jedná se spíš o koncept, který již není příliš funkční: • univerzální a velice flexibilní • těžko popsatelný a implementovatelný • Někdy je mezi síťové modely zařazován HTML DOM (Document Object Model)
Relační model • popis dat pomocí relací (tabulek) • navržen v roce 1970 (E. F. Codd, v rámci projektu IBM) • je postaven na matematickém aparátu - relační algebře • využívá standardizovaný dotazovací jazyk SQL • velmi rozšířený: • Adaptive Server Enterprise (Sybase) • DB2 (IBM) • Firebird • MySQL • Oracle Database • PostgreSQL • SQL Server (Microsoft)
Objektově relační model • kombinace relačního a objektového modelu: • dotazovací jazyk SQL nebo jiný • relační implementace struktury • modelování dat pomocí objektů • zapouzdření • hierarchie tříd • rychlejší • dobře podporuje vícehodnotové atributy • místo záznamů se pracuje s instancemi objektů • existují i čistě objektové databáze • není zatím úplně rozšířené
Relace – definice • Množina n-tic ve tvaru (a1, a2, a3, ..., an) • ai – hodnota atributu v dané n-tici, ai in Di • Di – doména atributu (množina hodnot, kterých může atribut nabývat) • Ai – jméno i-tého atributu (textový řetězec) • Příklad: • OSOBA(RČ: STRING, VĚK: INTEGER, JMÉNO: STRING) • klíč atribut je podtržen • domény není povinné uvádět
Relace • Na chvíli budeme předpokládat, že platí: • relace – tabulka • schéma / relační schéma– jméno a záhlaví tabulek (definice tabulek) • pojmy relace, schéma a tabulka jsou v praxi často zaměňovány, ale neznamenají totéž • prvek relace – řádek tabulky • atribut – sloupec tabulky • doména atributu – datový typ sloupce tabulky • příklad: • OSOBA(RČ: STRING, VĚK: INTEGER, JMÉNO: STRING) • OSOBA(RČ, VĚK, JMÉNO)
Relační algebra • popis datových struktur pomocí matematické logiky • úsporný, jednoduchý a ověřený koncept • umožňuje pracovat s daty (tabulkami) před vytvořením programu • postavený na množinových operacích • součin, sjednocení, průnik, rozdíl, … • základ pro dotazovací jazyk SQL
Relační algebra – operace • standardní množinové operace: • kompatibilní sloupce: • sjednocení (union) • rozdíl (difference) • průnik (intersection) • kartézský součin (Cartesian product) • speciální operace • projekce (projection) • selekce (selection) / restrikce (restriction) • Θ-spojení (Θ-join) • přirozené spojení (natural join)
Klíč • Definice relace vyžaduje jednoznačnou identifikaci. • Klíč je minimální množina vlastností, které jednoznačně identifikují každou entitu. • Příklad – identifikace osoby: • jméno + příjmení + datum narození (složený klíč) • rodné číslo (jednoduchý klíč) • číslo osoby (jednoduchý klíč) • Obecně je nejbezpečnější využívat umělé (dumb) atributy, i když to představuje více práce. • Klíč je nejzákladnější integritní omezení – tj. každá relace musí mít klíč.
Klíč • Klíčů může být v tabulce více: • OSOBY(ID, RČ, JMÉNO, PŘÍJMENÍ, ČOP) • Jeden z klíčů označíme jako primární. • Volba primárního klíče není důležitá z hlediska analýzy, ale z hlediska implementace. • primární klíč by měl být co nejmenší (z hlediska ukládání) • hodnoty primárního klíče by měly být snadno porovnatelné • nejvhodnější volbou je jeden atribut typu integer • nejvýhodnější pro stroje, lidé s databázemi nepracují
Cizí klíč • referenční integritní omezení (foreign key) • atribut jedné relace (R2), který je označen jako cizí klíč, musí mít: • prázdnou hodnotu • hodnotu primárního klíče jiné relace (R1) • R1 – hlavní relace (master, parent) • R2 – vedlejší relace (detail, dependent) • Příklad: • VZTAHY(ID_VZTAHY, ID_OSOBY1, ID_OSOBY2, DATUM) • ID_OSOBY1 a ID_OSOBY2 jsou cizí klíče