+ All Categories
Home > Documents > Teorie zpracování dat

Teorie zpracování dat

Date post: 11-Jan-2016
Category:
Upload: garry
View: 30 times
Download: 2 times
Share this document with a friend
Description:
Teorie zpracování dat. Rekapitulace pojmů. Úlohy zpracování dat. Proč vzniká problém zpracování dat V praktickém životě je často zapotřebí evidovat údaje o nějaké skutečnosti. o skupině lidí (zaměstnanců, studentů, členů sportovního oddílu ap.), - PowerPoint PPT Presentation
84
Teorie zpracování dat Rekapitulace pojmů
Transcript
Page 1: Teorie zpracování dat

Teorie zpracování dat

Rekapitulace pojmů

Page 2: Teorie zpracování dat

Úlohy zpracování dat

Proč vzniká problém zpracování dat

V praktickém životě je často zapotřebí evidovat údaje o nějaké skutečnosti.

o skupině lidí (zaměstnanců, studentů, členů sportovního oddílu ap.), o zvířatech nebo rostlinách (evidence ZOO, botanické zahrady ap.), o množině věcí (knihy ve veřejné knihovně, inventář firmy, materiálu na skladě ap.) o množině jevů (počasí, provedených lékařských výkonech ap.)

Zpracováním dat nazýváme evidování a zpracování velkého množství údajů o velkém množství objektů.

Page 3: Teorie zpracování dat

Úlohy zpracování dat

Proč vzniká problém zpracování dat

V praktickém životě je často zapotřebí evidovat údaje o nějaké skutečnosti.

o skupině lidí (zaměstnanců, studentů, členů sportovního oddílu ap.), o zvířatech nebo rostlinách (evidence ZOO, botanické zahrady ap.), o množině věcí (knihy ve veřejné knihovně, inventář firmy, materiálu na skladě ap.) o množině jevů (počasí, provedených lékařských výkonech ap.)

Zpracováním dat nazýváme evidování a zpracování velkého množství údajů o velkém množství objektů.

Page 4: Teorie zpracování dat

Úlohy zpracování dat

Shrnutí pojmů

Daty nazýváme údaje získané měřením, pozorováním nebo jen pouhým zaznamenáním z reálné skutečnosti.

Informace jsou smysluplné interpretace dat a vztahů mezi nimi.Zpracováním dat nebo také hromadným zpracováním dat nazýváme zpracování

velkého množství údajů (obvykle desítky až stovky) o velkém množství objektů (obvykle od desítek po miliony i víc).

Objektem nazýváme člověka, zvíře, věc nebo jev reálného světa, pokud se tito stali předmětem našeho zájmu z hlediska evidence. Objekt je popisován množinou svých vlastností. Objekty mají velké množství vlastností, ovšem z hlediska evidence potřebujeme sledovat jen některé z nich.

Atributem nazveme údaj o objektu, který nás zajímá z hlediska evidence.Typem objektu budeme rozumět název množiny objektů a seznam jejich

sledovaných atributů:Jméno-typu-objektu (atribut1, atribut2, …, atributn)

Page 5: Teorie zpracování dat

Úlohy zpracování dat

Shrnutí pojmů

Vést evidenci o objektech znamená• zaznamenat vhodně organizované údaje na nějaké médium • provádět změny údajů při změně evidované reality • provádět výběry informací podle různých kritérií • odvozovat a počítat z uložených údajů další • třídit údaje dle různých kritérií • zaznamenávat vztahy mezi údaji o objektech různých druhů • o všech údajích zaznamenaných i odvozených vydávat informace ve vhodné grafické úpravě

Informačním systémem obecně nazýváme organizaci údajů vhodnou pro systémové zpracování dat: pro jejich sběr, uložení a uchování, zpracování, vyhledávání a vydávání informací o nich, to vše pro účely rozhodování.

Page 6: Teorie zpracování dat

Agendové zpracování dat

Problémy agendového zpracování Redundance: některé informace ve více souborech opakují, jsou

redundandní. Redundance je zdrojem mnoha dalších problémů Konzistence: vzájemná shoda údajů. Postupem času - vlivem

nedostatečné kontroly v programech se stejné hodnoty na různých místech v datových souborech, začnou rozcházet.

Integrita: data aktuální, odrážejí skutečnost z reálného světa. Problémem tedy je zabezpečit, aby chybou či nedůsledností

uživatele nebyla porušena integrita a konzistence dat. Obtížná dosažitelnost dat: aplikační programy pro konkrétní

požadavky; pro nový požadavek nutno napsat nový aplikační program - bez pomoci programátora nelze.

Izolovanost dat - data roztroušena v různých souborech, soubory mohou být různě organizovány, data různě formátována. To komplikuje tvorbu nových aplikačních programů a možnost realizovat vazby mezi datovými strukturami.

Page 7: Teorie zpracování dat

Agendové zpracování dat

Problémy agendového zpracování Současný přístup více uživatelů: větší systémy vyžadují

současný přístup k datům více uživatelů. Pak je nutné, aby programy vzájemně spolupracovaly, jejich činnosti byly koordinovány.

Ochrana proti zneužití: při zpracování důvěrných či tajných dat není přípustné, aby měl kdokoliv přístup ke všem informacím. Při klasickém zpracování však musí mít programátor aplikačních programů k dispozici tolik podrobností, že to ochranu dat prakticky znemožňuje.

Page 8: Teorie zpracování dat

Databázové zpracování dat

Základní pojmy databázového zpracování Entita - objekt celá posloupnost položek popisuje objekt. Taková struktura

položek, která má ucelený význam (zachycuje všechny potřebné údaje o sledovaném objektu) se nazývá záznamem (větou, recordem). Je to obvykle skupinová položka.

Množina entit – množina objektů – datový soubor – obsah tabulky

množinu záznamů stejného typu, zaznamenávající ucelenou informaci o množině sledovaných objektů a uloženou na paměťovém médiu, nazýváme datovým souborem. Množiny záznamů si můžeme snadno představit ve tvaru tabulky, kde každý objekt je popsán jedním řádkem a každý atribut objektu je v jednom sloupci.

Databáze Množinu datových souborů, uchovávajících data o nějakém

uceleném úseku reality, nazýváme databází.

Page 9: Teorie zpracování dat

Databázové zpracování dat

Základní pojmy databázového zpracování Systém řízení báze dat - SŘBD programový systém (prázdný, bez datových souborů a bez

aplikačních programů), umožňující definování datových struktur a datových souborů, řešící fyzické uložení dat ve vnější paměti počítače, umožňující manipulaci s daty a formátování vstupních i výstupních informací, nazýváme systémem řízení báze dat.

Aplikační úloha Aplikační úlohou nad SŘBD nazýváme konkrétní program

napsaný pomocí programových prostředků použitého SŘBD nad konkrétní databází, pro tuto úlohu vytvořenou.

Page 10: Teorie zpracování dat

