Creeaza.com - informatii profesionale despre


Simplitatea lucrurilor complicate - Referate profesionale unice
Acasa » referate » informatica » baze de date
Sisteme de gestiune a bazelor de date retea

Sisteme de gestiune a bazelor de date retea


Sisteme de gestiune a bazelor de date retea

1 SGBD conceptual CODASYL (in viziunea DBTG)

Dupa cum am afirmat in compartimentele anterioare, Integrated Database Management System (IDMS) este un produs al firmei Cillinet Software Inc. si functioneaza pe calculatoarele IBM, sub sisteme de operare standard: DOS, MVS. Este cel mai bun exemplu al unui sistem CODASYL. Sistemul CODASYL, prin intermediul DBTG realizeaza descrieri de limbaj pentru definirea si prelucrarea datelor. Aceste sisteme definesc caracteristicile generale pentru aproape toate tipurile de SGBD retea.

In imaginea 1 este ilustrat un SGBD conceptual CODASYL in viziunea DBTG. Aici se observa ca SGBD este conceput ca un software care lucreaza impreuna cu un sistem de operare pentru a realiza executii multiple ale programelor utilizatorilor, in regim de concurenta.



Operatiile care se fac la utilizarea SGBD sint numerotate pe sagetile din figura si au urmatoarea semnificatie:

Un program al utilizatorului apeleaza SGBD-ul pentru a cere un serviciu (regasirea unei informatii), cerere exprimata intr-un limbaj de manipulare a datelor (LMD). Instructiunile respective sint incluse intr-un program al utilizatorului scris in limbajul gazda.

SGBD analizeaza cererea pentru serviciu, comparind parametrii cererii cu o versiune memorata a definirii bazei de date (numita schema) si a definirii partii din baza de date aplicabila la acest program (numita subschema). Aceste doua definitii de date au fost facute prin intermediul limbajului de descriere a datelor (LDD) si sint memorate separat de programele utilizatorilor intr-o biblioteca a definitiilor de date.

Atita timp cit cererea pentru serviciu nu contine componente inadmisibile (cum ar fi parole necorespunzatoare, referiri la date din afara subschemei invocate), SGBD-ul compune o serie de comenzi de I/O pentru metodele de acces ale sistemului de operare.

Sistemul de operare interactioneaza cu dispozitivul de memorare secundara pentru a initia accesul la baza de date.

Sistemul de operare realizeaza cautari in baza de date, folosind zone tampon de date gestionate de SGBD; aceste zone tampon contin blocuri de date ce se transmit intre memoria principala si cea secundara iar datele sint in forma descrisa in schema.

In cazul gasirii datelor respective, datele sint mutate din bufferele sistemului in aria de lucru a utilizatorilor sau in sectiunea de date din programul apelant al utilizatorului. Acest transfer include reformatarea datelor sau eliminarea din blocuri a datelor ce nu apartin subschemei.

In timpul interactiunii cu baza de date, SGBD-ul stabileste mesaje si coduri de eroare in variabilele de stare din programul utilizatorului.

Programul utilizatorului poate manipula mai departe datele primite din baza de date sau sa compuna noi inregistrari pentru mentinerea bazei de date.

In timp ce se executa programul utilizatorului, SGBD-ul gestioneaza bufferele sistemului astfel incit, daca e ceruta o data care exista deja in bufferul de sistem, atunci SGBD-ul poate trece de la pasul 3 la pasul 5 si sa asigure imediat data in programul apelant.

Deci apelul utilizatorului se face la nivel de inregistrare, adica programul utilizatorului include instructiuni LMD pentru regasirea sau scrierea fiecarei inregistrari cerute pentru prelucrare, una cite una, din fiecare fisier al bazei de date.

DBTG contine trei limbaje distincte: scheme limbajului de descriere a datelor (scheme LDD), subschema limbajului de descriere a datelor (subschema LDD) si limbajul de manipulare a datelor (LMD).

