38
Pretože táto oblasť je v súčasnosti predmetom intenzívneho výskumu neexistuje obecne platná definícia distribuovaného databázového systému. Avšak existuje mnoho definícií, ktorých celkom ucelený prehľad uvádza Jandoš [ Jandoš92]. Podľa Date-ho [ Date96] je definovaný distribuovaný databázový systém nasledovne: Distribuovaný databázový systém je množina uzlov počítačovej siete, navzájom prepojených v komunikačnej sieti pričom: 1.Každý z uzlov je samostatný databázový systém, ale 2.Tieto uzly navzájom spolupracujú tak, že z každého uzla je možné sprístupniť údaje uložené na inom uzle presne tak, akoby boli umiestnené na vlastnom uzle. Samotná databáza je množina navzájom prepojených databáz, ktoré sú umiestnené na rôznych uzloch tak, že užívateľ s nimi manipuluje akoby boli umiestnené v centralizovanej databáze. O celé riadenie databázy sa stará Distribuovaný systém riadenia bázy dát, ktorý spolupracuje s lokálnymi systémami riadenia databáz . Jeho hlavné funkcie sú: 1.Riadenie globálnych katalógov dát o distribuovaných dátach. 2.Definovanie distribuovaných dát. 3.Distribuovaná sémantická kontrola. 4.Distribuované spracovanie dotazov vrátane optimalizácie dotazov vrátane vzdialeného prístupu k dátam. 5.Distribuované riadenie transakcií vrátane zabezpečenia paralelného spracovania.

Pretože táto oblasť je v súčasnosti predmetom intenzívneho ...pk-info.spsepn.edu.sk/.../ele/rozne/sql_man/dbs_utc/txt_w…  · Web viewPretože táto oblasť je v súčasnosti

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Pretože táto oblasť je v súčasnosti predmetom intenzívneho ...pk-info.spsepn.edu.sk/.../ele/rozne/sql_man/dbs_utc/txt_w…  · Web viewPretože táto oblasť je v súčasnosti

Pretože táto oblasť je v súčasnosti predmetom intenzívneho výskumu neexistuje obecne platná definícia distribuovaného databázového systému. Avšak existuje mnoho definícií, ktorých celkom ucelený prehľad uvádza Jandoš [ Jandoš92]. Podľa Date-ho [ Date96] je definovaný distribuovaný databázový systém nasledovne:

Distribuovaný databázový systém je množina uzlov počítačovej siete, navzájom prepojených v komunikačnej sieti pričom:1.Každý z uzlov je samostatný databázový systém, ale2.Tieto uzly navzájom spolupracujú tak, že z každého uzla je

možné sprístupniť údaje uložené na inom uzle presne tak, akoby boli umiestnené na vlastnom uzle.

Samotná databáza je množina navzájom prepojených databáz, ktoré sú umiestnené na rôznych uzloch tak, že užívateľ s nimi manipuluje akoby boli umiestnené v centralizovanej databáze.O celé riadenie databázy sa stará Distribuovaný systém riadenia bázy dát, ktorý spolupracuje s lokálnymi systémami riadenia databáz . Jeho hlavné funkcie sú:1.Riadenie globálnych katalógov dát o distribuovaných

dátach.2.Definovanie distribuovaných dát.3.Distribuovaná sémantická kontrola.4.Distribuované spracovanie dotazov vrátane optimalizácie

dotazov vrátane vzdialeného prístupu k dátam.5.Distribuované riadenie transakcií vrátane zabezpečenia

paralelného spracovania.

Dôležitým aspektom je i nutnosť alebo snaha odstrániť nevýhody vyplývajúce z centralizovaného spôsobu ukladania dát. Nie vždy je tento spôsob najefektívnejší a nie vždy vyhovuje spôsobu práce v užívateľskej organizácii. Zaťaženie komunikačných liniek, zdieľanie dát, spoľahlivosť, dostupnosť, rýchlosť spracovania sú aspekty, ktoré vedú k hľadaniu takej architektúry databázového systému, ktorá by umožnila fyzické rozptýlenie dát na rôznych miestach a zároveň umožnila centralizovaný pohľad na dáta podobne ako je to v klasických databázových systémoch.

Page 2: Pretože táto oblasť je v súčasnosti predmetom intenzívneho ...pk-info.spsepn.edu.sk/.../ele/rozne/sql_man/dbs_utc/txt_w…  · Web viewPretože táto oblasť je v súčasnosti

12 vlastností DDBSC.J. Date [ Date96] definoval 12 vlastností, ktoré by mal splňovať ideálny distribuovaný databázový

systém, čo predstavuje akýsi cieľový stav výskumu a vývoja v tejto oblasti. Sú to nasledovné vlastnosti:

1.Lokálna autonómnosť.2.Nezávislosť na centrálnom uzle.3.Súvislá prevádzka.4.Nezávislosť na umiestnení dát.5.Nezávislosť na fragmentácii dát.6.Nezávislosť na replikácii dát.7.Spracovanie distribuovaných dotazov.8.Distribuované riadenie transakcií.9.Nezávislosť na technickom vybavení.10.Nezávislosť na operačnom systéme.11.Nezávislosť na sieti.12.Nezávislosť na lokálnych databázových systémov.

Nie všetky z týchto dvanástich vlastností nie sú na sebe závislé, a ani nie sú všetky rovnako dôležité. Avšak sú nutné pre stanovenie technológie distribuovaného spracovania a jej funkcionalitu v danom

konkrétnom prípade nasadenia.

Page 3: Pretože táto oblasť je v súčasnosti predmetom intenzívneho ...pk-info.spsepn.edu.sk/.../ele/rozne/sql_man/dbs_utc/txt_w…  · Web viewPretože táto oblasť je v súčasnosti

Výhody a nevýhody DDBS· Lokálna autonómnosť,· Zvýšenie výkonu,· Zvýšenie spoľahlivosti,· Zvýšenie dostupnosti dát,· Vyššia zdieľatelnosť dát,· Rozširovatelnosť,· Ekonomická efektívnosť.