Databázové zpracování dat

Základní pojmy databázového zpracování Informační systém Aplikační úlohy nad společnou databází tvoří ucelený systém,

nazývaný databázovým nebo informačním systémem (dále jen IS) nad použitým SŘBD.

V tomto pojetí tedy informačním systémem rozumíme celek, řešící rozsáhlejší oblast aplikační, naprogramovaný v jednom SŘBD s vhodně navrženými datovými strukturami tak, aby všechny aplikační úlohy k nim měly optimální přístup. Řeší uložení, uchování, zpracování a vyhledávání informací a umožňuje jejich formátování do uživatelsky přívětivého tvaru.

Page 11: Teorie zpracování dat

Databázové zpracování dat

Paradigma databázové technologie Definování datových typů a operací nad daty není vše, čím se

liší databázová technologie od klasického programování. Nejpodstatnější rozdíl, základní princip či tzv. paradigma

databázové technologie je

oddělení datových struktur od programů Tuto vlastnost zabezpečuje v SŘBD možnost definovat datové a

programové struktury samostatně a nezávisle na sobě. Struktury datových souborů jsou uloženy samostatně nebo jsou součástí datových souborů. Programy s nimi pracují tak, že si načtou strukturu dat a pak s datovým souborem mohou provádět potřebné operace. Při změně datové struktury není nutné měnit programy, při změně programů není nutné měnit datové struktury.

Page 12: Teorie zpracování dat

Databázové zpracování dat

Paradigma databázové technologie Pascal:Program Evidence_zamestnancu; var Zamestnanec: record of jmeno: string [1..20];

adresa:string [1..50]; funkce:string [1..10]; plat: integer

end; Begin ... End.

program data

deklarace

Page 13: Teorie zpracování dat

Databázové zpracování dat

Paradigma databázové technologie SŘBD:

CREATE TABLE Zamestnanec (jmeno CHAR(20),

adresa CHAR(50),

funkce CHAR(10),

plat NUMBER(8,2));

program Zamestnanec

deklarace

use Zamestnanec data

Page 14: Teorie zpracování dat

2.2. Entity, atributy, vztahy, integritní omezení

Základní pojmyEntitou rozumíme libovolnou existující osobu, věc či jev (objekt)

reálného světa. Entita musí být rozlišitelná od ostatních entit.

Atribut je charakteristika, vlastnost entity, údaj o objektu. Atribut přiřadí každé entitě z množiny entit hodnotu z nějaké neprázdné množiny hodnot, nazvané doména atributu (obor hodnot atributu). Je zadán svým názvem (identifikátorem) a datovým typem.

Typem entity nazýváme množinu objektů stejného typu, charakterizovaných pomocí názvu typu a jeho seznamu jeho vlastností - atributů. Jednotlivé entity pak nazýváme také výskyty nebo instancemi objektů entitního typu.

Klíčový atribut je jeden nebo více atributů, které jednoznačně určují entitu v množině entit;

Atributy patřící ke klíči nazýváme primárními, ostatní sekundárními.

Page 15: Teorie zpracování dat

Entity, atributy, vztahy, integritní omezení

Základní pojmyIntegritní omezení jsou další omezující podmínky na příslušnost k

entitám, hodnoty atributů, entit, definování vazeb nebo další.

Datový soubor (= množina entit) je zobrazován jako tabulka, ta má svůj název (= název entity) a seznam sloupců; každý sloupec má název (= název atributu) a datový typ. Každá entita je znázorněna v tabulce jedním řádkem, každý typ atributu je definován jedním sloupcem, hodnota atributu dané entity je v odpovídajícím řádku a sloupci tabulky.

Page 16: Teorie zpracování dat

Entity, atributy, vztahy, integritní omezení

Vztahy entitVazební entita zaznamenává formálně vztah mezi entitami.

Vazba bez informace - obsahuje jako atributy pouze typy entit vstupující.

s informací - obsahuje i další atributy, zaznamenávající vlastnosti

vazby, které nejsou mezi atributy jednotlivých entit.

Příklad: UCI (Ucitel, Student)

UCI (Ucitel, Student, predmet)

Dělení vztahů podle počtu entit, vstupujících do vztahu vazba binární – mezi dvěma typy entit

typ (kardinalita) vazby 1:1 1:N M:N

Page 17: Teorie zpracování dat

Entity, atributy, vztahy, integritní omezení

Vztahy entitVazební entita zaznamenává formálně vztah mezi entitami.

Vazba bez informace - obsahuje jako atributy pouze typy entit vstupující.

s informací - obsahuje i další atributy, zaznamenávající vlastnosti

vazby, které nejsou mezi atributy jednotlivých entit.

Příklad: UCI (Ucitel, Student)

UCI (Ucitel, Student, predmet)

Dělení vztahů podle počtu entit, vstupujících do vztahu vazba binární – mezi dvěma typy entit

typ (kardinalita) vazby 1:1 1:N M:N

Page 18: Teorie zpracování dat

Entity, atributy, vztahy, integritní omezení

Příklad

Kardinalita 1:1

vztah "je vedoucím katedry" mezi množinami entit

E1 = Zaměstanec VŠ a E2 = Katedra VŠ

zapíšeme: VEDOUCI_KAT (Zamestnanec, Katedra)

Kardinalita 1:M

vztah "je členem katedry" mezi entitami Zaměstnanci a Katedry

zapíšeme: ČLEN_KAT (Zamestnanec, Katedra)

Kardinalita M:N, vazba s informací (cena se týká výrobku konkrétní firmy)

vztah V je "Firma vyrábí Výrobek"

E1 je soubor Firem, E2 je soubor Výrobků,

zapíšeme: VYRABI (Firma, Vyrobek, cena)

Page 19: Teorie zpracování dat

Entity, atributy, vztahy, integritní omezení

Vazba unární - mezi entitami stejného typu 1:1 1:N M:N

Příklad: E1 je soubor zaměstnanců

Vztah mezi E1 a E1 "je vedoucím zaměstnance"

typu 1:N , zapíšeme: VEDOUCI (Zam, Zam)

Vazba n-ární - mezi n typy entit 1:1:1 1:N:1 . . . M:N:K

Příklad: E1 je soubor učitelů, E2 je soubor předmětů, E3 je soubor tříd

Binární vztahy mezi E1, E2, E3:

V1 : "učitel učí předměty" typu M:N V2 : "třída má předepsány předměty" typu M:N V3 : "učitel učí ve třídě“ typu M:N

Z uvedené trojice vazeb V1 - V3 nevyplývá, který učitel učí který předmět ve které třídě. To musíme popsat novou vazbou mezi trojicí entit

V4 : "Učitel učí Předmět ve Třídě“ typu M:N:K

zapíšeme: UČÍ (Ucitel, Predmět, Trida)

Page 20: Teorie zpracování dat

2.4. Databázové jazyky, nezávislost dat

Databázové jazyky1. Příkazy jazyka pro definici dat (JDD):