Schema LDD este un limbaj pentru descrierea unei baze de date cu structura retea. (Termenul "schema" corespunde termenului "schema conceptuala" definit de ANSI/SPARC).

Subshema LDD este un limbaj pentru definirea externa a bazei de date, iar termenul DBTG "subschema" corespunde termenului "schema externa" definit de ANSI/SPARC.

LMD este format dintr-un set de operatori, la nivel de inregistrare, pentru manipularea bazei de date retea, definita prin cele doua limbaje de descriere a datelor. In DBTG, utilizatorul trebuie sa fie si programator pentru ca LMD are o sintaxa compatibila cu cea a unor limbaje de programare.

Deci, produsul IDMS contine un SGBD pentru baza de date retea inzestrat cu cele trei limbaje specificate. (Im. 2 Limbaje DBTG si cicluri de compilare).

Schema LDD defineste baza de date, adica defineste inregistrarile si cimpurile din baza de date alaturi de legaturile (seturile) in care participa elementele bazei de date in calitate de proprietar (parinte) sau de membru (copil). Dupa ce a fost scrisa, schema este compilata de compilatorul LDD iar rezultatul compilarii e memorat in dictionarul IDMS. Utilizatorii interactioneaza cu baza de date prin subschema.

Diferenta dintre schema si subschema este ca, anumite seturi, si/sau inregistrari, si/sau cimpuri ale schemei pot fi excluse din subschema. Termenii de set, inregistrare, cimp se refera la tipuri, nu la realizari.

Deci subschema e o submultime a schemei intr-un sens mai restrins. Subschemele sint scrise in LDD, compilate de un compilator LDD iar rezultatul compilarii este memorat in dictionarul IDMS.

Limbajul de manipulare IDMS este apelat printr-o interfata de apel scrisa intr-un limbaj gazda. IDMS asigura un set de instructiuni LMD cu sintaxa asemanatoare cu a limbajului gazda alaturi de preprocesare care traduc instructiunile DML in secvente adecvate limbajului gazda in care se face apelul. Proprocesoarele sint asigurate pentru limbaje gazda de tip COBOL, PL/I, FORTRAN, ASSEMBLER.

IDMS asigura controlul regasirii si accesului concurentia la date. Asigura securitatea datelor prin mecanismul subschemei, care poate fi folosita pentru a proteja informatiile si pentru a restringe aria operatiilor permise utilizatorului.

Deoarece schema LDD nu acopera toate declaratiile de date fizice (interne), se foloseste un dispozitiv de mediere a controlului limbajului (DMCL =Device Media Control Language), care sa asigure datele la diferite dispozitive, sa formateze si sa actualizeze blocurile de date si optiunile din baza de date.

IDMS contine produse integrate, ca de exemplu:

un dictionar de date integrat (IDD - Integrated Data Dictionary)

o interfata de cerere on-line (OLQ - On-line Query Interface )

o interfata pentru limbajul natural (OnLine English), produsul INTELLECT, comercializat sub licenta AIC.


un generator de aplicatii (Aplication Development System/OnLine)

un raport writer (CULPRIT).

2 Crearea schemei LDD din DBTG

O schema este o colectie de tipuri de inregistrari si asocieri perechi (seturi) intre tipuri de inregistrari proprietar si membru, care sint localizate in regiuni specifice ale memoriei secundare (arii sau regiuni). Ariile sint zone din memoria fizica in care sint dispuse valorile datelor.

Modelul de date este o retea simpla formata din tipuri de inregistrari de legatura si cele aflate la intersectia unor relatii (numite inregistrari de jonctiune de catre IDMS) precum si din seturile dintre ele. Reteaua completa a relatiilor contine mai multe tipuri de seturi; in fiecare set, un tip de inregistrare este proprietar si unul sau mai multe tipuri de inregistrari sint membri.

