Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

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

Podobné prezentace


Prezentace na téma: "SÍŤOVÝ A HIERARCHICKÝ DATABÁZOVÝ MODEL Lenka Novotná & Lada Oberreiterová 20.10.2004."— Transkript prezentace:

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

2 OBSAH Úvod k databázovým modelům Úvod k databázovým modelům Síťový databázový model Síťový databázový model - struktura - struktura - vlastnosti - vlastnosti - manipulace s daty - manipulace s daty - jazyk pro manipulaci s daty (DML) - jazyk pro manipulaci s daty (DML) Hierarchický databázový model Hierarchický databázový model - struktura - struktura - podmínky úplnosti a definice dat - podmínky úplnosti a definice dat - jazyk pro manipulaci s daty - jazyk pro manipulaci s daty

3 ÚVOD K DATABÁZOVÝM MODELŮM Hierarchický Hierarchický - nebyl pro něj ustanoven žádný standard - nebyl pro něj ustanoven žádný standard - nejznámější verze je označována IMS (Information - nejznámější verze je označována IMS (Information Management System) Management System) Síťový Síťový - standardizován 1972 výborem Database Task Group (DBTG), který vznikl v rámci konference CODASYL (Conference on Data Systems Languages) - 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) - je systém IDMS (Integrated Database Management System) Relační Relační Objektově orientovaný Objektově orientovaný Objektově relační Objektově relační

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

5 ZÁZNAMOVÝ TYP

6 MNOŽINOVÝ TYP (Bachmanův diagram) Definice Definice - jméno množinového typu - jméno množinového typu - jméno vlastnického záznamového typu - jméno vlastnického záznamového typu - jméno členského záznamového typu - jméno členského záznamového typu

7 INSTANCE MNOŽINY Jeden vlastnický záznam Jeden vlastnický záznam Nula nebo více členských 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 Č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ů 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 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) Vlastnickým záznamem je systém (SŘDB) - „virtuální“ vlastnický typ (bez atributů) - „virtuální“ vlastnický typ (bez atributů) Vstupní body do databáze Vstupní body do databáze Uspořádání záznamů daného záznamového typu Uspořádání záznamů daného záznamového typu

9 REPREZENTACE MNOŽINOVÉ INSTANCE Musí dovolovat operace: Musí dovolovat operace: - dán vlastník, najdi všechny členy této instance - dán vlastník, najdi všechny členy této instance - dán vlastník, najdi první, i-tý nebo poslední člen - dán vlastník, najdi první, i-tý nebo poslední člen instance; neexistuje-li vrať výjimku instance; neexistuje-li vrať výjimku - dán člen, najdi následujícího (předchozího) - dán člen, najdi následujícího (předchozího) člena; neexistuje-li vrať výjimku člena; neexistuje-li vrať výjimku - dán člen, najdi vlastníka této instance - dán člen, najdi vlastníka této instance

10 REPREZENTACE MNOŽINOVÉ INSTANCE Kruhový spojový seznam (kruhový řetěz) Kruhový spojový seznam (kruhový řetěz) - nejčastější - nejčastější Kruhový spojový seznam s obousměrnými ukazateli Kruhový spojový seznam s obousměrnými ukazateli „Ukazatel na vlastníka“ („owner-pointer“) „Ukazatel na vlastníka“ („owner-pointer“) Sousedící členské záznamy Sousedící členské záznamy Pole ukazatelů Pole ukazatelů Indexovaná reprezentace Indexovaná reprezentace

11 KRUHOVÝ SPOJOVÝ SEZNAM Pole typů (type field) pro rozlišení členského a vlastnického záznamu 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) 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 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

15

16 Síťový databázový model Vlastnosti Vlastnosti - volby pro vkládání (insertion options) - volby pro vkládání (insertion options) - volby pro uchovávání (retencion options) - volby pro uchovávání (retencion options) - volby pro uspořádání množiny (set ordering - volby pro uspořádání množiny (set ordering options) options) - volby pro výběr množiny (set selection options) - volby pro výběr množiny (set selection options) - definice dat v síťovém modelu (data definition in - definice dat v síťovém modelu (data definition in the network model) the network model)

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

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

19 VOLBY PRO USPOŘÁDÁNÍ Třídění uspořádávajícím polem (sorted by an ordering field) Třídění uspořádávajícím polem (sorted by an ordering field) Systémové implicitní nastavení (system default) Systémové implicitní nastavení (system default) První nebo poslední (first or last) První nebo poslední (first or last) Následující nebo předchozí (next or prior) Následující nebo předchozí (next or prior)