seznam datových typů a datových struktur pro definici typu atributu,

definice, modifikace a rušení typu entity, definice, modifikace a rušení typu vazby.

2. Příkazy jazyka pro manipulaci s daty (JMD): manipulace s atributy (ukládání a kontroly, ...) manipulace s entitami (ukládání, modifikace, rušení, výběry) manipulace s množinami entit (sjednocení, rozdíl, ...) manipulace s vazbami entit

Page 21: Teorie zpracování dat

2.4. Databázové jazyky, nezávislost dat

Databázové jazyky3. Programovací jazyk pro zápis algoritmu

v hostitelském jazyce (Cobol, C, Pascal, ...), pak jsou výše uvedené JDD a JDM vytvořeny jako procedury v hostitelském jazyce a celý SŘBD tvoří nadstavbu tohoto jazyka;

vlastní jazyk SŘBD, obsahující (mimo příkazy JDD a JMD) programové struktury pro záznam algoritmů - příkazy pro větvení a cykly, pro komunikaci s uživatelem, pro formátování vstupů a výstupů, pro tvorbu menu a oken ap.

4. Dotazovací jazyk, který podle typu dělíme do dvou skupin: procedurální, který popisuje způsob, jak data v databázi

hledat, zapisuje algoritmy pro vyhledání informací deskriptivní, který zapisuje jen, co v databázi hledat pomocí

vlastností hledaných objektů.

Page 22: Teorie zpracování dat

2.4. Databázové jazyky, nezávislost dat

Nezávislost dat  fyzická nezávislost dat umožňuje změnit fyzickou úroveň popisu

dat, aniž by se musely měnit aplikační programy; někdy se touto změnou způsobu uložení dat na disku mění potřebná kapacita pro uložení souborů, někdy se toho využívá pro zvětšení výkonu celého systému.

logická nezávislost dat umožňuje změnit konceptuální úroveň popisu dat, aniž by bylo třeba přepisovat aplikační programy. Při provozu DBS se často vyskytují dodatečné požadavky na změny či doplňky v logické struktuře dat, ty se musí promítnout i do databázového schématu.

 

Page 23: Teorie zpracování dat

Konceptuální datový model Prostředky pro zápis konceptuálního modelu

 1. Entity-Relationship Diagram … ERD

2. Lineární textový zápis

Tentity ( klíč, atrib1, atrib2, . . . )

TVZTAHU( Tentity1, Tentity2, . . . )

3. Integritní omezení – graficky, v datovém slovníku, textem

4. Datový slovník

5. Výskytový diagram - pomocný

Page 24: Teorie zpracování dat

Konceptuální datový model IO týkající se atributů

1. Datový slovník = tabulka obsahující pro každý typ entity• identifikátor (název) atributu

• datový typ atributu, jeho doména, formát vnější reprezentace

• příznak, zda atribut patří ke klíči

• přípustnost NULL / zadání hodnoty je povinné

• formou poznámky další IO plynoucí z reality

• zda bude atribut indexován, UNIQUE, DUPLIC

• množina operací, které lze nad jeho hodnotami provádět

• význam atributu

Page 25: Teorie zpracování dat

Konceptuální datový model 4. zobrazení kardinality binárních vztahů

Page 26: Teorie zpracování dat

Konceptuální datový model IO týkající se vlastností vztahů mezi entitami

5. Povinnost členství ve vztahu

• povinné (obligatorní)

• nepovinné (fakultativní)

Page 27: Teorie zpracování dat

Konceptuální datový model 7. Dekompozice vztahu M:N

Page 28: Teorie zpracování dat

Konceptuální datový model Výsledné konceptuální schéma struktury databáze

• lineární zápis seznamu typů entit a jejich atributů

• úplný grafický tvar ERD (2 úrovně)

1. konceptuální schéma modelující realitu

2. transformovaný ERD pro databázové schéma

• úplné tabulky atributů – datový slovník

• seznam dalších IO týkajících se entit a vztahů

Page 29: Teorie zpracování dat

Sekvenční soubory

Nový záznam se uloží na konec souboru, k tomu stačí jeden přenos záznamu z paměti na disk.

Vyhledání záznamu sekvenční - každý záznam postupně načíst a otestovat, zda vyhovuje podmínce. Pokud ano, je nalezen, pokud ne, načítá se další záznam v pořadí.

Vyhledávání sekvenční potřebuje průměrně n/2 porovnání nebo n/(2*B) přístupů na disk (B je blokovací faktor = počet záznamů v bloku)

Modifikace záznamu znamená tyto operace: nalézt záznam, načíst, opravit a na stejnou adresu znovu zapsat.

Zrušení záznamu u sekvenčních souborů se obvykle provádí ne vymazáním záznamu, ale pouze označením jeho neplatnosti.

Mají-li věty klíče, musí se prohledat celý soubor a zkontrolovat jedinečnost klíče vkládané nebo modifikované věty.

Page 30: Teorie zpracování dat

Sekvenční soubory

Přirozená nejjednodušší organizace záznamů v souboru

adr del osob jméno . . .

1 3456 Dudek Jindřich

2 1243 Kovář František

3 * 3333 Novák Karel, ing.

4 5734 Horák Ivo

5 2578 Sedlák Jiří

6 9999 Forman Zdeněk

7 3579 Anděl Zbyněk

... . . . . . .

n 7766 Nováčková Iva

n+1 6743 Hájek Petr

Page 31: Teorie zpracování dat

Setříděné sekvenční soubory

Sekvenční soubor je setříděný podle vyhledávacího klíče