O arie (sau "regiune" in terminologia CODASYL recenta) este o zona specifica a memoriei secundare inzestrata cu nume. Ea este echivalenta cu paginile adiacente dintr-un fisier de pe discul fizic. Scopul ariei este de a controla vecinatatea fizica a inregistrarilor. Baza de date a schemei va contine una sau mai multe arii. Fiecare arie are un nume in schema iar in definirea fiecarei inregistrari se specifica care arie sau arii vor contine inregistrarile de acest tip (clauza WITHIN). Cind o noua inregistrare este memorata, SGBD-ul o plaseaza automat in aria corespunzatoare. Numele ariei este incarcat printr-un program de introducere a datelor. Un set defineste o cale de acces in baza de date, prin care se circula de la inregistrarea proprietar la cea de membru sau invers.

Inregistrarea este o entitate cu nume, ce contine realizarile individuale specifice entitatii respective. Inregistrarea este definita prin specificarea pozitiei ei fizice si printr-o lista de definitii ale elementelor bazei de date. Localizarea fizica a unei inregistrari se face prin clauza LOCATION MODE, care specifica metoda aleasa pentru a determina adresa la care o inregistrare va fi stocata pe disc. Se pot folosi doua metode: CALC si VIA. Metoda CALC asigura regasirea unei date dupa o cheie logica (referirea unei inregistrari se face in functie de valoarea cheii logice). Metoda VIA asigura gasirea unei inregistrari pe baza inregistrarii proprietar asociate ei (deci se poate folosi valoarea cheii inregistrarii proprietar asociate). Recent, LOCATION MODE a fost inlocuita cu clauza KEY IS.

Un tip inregistrare poate sa nu aiba nici un element si atunci este o inregistrare de legatura. Dar, in cele mai multe cazuri, un tip inregistrare are unul sau mai multe elemente sau nume ale acestora, ca parte din definirea lor. Un tip inregistrare trebuie sa contina elemente pentru fiecare componenta a fiecarei chei si pentru fiecare element folosit la sortarea membrilor unui set.

Schema defineste ce elemente trebuie sa contina inregistrarea si formatul de reprezentare a acestora in baza de date.

Un set defineste o relatie directa intre un tip inregistrare proprietar si unul sau mai multe tipuri inregistrare membrii. Un set defineste, de obicei, o relatie 1:M, dar mai poate defini si o relatie 1:1. Un set nu poate defini o relatie M:N intr-un model retea din DBTG. Un tip inregistrare poate fi proprietarul mai multor seturi; unele sisteme DBTG permit chiar ca acelasi tip inregistrare sa fie proprietar si membru al aceluiasi set.

Seturile singulare sau relatiile tip sistem sint usor de reprezentat in schema DBTG si se mai numesc seturi unice. Scopul unui set singular este de a aranja realizarile unor tipuri inregistrari intr-o secventa ce apartine aceluiasi proprietar, sistemul. Seturile singulare pot fi folosite si pentru a grupa logic inregistrari ce au o caracteristica comuna; deci nu toate realizarile dintr-un tip inregistrare membru al setului trebuie incluse in set. In IDMS, acest tip de set e realizat folosind un tip inregistrare artificial (unicat) ca proprietar, acesta fiind mai recomandat decit proprietarul implicit, adica sistemul. Diferenta dintre setul singular si set este ca setul singular creeaza un singur tip de relatie iar setul creeaza o relatie pentru fiecare proprietar.

Orice definitie a unui set contine referiri la un singur tip inregistrare proprietar, dar poate include mai multe tipuri inregistrari membru. Aceasta proprietate permite reprezentarea claselor de relatii sau oricaror relatii in care o inregistrare proprietar poate fi asociata cu multe inregistrari membri, fiecare de tip diferit. Citeva sisteme DBTG permit sortarea membrilor dupa optiuni ca: nume inregistrare (toti membrii de acelasi tip sint sortati sub acelasi parinte), cheie (o secventa de adresa fizica, convenabila din punct de vedere al parcurgerii unor membri in lant), sau valoarea unei chei, pentru fiecare tip de inregistrare membru. Dezavantajele unui astfel de set sint ca lanturile de inregistrari membrii pot fi foarte lungi, iar daca seturile individuale nu sint stabilite intre proprietari si fiecare tip membru, atunci prelucrarea unui tip membru poate fi incetinita de accesarea unor seturi membre ce nu servesc prelucrarea.