20 VOLBY PRO VÝBĚR MNOŽINY SET SELECTION IS STRUCTURAL SET SELECTION IS STRUCTURAL - výběr množiny pomocí hodnot dvou polí, které se - výběr množiny pomocí hodnot dvou polí, které se musí rovnat.. strukturální podmínka musí rovnat.. strukturální podmínka SET SELECTION BY APLICATION SET SELECTION BY APLICATION - množinová instance je určena aplikačním - množinová instance je určena aplikačním programem programem

21 DEFINICE DAT V SÍŤOVÉM MODELU RECORD NAME IS RECORD NAME IS - pojmenování záznamového typu - pojmenování záznamového typu SET NAME IS SET NAME IS - pojmenování množinového typu - pojmenování množinového typu INSERTION IS INSERTION IS - specifikace voleb pro vkládání - specifikace voleb pro vkládání RETENTION IS RETENTION IS - specifikace voleb pro uchovávání - specifikace voleb pro uchovávání SET SELECTION SET SELECTION - specifikace výběru množinové instance (při volbě pro vkládání AUTOMATIC ) - specifikace výběru množinové instance (při volbě pro vkládání AUTOMATIC )

22 Síťový databázový model Manipulace s daty Manipulace s daty - DML (Data Manipulation Language) - DML (Data Manipulation Language) - UWA (User Work Area) - UWA (User Work Area) - indikátory životnosti (currency indicators) - indikátory životnosti (currency indicators) - indikátory stavu (status indicators) - indikátory stavu (status indicators)

23 INDIKÁTORY ŽIVOTNOSTI Current of record type (aktuální záznam) Current of record type (aktuální záznam) Current of set type (aktuální množina) Current of set type (aktuální množina) Current of run unit.. CRU (aktuální běhová jednotka) 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 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 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) Jazyk pro manipulaci s daty (DML) - DML příkazy pro vyhledávání a navigaci - DML příkazy pro vyhledávání a navigaci - DML příkazy pro zpracování množiny - DML příkazy pro zpracování množiny - DML příkazy pro aktualizaci záznamů - DML příkazy pro aktualizaci záznamů - DML příkazy pro aktualizaci množinových instancí - DML příkazy pro aktualizaci množinových instancí

26 DML PŘÍKAZY PRO VYHLEDÁVÁNÍ A NAVIGACI GET.. vyhledání záznamu GET.. vyhledání záznamu FIND.. určí polohu záznamu a specifikuje ho jako CRU FIND.. určí polohu záznamu a specifikuje ho jako CRU - dvě hlavní varianty: - dvě hlavní varianty: - FIND ANY [USING ] - FIND ANY [USING ] … najde první výskyt … najde první výskyt - FIND DUPLICATE [USING ] - FIND DUPLICATE [USING ] … najde další stejný výskyt, hledání započíná na … najde další stejný výskyt, hledání započíná na aktuálním záznamu 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 v následujících variantách: - FIND (FIRST | NEXT | PRIOR | LAST | …) type name> - FIND OWNER WITHIN - FIND OWNER WITHIN

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ů STORE.. vkládání nových záznamů ERASE.. odstranění záznamu z databáze ERASE.. odstranění záznamu z databáze ERASE ALL.. odstranění záznamu i všech ERASE ALL.. odstranění záznamu i všech záznamů jím přímo i nepřímo vlastněných záznamů jím přímo i nepřímo vlastněných MODIFY.. mění některé z hodnot polí záznamu 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é CONNECT.. vkládá členský záznam do množinové instance instance DISCONNECT.. odstranění členského záznamu z množinové instance bez připojení k jiné množinové instanci 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 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 Struktura - parent-child relationship (PCR) a hierarchická - parent-child relationship (PCR) a hierarchická schémata schémata - vlastnosti hierarchického schématu - vlastnosti hierarchického schématu - strom hierarchiských instancí - strom hierarchiských instancí - linearizovaná podoba stromu hierarchických - linearizovaná podoba stromu hierarchických instancí instancí - virtuální PCR - virtuální PCR

33 HIERARCHICKÝ DATABÁZOVÝ MODEL  Dva základní koncepty strukturování dat: - záznamy.. sbírky hodnot polí s informacemi o - záznamy.. sbírky hodnot polí s informacemi o entitách nebo instancích vztahů entitách nebo instancích vztahů - vztahy předek-potomek (parent-child - vztahy předek-potomek (parent-child relationship, PCR).. 1:N vztahy mezi dvěma relationship, PCR).. 1:N vztahy mezi dvěma záznamovými typy záznamovými typy

