Proč databázové systémy?
– sdílení dat
– unifikované rozhraní a jazyky definice dat a manipulace s daty
– opakovaná využitelnost dat (data nemají životnost pouze s tím daným programem)
– bezespornost dat (možnost jednoznačné identifikace manipulace s daty)
– snížení objemu dat (odstranění redundance)
Databáze – modely uspořádání dat
– model správy souborů (organizované zpracování souborů)
– hierarchický model (analogické s hierarchií v podniku)
– síťový model (každý objekt byl propojen s každým objektem, realizovatelné na bázi vnitřní paměti, velikost paměti je omezující)
– relační model (tabulky jsou určitým způsobem uspořádány)
– post-relační model
– objektový model (souvisí s „obecným nadhledem“)
Relační model – konceptuální modelování
– autorem E. F. Codd (1969), databáze založené na matematickém aparátu relačních množin
– jazykem pro práci s relačním modelem je SQL (Structured Query Language)
– v současné době nejrozšířenější
– základem relačního modelu je tabulka (relace)
– sloupce odpovídají jednotlivým vlastnostem (atributům) entity, řádky (záznamy) jsou odpovídajícími n-ticemi
Základní pojmy
Entita = objekt reálného světa, o kterém potřebujeme uchovávat informace, mohou být konkrétní (například studenti) či abstraktní
Atribut = skutečnost, kterou o dané entitě známe (třeba jméno studenta)
Vztahy = 1:1 (student x trvalé bydliště), 1:N (skupina x student), N:M (student x předměty)
Primární klíč = kombinace jednoho a více atributů, které jsou unikátní pro daný záznam
Cizí klíč = kombinace jednoho a více atributů, kterém odkazují na primární klíč
Relace = podmnožina kartézského součinu atributových domén (n-tice hodnot atributů – tabulka)
Vztah k ER (Entity Relationship) modelu:
– entita = tabulka
– atribut = sloupec tabulky
– vztah = lze realizovat dodatečným sloupcem (1:1, 1:N) nebo tabulkou (M:N)
Pravidla pro tabulky
– každý řádek odpovídá jedné n-tici relace
– pořadí řádků i sloupců je nevýznamné, žádné dva řádky nejsou stejné
– význam každého sloupce je určen jménem atributu
– atribut = sloupec, záznam = řádek, položka = buňka tabulky
Operace s relacemi
– selekce (výběr řádků, restrikce) – operace nad jedinou relací
– projekce (výběr atributů – sloupců) – operace nad jedinou relací
– sjednocení – operace nad více relacemi
– průnik – operace nad více relacemi
– rozdíl – operace nad více relacemi
– spojení – operace nad více relacemi (spojení tabulek přičemž zmizí duplicitní údaje)
Konceptuální datové modelování
– datová analýza (nikoliv funkční analýza)
- zpravidla následuje po analýze informačního systému (ta řeší funkcionalitu systému)
- modelování schématu databáze
- modelování „datové reality“ (jaká budeme mít v IS data)
- pohled uživatele (analytika)
Informační systém: Datová vrstva (databáze) => aplikační vrstva (funkce) => prezentační vrstva (výstup pro uživatele).
ER modelování
– E-R (entity-relationship) modelování
- dva typy objektů – entity a vztahy (mezi entitami)
- ER model databáze definuje její konceptuální schéma
– de facto standard pro datové modelování
– pro „plochá“ formátovaná (strukturovaná) data
- objektové, relační a objektově-relační databáze
- nevhodné pro multimediální data, XML, text
Pravidla pro tvorbu ER modelování
– analýza reality, základních typů objektů, identifikačních atributů a analýza vztahů
– přezkoušení hrubého modelu
– analýza dalších atributů a odstranění redundantních vztahů (normalizace dat)
– stanovení omezujících pravidel
– přezkoušení detailního modelu
Entitní typ
Vztahový typ
Slabý entitní typ
– tzv. identifikační závislost (implikuje existenční závislost, což je integritní omezení zajišťující existenci identifikačního vlastníka)
- slabý entitní typ – je (spolu)identifikován zvenčí – všemi identifikátory entit vstupujících do vztahu
- vstupuje do vztahu vždy s kardinalitou (1,1)
Návrh databáze
Výsledkem by mělo být
-(logické) schéma databáze
- popis objektů a vztahů mezi nimi
- prostředek pro vytvoření: databázový model (kolekce pojmů, na kterých je vybudován jazyk pro popis dat a vztahů mezi nimi)
– fyzické schéma
- implementace logických struktur
Externí schéma => logické schéma (<= konceptuální schéma – poloautomatické) => fyzické schéma.
Kardinalita vztahu
Kardinalita vztahu = integritní omezení pro vztahy, které celé konceptuální schéma přibližuje realitě.
Vztah 1:1 = kino promítá nejvýše 1 film, film je promítán nejvýše v 1 kině.
Obecně také zahrnuje případy 1:0 nebo 0:1.
Vztah 1:N = kino může promítat více než 1 film, film je promítán v nejvýše jednom kině.
Vztah M:N = kino může promítat více než 1 film, film může být promítán ve více než 1 kině.
Praktické příklady
Microsoft Access
Jedná se o poměrně malou databázi, která svým rozsahem koresponduje s produkty MS Office. Spojuje vývojové nástroje databázové části a nástroje pro vývoj aplikace.
Známé verze na českém trhu: Access 2.0, Access 97, Access 2000, Access 2003, Access 2007
Kompatibilita verzí je špatná, problém je též se zabezpečením proti průniku neoprávněných uživatelů.