Oricite seturi pot fi definite intre aceeasi pereche de tipuri inregistrari. Astfel, utilizatorii interesati intr-un singur tip de relatie pot folosi setul respectiv pentru a nu pierde timpul cu accesarea unor tipuri de relatii care nu-i intereseaza. Seturile multiple stabilite in cadrul aceleiasi perechi de tipuri inregistrari pot fi folosite si in utilizarea diferitor secvente de sortari (dupa diferite chei).

Pentru ca reteaua standard CODASYL are o arhitectura de retea simpla, implementarea relatiei M:N se face folosind inregistrari de legatura. O inregistrare comuna poate fi folosita pentru a lega doua tabele. Legatura se face prin pointeri. Daca inregistrarea comuna nu exista, atunci se va crea una care sa poata fi folosita ca informatie de legatura. Seturile de acest tip pot fi prelucrate atit de la proprietar la membru, cit si de la membru la proprietar.

Un set poate fi definit optional ca fiind DYNAMIC sau PRIOR. DYNAMIC inseamna ca setul nu are un tip specific de inregistrare membru si ca orice inregistrare, in afara de cea proprietar, poate fi asociata setului pentru un proprietar dat. PRIOR inseamna ca se poate implementa setului o metoda de prelucrare inapoi (backward (prior) direction) sau inainte (forward (next) direction). Scopul este permiterea unei prelucrari bidirectionale a lantului de inregistrari.

Definirea setului membru completeaza clauza OWNER IS si asigura controlul integritatii setului. Setul membru are trei clauze: INSERTION (sau CONNECTION in unele DBTG), RETENTION (sau DISCONNECTION) si SET SELECTION. Pentru fiecare tip inregistrare legata de setul proprietar se specifica clauza MEMBER IS. Clauza INSERTION poate fi AUTOMATIC, adica SGBD-ul afiseaza automat o noua inregistrare asociata proprietarului, sau MANUAL, adica noua inregistrare va fi introdusa explicit prin program.

Crearea subschemei LDD din DBTG (baza de date externa)

Fiecare utilizator al bazei de date, de obicei, vrea sa foloseasca doar o parte din baza de date globala conceptuala. Aceasta parte poate fi un subset sau se poate referi la componente ale bazei de date: inregistrari, date, seturi. Ca o modalitate de protectie a bazei de date impotriva pagubelor provocate de utilizatori naivi deci pentru a privilegia accesul la baza de date, un utilizator va accesa baza in mod limitat si va prelucra doar acele componente care-i sint necesare. DBTG-ul CODASYL a desemnat subschema pentru a face fata acestor probleme.

O subschema este un subset definit al unei baze de date asociate, care permite accesul selectiv si limitat la baza de date. Baza de date vazuta prin subschema poate diferi de cea din schema, in sensul ca anumite elemente, inregistrari, seturi si arii pot lipsi, pot fi redenumite in termeni mai apropiati de intelegerea unei clase de utilizatori, iar formatul de reprezentare a datelor poate fi schimbat pentru a se adapta la tipul de prelucrare ceruta. In unele DBTG, subschema permite definirea unor inregistrari logice care sint combinatii de elemente din mai multe inregistrari legate intre ele ce apartin schemei (este o combinare implicita a inregistrarilor de jonctiune).

Subschema asigura un mecanism de independenta a datelor, adica daca schema se modifica fara a afecta subschema, atunci programele care folosesc subschema nu sint afectate nici ele.

