490 likes | 625 Views
S ÍŤOVÝ A HIERARCHICKÝ DATABÁZOVÝ MODEL. Lenka Novotná & Lada Oberreiterová. 20.10.2004. OBSAH. Úvod k databázovým modelům Síťový databázový model - struktura - vlastnosti - manipulace s daty - jazyk pro manipulaci s daty (DML) Hierarchický databázový model
E N D
SÍŤOVÝ A HIERARCHICKÝ DATABÁZOVÝ MODEL Lenka Novotná & Lada Oberreiterová 20.10.2004
OBSAH • Úvod k databázovým modelům • Síťový databázový model - struktura - vlastnosti - manipulace s daty - jazyk pro manipulaci s daty (DML) • Hierarchický databázový model - struktura - podmínky úplnosti a definice dat -jazyk pro manipulaci s daty
ÚVOD K DATABÁZOVÝM MODELŮM • Hierarchický - nebyl pro něj ustanoven žádný standard - nejznámější verze je označována IMS (Information Management System) • Síťový - standardizován 1972 výborem Database Task Group (DBTG), který vznikl v rámci konference CODASYL (Conference on Data Systems Languages) - je systém IDMS (Integrated Database Management System) • Relační • Objektově orientovaný • Objektově relační
Síťový databázový model • Struktura - záznamy (records) - záznamové typy .. členské, vlastnické - množiny (sets) - množinové typy .. reprezentace vztahu 1:N
MNOŽINOVÝ TYP(Bachmanův diagram) • Definice - jméno množinového typu - jméno vlastnického záznamového typu - jméno členského záznamového typu
INSTANCE MNOŽINY • Jeden vlastnický záznam • Nula nebo více členských záznamů • Členský záznamový typ nemůže existovat ve více jedné instanci množiny určitého množinového typu • Určena vlastnickým záznamem (většinou) nebo některým z členských záznamů • Nezaměňovat s množinou v matematice
SYSTÉMEM VLASTNĚNÁ MNOŽINA(SYSTEM-OWNED SET) • Vlastnickým záznamem je systém (SŘDB) - „virtuální“ vlastnický typ (bez atributů) • Vstupní body do databáze • Uspořádání záznamů daného záznamového typu
REPREZENTACE MNOŽINOVÉ INSTANCE • Musí dovolovat operace: - dán vlastník, najdi všechny členy této instance - dán vlastník, najdi první, i-tý nebo poslední člen instance; neexistuje-li vrať výjimku - dán člen, najdi následujícího (předchozího) člena; neexistuje-li vrať výjimku - dán člen, najdi vlastníka této instance
REPREZENTACE MNOŽINOVÉ INSTANCE • Kruhový spojový seznam (kruhový řetěz) - nejčastější • Kruhový spojový seznam s obousměrnými ukazateli • „Ukazatel na vlastníka“ („owner-pointer“) • Sousedící členské záznamy • Pole ukazatelů • Indexovaná reprezentace
KRUHOVÝ SPOJOVÝ SEZNAM • Pole typů (type field) pro rozlišení členského a vlastnického záznamu • K tomuto poli je každému záznamovému typu přiřazeno pole ukazatelů (pointer field) • Ukazatel v členském záznamu se obvykle nazývá NEXT, ve vlastnickém záznamu FIRST
Síťový databázový model • Vlastnosti - volby pro vkládání (insertion options) - volby pro uchovávání (retencion options) - volby pro uspořádání množiny (set ordering options) - volby pro výběr množiny (set selection options) - definice dat v síťovém modelu (data definition in the network model)
VOLBY PRO VKLÁDÁNÍ • Volby: - AUTOMATIC - MANUAL • Příkazy: - STORE - CONNECT
VOLBY PRO UCHOVÁVÁNÍ • Volby: - OPTIONAL - MANDATORY - FIXED • Příkazy: - CONNECT - DISCONNECT - RECONNECT
VOLBY PRO USPOŘÁDÁNÍ • Třídění uspořádávajícím polem (sorted by an ordering field) • Systémové implicitní nastavení (system default) • První nebo poslední (first or last) • Následující nebo předchozí (next or prior)
VOLBY PRO VÝBĚR MNOŽINY • SET SELECTION IS STRUCTURAL - výběr množiny pomocí hodnot dvou polí, které se musí rovnat .. strukturální podmínka • SET SELECTION BY APLICATION - množinová instance je určena aplikačním programem
DEFINICE DAT V SÍŤOVÉM MODELU • RECORD NAME IS - pojmenování záznamového typu • SET NAME IS - pojmenování množinového typu • INSERTION IS - specifikace voleb pro vkládání • RETENTION IS - specifikace voleb pro uchovávání • SET SELECTION - specifikace výběru množinové instance (při volbě pro vkládání AUTOMATIC)
Síťový databázový model • Manipulace s daty - DML (Data Manipulation Language) - UWA (User Work Area) - indikátory životnosti (currency indicators) - indikátory stavu (status indicators)
INDIKÁTORY ŽIVOTNOSTI • Current of record type (aktuální záznam) • Current of set type (aktuální množina) • Current of run unit .. CRU (aktuální běhová jednotka)
INDIKÁTORY STAVU • Vrací příznak úspěchu nebo chyby po vykonání každého DML příkazu • Volá se hlavní stavová proměnná DB_STATUS, jejíž hodnota indikuje, zda byl příkaz úspěšný nebo zda došlo k chybě či výjimce
Síťový databázový model • Jazyk pro manipulaci s daty (DML) - DML příkazy pro vyhledávání a navigaci - DML příkazy pro zpracování množiny - DML příkazy pro aktualizaci záznamů - DML příkazy pro aktualizaci množinových instancí
DML PŘÍKAZY PRO VYHLEDÁVÁNÍ A NAVIGACI • GET .. vyhledání záznamu • FIND .. určí polohu záznamu a specifikuje ho jako CRU - dvě hlavní varianty: - FIND ANY <record type name> [USING <field list>] … najde první výskyt - FIND DUPLICATE <record type name>[USING<field list>] … najde další stejný výskyt, hledání započíná na aktuálním záznamu
DML PŘÍKAZY PRO ZPRACOVÁVÁNÍ MNOŽINY • FIND v následujících variantách: - FIND (FIRST | NEXT | PRIOR | LAST | …) <record type name> - FIND OWNER WITHIN <set type name>
DML PŘÍKAZY PRO AKTUALIZACI ZÁZNAMŮ • STORE .. vkládání nových záznamů • ERASE .. odstranění záznamu z databáze • ERASE ALL .. odstranění záznamu i všech záznamů jím přímo i nepřímo vlastněných • MODIFY .. mění některé z hodnot polí záznamu
DML PŘÍKAZY PRO AKTUALIZACI MNOŽINOVÝCH INSTANCÍ • CONNECT .. vkládá členský záznam do množinové instance • DISCONNECT .. odstranění členského záznamu z množinové instance bez připojení k jiné množinové instanci • RECCONECT .. přesunutí členského záznamu z jedné množinové instance do jiné, která musí být stejného množinového typu
HIERARCHICKÝ DATABÁZOVÝ MODEL • Struktura - parent-child relationship (PCR) a hierarchická schémata - vlastnosti hierarchického schématu - strom hierarchiských instancí - linearizovaná podoba stromu hierarchických instancí - virtuální PCR
HIERARCHICKÝ DATABÁZOVÝ MODEL • Dva základní koncepty strukturování dat: - záznamy .. sbírky hodnot polí s informacemi o entitách nebo instancích vztahů - vztahy předek-potomek (parent-child relationship, PCR) .. 1:N vztahy mezi dvěma záznamovými typy
PARENT-CHILD RELATIONSHIP • Složen ze dvou záznamových typů: - rodičovský záznamový typ .. jeden výskyt ve vztahu - typ záznamu potomek .. 0 až N výskytů ve vztahu
HIERARCHICKÁ SCHÉMATA • Složeno z několika záznamových typů a PCR typů • Na PCR typy se odvoláváme vypsáním uzávorkovaných dvojic (rodič, potomek) • Znázorňuje se jako hierarchický diagram
VLASTNOSTI HIERARCHICKÉHO SCHÉMATU • Kořen hierarchického schématu se nevyskytuje jako potomek v žádném PCR typu • Každý záznamový typ kromě kořene se vyskytuje jako potomek právě v jednom PCR typu • Záznamový typ může být rodičem v jakémkoli počtu (0 či více) PCR typů • Záznamový typ, který není rodičem v žádném PCR typu, se nazývá list • Jestliže typ se objevuje jako rodičovský ve více PCR typech, pak jsou jeho potomci uspořádáni dle konvencí zleva doprava (v diagramu)
STROM HIERARCHICKÝCH INSTANCÍ • Uzlu odpovídá záznamový typ • Hraně odpovídá PCR typ • Na rozdíl od zobrazení hierarchie, zde nesplývají ani částečně hrany
VIRTUÁLNÍ PCR • Hierarchický model má problémy s modelováním určitých typů vztahů, např.: - M:N vztah - záznam se vyskytuje jako potomek ve více než jednom PCR typu - n-ární vztahy s více než dvěma výskyty záznamových typů • Virtuální PCR je podobný obyčejnému PCR, hlavní rozdíl je v implementaci; VPCR obvykle implementujeme pomocí pevně daného ukazatele z virtuálního potomka na jeho virtuálního předka
HIERARCHICKÝ DATABÁZOVÝ MODEL • Podmínky úplnosti: - žádná instance záznamu (kromě kořenového) nemůže existovat bez toho, aby byla ve vztahu k nějaké instanci rodičovského záznamu - pokud má potomek více rodičů stejného typu, musí být duplikován pro každého z rodičů - potomek s více rodiči různých typů může mít nejvýše jednoho skutečného rodiče, ostatní jsou reprezentováni jako virtuální
HIERARCHICKÝ DATABÁZOVÝ MODEL • Definice dat: - HDDL (Hierarchical Data Definition Language) - musíme definovat pole každého záznamového typu, typ dat každého pole a nějaké klíčové podmínky pro pole - dále musíme určit typ záznamu kořene a pro každý nekořenový záznamový typ určit jeho (skutečného) předka PCR typu - VPCR typy musí být také specifikovány
HIERARCHICKÝ DATABÁZOVÝ MODEL • Jazyk pro manipulaci s daty - HDML (Hierarchical Data Manipulation Language) - poslední záznam, ke kterému přistoupil nějaký příkaz, se nazývá aktuální databázový záznam (current database record) - SŘBD udržuje ukazatel na aktuální záznam - posloupnost DB příkazů probíhá od aktuálního záznamu, může definovat nový aktuální záznam
PŘÍKAZY HDML • GET .. Příkaz pro nalezení záznamu - uvedeme dvě varianty: GET FIRST <record type name>[WHERE<condition>] GET NEXT <record type name> [WHERE<condition>] - GET FIRST prohledává databázi od začátku hierarchické sekvence, hledá první instanci záznamu splňující podmínky - GET NEXT prohledává od aktuálního záznamu a hledá další záznam splňující podmínky
PŘÍKAZY HDML • GET PATH.. vyhledávání záznamů za podmínek na jednotlivé záznamy v cestě k hledanému záznamu GET (FIRST | NEXT) PATH <hierarchical path>[WHERE<condition>] • GET NEXT WITHIN PARENT ..nalezne další záznam daného typu, který má stejný rodičovský záznam GET NEXT <child record type name> WITHIN [VIRTUAL] PARENT [<parent record type name>] [WHERE<condition>]
PŘÍKAZY HDML • Aktualizační příkazy: - INSERT .. vloží záznam do databáze - DELETE .. vymaže záznam z databáze - GET HOLD .. používá se pro nastavení daného záznamu jako aktuálního záznamu
SHRNUTÍ • Síťový databázový model - struktura - vlastnosti - manipulace s daty - jazyk pro manipulaci s daty (DML) • Hierarchický databázový model - struktura - podmínky úplnosti a definice dat -jazyk pro manipulaci s daty