OperaceSELECT - podle klíče mnohem rychleji (např. metodou půlení

intervalu nebo některou její modifikací; počet přenosů pro binární hledání je průměrně log2 n.

INSERT - na konec souboru, znovu soubor přetřídit

UPDATE - vyhledávacího klíče: vyhledat, zapsat, přetřídit

- jiné hodnoty: vyhledání, zápis záznamu zpět

DELETE - vyhledání, označení neplatnosti

Page 32: Teorie zpracování dat

Setříděné sekvenční soubory

adr del osob jméno . . .

1 1243 Kovář František

2 2578 Sedlák Jiří

3 * 3333 Novák Karel, ing.

4 3456 Dudek Jindřich

5 3579 Anděl Zbyněk

6 … …

7 5734 Horák Ivo

... 7766 Nováčková Iva

n 9999 Forman Zdeněk

n+1 6743 Hájek Petr

Page 33: Teorie zpracování dat

Zřetězené organizace

Sekvenční soubor, záznamy navíc opatřeny ukazatelem pro zápis zřetězení dle třídicího klíče.

SELECT – seznam se prohledává postupně pomocí ukazatelů a testuje, zda záznam vyhovuje vyhledávací podmínce. Častější přechody mezi bloky souboru a proto více přenosů mezi diskem a pamětí. Proto vhodné jen u krátkých seznamů.

INSERT – záznam se fyzicky zapíše kamkoliv, pak se v seznamu vyhledají sousední záznamy dle udržovaného pořadí a přesměrují se ukazatele předchůdce a následníka

DELETE – vyhledá se umístění záznamu v seznamu a přesměrují se ukazatele předchůdce a následníka

UPDATE - jen vyhledání záznamu a po modifikaci jeho zápis zpět. V případě modifikace položek, které mají vliv na uspořádání seznamu, se provede modifikace jako DELETE a INSERT.

Page 34: Teorie zpracování dat

Zřetězené organizace

adr ukaz osob jméno . . .

1 7 3456 Dudek Jindřich

2 5 1243 Kovář František

3 1 3333 Novák Karel, ing.

4 10 11 5734 Horák Ivo

5 3 2578 Sedlák Jiří

6 9999 Forman Zdeněk

7 4 3579 Anděl Zbyněk

... . . . . . .

10 6 7766 Nováčková Iva

11 10 6743 Hájek Petr

Page 35: Teorie zpracování dat

Soubory s přímým adresováním

OperaceSELECT - podle klíče nejrychlejší, odtud rychlé i ostatní operace: z klíče

se vypočte adresa skupiny záznamů, odtud se prohledá zřetězený seznam až po hledaný záznam.

- podle neklíčové hodnoty naopak delší, sekvenční procházení i prázdných míst a zřetězené seznamy.

INSERT - výpočet adresy skupiny záznamů, tam se prohledají záznamy (pro kontrolu jednoznačnosti klíče), nový záznam se uloží na první volné místo ve skupině a přesměrují se ukazatele.

DELETE - vyhledání, nastavení neplatnosti záznamu, přesměrování ukazat.

UPDATE - vyhledání, zápis zpět; při modifikaci klíče se provede nejprve zrušení a pak nový záznam.

Setřídění záznamů znamená komplikaci.Varianta i pro vyhledání záznamů nejen podle klíče, ale podle více

položek.Růst počtu záznamů – reorganizace hašovacího mechanizmu

Page 36: Teorie zpracování dat

Soubory s přímým adresováním

Princip - jednoznačný klíč záznamu číslo adresa záznamu. Pak jediným přístupem na disk se načte nebo zapíše záznam.

osob adr osob jméno ...

3456 1

1243 2

3333 ...

5734 1243 1243 Kovář František

2578 ...

9999 2578 2578 Sedlák Jiří

3579 ...

. . . ...

7766 9999 9999 Forman Zdeněk

Page 37: Teorie zpracování dat

Indexové a indexované soubory

Sekvenční soubor (indexovaný) + pomocné tabulky (indexové)

• index obsahuje hodnotu (vyhledávacího) klíče (indexu) a adresu (recno) záznamu

• indexový soubor je setříděn dle klíče -> binární vyhledání, přečtení adresy v datovém souboru

• jediným přístupem do dat se načte hledaný datový záznam• často je indexový soubor dost malý - celý v operační paměti• jiné zdůvodnění indexování - ukazatele nejsou součástí záznamů

zřetězené organizace), ale jsou uloženy zvlášť v indexovém souboru

• indexem nemusí být primární klíč (primární indexování), ale kterákoliv položka souboru nebo seznam několika položek (sekundární indexování)

Page 38: Teorie zpracování dat

Indexové a indexované soubory

OperaceINSERT - vložení záznamu do datového souboru (nakonec) +

záznam do indexu + setřídění indexového souboru

SELECT - dle klíče vyhledání klíče binárně v indexu, přečtení adresy v datovém souboru, 1 přenos záznamu,

dle neindexovaného atributu sekvenčně

UPDATE - vyhledání záznamu + modifikace + uložení zpět,

při změně kterékoliv indexované hodnoty reindexace příslušného indexového souboru

DELETE - vyhledání záznamu + označení neplatnosti v datovém i indexovém souboru

Page 39: Teorie zpracování dat

Indexové a indexované soubory

Primární index datový indexovaný soubor indexový soubor

ukaz adresa

klíč atr1 ... adresa

klíč

3 1 4567 2 1234

7 2 1234 7 2222

6 3 5678 5 2345

1 4 4444 4 4444

4 5 2345 1 4567

- 6 7890 3 5678

5 7 2222 6 7890

Page 40: Teorie zpracování dat

Hierarchické indexování

• základem sekvenční soubor + indexový (úrovně 0)• k indexovému souboru vytvořen opět indexový soubor (1)• opakováním hierarchie indexových souborů,• hledá se od nejvyšší úrovně, binárně jen v části indexu,

proto je průměrný počet procházených záznamů nižší než u index0.

Page 41: Teorie zpracování dat

B – stromy (balanced)

Pro uspořádání úrovní indexů se používají tzv. B-stromy:• data sekvenční, indexování hierarchické• indexy všech úrovní „rozsekány“ do bloků stejné délky – tvoří

strom• v indexových blocích volná místa pro doplňování záznamů• délky všech cest (~ počtů přenosů) od kořene stromu do

libovolného listu jsou stejné, rovny hloubce stromu

Page 42: Teorie zpracování dat

Hierarchické indexováníData ind

0ind1

ind2

klíč atr1 ... adr klíč adr klíč adr klíč

888 2 023 2 125 2 345

023 13 125 4 345 4 802

987 7 234 6 567

799 12 345 9 802

802 9 456 11 933

678 10 567

234 6 678

996 4 799

456 5 802

567 1 888

933 11 933

345 3 987

125 8 996

Page 43: Teorie zpracování dat

B – stromy

SELECT - najde se cesta od kořene k listu s hledaným záznamem (pokud existuje), v každém uzlu se najde následující větev porovnáním hledané hodnoty s klíči v uzlu. Klíče v uzlu mohou udávat minimální / maximální hodnotu klíče, která je příslušnou větví dosažitelná.

INSERT - najde se příslušný blok, mohou nastat dvě možnosti: buď v nalezeném bloku je prázdné místo, takže se může přidat vkládaný záznam, nebo je nalezený blok plný a musí se vytvořit nový blok; z původního plného bloku se vytvoří dva bloky, do vyšší úrovně se nový blok zaznamená, opět dva případy – tak až do kořene stromu a případně se musí kořen rozdvojit a přidat nový kořen

UPDATE - vyhledávání + modifikace + uložení zpět, při modifikaci klíče se provede DELETE a INSERT.

DELETE - opačně než vkládání: při zrušení posledního záznamu bloku se zruší i odkaz na něj, totéž se promítne do vyšších úrovní, případně se v krajním případě může hierarchie indexů o jednu úroveň snížit.

Page 44: Teorie zpracování dat

Indexování pomocí binární matice

Pro sekundární indexování, jiný způsob implementace• poloha záznamu se zaznamenává polohou jedničkového bitu v

posloupnosti bitů, každý bit odpovídá jednomu záznamu,• pro každou hodnotu sekundárního atributu je zaznamenána