Daca subschema este o definire a viziunii asupra unei baze de date presupusa de un utilizator printr-un program al unei aplicatii, atunci subschema LDD depinde de limbajul de programare utilizat in programul aplicatiei.

De-a lungul anilor, subschema LDD a utilizat limbajele de programare COBOL, FORTRAN, PL/I si limbaje de asamblare.

O subschema este definita separat de orice program de aplicatie care o utilizeaza. Subschema este stocata in biblioteca subschemei, gestionata de SGBD si poate fi apelata sau inclusa intr-un program aplicatie cind programul este compilat, legat sau incarcat in DBMS.

Fiecare subschema are un nume si corespunde unei scheme. Ariile, inregistrarile si datele ce trebuie incluse in subschema sint definite odata cu restrictiile si comenzile de manipulare si utilizare a datelor.

In functie de facilitatile SGBD-ului, aceste definitii pot contine si specifivatii pentru accesul privilegiat la date si explicatia pentru inregistrarile logice formate prin combinarea inregistrarilor de baza ale subschemei.

Anumite sisteme DBTG permit redefinirea numelor cimpurilor in termeni familiari utilizatorilor.

IDMS-ul este un sistem DBTG care permite definirea inregistrarilor logice si a procesului formarii lor (proces numit "cale logica"). Utilitatea unei inregistrari logice este ca reduce sarcina programului in a crea date virtuale, construite din aproape in aproape in programul aplicatie.

Avantajele acestei operatii sint: reducerea codificarii, scaderea sansei de aparitie a datelor eronate si de multe ori, un model de date mai clar pentru programator.

Manipularea datelor prin LMD

Limbajul de manipulare a datelor din modelul retea consta dintr-un set de operatori pentru prelucrarea datelor reprezentate in inregistrari si seturi, cum ar fi:

un operator de localizare a unei inregistrari pe baza valorii unui cimp din acea inregistrare

un operator de trecere de la un parinte la primul sau copil dintr-un set

un operator de trecere de la o inregistrare copil la urmatoarea inregistrare copil din setul respectiv

un operator de trecere de la copil la parinte

un operator de creare a unei noi inregistrari

un operator de distrugere a unei inregistrari existente

un operator de actualizare a unei inregistrari existente

un operator de conectare a unei inregistrari copil existente la un set

un operator de desprindere a unei inregistrari copil dintr-un set

un operator de desprindere a unui copil dintr-o realizare a unui tip de legaturi si de reconectare a lui la alta legatura. Acesti operatori se refera la inregistrari.

Un program care foloseste operatorii LMD in IDMS trebuie sa contina o descriere a inregistrarii pentru fiecare tip de inregistrare din subschema care face obiectul prelucrarii. Aceasta descriere determina rezervarea unei arii pentru memorarea tipului de inregistrare. Numele ariei si a cimpurilor componente sint identice cu cele din tipul de inregistrare respectiv.

Totalitatea ariilor din DBTG formeaza aria de lucru a utilizatorului (User Work Area).

Un program IDMS mai contine si un bloc de comunicatii IDMS (IDMS Communications Block), bloc ce asigura informatii de feedback pentru program.

El contine un cimp numit ERROR-STATUS, care este consultat dupa fiecare operatie LMD. Daca indicatorul de eroare are valoarea 0 inseamna ca operatia a decurs fara probleme, daca este diferit de 0, inseamna ca programul are erori.

In practica, preprocesoarele IDMS asigura simplificarea construirii ICB si UWA si usureaza testarea prin ERROR-STATUS.