Samozrejme, že distribuované spracovanie dát prináša aj celý rad nevýhod, ktoré možno zhrnúť nasledovne:

· Nedostatok skúseností,· Zložitosť nového systému,· Zvýšenie ceny,· Riadenie distribuovaného spracovania,· Vyššie nároky na bezpečnosť.

Hoci sa distribuované databázové systémy využívajú už niekoľko rokov ich skutočný rozvoj nastal až po masívnom rozšírení a skvalitnení počítačových sietí. Tento trend je charakteristickým pre deväťdesiate roky.

Page 4: Pretože táto oblasť je v súčasnosti predmetom intenzívneho ...pk-info.spsepn.edu.sk/.../ele/rozne/sql_man/dbs_utc/txt_w…  · Web viewPretože táto oblasť je v súčasnosti

Klasifikácia problémov je nasledovná:

· Návrh distribuovaných databáz.· Distribuované spracovanie dotazov.· Distribuované riadenie katalógov.· Distribuované riadenie transakcií.· Distribuované riadenie paralelizmu.· Zabezpečenie spoľahlivosti.

Riadenie katalógov

Spracovanie dotazov

Návrh distr. DB

Spoľahlivosť

Riadenie transakcií

Riadenie paralelizmu

Page 5: Pretože táto oblasť je v súčasnosti predmetom intenzívneho ...pk-info.spsepn.edu.sk/.../ele/rozne/sql_man/dbs_utc/txt_w…  · Web viewPretože táto oblasť je v súčasnosti

ARCHITEKTÚRA DATABÁZ PRE DISTRIBUOVANÉ SPRACOVANIE

G l o b á l n aE x t e r n áS c h é m a 1

G l o b á l n aE x t e r n áS c h é m a 2

G l o b á l n aE x t e r n áS c h é m a n

G l o b á l n aK o n c e p t u á l n aS c h é m a

S c h é m ar o z m i e s t n e n i a

L o k á l n aE x t e r n áS c h é m a 1

L o k á l n aK o n c e p t u á l n aS c h é m a 1

L o k á l n aI n t e r n áS c h é m a 1

L o k á l n aE x t e r n áS c h é m a 2

L o k á l n aK o n c e p t u á l n aS c h é m a 2

L o k á l n aI n t e r n áS c h é m a 2

O b r . 3 . 1 A r c h i t e k t ú r a d i s t r i b u o v a n e j d a t a b á z y

U z o l 2U z o l 1

. . .

Page 6: Pretože táto oblasť je v súčasnosti predmetom intenzívneho ...pk-info.spsepn.edu.sk/.../ele/rozne/sql_man/dbs_utc/txt_w…  · Web viewPretože táto oblasť je v súčasnosti

UžívateľskýInterface

Kontrolasémantiky

Spracovanieglobálnych dotazov

Riadenietransakcií

Lokálnespracovanie dotazov

Riadenietransakcií

Lokálnesprístupnenie dát

GlobálnaExternáSchéma

GlobálnaKonceptuálnaSchéma

Schémarozmiestnenia

LokálnaExternáSchéma

LokálnaKonceptuálnaSchéma

LokálnaInternáSchéma

Aplikačná časť

Datová časť

LokálnaDatabáza

Obr 3.2 Funkcionálna architektúra

Page 7: Pretože táto oblasť je v súčasnosti predmetom intenzívneho ...pk-info.spsepn.edu.sk/.../ele/rozne/sql_man/dbs_utc/txt_w…  · Web viewPretože táto oblasť je v súčasnosti

MODELOVANIE DISTRIBUOVANÝCH DATABÁZ

Problematika modelovania databáz v distribuovanom informačnom systéme alokovania databáz (Database Allocation Problem (DAP))

Levin and Morgan v roku 1975 [LEVIN75] navrhli tvorbu distribuovaných systémov podľa troch hľadísk (viď Obr. 4.1 ):

1. Zdieľanie - zdieľanie dát alebo programov2. Spôsob prístupu - statický alebo dynamický pohľad na aplikáciu3. Úroveň poznania - znalosť návrhára databázy akým spôsobom bude užívateľ pristupovať

k databáze

Prístup

Statický prístup

Dáta

Dáta +program

Neúplnáinformácia

Úroveňznalostí

Úplnáinformácia

Obr. 4.1 Možnosti distribúcie dát

Dynamický prístup

Zdieľanie

Na obrázku podľa Valduriesa a Ozsu [Ozsu 91 ] vidno ako zdieľanie dát a programov reprezentuje jednu dimenziu, ktorá dovoľuje stanoviť spôsob zdieľania od jedného extrému, ktorým je obmedzenie zdieľania až po úplnú replikáciu dátových objektov a programov. Zložitosť problematiky znásobuje i možnosť heterogénnych systémov, čo predstavuje dosť často takmer neriešiteľnú prekážku vhodného návrhu.

Druhým hľadiskom je statický alebo dynamický prístup v závislosti na tom, akým spôsobom, kedy a odkiaľ budeme vykonávať dotazy na jednotlivé objekty databázy v čase.

Tretí rozmer predstavuje situáciu keď znalosť projektanta databázy o tom, aké dotazy, ktorými užívateľmi budú formulované, a ktoré objekty databázy budú súčasťou dotazu. Samozrejme, že teoretickou možnosťou je ich úplná znalosť , ale prakticky je veľmi obtiažne ak nie nemožné vopred ich formulovať .

V súčasnej dobe väčšina prác zaoberajúcich sa danou problematikou je sústredená na problém návrhu dátového modelu v nasledovných krokoch a to:

· návrh konceptuálnej schémy databázy· návrh fyzickej databázy · fragmentácia dátového modelu a objektov databázy,· alokácia fragmentov databázy .