nová posloupnost,• metoda vhodná pro atributy nabývající jen několika různých

hodnot, pro neměnící se sekundární atributy, pro přidávané záznamy na konec souboru,

• snadná realizace kombinovaných dotazů pomocí logických operátorů negace, konjunkce a disjunkce.

Page 45: Teorie zpracování dat

Indexování pomocí binární matice

atrib hodn pořadí záznamů 1 2 3 4 5 6 7 8 9 10 11 12 ...

proc 10 0 1 0 1 0 1 0 0 0 0 0 1

  20 1 0 0 0 0 0 1 1 0 0 0 0

  30 0 0 1 0 1 0 0 0 1 1 1 0

plat 2000 0 0 0 0 1 0 0 0 0 0 0 0

  3000 1 0 0 0 0 1 0 0 1 1 0 0

  4000 0 1 1 1 0 0 0 0 0 0 1 1

  5000 0 0 0 0 1 0 1 1 0 0 0 0

proc=30 plat=4000 1 1

Page 46: Teorie zpracování dat

Soubory s proměnnou délkou záznamu

1. pseudoproměnná délka záznamu• pole se známým počtem opakování: rozložení na jednotlivé

položky• pole s neznámým počtem opakování: horní odhad počtu výskytů

prvků pole a převedení na předcházející případ• místo opakující se položky se uvede odkaz na seznam jejích

prvků, ten může být součástí jiného souboru• pro záznamy s alternativními skupinami položek buď se

proměnná část překrývá a záznam zabírá velikost nejdelší z proměnných částí, v záznamu se musí rozlišovat typ proměnné části, implementace složitější

• nebo se všechny rozdílné atributy zaznamenají za sebou a pro každý typ se vyplňují jen odpovídající atributy; implementace jednodušší, záznam obsahuje vždy řadu prázdných položek.

Page 47: Teorie zpracování dat

Soubory s proměnnou délkou záznamu

pseudoproměnná délka záznamu

realita – multipoložka s neznámým počtem opakování

atr1 atr2 atr3 počet

...

1

5

2

4

atr1 atr2 atr3 a:multi

... ... ...

realizace pomocí pevné délky

Page 48: Teorie zpracování dat

Soubory s proměnnou délkou záznamu

2. proměnná délka v sekvenčním souboru

nutno rozlišit jednotlivé záznamy:• systém oddělovačů: záznamy jsou odděleny

oddělovačem, uvnitř záznamu se atributy oddělují jiným typem oddělovače, opakující se položky dalším typem ap.

• zaznamenání délky aktuálního záznamu na začátku záznamu (pro jednosměrný průchod souborem), či na začátku i konci záznamu (pro obousměrný průchod souborem)

Page 49: Teorie zpracování dat

RELAČNÍ DATOVÝ MODEL

5.1. Základní pojmy RDM

Definice 5.1.

Relační schéma R je výraz tvaru R(A, f), kde R je jméno schématu, A = {A1,

A2,..., An} je konečná množina jmen atributů, f je zobrazení přiřazující každému

jménu atributu Ai neprázdnou množinu, kterou nazýváme doménou atributu Di, tedy

f(Ai) = Di.

Definice 5.2.

Relace R s relačním schématem R je konečná podmnožina kartézského součinu domén Di, příslušejících jednotlivým atributům Ai, tedy

R D1 x D2 x ...x Dn.

Číslo n nazýváme stupněm relace, o relaci R říkáme, že je typu R nebo že je instancí relačního schématu R.

Page 50: Teorie zpracování dat

RELAČNÍ DATOVÝ MODEL definice pojmů

Definice

Schéma relační databáze je konečná množina relačních schémat R1(A1,f1),

R2(A2,f2),. . . , Rm(Am,fm).

Definice

Relační databází v daném časovém okamžiku je konečná množina relací R1, R2, ..., Rm, tzv. aktuálních relací, kde Ri je typu Ri.

Page 51: Teorie zpracování dat

Relační jazyky• JMD je prostředek pro změny obsahu databáze, obsahuje

4 databázové operace: INSERT, SELECT, UPDATE, DELETE

Jazyky pro formulaci požadavků na výběr dat z relační databáze - dotazovací jazyky - jsou 2 typů:

1. jazyky založené na relační algebře, kde jsou výběrové požadavky vyjádřeny jako posloupnost speciálních operací prováděných nad daty; je tedy zadán algoritmus, jak vyhledat požadované informace;

2. jazyky založené na predikátovém kalkulu, které požadavky na výběr zadávají jako predikát charakterizující vybranou relaci; je úlohou překladače jazyka nalézt odpovídající algoritmus;

tyto jazyky se dále dělí na - n-ticové relační kalkuly

- doménové relační kalkuly

• Oba typy ekvivalentní možnostmi formulace výběrových podmínek.

• Skutečně realizované jazyky mají bohatější syntaxi a další funkce.

Page 52: Teorie zpracování dat

Relační algebra

Relační algebra (RA) je dotazovací jazyk pracující s celými relacemi.

Operátory RA se aplikují na relace, výsledkem jsou opět relace.

Pro operace , , - musí být relační schémata shodná.

Základní množinové operace relační algebry pro relace R a S:

• sjednocení relací téhož stupně R S = {x | x R x S}

• průnik relací R S = {x | x R x S}

• rozdíl relací R - S = {x | x R x S}

• kartézský součin relace R stupně m a relace S stupně n

R x S = {rs | r R s S}, kde rs = {r1,...,rm,s1,...sn}

Page 53: Teorie zpracování dat

Relační algebra

Další operace jsou relační:

• projekce relace R stupně n na komponenty B {A1,...An},

R[B] = {r[B] | r R}, kde R[B] = (ri1, . . . , rim) pro r R

• selekce (výběr řádků) z relace R podle podmínky P je

R(P) = {r | r R P(r)}

• spojení relací R s atributy A a S s atributy B dle relačního operátoru

= {<, =, >,...} v atributu Ai relace R a v atributu Bj relace S je

R[AB]S = {rs | r R s S r[Ai] s[Bj]}

R[A*B]S = {R[A=B]S} pro operátor = , bez duplicitního sloupce

• přirozené spojení relací R(A) a S(B)

R[*]S = ((RxS)[P])[A1,...,Ak,C1,..,Cm+n-k]

kde ze součinu RxS se vyberou řádky se stejnými hodnotami u

stejnojmenných atributů obou relací R a S

Page 54: Teorie zpracování dat

N-ticový relační kalkul

Definice

Výraz n-ticového relačního kalkulu je výraz tvaru

x WHERE F(x)

kde x je jediná volná proměnná ve formuli F.

 

Jako v predikátovém počtu platí, že proměnné vázané kvantifikátory EXIST a FORALL nazývány vázanými proměnnými, ostatní n-ticové proměnné jsou volné.

