Prezentarea generala a modelului retea. Baze de date retea
Modelul retea utilizeaza structura retea ca structura de date de baza. Reteaua este un graf orientat alcatuit din noduri conectate prin arce. Nodurile corespund tipurilor de inregistrare si arcele pointerilor. Modelul retea foloseste inregistrarile pentru a reprezenta entitatile si pointerii intre inregistrari pentru a reprezenta relatiile dintre entitati.
Structura de date retea (Im. 1) seamana cu structura de date arborescenta. Modelul retea imparte multe asemanari cu modelul ierarhic. De fapt, modelul retea poate fi considerat o generalizare a modelului ierarhic, sau alternativ, modelul ierarhic poate fi privit ca o implementare particulara a modelului retea, adica un model de date retea in care segmentele copil pot avea doar un singur parinte. Aceasta restrictie este eliminata in modelul retea, adica un nod dependent (copilul) poate avea mai mult decit un singur parinte. Din aceasta diferenta rezulta ca modelul de date retea poate asigura relatiile many-to-many intre tipurile de entitati, aceasta constituind o problema fundamentala pentru modelul ierarhic.
A
B
C D
E F
G
Im. 1 Structura retea
1 Inregistrari si seturi
O baza de date retea consta dintr-un numar oarecare de tipuri de inregistrari. O inregistrare este construita dintr-un numar oarecare de cimpuri (elementare sau agregate). Un cimp este cea mai mica unitate de date care are nume. Fiecare cimp are un tip de data asociat. Cimpul corespunde unui atribut si inregistrarea unei entitati (Im. 2).
a) STU
CODS# NUMES ADRSTU CODC# PUNCTE STR ORAS COD
b) STU
Im. 2 Exemplu de inregistrare
In imaginea 3 este reprezentata, prin intermediul unei diagrame de structura, structura retea a unei baze de date cu informatii despre proiectele unei firme si angajatii antrenati in realizarea lor. Diagrama corespunde unui graf retea in care nodurile au fost inlocuite de dreptunghiuri care reprezinta inregistrarile. Arcele reprezinta relatii de tip 1:1 sau 1:N intre inregistrari.
PROIECT DEPT
PROIECT_ANG DEPART_ANG
ANGAJATI
ANG_COPII
Im. 3 Diagrama retea
O trasatura a modelului este conceptul de set utilizat ca modalitate de exprimare a relatiilor.
Un tip set (Im. 4) consta dintr-un singur tip de nod proprietar (parinte) si unul sau mai multe tipuri de noduri dependente legate de acesta, numite tipuri membre (copii). Imaginea 4 ilustreaza un tip set numit DEPT_STU in care DEPT este tipul proprietar si STU tipul membru. Acest set reprezinta in fapt o relatie 1:M intre inregistrarile DEPT si STU.
DEPT
DEPT_STU Im. 4 Tip set
STU
O realizare a setului este o colectie de inregistrari avind o realizare proprietar si un numar oarecare de realizari membre asociate. Deci exista o realizare a setului DEPT_STU pentru fiecare realizare a inregistrarii DEPT in baza de date (Im. 5).
Daca exista un departament fara studenti avem o realizare cu proprietar si fara membrii. O astfel de realizare a setului se numeste vida.
Im.5 Exemple de realizari
S1015 S1002 S1013 S1005 S1001
etc.
Modelul retea impune restrictia conform careia o inregistrare nu poate fi membra a doua realizari ale aceluiasi tip set. Rezulta ca, in exemplul considerat, un student nu poate fi inclus in mai multe departamente. Totusi, o inregistrare poate sa apartina mai multor tipuri set. Un tip de inregistrari poate fi un tip proprietar intr-un set si un tip membru in altul. De exemplu, in diagrama de structura din imaginea 3, ANGAJAT este membru a doua tipuri set, PROIECT_ANG si DEPART_ANG si proprietar al unui tip set ANG_COPII.
Astfel, o anume inregistrare ANGAJAT poate fi conectata cu o inregistrare PROIECT, cu o inregistrare DEPT si cu o inregistrare COPII.
Din setul DEPT_STU prezentat in imaginea 4 putem spune carui departament ii apartine un student cunoscind in ce realizare a setului DEPT_STU este inregistrarea STU.
Un set esential transmite informatii pastrind o conexiune logica datorata existentei sale. Alternativa unui set esential este sa tinem valoarea unuia sau mai multora dintre cimpurile realizarilor inregistrarilor proprietar in realizarea membrului. Normal, acest cimp este o cheie externa. Un set cu astfel de informatii in inregistrarile membri se numeste set pe baza de valoare. Daca dorim sa reducem redundanta pentru a asigura integritatea datelor si a folosi eficient spatiul alegem seturi esentiale. Daca nu dorim ca informatiile sa fie pierdute sau distruse, alegem seturi pe baza de valoare.
Pentru ca seturile sint doar metode de reprezentare a relatiilor dintre inregistrari si pentru ca un set poate avea un singur proprietar, nu exista o cale directa de a reprezenta relatiile de tip M:N in acest model. Deci nu putem reprezenta relatia STU_CURS din imaginea 6.a) in mod direct. Totusi exista un mod indirect pentru solutionarea acestei situatii. Astfel, cind intre doua tipuri de inregistrari exista o relatie de tip M:N, pentru reprezentarea acesteia, vom crea un nou tip de inregistrare, numita inregistrare de intersectie sau legatura, constind din cheile inregistrarilor asociate, plus informatia de intersectie, adica atribute descriptive ale caror valori depind de asociere. In imaginea 7 apare inregistrarea intersectie creata pentru fiecare interactiune intre o inregistrare STU si una CURS. Aceasta diagrama arata trei tipuri de inregistrari si doua tipuri de seturi. Fiecare inregistrare de intersectie apartine celor doua seturi.
STU
Im. 6 (a, b) Reprezentarea relatiilor
STU CURS
LEGATURA
Im. 7 Diagrama cu 2 tipuri de seturi
Un alt exemplu este ilustrat in imaginea 8. Avind un singur set PROIECT_ANG, inseamna ca fiecare angajat lucreaza la un singur proiect. Sa presupunem ca un angajat poate sa lucreze la mai multe proiecte simultan. Relatia de tip M:N care rezulta nu poate fi reprezentata direct. Va trebui sa cream un tip de inregistrare intersectie, P_A_INTERSECT, pentru a pastra legatura dintre un angajat si toate proiectele la care lucreaza. Aceasta inregistrare va contine CODP#, CODA# si date de intersectie cum ar fi numarul de ore pe care un angajat le lucreaza pentru un proiect sau plata pe care o primeste pentru acel proiect.
CODD DEND COD_SEF#
DEPT
DEP_INTERSECT
PROIECT ANGAJAT
PROIECT_INTERSECT ANG_INTERSEC ANG_COPII
P_A_INTERSECT
CODA# NUME VIRSTA
COPII
Im. 8 Modelul retea
In modelul retea, toate seturile sint implementate prin pointeri. Uzual, se creeaza o lista inlantuita unde realizarea proprietar este capul listei. Proprietarul face legaturi cu primul membru, care se leaga de al doilea si asa mai departe pina la ultimul membru. Ultimul membru face legaturi cu proprietarul, formind un lant.
In imaginea 9.a) este redata o reprezentare a unei realizari DEPT_STU si in imaginea 9.b) se arata cum sint reprezentate toate realizarile. DEPT si STU sint doua fisiere separate cu pointerii care le conecteaza. Desi am reprezentat pointerii prin sageti, ei sint adrese logice sau chei ale inregistrarilor tinta.
O inregistrare membru a unui set poate avea trei pointeri:
spre inregistrarea urmatoare (next)
spre inregistrarea anterioara (prior)
spre proprietar (owner)
Chiar daca utilizam numai pointeri next, daca o inregistrare apartine mai multor seturi, ea va contine mai multi pointeri care sa arate locul ei in fiecare din aceste seturi.
Numarul de pointeri ceruti chiar pentru o aplicatie simpla poate fi foarte mare. In unele sisteme retea, proiectantul poate alege tipul pointerilor, specificindu-i in schema.
S1002
a)
DEPT
MATEMATICA ISTORIE INFORMATICA GEOGRAFIE
b)
S1020
STU
Im. 9 Reprezentarea realizarilor
2 Seturi speciale
Un set are un tip de inregistrare proprietar si numai un tip de inregistrare membru, dar este posibil sa avem tipuri multimembru pentru seturi. De exemplu, sa presupunem ca dorim sa pastram relatia intre DEPT si inregistrarile STU si FAC in acelasi set. Putem defini setul DEPT_PERS avind tipul proprietar DEPT si tipurile membre STU si FAC, ca in imaginea 10.a).
In fiecare realizare a acestui set vom avea o inregistrare departament ca proprietar si orice numar de inregistrari student si facultate (Im. 10.b).
Alt tip special set este setul singular. Acesta este folosit cind dorim sa tratam toate inregistrarile unui tip particular ca si cum ar fi membri ai unui set, pentru ca setul membrilor poate fi utilizat pentru a impune o ordine ce poate fi utila in manipularea datelor. Pentru ca toate inregistrarile din set sint de acelasi tip, nu exista o inregistrare proprietar reala, astfel ca vom specifica sistemul ca fiind proprietar al setului. Nu este permisa decit o singura realizare a fiecarui astfel de set.
Alt tip special este setul dinamic. Acesta nu are inregistrari membre permanent asociate lui. La momentul executiei, un program de aplicatie alege inregistrarile care-I sint necesare pentru a le inlocui in set. Cind programul se termina, inregistrarile nu mai apartin setului.
DEPT_PERS
Im. 10 (a, b) Reprezentarea seturilor si realizarilor
Implementarea modelului retea
Modelele retea sint implementate folosind doua modalitati:
Implementarea prin pointeri. Foloseste conexiunile secventiale de tip pointer si o structura de tip lista. Fiecare inregistrare din retea poate avea o combinatie din urmatoarele tipuri de pointeri:
pointer catre prima (ultima) inregistrare din lista, pozitia lui fiind indicata de sensul sagetii
pointer catre urmatoarea inregistrare (sau catre cea anterioara)
pointer catre inregistrarea parinte sau proprietar
pointer catre fiecare inregistrare copil.
Implementarea prin harta de biti (bit map). In cazul relatiei de tipul M:N se foloseste harta de biti care este o matrice creata pentru fiecare relatie. Inregistrarile de pe linie sint inregistrari sursa, iar cele de pe coloane sint cele destinatie. Daca la intersectia dintre linia X si coloana Y avem 1 in matrice, atunci inseamna ca intre inregistrarile respective exista o relatie (cu sensul X Y); daca avem 0, atunci cele doua inregistrari nu au legatura. Hartile de biti sint structuri de date avantajoase di urmatoarele motive:
orice tip de inregistrare poate fi inclusa pe linii/coloane
relatiile 1:1, 1:M, M:N si M:1 pot fi reprezentate
liniile si coloanele suporta operatorii algebrei booleene ("and", "or", "not").
Dest. |
Vinzari | |||||
Inreg. sursa |
y | |||||
Produse | ||||||
X | ||||||
Dezavantajele modelului retea
Este un model complex, dificil de folosit.
Implementarea lui se face pentru limbaje de prelucrare secventiala a inregistrarilor, ceea ce determina o prelucrare dificila a bazelor de date, o viteza redusa de lucru si spatiu de memorie ocupat ineficient.
Deoarece o retea este o extensie a unei ierarhii, proprietatile semantice ale modelului retea sint similare cu cele ale modelului ierarhic. De aceea, dependentele din retea sint putin clare, din cauza posibilitatii existentei mai multor parinti/proprietari.
Modelul retea nu poseda un mod explicit de tratare a agregarii semantice, relatiile intre inregistrari fiind folosite atit pentru reprezentarea semantica cit si pentru alte scopuri. Unele limbaje pentru modelul retea recunosc insa mostenirea atributelor unor cimpuri.
Politica de confidentialitate |
.com | Copyright ©
2024 - Toate drepturile rezervate. Toate documentele au caracter informativ cu scop educational. |
Personaje din literatura |
Baltagul – caracterizarea personajelor |
Caracterizare Alexandru Lapusneanul |
Caracterizarea lui Gavilescu |
Caracterizarea personajelor negative din basmul |
Tehnica si mecanica |
Cuplaje - definitii. notatii. exemple. repere istorice. |
Actionare macara |
Reprezentarea si cotarea filetelor |
Geografie |
Turismul pe terra |
Vulcanii Și mediul |
Padurile pe terra si industrializarea lemnului |
Termeni si conditii |
Contact |
Creeaza si tu |