Prelucrarea inregistrare de inregistrare a unei baze de date presupune referirea la o pozitie relativa din baza de date de la care informatia poate fi mutata. Operatiile se bazeaza pe cunoasterea pozitiei curente, pe baza careia se poate determina pozitia inregistrarii ce urmeaza in lant. Termenul folosit in manipularea datelor in DBTG pentru pozitia relativa, este indicator de pozitie, adica variabila ce contine adresa fizica a inregistrarii celei mai recent accesate sau manipulate din baza de date. Indicatorul de pozitie este actualizat dupa fiecare accesare a bazei de date. Valoarea indicatorului de pozitie poate fi zero, deci nu a identificat nici o inregistrare sau adresa unei inregistrari din baza de date (numita cheia bazei de date in IDMS sau pointerul bazei de date). Acest indicator reflecta identificarea unei inregistrari sau a unui set.

In afara de indicatorul de pozitie, in aria de lucru a utilizatorului mai sint definite automat, de catre compilatorul subschemei, urmatoarele elemente:

DB-STATUS (un cod stabilit dupa fiecare comanda LMD, care contine o valoare ce indica tipul de eroare aparuta);

DB-RECORD-NAME, DB-SET-NAME, DB-AREA-NAME si

DB-DATA-NAME (coduri prin care SGBD plaseaza numele din subschema pentru inregistrari, seturi, arii, date elementare).

Structuri de memorie

IDMS asigura doua reprezentari ale seturilor, si anume: seturi inlantuite si seturi indexate. Reprezentarea unui set e specificata in schema prin clauza MODE.

Seturile inlantuite sint reprezentari sub forma unui lant de pointeri pentru fiecare realizare, lant ce leaga proprietarul de primul membru, primul membru de al doilea membru si asa mai departe si ultimul membru de proprietar.

Lantul este specificat in doua moduri: "prior linkage" - inlantuire bazata pe prioritate, in care proprietarul puncteaza catre ultimul membru, ultimul membru catre penultimul si asa mai departe si primul membru catre proprietar; "owner linkage" - inlantuire bazata pe proprietar, in care fiecare membru are un pointer catre proprietar (aceasta nu se aplica pentru seturile sistem sau singulare).

Seturile indexate presupun folosirea unui index in loc de pointer in lant (secventa pentru reprezentarea succesiunii realizarilor unui set). Sint atitia indecsi cite realizari are setul. Inregistrarile proprietar si cele indexate sint inlantuite prin pointer "next", "prior" si "owner".

Posibilitati de dezvoltare a bazelor de date retea

Modelele retea prezinta o serie de dezavantaje cum ar fi:

modelul retea e complicat, structura lui e complexa, operatorii sint complecsi, chiar daca ar functiona la nivel de set in loc de inregistrare, deci cresterea complexitatii nu conduce la cresterea functionalitatii sistemului;

structura retea tinde sa fragmenteze informatiile;

cea mai mare parte a optimizarii sistemului se face mai degraba manual decit aplicind programe de optimizare;

conceptul de indicator de pozitie este o sursa de complexitate, dar si de eroare;

procesul de optimizare nu utilizeaza baze de date statistice (tabele cu cardinalitati, indecsi selectivi, analiza Cluster) si nu permit sortarea dinamica (care este cea mai buna tehnica pentru jonctiunea a doua tabele).

Cu toate acestea, in practica, SGBD-urile retea continua sa fie folosite datorita performantelor bune obtinute in prelucrarea explicita la nivel de inregistrari. Sistemele retea sint frecvent utilizate in aplicatii ce prelucreaza un volum mare de date, proiectarea eficienta a bazelor de date retea devine un subiect important. Cea mai mare parte a caracteristicilor prezentate aici se refera la structuri elementare simple ale bazelor de date, care nu include si independenta datelor. Asa ca, reproiectarea bazei de date pentru a incorpora aceasta caracteristica sau modificarea unor elemente deja proiectate, presupun programe de mentinere a acestei cerinte. De aceea, este important ca baza de date sa fie proiectata de prima data in cea mai buna maniera posibila.





Politica de confidentialitate


creeaza logo.com Copyright © 2024 - Toate drepturile rezervate.
Toate documentele au caracter informativ cu scop educational.