relační databáze 1970 - Codd
databáze = strukturovaná data, umístěná v tabulkách
relační databáze - umožňuje pracovat současně s daty z více tabulek
tabulka - entita v určitém dtb prostředí
- spojujeme vazbami s určitou kardinalitou (mohutností)
atribut - vlastnost stejného druhu
vazba - rozlišujeme parcialitu (povinnost ve vztahu)
-
vazba 1:N - jeden záznam v jedné tabulce odpovídá N záznamů v druhé tabulce
RDBMS
- software, který řídí data směrem k organizaci a strukturuje je
- podporuje datové modely
- spravuje databázove struktury (tabulky, vazby atd.)
- spravuje transakce
- strukturalizuje požadavky aplikací
model reality - část reálného světa určený pro zpracování v dtb systému
doporučené konvence pojmenování objektu:
- bez diakritiky
- zkráceno se zachováním významu
- bez mezer
- podtržítka nebo velká písmena (camelCase, PascalCase nebo snake_case)
- ne klíčová slova
primární klíč - množina atributů jednoznačně definující každý záznam tabulky
- dělí se na:
- přirozený
- umělý
- také na:
- jednoduchý
- složený
kandidátní klíč - množina atributů, které by mohly být primárním klíčem, ale není vhodná
foreign key - zprostředkovává spojení na primární klíč druhé tabulky
id - unikátní celé číslo
Monolitická architektura Vývojové prostředí i klientská aplikace jsou umístěny na lokálním počítači Aplikace přistupuje přímo k souborům na lokálním pevném disku nebo na síťovém souborovém serveru. Databázové služby i logická komunikace se implementují jako součást klientské aplikace Microsoft access
Klient/Server Základní myšlenkou architektury je oddělení databázových služeb od klienta Komunikace mezi klientem a databází je flexibilní a otevřená Databázové služby jsou prováděny na výkoném PC což umožnujě:
- centralizovanou správu systému
- zavedení bezpečnostních opatření
- přístup ke sdílení prostředků
Server představuje databázi s jejími službami jako například:
- vyhledávání
- spojování
- načítání
- aktualizace
- analýza dat Databáze se zkládá z fyzického prostoru pro uložení dat a z Databázových služeb (SŘDB) Veškerý přístup k datům probíhá prostřednictvím serveru, fyzicky se k žádným datům nikdo nedostane
Klient program nebo automatizovaný proces, který interaktivně se serverem Do kategorie klient spadá veškerý software, který spolupracuje se serverem Z databáze může data získávát i zapisovat Přímý k datům nikdy nemá Vždy komunikuje serverem a ten teprve s daty
Příklady klientů:
- utility pro správu systému
- sytém pro adhoc dotazy a sestavy
- uživatelské aplikace thin and thicc
- webové aplikace
Výhody K/S (vzhledem k předchozím architektirám):
- modulární charakter aplikací
- intuitivní vývoj a provoz klientů v různem GUI
- zjednodušení údržby aplikace a zvýšení bezpečnosti Informačního Systému
architektura K/S má několik podtipů, z nichž mezní hodnoty se nazývají inteligentní server či inteligentní klient
Integrita = splnění všech integritních omezení, které jsou na danou databázi požadovány
Integrita dat = pravidla pro zajištění správnosti a konzistence upravených dat Základní rozdělení pro integritu na sloupci je null a notnull
Proč integrita? - Snaha odchytit chybu už na vstupu
Typy integrity :
- deklarační- trvale přítomnaá
- procedurální - pouze pro nějakou proceduru
Datová integrita:
- Doménová (atributy)
- Entitová = definuje pravidla pro údržbu integrity jednotlivých relací.
- Referenční integrita = zajišťuje zachování potřebných vztahů mezi relacemi; pravidlo, jež definuje platné hodnoty atribudů
základní rozdělení:
- null
- not null
- doménová, standardní testy
- vstupní hodnota respektuje dolní/horní mez
- vstupní hodnota odpovídá tzv. masce
- možnost kontroly podle číselníku
Normalizace dat = pravidla jak postupovat při transformaci entit a relací ER modelů na strukturu fyzického uspořádání tabulek a vazeb v reálné databázi (= proces rozhodování jaký sloupec umístíme v jaké tabulce)
Proč normalizovat?
- odstranění redundatních (opakujících se) dat
5(6) normálních forem:
- NF:
- každý atribut obsahuje jen atomické hodnoty, dále již nedělitelné
- NF:
- je v první formě
- každý atribut plně závislý na celém primárním klíči
- NF:
- je v druhé formě
- žádný z jejích atributů není tranzitivně závislý na klíči
- relace je ve třetinové formě pokud je ve druhé a všechny atributy jsou navzájem nezávislé
- mohou mít například funkce min() max() číslo a datum
- včetně group by
příklad asi:
select count(id_os) from osoby; select sum(plat_max) as vyplata_celk fro osoby; select max(plat) as nejvyssi as osoby; min() aug()