Page 8: Pretože táto oblasť je v súčasnosti predmetom intenzívneho ...pk-info.spsepn.edu.sk/.../ele/rozne/sql_man/dbs_utc/txt_w…  · Web viewPretože táto oblasť je v súčasnosti

FRAGMENTÁCIA DÁTOVÉHO MODELU

Samotný výskyt databázy je nutné chápať ako množinu relácií, ktorých výskytom sú tabuľky. Z nich je možné aplikáciou relačnej algebry získať výskyty pohľadov ako odvodených tabuliek. Relácie môžu byť dekomponované na menšie objekty a to v zásade dvomi spôsobmi:

· horizontálnou fragmentáciou

· vertikálnou fragmentáciou

Ich kombináciou je možné vytvoriť tzv. hybridnú fragmentáciu.Dekompozícia relácií na fragmenty patrí k dôležitým rozhodnutiam, ktoré majú zásadný vplyv na dobu

spracovania dotazu. Stupeň fragmentácie sa pohybuje od extrému, pri ktorom reláciu nefragmentujeme, až po druhý extrém, keď ju fragmentujeme až na úroveň n-tíc relácie (pri horizontálnej fragmentácii) alebo dokonca až na úroveň jednoprvkových podmnožín atribútov relácie (pri vertikálnej fragmentácii).

Keďže prakticky každú n-ticu relácie nie je možné chápať ako fragment, pretože úloha by bola neriešiteľná, návrh fragmentov musí vychádzať z určenia skupín n-tíc (pri horizontálnej fragmentácii) alebo atribútov (pri vertikálnej fragmentácii) na základe spoločných vlastností z hľadiska ich alokácie. Takže každá množina n-tíc s rovnakou vlastnosťou tvorí fragment.

Samotná fragmentácia sa vykoná podobne ako proces normalizácie relácií, ale okrem toho je nutné zabezpečiť tri podmienky:

· Kompletnosť

· Rekonštruovatelnosť

· Nespojiteľnosť

Page 9: Pretože táto oblasť je v súčasnosti predmetom intenzívneho ...pk-info.spsepn.edu.sk/.../ele/rozne/sql_man/dbs_utc/txt_w…  · Web viewPretože táto oblasť je v súčasnosti

Kompletnosť

Ak výskyt relácie R je dekomponovaný na fragmenty R R Rn1 2, ,..., , potom každá položka sa vyskytuje v  R a taktiež sa vyskytuje aspoň v jednom z fragmentov Ri . V prípade horizontálnej fragmentácie je položkou celá n-tica a v prípade vertikálnej fragmentácie atribút.Táto vlastnosť je známa ako vlastnosť bezstratovej dekompozície čo zaručuje, že dáta sú z globálnej relácie transformované do fragmentov bez akejkoľvek straty.

Rekonštruovatelnosť

Ak relácia R je dekomponovaná na fragmenty R R Rn1 2, ,..., , malo by byť možné definovať relačný operátor taký, že platí

R Ri i n1..

Operátor sa líši podľa spôsobu fragmentácie. Je iný pre horizontálnu a iný pre vertikálnu fragmentáciu. Rekonštruovatelnosť globálnej relácie z jej fragmentov zaisťuje zachovanie integritných obmedzení definovaných pre dáta relácie.

Nespojiteľnosť

Ak relácia R je horizontálne dekomponovaná na fragmenty R R Rn1 2, ,..., a dátová položka d i patrí do fragmentu R j , potom sa nevyskytuje v žiadnom z fragmentov Rk (k<>j). Toto kritérium zaručuje, že fragmenty relácie po horizontálnej fragmentácii sú nespojiteľné. V prípade vertikálnej fragmentácie, atribúty tvoriace primárny kľúč sa vyskytujú vo všetkých fragmentoch. Preto pri vertikálnej fragmentácii nespojiteľnosť sa týka atribútov, ktoré netvoria primárny kľúč relácie.

Page 10: Pretože táto oblasť je v súčasnosti predmetom intenzívneho ...pk-info.spsepn.edu.sk/.../ele/rozne/sql_man/dbs_utc/txt_w…  · Web viewPretože táto oblasť je v súčasnosti

Horizontálna fragmentácia

Horizontálna fragmentácia je vykonaná pomocou operácie relačnej algebry Výber (Selection) na globálnej relácii podľa databázovej schémy. Umožní rozdeliť reláciu na niekoľko fragmentov s totožnou schémou relácie tak, aby sme pomocou operácie zjednotenia dokázali rekonštruovať pôvodnú reláciu. Každý z fragmentov má kardinalitu relácie takú, že súčet kardinalít všetkých fragmentov dáva kardinalitu pôvodnej relácie.

Obr. Horizontálna fragmentácia relácie R na fragmenty R1, R2, R3, R4

Relácia R je horizontálne dekomponovaná na fragmenty R R Rn1 2, ,..., , pričom

Ri CiR ( )

i n1..

a pre rekonštrukciu relácie platí

R Ri ( ) i n1..

kde

- je operácia relačnej algebry Výber s podmienkou Ci v konjuktívno normálnej forme pre daný fragment Ri .

- je operácia relačnej algebry Zjednotenie.

Pre fragmentovanie relácií, ktoré neobsahujú atribúty, podľa ktorých by bolo možné fragmentovať, sa vykonáva, tzv. odvodená fragmentácia spočívajúca v jednoduchej myšlienke, na základe ktorej sa fragmentovaná relácia spojí pomocou operácie polospojenia (SemiJoin) s reláciou, ktorú vieme fragmentovať na základe daného kritéria. Reláciu, ktorá vznikne spojením, fragmentujeme potom rovnako, ako je to pri klasickej horizontálnej fragmentácii.

Fragment R4

Fragment R3

Fragment R2

R4

R3

R2

R1 Fragment R1

Relácia R

Page 11: Pretože táto oblasť je v súčasnosti predmetom intenzívneho ...pk-info.spsepn.edu.sk/.../ele/rozne/sql_man/dbs_utc/txt_w…  · Web viewPretože táto oblasť je v súčasnosti