Výraz n-ticového relačního kalkulu určuje relaci tvořenou všemi možnými hodnotami proměnné x, které splňují formuli F(x).

x definuje seznam komponent proměnných, které definují schéma výstupní relace. Je to buď již dříve definovaná entita, množina entit nebo seznam komponent volných proměnných.

Page 55: Teorie zpracování dat

Jazyk SQL

Úplná syntaxe příkazu SELECT

SELECT {ALL | DISTINCT }{seznam_výrazů | *}FROM tab[ tabnázev] [, ...][ WHERE podm ][ GROUP BY seznam_sloupců [ HAVING podm ] ][ ORDER BY atr1 [ASC|DESC] [, atr2 ...] ]

Page 56: Teorie zpracování dat

Jazyk SQL

Příklad: Mějme relace Čtenář(id_čt, jméno,adresa), Kniha (prir, ISBN, autor, název) a Rezer (id_čt, prir, datod). Hledáme čtenáře, kteří mají nějakou knihu rezervovanou (= existuje záznam s jejich id_čt v Rezer)

SELECT jméno FROM ČtenářWHERE EXIST (SELECT C.*

FROM Rezer R, Čtenář C WHERE R.id_čt = C.id_čt)

nebo

SELECT jméno FROM ČtenářWHERE id_čt IN (SELECT UNIQUE id_čt

FROM Rezer R)

Page 57: Teorie zpracování dat

Jazyk SQL Množinové

operace

Z množinových operací dosud známe IN a NOT IN, případně ALL, ANY.

Sjednocení SELECT ... FROM ... [WHERE ... GROUP BY ... HAVING ... ] UNION (SELECT ... FROM ... [...]) [ORDER BY ...]Průnik SELECT ... FROM ... [...] INTERSECT (SELECT ... FROM ... [...]) [...]Rozdíl SELECT ... FROM ... [...] EXCEPT (SELECT ... FROM ... [...]) [...]

Page 58: Teorie zpracování dat

58

Doménový relační kalkul

Výraz doménového relačního kalkulu je výraz tvaru

x1, x2, …, xn WHERE F(x1, x2, ..., xn)

kde x1, ... , xn jsou jediné navzájem různé volné doménové proměnné ve formuli doménového relačního kalkulu F.

Výraz určuje relaci tvořenou všemi možnými n-ticemi hodnot proměnných x1, x2, ..., xn, které splňují formuli F.

Page 59: Teorie zpracování dat

59

Jazyk QBE

Příklad: Relace Zam(osob, jméno, adresa, plat).

Po volbě tabulky se zobrazí prázdný řádek tabulky.

Zam osob jméno adresa plat

Do řádků se zapisují příkazy QBE, proměnné a výběrové podmínky.

Příkazy jazyka uvedeme na příkladech

Proměnná začíná podtržítkem: _jmeno, _plat, _novak, _x, _y

Výběrové podmínky se zapisují standardně, AND, OR dle implementace

Na rozdíl od SQL jazyk QBE podporuje odstranění duplicitních řádků výsledné relace. Zajištění všech řádků se naopak zajistí klauzulí ALL.

Page 60: Teorie zpracování dat

NÁVRH STRUKTURY DATABÁZE

Problémy redundance nebezpečí vzniku nekonzistence anomálie při vkládání záznamů anomálie při vypouštění záznamů

Možné rozklady: RU (Předmět, Učitel, Místnost, Hodina, Student, Známka)

R1 = { PU, HMP, HUM, PSZ, HSM } R2 = { PU, HSP, PSZ, HSM } R3 = { PU, HSM, PSZ, HMP }R4 = { PU, HMP, PSZ, HSP } atd.

Otázky: čím se od sebe liší?

je některé z nich lepší než ostatní?

Zdrojem informací je nový typ IO – funkční závislosti.

Page 61: Teorie zpracování dat

Funkční závislosti

Definice

Nechť R({A1,A2,...,An}, f) je relační schéma, nechť X, Y jsou podmnožiny množiny jmen atributů {A1,A2,...,An}. Řekneme, že Y je funkčně závislá na X, píšeme X Y, když pro každou možnou aktuální relaci R(A1,A2, ..., An) platí, že mají-li libovolné dva prvky relace R stejné hodnoty atributů X, pak mají i stejné hodnoty atributů Y.

Je-li Y X říkáme, že závislost X Y je triviální.

FZ je definována mezi dvěma podmnožinami atributů v rámci jednoho schématu relace. Jde o vztah mezi atributy, nikoliv mezi entitami.

FZ je definována na základě všech možných aktuálních relací, není tedy možné soudit na funkční závislost z vlastností jediné relace. Tak můžeme poznat jen neplatnost funkční závislosti.

FZ jsou tvrzení o reálném světě, o významu atributů nebo vztahů mezi entitami, je nutné realitu brát v úvahu při návrhu schématu databáze.

Page 62: Teorie zpracování dat

Funkční závislosti

Definice

Nechť F je množina funkčních závislostí pro relační schéma R a nechť X Y je funkční závislost. Řekneme, že F logicky implikuje X Y, jestliže v každé relaci R, v níž jsou splněny závislosti z F, je splněna i závislost X Y.

Množinu všech závislostí, které jsou logicky implikovány množinou F, nazýváme uzávěrem množiny F, označujeme F+.

Definice

Nechť X, Y jsou podmnožiny atributů schématu R s množinou závislostí F. Říkáme, že Y úplně závisí na X, jestliže X Y a pro žádnou vlastní podmnožinu X‘ X není X' Y.

Jinými slovy Y je funkčně závislá na X, ale není funkčně závislá na žádné vlastní podmnožině X.

Page 63: Teorie zpracování dat

Funkční závislosti

Definice

Nechť R ({A1,A2,...,An},f) je relační schéma s množinou funkčních závislostí F, nechť X{A1,A2,...,An}. Řekneme, že X je klíč schématu R, jestliže

1. X A1...An F+

2. pro každou vlastní podmnožinu Y X je Y A1...An F+.

Přidali jsme tedy podmínku minimality. Zřejmě můžeme klíč schématu definovat také jako takovou X A, že A je úplně závislá na X.

V relačním schématu může být více klíčů, z nich obvykle vybíráme jeden a označujeme jako primární klíč.

Definice

Atribut relačního schématu R se nazývá primární, je-li podmnožinou alespoň jednoho klíče schématu R. Ostatní atributy nazveme sekundárními.

Page 64: Teorie zpracování dat

Funkční závislosti

Armstrongovy axiomy

R(A, f) je relační schéma R s množinou atributů A, F je množina funkčních závislostí mezi atributy A.

V následujících pravidlech označujeme sjednocení XY jako XY.

je-li Y X A, pak F X Y (reflexivita)

je-li X Y a Z A, pak XZ YZ (rozšíření)

je-li X Y a Y Z, pak X Z (tranzitivita)

je-li X Y a X Z, pak X YZ (sjednocení)

je-li X Y a WY Z, pak XW Z (pseudotranzitivita)

