Cuprins
- I. NOTIUNI INTRODUCTIVE DESPRE
- BAZE DE DATE DISTRIBUITE 2
- Generalitati 2
- II. PROCESAREA INTEROGARILOR IN
- BAZE DE DATE DISTRIBUITE 4
- 2.1. Aspecte ale procesarii cererilor 4
- 2.2. Descompunerea cererilor 8
- 2.3. Localizarea datelor distribuite 10
- 2.4. Optimizarea cererilor distribuite 16
- III. APLICATIE 39
- 3.1. Tema aplicatiei 39
- 3.2. Diagrama ENTITATE-RELATIE 40
- 3.3. Entitati, Atribute, Relatii 41
- 3.3.1. Entitati 41
- 3.3.2. Atribute 41
- 3.3.3. Relatii 43
- 3.4. Diagrama condeptuala 45
- 3.5. Descrierea formei finale a aplicatiei 46
- Bibliografie 52
Extras din proiect
CAPITOLUL I
NOTIUNI INTRODUCTIVE DESPRE BAZE DE DATE DISTRIBUITE
GENERALITATI
Procesarea cererilor este o aplicatie cu performante critice, în mediile distribuite devenind mult mai dificila decât în sistemele centralizate datorita numarului mai mare de parametri care sunt implicati. Contextul ales este cel al calculului relational si al algebrei relationale, datorita largii utilizari a acestor teorii în sistemul de gestiune a bazelor de date distribuite.
Rolul procesorului de cereri este de a transforma cererile de nivel înalt pe o baza de date distribuite (presupunând ca au fost exprimate prin calcul relational) într-o secventa de operatii (de algebra relationala) pe fragmente de relatii. Mai întâi, cererea algebrica este descompusa într-o secventa de operatii relationale. Apoi, pentru localizarea datelor necesare, operatiile pe relatii sunt translatate catre datele locale (fragmente). În final, cererea algebrica pe fragmente este extinsa cu operatii de comunicare si optimizata, respectându-se minimizarea functiilor de cost. Procesorul de cereri usureaza munca utilizatorului, referitoare la optimizarea cererilor si gestioneaza mai bine timpul de executie, mai ales când sunt exploatate cantitati mari de date.
Principala functie a procesorului de cereri relationale este de a transforma o cerere de nivel superior (high level) într-o cerere echivalenta de nivel inferior (low level). Cererile de nivel jos implementeaza de fapt strategia de executie a cererii, iar transformarea trebuie facuta eficient si corect (cererea low-level si cea initiala sa aiba aceeasi semantica). O cerere exprimata cu ajutorul calculului relational poate avea mai multe transformari echivalente în algebra relationala. Pentru ca fiecare strategie echivalenta de executie poate conduce la consumuri diferite de resurse ale calculatorului, principala dificultate este aceea de a alege strategia care minimizeaza consumul de resurse.
Pentru sistemele distribuite, algebra relationala nu mai este suficienta si trebuie suplimentata cu operatii de schimbare a datelor între statii. Procesorul de cereri distribuite trebuie, pe lânga alegerea operatiilor din algebra relationala, sa selecteze cele mai bune moduri de procesare a datelor, dar si modul de transformare si transferare a lor. Toate acestea determina marimea spatiului solutiilor de unde trebuie sa se aleaga strategia de executie si, implicit, cresterea dificultatii procesarii cererilor distribuite.
Obiectivul procesarii cererilor într-un context distribuit este de a transforma o cerere de nivel superior pentru o baza de date distribuite, care este vazuta ca o singura baza de date de catre utilizatori, într-o strategie de executie eficienta, exprimata într-un limbaj de nivel inferior pe o baza de date locala. Presupunem ca limbajul de nivel înalt este calculul relational, iar limbajul de nivel inferior este o extensie a algebrei relationale cu operatii de comunicatie.
Un aspect important al procesarii cererilor este optimizarea acestora. Deoarece multe strategii de executie sunt transformari corecte ale aceleiasi cereri de nivel înalt, cererea care minimizeaza consumul de resurse va fi cea retinuta. O masura buna a consumului de resurse este costul total, care va fi generat de procesarea cererii. Costul total este suma timpilor folositi în procesarea operatiilor cererii pe diferite statii si comunicatiile între statii. O alta masura buna este timpul de raspuns la cerere, care este timpul scurs pentru executarea cererii. Deoarece operatiile pot fi executate, în paralel, pe diferite statii, timpul de raspuns poate fi sensibil diminuat, antrenând micsorarea costului total.
În sistemele distribuite, minimizarea costului total include costul CPU, costul I/O si costurile de comunicatie. Costul CPU apare când se fac operatii cu date în memoria principala, iar costul I/O este timpul necesar operatiilor de intrare si iesire. Acest cost poate fi minimizat prin reducerea numarului de operatii I/O, prin metode mai rapide de acces la date si o utilizare eficienta a memoriei principale. Costul comunicatiei este timpul necesar pentru schimbul de date între statiile participante la executia cererii. Acest cost apare în procesarea mesajelor si în transmiterea datelor prin retea. Primele doua componente (costurile CPU si I/O) sunt singurii factori luati în considerare în sistemele centralizate. Costul comunicatiei este probabil cel mai important factor considerat în bazele de date distribuite. Cele mai multe dintre propunerile initiale de optimizare a cererilor distribuite presupuneau ca exista o dominare a costului de comunicatie de catre costul procesarii locale si a dus la ignorarea sa. Aceasta presupunere are la baza cazul retelelor foarte lente care au o latime de banda comparabila cu cea a discului.
Alt scop esential al optimizarii cererilor este de a simplifica problema minimizarii costurilor de comunicatie, utilizând procesarea locala, care poate fi facuta, independent, folosind metode cunoscute pentru sistemele de gestiune centralizate. Cele mai recente cercetari iau în considerare combinatia celor trei componente ale costurilor pentru ca toate contribuie în mod semnificativ la costul total al evaluarii cererilor.
Preview document
Conținut arhivă zip
- Procesarile Interogarilor in Sisteme de Gestiune a Bazelor de Date Distribuite.doc