Odvodená horizontálna fragmentácia

Odvodená horizontálna fragmentácia je vykonaná podobne ako horizontálna fragmentácia pomocou operácie relačnej algebry Výber (Selection) na globálnej relácii podľa databázovej schémy. Avšak predtým je nutné vykonať spojenie relácie, ktorú fragmentujeme s reláciou, ktorá obsahuje atribúty podľa ktorých je fragmeentácia možná. Potom je možné rozdeliť reláciu na niekoľko fragmentov s totožnou schémou relácie tak, aby sme pomocou operácie zjednotenia dokázali rekonštruovať pôvodnú reláciu.

Relácia R' je odvodene horizontálne dekomponovaná na fragmenty R R Rn1 2, ,..., , ktoré vzniknú z relácie R , pre ktorú platí, že ju získame projekciou a polospojením (SEMIJOIN) relácie R' , ktorú fragmentujeme a relácie S , o ktorej vieme, že obsahuje atrribúty podľa ktrorých je možné fragmentáciu vykonať.

KR

RR S

'( ' )

i n1..

kde

- je operácia relačnej algebry Projekcia.

K - operácia relačnej algebry Spojenie cez množinu atribútov K.

Ri CiR ( )

i n1..

alebo

Ri Ci RR

KS

'

'

i n1..

a pre rekonštrukciu relácie platí

R Ri' ( )

i n1..kde

- je operácia relačnej algebry Výber s podmienkou Ci v konjuktívno normálnej forme pre daný fragment Ri .

- je operácia relačnej algebry Zjednotenie.

Pre fragmentovanie relácií, ktoré neobsahujú atribúty, podľa ktorých by bolo možné fragmentovať, sa vykonáva, tzv. odvodená fragmentácia spočívajúca v jednoduchej myšlienke, na základe ktorej sa fragmentovaná relácia spojí pomocou operácie polospojenia (SemiJoin) s reláciou, ktorú vieme fragmentovať na základe daného kritéria. Reláciu, ktorá vznikne spojením, fragmentujeme potom rovnako, ako je to pri klasickej horizontálnej fragmentácii.

Page 12: Pretože táto oblasť je v súčasnosti predmetom intenzívneho ...pk-info.spsepn.edu.sk/.../ele/rozne/sql_man/dbs_utc/txt_w…  · Web viewPretože táto oblasť je v súčasnosti

Vertikálna fragmentáciaVertikálna fragmentácia je vykonaná pomocou operácie relačnej algebry Projekcia (Projection) na

globálnej relácii podľa databázovej schémy. Každý z fragmentov má kardinalitu totožnú s kardinalitou pôvodnej relácie. Množina atribútov schémy fragmentu je podmnožinou atribútov schémy pôvodnej relácie, pričom každý fragment obsahuje atribúty tvoriace primárny kľúč pôvodnej relácie. To nám umožní rekonštruovať pôvodnú reláciu pomocou operácie relačnej algebry Spojenie.

Obr. Vertikálna fragmentácia relácie R na fragmenty R1, R2, R3, R4

Relácia R je vertikálne dekomponovaná na fragmenty R R Rn1 2, ,..., , pričom

Ri R ( )

i n1..a pre rekonštrukciu relácie platí

KR Ri ( )

i n1..kde

- je operácia relačnej algebry Projekcia.

K - operácia relačnej algebry Spojenie cez množinu atribútov K.

Hybridná fragmentácia

R4R3R2R1

Fragmenty

R4

R3

R2

Relácia R

R1

Primárny kľúč

Page 13: Pretože táto oblasť je v súčasnosti predmetom intenzívneho ...pk-info.spsepn.edu.sk/.../ele/rozne/sql_man/dbs_utc/txt_w…  · Web viewPretože táto oblasť je v súčasnosti

V mnohých praktických situáciách je výhodné využiť možnosť kombinácie vertikálnej a horizontálnej fragmentácie, čo umožní dekomponovať model na potrebné fragmenty pri splnení požadovaných vlastností dátového modelu. Podľa toho, v akom poradí vykonávame jednotlivé spôsoby fragmentácie aj hybridná fragmentácia sa delí na:

· Horizontálne vertikálnu fragmentáciu· Vertikálne horizontálnu fragmentáciu·Horizontálne vertikálna fragmentácia

Horizontálne vertikálna fragmentácia je vykonaná pomocou operácie relačnej algebry Výber (Selection) na globálnej relácii podľa databázovej schémy s následnou dekompozíciou každého fragmentu pomocou operácie Projekcia s určenou podmnožinou atribútov relácie R.

Relácia R je horizontálne dekomponovaná na fragmenty R R Rn1 2, ,..., , pričom

Ri CiR ( )

i n1..

a každý fragment Ri je vertikálne dekomponovaný na fragmenty Rij

Rij Ri ( ) j m1..

a pre rekonštrukciu relácie platí

KR Riji ( ) j m1..

R Ri ( ) i n1..

Page 14: Pretože táto oblasť je v súčasnosti predmetom intenzívneho ...pk-info.spsepn.edu.sk/.../ele/rozne/sql_man/dbs_utc/txt_w…  · Web viewPretože táto oblasť je v súčasnosti

Vertikálne horizontálna fragmentáciaVertikálne horizontálna fragmentácia je vykonaná pomocou operácie relačnej algebry Projekcia na globálnej relácii s určenou podmnožinou atribútov podľa databázovej schémy s následnou dekompozíciou každého fragmentu pomocou operácie Výber s definovanou podmienkou.

Relácia R je vertikálne dekomponovaná na fragmenty R R Rn1 2, ,..., ,

pričom R j R ( ) j m1..

a každý fragment R j je horizontálne dekomponovaný na fragmenty Rij

Rij CiR j ( )

i n1..

a pre rekonštrukciu relácie Ri platíR Riji ( ) j m1..

KR Ri ( ) i n1..

Relácia R

R1

R2 R3

R4