je-li X Y a Z Y, pak X Z (zúžení)

je-li X YZ, pak X Y a X Z (dekompozice)

Důsledkem sjednocení a dekompozice je:

X A1 . . . An právě tehdy, když X Ai pro všechna i.

Page 65: Teorie zpracování dat

Funkční závislosti

Při manipulacích se zadanou množinou funkčních závislostí F často není nutné znát celý uzávěr F+, ale stačí uzávěr podmnožiny atributů X A vzhledem k F.

Definice

Uzávěrem podmnožiny atributů X A vzhledem k F nazveme množinu všech atributů funkčně závislých na X a označíme jej X+.

Page 66: Teorie zpracování dat

Funkční závislosti

Definice

Říkáme, že závislost f je redundandní v F', jestliže platí

(F' - {f})+ = F'+

Definice

Pokrytí množiny funkčních závislostí F je taková množina G funkčních závislostí, pro niž platí G+ = F+.

Neredundandní pokrytí je takové pokrytí, které neobsahuje redundandní závislosti.

Neredundandní pokrytí není dáno jednoznačně, závisí na pořadí, ve kterém odebíráme neredundandní závislosti. Obecně nemusí být podmnožinou původní množiny F, pokud vycházíme z F+, ne z F.

Page 67: Teorie zpracování dat

Funkční závislosti

Definice

Jestliže XY a pro nějaké C X platí (X - C)+ = X+, říkáme, že atribut C je redundandní pro zadanou závislost.

Definice

Pokrytí, v jehož závislostech neexistují žádné redundandní atributy, nazýváme minimálním pokrytím.

Page 68: Teorie zpracování dat

Vlastnosti dekompozice relačních schémat

1. Zachování informace

Definice

Nechť R(A, f) je relační schéma, RO={R1(B), R2(C)} jeho rozklad, F

množina funkčních závislostí. Řekneme, že při rozkladu nedojde ke

ztrátě informace vzhledem k F, jestliže pro každou relaci R(A)

splňující F platí:

R = R1[B] [*] R2[C]

 Věta o ztrátě informace

Nechť RO = {R1(B), R2(C)} je dekompozice relačního schématu

R(A), tedy A = B C a F je množina funkčních závislostí. Pak při

rozkladu RO nedochází ke ztrátě informace vzhledem k F právě tehdy,

když

B C B - C nebo B C C - B.

Page 69: Teorie zpracování dat

Vlastnosti dekompozice relačních schémat

2. Zachování funkčních závislostí - ty představují integritní omezení původní relace a v zájmu zachování integrity s realitou musí být zachovány.

Definice

Nechť R(A, f) je relační schéma, RO = {R1(B), R2(C)} je jeho dekompozice s množinou závislostí F. Projekcí F[B] množiny funkčních závislostí F na množinu atributů B A nazveme množinu prvků XY z F+ takových, že X Y B.

Řekneme, že dekompozice RO zachovává množinu funkčních závislostí F, jestliže množina závislostí (F[B] F[C]) logicky implikuje závislosti v F, tedy

F+ = (F[B] F[C])+.

Page 70: Teorie zpracování dat

Normální formy relací

Definice

Jestliže relační schéma obsahuje pouze atomické atributy, říkáme, že je normalizovanou relací nebo že je v první normální formě (1NF).

Poznámka: Relaci v 1NF dostaneme z relace s neatomickými atributy buď doplněním opakovaných hodnot u vícehodnotových atributů (pak relace obsahuje redundanci), nebo dekompozicí relace na více relací.

Nejsou-li všechny atributy atomické, převedeme je na (obvykle několik) tabulky s atomickými atributy těmito technikami:

atribut opakující se n-krát: n atributů vedle sebe (pozor na formulaci dotazů) nebo nová tabulka s opakujícím se atributem a cizím klíčem,

atribut opakující se ?-krát: nová tabulka s cizím klíčem, složený atribut: rozklad na několik atomických atributů, odpadne

název složeného atributu.

Page 71: Teorie zpracování dat

Normální formy relací

Definice

Relační schéma je ve druhé normální formě (2NF), jestliže je v 1NF a každý sekundární atribut je úplně závislý na každém klíči schématu R.

Příklad: Je schéma Firmy(firma, adresa, zboží, množ) ve 2NF?

firma adresa

zboží

cena

AA XAA zb1 500

AA XAA zb2 400

BB XBB zb2 700

BB XBB zb3 200Řešení: F = {fa, f zc} ... klíč: f, z, adresa je závislá i na podklíči

Důsledky: redundance adresy firma přestane péct nevíme že existuje a kde

Page 72: Teorie zpracování dat

Normální formy relací

Definice

Nechť X,Y,Z A schématu R(A), nechť Y X, X Z = , YZ = a nechť F je množina závislostí. Jestliže XY F, YZ F+ a YX F+, pak také XZ F+ a ZX F+ a říkáme, že Z je tranzitivně závislá na X.

Poznámka: Podmínky Y X, X Z = , Y Z = vylučují všechny triviální závislosti, YX F+ říká, že Y není ekvivalentní s X.

XY, YZ, YX pak XZ a ZX

 Definice

Relační schéma je ve třetí normální formě (3NF), jestliže je ve 2NF a žádný sekundární atribut není tranzitivně závislý na žádném klíči schématu R.

Poznámka: Jiná formulace 3NF: Relační schéma je ve 3NF, neexistuje-li netriviální závislost mezi sekundárními atributy.

Page 73: Teorie zpracování dat

Normální formy relací

Definice

Relační schéma R(A) s množinou funkčních závislostí F je v Boyce - Coddově normální formě (BCNF), jestliže vždy, když X Y F+ a Y X, pak X obsahuje klíč schématu R.

Poznámka: X Y a Y X znamenají, že X obsahuje klíč (je to klíč nebo nadklíč), tedy existují jen závislosti na klíčích.

Věta: Každé schéma v BCNF je zároveň ve 3NF.

Jinak by existovalo porušení 2NF: závislost Y Ai, kde Y X a Ai je sekundární atr. (Y X odporuje

BCNF) 3NF: tranzitivní závislost X Y Ai, Y X (odporuje BCNF, Y

neobsahuje klíč).

Page 74: Teorie zpracování dat

Normální formy relací

Definice

Je dáno relační schéma R(A) s množinou atributů A. Nechť X, Y jsou podmnožiny A. Řekneme, že Y multizávisí na X, když pro každou možnou aktuální relaci R schématu R(A) a pro každé dva prvky a, b relace R, pro které platí a[X] = b[X], existují prvky u, v relace R takové, že

1. a [X] = b [X] = u [X] = v [X]

2. u [Y] = a [Y] a u [A-X-Y] = b [A-X-Y]

3. v [Y] = b [Y] a v [A-X-Y] = a [A-X-Y]

Označujeme X Y.

Definice

Pokud je relace ve 3NF a neobsahuje žádné multizávislosti, říkáme, že je ve čtvrté normální formě (4NF).

Page 75: Teorie zpracování dat

Algoritmy návrhu struktury databáze

Příklad: R(U, P, M, H, S, Z), F= {PU, HMP, HUM, PSZ, HSM, PHM}.Najděte dekompozici do BCNF.1. PSZ UPMHSZ PSZ PU PHSUM PU HMP PMHS PHM SHMVýsledkem rozkladu je R1 = {PSZ, PU, PHM, SHM}2. Jiným pořadím použití funkčních závislostí dostaneme jiný rozklad PS Z PUMHSZ PSZ P U PHSUM PU PH M PMHS PHM PHSVýsledkem je R2 = {PSZ, PU, PHM, PHS}

Page 76: Teorie zpracování dat

Algoritmy návrhu struktury databáze

Algoritmus syntézy (upravený Bernsteinův)1. určíme klíč K univerzálního schématu a vytvoříme min. nered. pokrytí2. závislosti roztřídíme do skupin tak, aby v každé skupině byly závislosti

se stejnou levou stranou; atributy závislostí každé skupiny vytvoří schéma jedné relace, vzniklého syntézou; atributy levé strany tvoří klíč vzniklého schématu

3. jsou-li v takto vzniklých schématech schémata s ekvivalentními klíči, je vhodné je sloučit v jedno schéma, protože pravděpodobně popisují stejný objekt; sloučení ovšem může vést k tranzitivitám a tak i k vyšší složitosti algoritmu

4. atributy, které se nevyskytují v žádné z funkčních závislostí F buď umístíme do samostatné relace, nebo je připojíme k některému ze schémat

5. neobsahuje-li žádné schéma klíč univerzálního schématu, připojíme k zajištění bezeztrátovosti k výsledku další relační schéma s množinou atributů K tvořících klíč univerzálního schématu.

Page 77: Teorie zpracování dat

Základní pojmy síťového modelu

Logický model databáze ... schéma

Externí schéma ... subschéma

Typ entity … typ záznamu (RECORD)

Atributy … komponenty

Entity … výskyty záznamů příslušného typu.

Množina výskytů záznamů deklarovaných typů … databáze

Výskyty záznamů rozlišeny hodnotou databázového klíče.

Vztah, vazba … množina (SET)

Typ vazby … typ setu, má jméno a je definován typem záznamu

vlastníka (OWNER) a typem záznamu člena setu

(MEMBER).

Vztah je reprezentován řadou výskytů setu.

Page 78: Teorie zpracování dat

Základní pojmy síťového modelu

Základní rozdíl proti relačnímu datovému modelu je v realizaci vztahů.

Jako u RDM realizovány jen vazby kardinality 1:M.

SDM zaznamenává vztah pomocí ukazatelů na vazební entitu. K datové tabulce je připojena systémová část s tolika odkazy, ke kolika jiným typům

záznamů je záznam v tabulce vázán.

Page 79: Teorie zpracování dat

Pravidla pro definování setů

Typ záznamu může být vlastníkem jednoho setu a členem jiného setu .Fak

Fak_katKat

Kat_zamZam

Typ záznamu může být členem libovolného počtu setů.

Fak Kolej

Stud_fak Stud Ubytov

Typ záznamu může být vlastníkem libovolného počtu setů.Fak

Fak_kat Stud_fakKat Stud

Page 80: Teorie zpracování dat

Pravidla pro definování setů

Vlastník a člen setu nemohou být téhož typu, unární vztah 1:N se realizuje prostřednictvím dalšího pomocného typu záznamu LINK.

ZamZam_link Link_zam

LINK

Vztah typu M:N není možno realizovat přímo a realizuje se pomocí dvou vazeb typu 1:M prostřednictvím spojovacího typu záznamu. Ten je členem v obou typech setů.

Učit Třída

Učit_učí Výuka_třídy

Výuka

Page 81: Teorie zpracování dat

Jazyk pro definici dat

Deklarace schématu SCHEMA NAME IS jméno_schématu

RECORD SECTIONdeklarace_záznamů

SET SECTIONdeklarace_setů

 Deklarace subschématu• můžeme vynechat komponenty záznamů, záznamy nebo některé sety. • komponentám záznamů je možno přiřadit jiný datový typ, změnit

pořadí uvnitř záznamu, přiřadit jiná jména. • neuvádíme vlastnosti definované ve schématu.

SUBSCHEMA jméno_subschématu WITHIN jméno_schématu RECORD SECTION

deklarace_záznamů SET SECTION

deklarace_setů

Page 82: Teorie zpracování dat

Jazyk pro manipulaci s daty

Paměť pro jeden ČU jméno ... Záznam Učitel

výskyt každého ČP název ... Záznam Předmět

typu záznamu ČU ČP hodin Záznam Úvazek

Ukazatele DB-KEY program Current of PROGRAM

aktuálních DB-KEY Učitel Current of Učitel

výskytů DB-KEY Předmět Current of Předmět

záznamů DB-KEY Úvazek Current of Úvazek

. . .

Ukazatele DB-KEY U-Ú Current of Učitel_učí

uvnitř setu DB-KEY U-P Current of Učí_předmět

. . .

Systémové proměnné

DB-STATUS . . .

Příklad: pracovní oblast pro databázi FAKULTA

Page 83: Teorie zpracování dat

Jazyk pro manipulaci s daty – seznam příkazů

FIND vyhledá výskyt záznamu v DB a definuje jej za aktuální záznam programu, aktuální záznam příslušného typu záznamu, případně aktuálním záznamem setů, v nichž je záznam zařazen … databázový klíč vyhledaného výskytu záznamu je uložen do položek Current of Program, příslušného Current of RECORD a příslušných Current of SET

GET přesune do uživatelské oblasti aktuální záznam programuSTORE uloží nový výskyt záznamu do DB, definuje jej za aktuální

záznam programu, aktuální záznam příslušného typu záznamu a za aktuální záznamy setů, do nichž je případně automaticky zařazen

MODIFY modifikuje aktuální záznam programuERASE vymaže aktuální záznam programu z DB

CONNECT vloží aktuální záznam programu do výskytu setuDISCONNECT vyjme aktuální záznam programu z výskytu setuRECONNECT přesune aktuální záznam do jiného setu

Page 84: Teorie zpracování dat

Hierarchický datový model

• Používán hlavně v počátcích rozvoje databázových systémů, zjednodušený síťový model.

• Zobrazíme-li záznamy jako uzly a vazby jako hrany grafu, odpovídá databázi v síťovém modelu obecný graf. Databázi v hierarchickém modelu odpovídá strom (graf bez cyklů) nebo les (množina stromů) .

• Záznam nemůže patřit do více než jednoho setu.

• Při popisování se používá rodinné terminologie - místo vlastník otec, místo člen syn.

vlastník otec

členové synové

síťový model hierarchický model


Recommended