teorie zpracování dat

35
1 Teorie zpracování dat FYZICKÁ ORGANIZACE DAT

Upload: gay-moses

Post on 03-Jan-2016

23 views

Category:

Documents


1 download

DESCRIPTION

Teorie zpracování dat. FYZICKÁ ORGANIZACE DAT. Architektura datab á zov é ho syst é mu. F yzick á organizace dat. V databázové technologii o fyzickou strukturu dat v databázi se stará SŘBD (na základě příkazů JDD) o fyzickou manipulaci s daty v databázi se stará SŘBD - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Teorie zpracování dat

1

Teorie zpracování dat

FYZICKÁ ORGANIZACE DAT

Page 2: Teorie zpracování dat

2

Architektura databázového systému

Page 3: Teorie zpracování dat

3

Fyzická organizace dat V databázové technologii

• o fyzickou strukturu dat v databázi se stará SŘBD

(na základě příkazů JDD)

• o fyzickou manipulaci s daty v databázi se stará SŘBD

(na základě příkazů JMD)

Požadavek

co nejrychlejší provádění manipulací s daty

Řešení

vhodné fyzické uložení záznamů v databázi

Page 4: Teorie zpracování dat

4

Fyzická organizace dat Základní příkazy definice dat

  vytvoření struktury nové tabulky CREATE TABLE

  modifikace struktury tabulky ALTER TABLE

  zrušení tabulky včetně struktury DROP TABLE

4 základní (logické) databázové operace

  vyhledávání záznamu SELECT, FIND

  vložení nového záznamu INSERT

  modifikace záznamu UPDATE, MODIFY

  rušení záznamu DELETE

Page 5: Teorie zpracování dat

5

Fyzická organizace dat Vnější pamětiDisk - jedna nebo svazek kruhových magnetických desek.Stopy - soustředné kružnice na disku, do nichž se zapisují data. Deska disku je rozdělena na kruhové výseče.Sektor - část stopy v jedné výseči, nejmenší adresovatelná jednotka na disku. Válec, cylindr - všechny stopy nad sebou, pokud disk tvoří několik desek.Disková adresa (na fyzické úrovni) - označení diskové jednotky, číslo cylindru, stopy a sektoru.Stránka (blok) - základní jednotka informace pro přenos dat mezi pamětí vnitřní a vnější, obvykle několik (1, 2, 4, …) sektorů.Rychlost - přenosu mezi diskem a pamětí - operací ve vnitřní paměti

Page 6: Teorie zpracování dat

6

Fyzická organizace dat Vnější paměti

sektor

stopa

Page 7: Teorie zpracování dat

7

Fyzická organizace dat Vnější pamětiVztah velikosti bloků a záznamů

bloky

záznamy

Page 8: Teorie zpracování dat

8

Fyzická organizace dat Softwarová podpora práce s databázíVyhledat záznam (= entitu v tabulce) na disku znamená tři etapy

zpracování:1. uživatel logická podmínka (pomocí příkazů SŘBD, dotazovacím

jazykem)2. logická podmínka logická adresa záznamu (pořadové číslo nebo

adresa záznamu v rámci souboru) ... řeší SŘBD3. logická adresa záznamu číslo stránky číslo válce, stopy a

sektoru (fyzická adresa záznamu) ... řeší OS

S rychlostí přístupu k datovým souborům souvisí také využívání vyrovnávací paměti, její velikosti a ovládání. Ovládání se řeší na několika úrovních: v rámci OS, nastavením velikosti CACHE paměti, případně si vyrovnávací paměť řídí SŘBD sám.

Page 9: Teorie zpracování dat

9

Sekvenční souboryPř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 10: Teorie zpracování dat

10

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 11: Teorie zpracování dat

11

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 12: Teorie zpracování dat

12

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 13: Teorie zpracování dat

13

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 14: Teorie zpracování dat

14

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 15: Teorie zpracování dat

15

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 16: Teorie zpracování dat

16

Soubory s přímým adresováním Plýtvání kapacitou paměti - proto speciální funkce hašovací (hash

function), která transformuje původní interval adres do číselného intervalu požadované velikosti. Velikost výsledného intervalu je zvolena tak, aby zhruba odpovídala skutečnému počtu záznamů.

Nejednoznačnost výsledné adresy – adresa skupiny záznamů, tam záznamy zřetězeně, jsou to krátké seznamy, je přístup k nim rychlý.

osob adr=hash(klíč) adr osob jméno ...3456 1

1243 ...

3333

5734 43 1243 Kovář František

2578 ...

9999 78 2578 Sedlák Jiří

3579 ...

99 9999 Forman Zdeněk

100

Page 17: Teorie zpracování dat

17

Soubory s přímým adresováním Nejednoznačnost výsledku hašování se řeší např. zřetězením

záznamů se stejnou adresou.

Page 18: Teorie zpracování dat

18

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 19: Teorie zpracování dat

19

Indexové a indexované souborySekvenč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 20: Teorie zpracování dat

20

Indexové a indexované souboryPrimá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 21: Teorie zpracování dat

21

Indexové a indexované souborySekundární index – invertovaný soubor

plat adresa nebo plat adresa

3000 1 3000 1,2,6

3000 2 4000 3

3000 6 5000 4,5,8

4000 3 ...

...

Page 22: Teorie zpracování dat

22

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 23: Teorie zpracování dat

23

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 24: Teorie zpracování dat

24

Hierarchické indexováníData ind0 ind1 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 25: Teorie zpracování dat

25

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 26: Teorie zpracování dat

26

Data uka klíč uka klíč uka klíč

klíč atr1 ... 2 023

888 13 125

023 7 234 023

987 ... 345

799 ... 023

802 678

678 12 345

234 9 456

996 10 567 678

456 ... 996

567

933 6 678

345 4 799

125 5 802

Page 27: Teorie zpracování dat

27

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 28: Teorie zpracování dat

28

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 29: Teorie zpracování dat

29

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 30: Teorie zpracování dat

30

Soubory s proměnnou délkou záznamu

Požadavky z reality

• opakující se položky známý počet krát

• opakující se položky neznámý počet krát

• skupinové položky

• dlouhé texty proměnné délky

• záznamy obrázků, zvuků a jiné datové typy

Nové problémy, řešení

• úvahy o proměnné délce záznamu jen v logickém modelu, implementace pomocí pevné délky

• nové SŘBD připouštějí datové typy proměnné délky a implementují je různě

Page 31: Teorie zpracování dat

31

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 32: Teorie zpracování dat

32

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 33: Teorie zpracování dat

33

Soubory s proměnnou délkou záznamu

pseudoproměnná délka záznamu realita

atr1 atr2 atr3 počet ... hod1 nil

1 hod2 ukaz

5 hod3

2

4

atr1 atr2 atr3 a:multi ... ... ...

realizace pomocí odkazů

Page 34: Teorie zpracování dat

34

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 35: Teorie zpracování dat

35

Soubory s proměnnou délkou záznamu

3. proměnná délka záznamu s jinou organizací

• zřetězené organizace, přímé adresování, indexování i další organizace je možno implementovat podobně, jako při pevné délce záznamu

• rozdíl v tom, že místo recno se zaznamenává skutečná relativní adresa záznamu v souboru