R6R5

R1

R2

R3

R4

R5

R6

Obr.5.3. Hybridná fragmentácia relácie R na fragmenty R1, R2, R3, R4, R5, R6

Page 15: Pretože táto oblasť je v súčasnosti predmetom intenzívneho ...pk-info.spsepn.edu.sk/.../ele/rozne/sql_man/dbs_utc/txt_w…  · Web viewPretože táto oblasť je v súčasnosti

Pre praktické použitie sú fragmenty definované v príslušnom definičnom databázovom jazyku ako odvodené (virtuálne ) relácie, ktoré sa umiestňujú v uzloch siete a samotná definícia je uložená aj v katalógoch, vrátane svojho umiestnenia. Pri existencii replík sú tu uložené informácie aj informácie o ich umiestnení, prípadne o tom, či sa jedná o hlavnú kópiu. Pri definovaní odvodených relácií je nutné použiť príkazy relačnej algebry zabezpečujúce samotnú tvorbu fragmentu.

Ak použijeme formu zápisu s pseudopríkazmi DDL jazyka SQL, potom môžeme pre definovanie rôznych spôsobov fragmentácie písať:

· Horizontálna fragmentáciaPri rozdelení relácie s názvom AnyRelation na tri fragmenty F1, F2, F3, dostávame tri definície:

DEFINE FRAGMENT F1 AS SELECT * FROM AnyRelation

WHERE Condition1;

DEFINE FRAGMENT F2 AS SELECT * FROM AnyRelation WHERE Condition2;

DEFINE FRAGMENT F3 AS SELECT * FROM AnyRelation WHERE Condition3;

a pre vytvorenie pôvodnej relácie musí platiť

CREATE VIEW AnyRelation ASSELECT * FROM F1

UNIONSELECT * FROM F2

UNIONSELECT * FROM F3

Page 16: Pretože táto oblasť je v súčasnosti predmetom intenzívneho ...pk-info.spsepn.edu.sk/.../ele/rozne/sql_man/dbs_utc/txt_w…  · Web viewPretože táto oblasť je v súčasnosti

· Odvodená horizontálna fragmentácia

Pri rozdelení relácie s názvom AnyRelation1 na dva fragmenty F4, F5, máme dve definície, ale s pomocou pripojenej relácie AnyRelation, ktorá obsahuje atribúty podmienky Condition4 a podmienky Condition5:

DEFINE FRAGMENT F4 AS SELECT AnyRelation1.* FROM AnyRelation, AnyRelation1

WHERE Condition4 AND

AnyRelation.PK = AnyRelation1.FK

DEFINE FRAGMENT F5 AS SELECT AnyRelation1.* FROM AnyRelation, AnyRelation1

WHERE Condition5 AND

AnyRelation.PK = AnyRelation1.FK

a pre vytvorenie pôvodnej relácie musí platiť

CREATE VIEW AnyRelation1 AS SELECT * FROM F4

UNIONSELECT * FROM F5

Page 17: Pretože táto oblasť je v súčasnosti predmetom intenzívneho ...pk-info.spsepn.edu.sk/.../ele/rozne/sql_man/dbs_utc/txt_w…  · Web viewPretože táto oblasť je v súčasnosti

· Vertikálna fragmentáciaPri rozdelení relácie s názvom AnyRelation2 na dva fragmenty F6, F7, máme dve definície, v ktorých sú

použité dve navzájom disjunktné podmnožiny atribútov s podmienkou, že primárny kľúč musí byť súčasťou každého nového fragmentu.

DEFINE FRAGMENT F6 AS SELECT PK,

Subset1_of_attributes_AnyRelation2 FROM AnyRelation2

DEFINE FRAGMENT F7 ASSELECT PK,

Subset2_of_attributes_AnyRelation2 FROM AnyRelation2

a pre vytvorenie pôvodnej relácie musí platiť

CREATE VIEW AnyRelation2 AS SELECT PK, Subset1_of_attributes_F6,

Subset2_of_attributes_F7

FROM F6, F7

WHERE F6.PK = F7.PK

Page 18: Pretože táto oblasť je v súčasnosti predmetom intenzívneho ...pk-info.spsepn.edu.sk/.../ele/rozne/sql_man/dbs_utc/txt_w…  · Web viewPretože táto oblasť je v súčasnosti

ALOKÁCIA DATABÁZ

Po ukončení fragmentácie je potrebné rozhodnúť, ktoré uzly siete sa budú využívať ako databázové servery distribuovaného systému a ako umiestnime fragmenty distribuovanej databázy v jednotlivých uzloch siete. V rámci tohoto rozhodnutia je možné špecifikovať aj stupeň replikovania fragmentu alebo dokonca celej databázy, t.j. koľkokrát je možné daný fragment umiestniť v uzloch siete.

V ďalšom texte pri definovaní matematických modelov vychádzam z modelu, ktorý je

formulovaný pre alokáciu súborov, čo reprezentuje zjednodušený prístup k alokácii databáz.

Avšak tento model je dosť významný nakoľko, že je východiskom k samotnému modelu pre

distribuovanú databázu a naviac sú situácie, keď je možné fragment databázy alebo celú databázu

chápať ako jeden súbor.

Matematický model pre alokáciu súborov

Ako základnú úlohu môžeme chápať úlohu v literatúre označovanú ako FAP (File Allocation Problem) t.j. úlohu umiestnenia súborov alebo samostatných fragmentov databázy v počítačovej sieti. Túto úlohu po prvý krát formuloval Casey v roku 1972 [Oszu 91].

Predpokladajme, že existuje množina súborov F F F Fn{ , ,... }1 2 a počítačová sieť pozostáva z množiny uzlov siete S S S Sm{ , ,... }1 2 , na ktorých je vykonávaná množina aplikácií A A A Aa{ , ,... }1 2 . Uvažujme možnosť, že jeden súbor môže byť umiestený i na viacerých uzloch v sieti. Úlohou je nájsť optimálne umiestnenie súborov z množiny F na uzloch v sieti, pri minimálnych nákladoch súvisiacich s umiestnením súborov, ich veľkosťou a frekvenciou dotazov.