34 PARENT-CHILD RELATIONSHIP Složen ze dvou záznamových typů: Složen ze dvou záznamových typů: - rodičovský záznamový typ.. jeden výskyt ve vztahu - rodičovský záznamový typ.. jeden výskyt ve vztahu - typ záznamu potomek.. 0 až N 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ů 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) Na PCR typy se odvoláváme vypsáním uzávorkovaných dvojic (rodič, potomek) Znázorňuje se jako hierarchický diagram 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 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 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 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 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) 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 Uzlu odpovídá záznamový typ Hraně odpovídá PCR typ Hraně odpovídá PCR typ Na rozdíl od zobrazení hierarchie, zde nesplývají ani částečně hrany 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ř.: Hierarchický model má problémy s modelováním určitých typů vztahů, např.: - M:N vztah - M:N vztah - záznam se vyskytuje jako potomek ve více než - záznam se vyskytuje jako potomek ve více než jednom PCR typu jednom PCR typu - n-ární vztahy s více než dvěma výskyty - n-ární vztahy s více než dvěma výskyty záznamových typů 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: 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 - žá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 - pokud má potomek více rodičů stejného typu, musí být duplikován pro každého z rodičů duplikován pro každého z rodičů - potomek s více rodiči různých typů může mít nejvýše - 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 jednoho skutečného rodiče, ostatní jsou reprezentováni jako virtuální jako virtuální

42 HIERARCHICKÝ DATABÁZOVÝ MODEL Definice dat: Definice dat: - HDDL (Hierarchical Data Definition Language) - 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 - 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 - 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 - VPCR typy musí být také specifikovány

43 HIERARCHICKÝ DATABÁZOVÝ MODEL Jazyk pro manipulaci s daty Jazyk pro manipulaci s daty - HDML (Hierarchical Data Manipulation Language) - HDML (Hierarchical Data Manipulation Language) - poslední záznam, ke kterému přistoupil nějaký - poslední záznam, ke kterému přistoupil nějaký příkaz, se nazývá aktuální databázový záznam příkaz, se nazývá aktuální databázový záznam (current database record) (current database record) - SŘBD udržuje ukazatel na aktuální záznam - SŘBD udržuje ukazatel na aktuální záznam - posloupnost DB příkazů probíhá od aktuálního - posloupnost DB příkazů probíhá od aktuálního záznamu, může definovat nový aktuální záznam záznamu, může definovat nový aktuální záznam

44 PŘÍKAZY HDML  GET.. Příkaz pro nalezení záznamu - uvedeme dvě varianty: - uvedeme dvě varianty: GET FIRST [WHERE ] GET FIRST [WHERE ] GET NEXT [WHERE ] GET NEXT [WHERE ] - GET FIRST prohledává databázi od začátku hierarchické - GET FIRST prohledává databázi od začátku hierarchické sekvence, hledá první instanci záznamu splňující podmínky sekvence, hledá první instanci záznamu splňující podmínky - GET NEXT prohledává od aktuálního záznamu a hledá - GET NEXT prohledává od aktuálního záznamu a hledá další záznam splňující podmínky 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 PATH.. vyhledávání záznamů za podmínek na jednotlivé záznamy v cestě k hledanému záznamu GET (FIRST | NEXT) PATH [WHERE ] GET (FIRST | NEXT) PATH [WHERE ] GET NEXT WITHIN PARENT.. nalezne další záznam daného typu, který má stejný rodičovský záznam GET NEXT WITHIN PARENT.. nalezne další záznam daného typu, který má stejný rodičovský záznam GET NEXT WITHIN [VIRTUAL] PARENT [ ] [WHERE ] GET NEXT WITHIN [VIRTUAL] PARENT [ ] [WHERE ]

46 PŘÍKLAD GET PATH

47 PŘÍKAZY HDML Aktualizační příkazy: Aktualizační příkazy: - INSERT.. vloží záznam do databáze - INSERT.. vloží záznam do databáze - DELETE.. vymaže záznam z databáze - DELETE.. vymaže záznam z databáze - GET HOLD.. používá se pro nastavení daného - GET HOLD.. používá se pro nastavení daného záznamu jako aktuálního záznamu záznamu jako aktuálního záznamu

48 PŘÍKLAD DELETE

49 SHRNUTÍ Síťový databázový model Síťový databázový model - struktura - struktura - vlastnosti - vlastnosti - manipulace s daty - manipulace s daty - jazyk pro manipulaci s daty (DML) - jazyk pro manipulaci s daty (DML) Hierarchický databázový model Hierarchický databázový model - struktura - struktura - podmínky úplnosti a definice dat - podmínky úplnosti a definice dat - jazyk pro manipulaci s daty - jazyk pro manipulaci s daty


Stáhnout ppt "SÍŤOVÝ A HIERARCHICKÝ DATABÁZOVÝ MODEL Lenka Novotná & Lada Oberreiterová 20.10.2004."

Podobné prezentace


Reklamy Google