1 / 49

S ÍŤOVÝ A HIERARCHICKÝ DATABÁZOVÝ MODEL

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

jennis
Download Presentation

S ÍŤOVÝ A HIERARCHICKÝ DATABÁZOVÝ MODEL

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. SÍŤOVÝ A HIERARCHICKÝ DATABÁZOVÝ MODEL Lenka Novotná & Lada Oberreiterová 20.10.2004

  2. 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

  3. Ú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í

  4. Síťový databázový model • Struktura - záznamy (records) - záznamové typy .. členské, vlastnické - množiny (sets) - množinové typy .. reprezentace vztahu 1:N

  5. ZÁZNAMOVÝ TYP

  6. 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

  7. 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

  8. 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

  9. 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

  10. 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

  11. 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

  12. KRUHOVÝ SPOJOVÝ SEZNAM

  13. VZTAH M:N

  14. VZTAH M:N

  15. VZTAH M:N

  16. 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)

  17. VOLBY PRO VKLÁDÁNÍ • Volby: - AUTOMATIC - MANUAL • Příkazy: - STORE - CONNECT

  18. VOLBY PRO UCHOVÁVÁNÍ • Volby: - OPTIONAL - MANDATORY - FIXED • Příkazy: - CONNECT - DISCONNECT - RECONNECT

  19. 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)

  20. 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

  21. 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)

  22. 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)

  23. 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)

  24. 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

  25. 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í

  26. 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

  27. DML PŘÍKAZY PRO VYHLEDÁVÁNÍ A NAVIGACI

  28. 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>

  29. DML PŘÍKAZY PRO ZPRACOVÁVÁNÍ MNOŽINY

  30. 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

  31. 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

  32. 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

  33. 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

  34. 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

  35. 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

  36. 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)

  37. 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

  38. LINEARIZOVANÁ PODOBA STROMU HIERARCHICKÝCH

  39. 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

  40. VIRTUÁLNÍ PCR

  41. 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í

  42. 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

  43. 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

  44. 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

  45. 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>]

  46. PŘÍKLAD GET PATH

  47. 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

  48. PŘÍKLAD DELETE

  49. 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

More Related