Page 19: Pretože táto oblasť je v súčasnosti predmetom intenzívneho ...pk-info.spsepn.edu.sk/.../ele/rozne/sql_man/dbs_utc/txt_w…  · Web viewPretože táto oblasť je v súčasnosti

Množinu aplikácií môžeme rozdeliť na dve, a to podľa toho, či sa jedná o len výber dát (SELECT) alebo sa jedná o zmenu obsahu súboru (UPDATE, INSERT, DELETE) Ak poznáme frekvencie dotazov, potom existuje pre daný súbor Fk

množina :f k

r ={ f kr1 , f k

r2 ,... f km

r } ,ktorá špecifikuje frekvenciu výberových operácií  daného súboru z jednotlivých uzlov siete a f ki

r označuje počet prístupov na súbor Fk z uzla Si

a množina :f k

w ={ fkw1 , f k

w2 ,... f km

w } ,ktorá špecifikuje frekvenciu deštruktívnych operácií na danom súbore z jednotlivých uzlov siete, čiže f ki

w označuje počet zmien súboru Fk z uzla Si .

Nech sú definované náklady medzi dvojicou uzlov Si , S j siete spojené s typom operácie pre jednotku prenosu, potom existujú dve nákladové matice:Cr = { cij

r } pre výber dát zo súboru

aCw = {cij

w } pre modifikáciu dát súboru.

Nech sú definované náklady súvisiace s uložením súboru Fk na uzle Si ako dki ,

potom pre uloženie súboru Fk na všetkých uzloch definujeme:Dk

M ={dki }

Alokačný problém je špecifikovaný ako úloha nájdenia takej množiny uzlov U , že platí U S . Táto množina obsahuje len tie uzly, na ktorých bude umiestnený aspoň jeden zo súborov Fk .

Page 20: Pretože táto oblasť je v súčasnosti predmetom intenzívneho ...pk-info.spsepn.edu.sk/.../ele/rozne/sql_man/dbs_utc/txt_w…  · Web viewPretože táto oblasť je v súčasnosti

Model potom môžeme formulovať ako :Ak v modeli budú bivalentné premenné xki vyjadrovať priradenie súboru Fk k uzlu Si potom

xki 1 ak súbor Fk je priradený k uzlu Si

xki 0 ak súbor Fk nie je priradený k uzlu Si

Minimalizujte Z c f x f c d x

k iijw

jkiw

ki kir

j ijr

k iki ki

( ( * * * min )) *

za podmienok

xi

ki 1 k

kde xki { , }0 1 k , i

Prvá časť účelovej funkcie zodpovedá nákladom súvisiacim s prenosom dát pre deštruktívne operácie a taktiež s nákladmi súvisiacimi s výberom dát zo súboru. Druhá časť účelovej funkcie zodpovedá nákladom spojeným s uložením všetkých kópií súborov na uzloch v sieti.

Táto základná a pomerne jednoduchá formulácia úlohy však nie je vhodná pre distribuované databázové systémy, pretože nezohľadňuje celý rad zvláštností spracovania v databázových systémov, čo je rozpracované v nasledujúcej kapitole. Takto definovaná úloha Careym je NP-úplná a dôkaz podal v roku 1974 Eswaran [Eswaran 1974]. Existuje mnoho iných formulácií problému a dôkazov o NP-úplnosti (Napr. [ Wiederhold 1985], [ Lam 1980]). Riešenie konkrétnych úloh pre veľký počet súborov a veľké siete nie je výpočtovo jednoduché. Preto na riešenie týchto úloh boli navrhnuté heuristické algoritmy, ktoré poskytujú suboptimálne riešenie.

Page 21: Pretože táto oblasť je v súčasnosti predmetom intenzívneho ...pk-info.spsepn.edu.sk/.../ele/rozne/sql_man/dbs_utc/txt_w…  · Web viewPretože táto oblasť je v súčasnosti

Matematický model pre alokáciu databázy

Existuje celý rad dôvodov, pre ktoré nie je možné použiť predchádzajúcu formuláciu úlohy pre alokáciu objektov databázy. Najpodstatnejšie dôvody súvisiace s alokáciou databázy sú:· Fragmenty databázy nie je možné chápať ako izolované súbory, pretože nie je

možné ich umiestniť izolovane od iných fragmentov, s ktorými tvoria konzistentnú databázu, a ktoré sú sprístupňované spoločne hlavne pri zabezpečovaní integrity databázy. Týka sa to deštruktívnych operácií a operácií výberu, v ktorých sa spája pomocou operácie spojenie (JOIN) niekoľko fragmentov i distribuovaných do jediného pohľadu.

· V distribuovanom systéme prístup k dátam nie je možné zabezpečiť tak jednoducho ako pri centralizovanom prístupe, ale je nutné analyzovať každý dotaz a pre každý dotaz spracovať dekompozíciu dotazu a stanoviť najvhodnejšiu stratégiu.

· Modely typu FAP nezohľadňujú náklady spojené so zabezpečením integrity databáze.

· Modely typu FAP nezohľadňujú náklady spojené s možnosťou paralelného prístupu k objektom databázy.

Formulácie úloh a modelov, ktoré akceptujú zvláštnosti distribuovaného spracovania sú zásadne odlišné od úlohy umiestňovania izolovaných fragmentov na sieti. Zapracovanie všetkých alebo aspoň časti požiadaviek na distribuované spracovanie do modelu vedie k formulácii a riešeniu typu úloh označovaných ako Problém alokácie databáz skrátene DAP (Database Allocation Problem). Pre riešenie týchto úloh ešte neexistujú všeobecné modely a ani univerzálne metódy riešenia. Každý problém je špecificky závislý od konkrétnej databázy a počítačovej siete, na ktorej bude alokácia vykonaná. Väčšina modelov vyžaduje zjednodušenie a zavedenie istých predpokladov alebo špecifických podmienok pre riešenie.Základný model však vyžaduje kvantifikovať dáta potrebné k riešeniu. Tento model vychádza z publikovaných prác Valdurieza a Ozsu [Ozsu91] a kolektívu Jaroslava Pokorného z Karlovej Univerzity [Pokorný92] s rozšírením a úpravami súvisiacimi s mojím vlastným výskumom a prácami v tejto oblasti.

Predpokladajme, že existuje množina fragmentov F F F Fn{ , ,... }1 2

Page 22: Pretože táto oblasť je v súčasnosti predmetom intenzívneho ...pk-info.spsepn.edu.sk/.../ele/rozne/sql_man/dbs_utc/txt_w…  · Web viewPretože táto oblasť je v súčasnosti

a počítačová sieť pozostáva z množiny uzlov siete S S S Sm{ , ,... }1 2 , na ktorých je vykonávaná množina aplikácií A A A Aa{ , ,... }1 2 . Uvažujme možnosť, že jeden fragment môže byť umiestený i na viacerých uzloch v sieti.. Úlohou je nájsť optimálne umiestnenie fragmentov z množiny F na uzloch v sieti, pri minimálnych nákladoch súvisiacich s umiestnením fragmentov, ich veľkosťou a frekvenciou dotazov.

Množinu aplikácií môžeme rozdeliť na dve podmnožiny, a to podľa toho, či sa jedná o len výber dát, čiže nedeštruktívne operácie (SELECT), alebo sa jedná o zmenu obsahu fragmentov deštruktívnymi operáciami (UPDATE, INSERT, DELETE), pričom poznáme frekvencie operácií.

Alokačný problém je špecifikovaný ako úloha nájdenia množiny uzlov U takej, že platí U S . Táto množina obsahuje tie uzly, na ktorých bude umiestnený aspoň jeden z fragmentov Fk pri minimálnych nákladoch súvisiacich s vykonavaním danej množiny aplikácií..Pre model alokácie databázy potrebujeme poznať:

· informácie o databáze

· informácie o sieti

· informácie o uzloch

· množinu obmedzujúcich podmienok

Každá skupina informácií určuje množinu parametrov, ktoré musíme poznať pre formuláciu alokačného modelu.

Page 23: Pretože táto oblasť je v súčasnosti predmetom intenzívneho ...pk-info.spsepn.edu.sk/.../ele/rozne/sql_man/dbs_utc/txt_w…  · Web viewPretože táto oblasť je v súčasnosti

Obr. Počítačová sieť s príkladom umiestnenia fragmentov

Databázové informácie

Potrebujeme poznať:· Množinu fragmentov

· Veľkosť každého z fragmentov

· Selektivitu každého fragmentu

· Frekvenciu operácie výber

· Frekvenciu deštruktívnych operácií

Page 24: Pretože táto oblasť je v súčasnosti predmetom intenzívneho ...pk-info.spsepn.edu.sk/.../ele/rozne/sql_man/dbs_utc/txt_w…  · Web viewPretože táto oblasť je v súčasnosti

Ako výsledok fragmentácie získame množinu fragmentov, ktoré chceme rozmiestniť na uzloch počítačovej siete.Veľkosť fragmentu Veľkosť fragmentu Fk je definovaná akosize Fk( ) = card Fk( ) * ( )length Fk

kdelength Fk( ) je veľkosť jednej n-tice fragmentu Fk

card Fk( ) je kardinalita fragmentu Fk a vyjadruje počet n-tíc fragmentuSelektivita fragmentuSelektivita fragmentu Fk je vyjadrená ako sel Fp k( ) , ktorá vyjadruje počet n-tíc fragmentu Fk sprístupnených pri dotaze v aplikácii Ap .Frekvencia výberuFrekvencia výberu f kp

r vyjadruje počet výberových prístupov aplikácie Ap na fragment Fk počas spracovania.Frekvencia deštruktívnych operáciíFrekvencia deštruktívnych operácií f kp

w vyjadruje počet deštruktívnych prístupov aplikácie Ap na fragment Fk počas spracovania.

Informácie o uzle počítačovej siete

Pre každý uzol počítačovej siete Si potrebujeme vedieť:· množinu klientov daného uzla Si

' a množinu aplikácii Ap spúšťaných na klientoch daného uzla

· výpočtovú výkonnosť uzla· Náklady na umiestnenie jednotkového množstva dát na uzle Si ako CM i

· Náklady na spracovanie jednotkovej operácie na uzle Si ako CPi

Predpokladáme rovnakú výkonnosť počítača pri všetkých typoch operácií teda deštruktívnych i nedeštruktívnych.

Page 25: Pretože táto oblasť je v súčasnosti predmetom intenzívneho ...pk-info.spsepn.edu.sk/.../ele/rozne/sql_man/dbs_utc/txt_w…  · Web viewPretože táto oblasť je v súčasnosti

Informácie o počítačovej sieti

Pre počítačovú sieť je nutné získať informácie:

vij , čo vyjadruje prenosovú rýchlosť medzi dvojicou uzlov Si a S j , ktorá je závislá od použitého protokolu, vzdialenosti medzi uzlami, použitých zariadeniach atď.Formulácia optimalizačnej úlohy

Optimalizačnú úlohu budeme riešiť pri rozhodovacích premenných xij , ktoré sú binárne a vyjadrujú:

xki 1 ak fragment Fk je uložený na uzle Si

xki 0 ak fragment Fk nie je uložený na uzle Si

Úloha je minimalizuj

N ND NMp kip k i

alebo

minimalizuj N NDpp

(ak zanedbáme náklady súvisiace s uložením fragmentov na uzle)za podmienok

xi

ki 1 k

kde xki { , }0 1 k , i

a ďalejNDp sú náklady súvisiace so spracovaním aplikácie Ap

NM ki sú náklady súvisiace s uložením fragmentu Fk na uzle Si

Page 26: Pretože táto oblasť je v súčasnosti predmetom intenzívneho ...pk-info.spsepn.edu.sk/.../ele/rozne/sql_man/dbs_utc/txt_w…  · Web viewPretože táto oblasť je v súčasnosti

Náklady súvisiace s uložením dát na uzle môžeme vyjadriť ako:NM CM size F xki i k ki * ( ) *pre všetky fragmenty a všetky ich výskyty na uzloch počítačovej siete.Náklady súvisiace so spracovaním vyjadríme ako :ND NDB NTp p p

kdeNDBp náklady pri spracovaní databázy aplikácie Ap ,NTp náklady súvisiace s prenosom dát medzi uzlami siete pre aplikáciu Ap .

Náklady pri spracovaní databázy aplikácie vyjadríme ako:NDB NRW NICp p p

kde NRWp náklady sprístupnenia dát pre aplikáciu Ap ,NICp náklady súvisiace so zabezpečením integrity a paralelizmu aplikácie Ap Náklady sprístupnenia dát potom sú:

p kp

w

kp

r

ki iNRW f f x CPi k

( )* *p

Náklady NICp sú špecifické náklady závislé na type počítača, operačného systému, použitého databázového systému a ďalších parametroch vybavenie daného uzla v sieti.NIC KNI KNC NRWp p p p ( ) *

kdeKNI p je koeficient vyjadrujúci zabezpečenie integrity pri spracovaní aplikácie Ap

KNCp je koeficient vyjadrujúci zabezpečenie paralelného spracovania pri spustení aplikácie Ap

0 1 KNI p

0 1 KNCp

Page 27: Pretože táto oblasť je v súčasnosti predmetom intenzívneho ...pk-info.spsepn.edu.sk/.../ele/rozne/sql_man/dbs_utc/txt_w…  · Web viewPretože táto oblasť je v súčasnosti

Náklady súvisiace s prenosom dát sú rôzne pre deštruktívne a iné pre nedeštruktívne operácie. Ak je potrebné vykonať zmenu v nejakom fragmente, tak je nutné zabezpečiť jej vykonanie na všetkých jej kópiách. Pri výbere dát je postačujúce sprístupniť dáta z fragmentu umiestneného na najbližšom uzle siete.Prenosové náklady pre danú aplikáciu Ap sú:

NT NTW NTRp p p

kdeNTWp sú prenosové náklady, pre deštruktívne operácie pri spracovaní aplikácie Ap

NTRp sú prenosové náklady, pre nedeštruktívne operácie pri spracovaní aplikácie Ap

Zložka vyjadrujúca deštruktívne operácie NTWp je

p kp

w

ki pi k kp

w

ki pi kNTW f x w F f x w Fi k i k

( * * ( )) ( * * ( ))'

kde prvá časť výrazu zodpovedá množstvu prenesených bytov medzi dvojicou uzlov siete, medzi ktorými prebieha komunikácia, pomocou ktorej sa zabezpečuje zmena databázy aplikáciou Ap . Zmeny sa týkajú všetkých výskytov fragmentu na určených uzloch siete. Druhá časť výrazu vyjadruje nároky súvisiace s potvrdzovaním vykonania operácie.Funkcia w Fpi k( ) vyjadruje dobu potrebnú na odoslanie požiadavky z uzla, na ktorom je vykonávaná aplikácia Ap , na uzol Si , kde je fragment Fk umiestnený.w F length F vpi k k z p i( ) ( ) / ( )

Funkcia w Fpi k' ( ) vyjadruje dobu potrebnú na prijatie potvrdenia vykonania

požiadavky z uzla Si , kde je fragment Fk umiestnený, na uzol, na ktorom je vykonávaná aplikácia Ap .w F length F vpi k k iz p

'( )( ) ( ) /

kdez p( ) vyjadruje priradenie uzla, na ktorom prebieha aplikácia Ap .

Pre výber dát vyjadríme NTRp ako :

Page 28: Pretože táto oblasť je v súčasnosti predmetom intenzívneho ...pk-info.spsepn.edu.sk/.../ele/rozne/sql_man/dbs_utc/txt_w…  · Web viewPretože táto oblasť je v súčasnosti

p kp

r

p index p k k kp

r

p k k p index p kNTR f fk

w Fk

sel F length F v

* ( ) * ( ) * ( ) /, ( , ) , ( , )

kdeindex p k x w F

i x ki pi kki

( , ) min ( * ( )),

1

je funkcia, ktorá vráti index uzla, kde je umiestnený najbližší fragment Fk , ktorý používa aplikácia Ap . Prvá časť výrazu vyjadruje náklady súvisiace s prenosom požiadavky na najbližší uzol, obsahujúci príslušný fragment. Druhá časť výrazu vyjadruje náklady potrebné na prenos výsledkov z daného uzla na uzol, na ktorom je vykonávaná aplikácia.

Obmedzujúce podmienky

Pre uvedený model je možné definovať množinu obmedzujúcich podmienok, z ktorých uvádzam:

Obmedzenie na dobu odozvyAk existuje množina T={Ti} maximálneho času odozvy aplikácie Ai ÎA , i ,potom

i iNDB T i ,doba vykonania aplikácie Ai je menšia alebo rovná maximálnemu času odozvy aplikácie Ai .

Pamäťové obmedzenie

Ak M={mk} , k je množina pamäťových kapacít jednotlivých uzlov siete Sk potom platí:

jk ksize F x mjj

( )* , ,

k

Page 29: Pretože táto oblasť je v súčasnosti predmetom intenzívneho ...pk-info.spsepn.edu.sk/.../ele/rozne/sql_man/dbs_utc/txt_w…  · Web viewPretože táto oblasť je v súčasnosti

Samozrejme pre rôzne varianty modelu je možné pridávať alebo meniť aj množinu obmedzujúcich podmienok tak, aby model čo najviac zodpovedal reálnemu stavu.