CURS 4-2009.doc

15
CURS 4 Structuri de date. Organizarea datelor. Baze de date Data este obiectul de la care porneşte orice decizie care se ia în medicină / ocrotirea sănătăţii. Prin urmare, datele trebuie să fie bine structurate, complete şi exacte; computerul este de ajutor în îndeplinirea acestor cerinţe. Structura de date se defineşte ca o colecţie de date pe care s-a definit o metodă de organizare (structură) şi un mecanism de selecţie şi de identificare a componentelor sale. Componentele structurii sunt identificate prin următoarele elemente: - nume; - poziţia pe care o ocupă în structură, în raport cu relaţia de ordine specificată. Asupra unei structuri de date se pot efectua următoarele operaţii: - creare (definirea efectivă a structurii, la momentul iniţial); - consultare (accesarea elementelor structurii); - actualizare (modificarea elementelor structurii); - copiere (la nivelul întregii structuri sau al elementelor componente); - sortare (aranjarea elementelor structurii într-o anumită ordine); - reuniune (unificarea a două sau mai multe structuri); - descompunere (desfacerea structurii în mai multe sub-structuri componente). Structuri de date în sistemele de înregistrare a pacienţilor pe hârtie: Un sistem de înregistrare a pacienţilor pe hârtie este un set ordonat de documente care conţine toate datele medicale referitoare 1

Transcript of CURS 4-2009.doc

Structuri de date

PAGE 11

CURS 4

Structuri de date. Organizarea datelor. Baze de date

Data este obiectul de la care pornete orice decizie care se ia n medicin / ocrotirea sntii. Prin urmare, datele trebuie s fie bine structurate, complete i exacte; computerul este de ajutor n ndeplinirea acestor cerine.

Structura de date se definete ca o colecie de date pe care s-a definit o metod de organizare (structur) i un mecanism de selecie i de identificare a componentelor sale. Componentele structurii sunt identificate prin urmtoarele elemente:

nume;

poziia pe care o ocup n structur, n raport cu relaia de ordine specificat.

Asupra unei structuri de date se pot efectua urmtoarele operaii:

creare (definirea efectiv a structurii, la momentul iniial);

consultare (accesarea elementelor structurii);

actualizare (modificarea elementelor structurii);

copiere (la nivelul ntregii structuri sau al elementelor componente);

sortare (aranjarea elementelor structurii ntr-o anumit ordine);

reuniune (unificarea a dou sau mai multe structuri);

descompunere (desfacerea structurii n mai multe sub-structuri componente).

Structuri de date n sistemele de nregistrare a pacienilor pe hrtie:

Un sistem de nregistrare a pacienilor pe hrtie este un set ordonat de documente care conine toate datele medicale referitoare la pacient. Un astfel de sistem de documente este organizat pe seciuni precise:

datele administrative ale pacientului: nume, CNP, data naterii, situaia asigurrii de sntate;

date medicale permanente: sex, grup de snge, alergii;

date medicale variabile: eventual nregistrri succesive n timp ale acestora:

istoricul pacientului;

examenul fizic;

rezultatele analizelor de laborator;

tratamentul / medicamentele prescrise;

imagini (radiografii, scintigrame);

nregistrri ale semnalelor biologice (electrocardiograme, spirograme).

Documentele sunt de obicei ordonate cronologic, pe seciuni corespunztoare primei vizite la medic i vizitelor ulterioare; prin urmare, pentru a se identifica datele cele mai noi ale pacientului, ce caracterizeaz statusul su actual, este nevoie s se parcurg toat documentaia i toate seciunile.

Structuri de date n sistemele computerizate de nregistrare a pacienilor:

Atunci cnd datele pacienilor sunt stocate n computer, cerina gruprii fizice a tuturor datelor relativ la un pacient n acelai loc dispare, deoarece datele pot fi regsite foarte uor. Mai mult, este chiar indicat (din motive de eficien) s se foloseasc baze de date diferite pentru fiecare seciune n parte (BD a medicamentelor, BD a diagnosticelor identificate, BD a radiografiilor, BD a ECG-urilor nregistrate cu interpretarea lor, etc.)

Organizarea datelor ntr-un sistem computerizat de eviden a pacienilor prezint urmtoarele avantaje comparativ cu sistemele pe hrtie:

sistemul de nregistrri este dinamic;

sistemul poate exista simultan n mai multe locaii la un moment dat (n cazul folosirii unei reele de calculatoare) putnd fi astfel consultat n paralel;

sistemul nu este ordonat dup un criteriu fixat, utilizatorul avnd posibilitatea de a defini propriile criterii de ordonare i de selecie a datelor care l intereseaz;

n sistemele pe hrtie utilizatorul trebuie s rsfoiasc toate paginile pentru a gsi ceea ce l intereseaz la un moment dat, n timp ce n cazul sistemelor computerizate regsirea datelor este instantanee.

Exist urmtoarele tipuri fundamentale de structuri de date:

NREGISTRAREA:

n programare, se definete ca o combinaie a mai multe date avnd tipuri diferite; de exemplu, o nregistrare este o structur de date format din 3 numere ntregi, un numr real i un ir de caractere. n SGBD, nregistrarea este definit ca un set complet de informaii referitoare la un element din baza de date, fiind format din valori particulare pentru cmpurile bazei de date, corespunztoare acestui element.

Structuri LINIARE de date:

Tabloul (Array): este folosit n programare; se definete ca o list de obiecte care au toate aceeai dimensiune i acelai tip. ntregul tablou este stocat n memorie ntr-o zon continu, fr ntreruperi ntre elementele componente. Tablourile pot fi de mai multe dimensiuni; un tablou cu o singur dimensiune se numete vector; un tablou cu 2 dimensiuni se numete matrice.

Lista (Linked List): const dintr-o secven de obiecte, n care fiecare obiect conine n structura sa o referin (legtur) la urmtorul obiect din list. Este folosit n programare, deoarece permite implementarea cu uurin a unor tipuri abstracte de date, ca de ex. stiva, coada, expresiile simbolice. Principalul avantaj al listelor, spre deosebire de tablouri, este acela c ordinea obiectelor conectate n list poate fi diferit de ordinea n care acestea sunt stocate n memoria calculatorului; prin urmare, listele permit inserarea sau tergerea de obiecte din interiorul lor, din orice poziie, folosind un numr constant de operaii. Dezavantajul listelor este ns acela c ele nu permit accesul aleatoriu la componentele lor, i nici indexarea acestora ntr-o form eficient, astfel nct cutarea unui obiect ntr-o list nu se realizeaz instantaneu, ci necesit de obicei parcurgerea majoritii obiectelor listei.

O alt variant de list o reprezint lista dublu-legat (doubly-linked list), n care fiecare obiect component conine n structura sa dou referine, una la obiectul anterior i cealalt la obiectul posterior n list. Lista dublu legat permite prin urmare parcurgerea sa n ambele direcii cu aceeai uurin.

Structurile de tip ARBORE:

Sunt structuri de date n care fiecare element este conenctat la unul sau mai multe elemente aezate sub acesta; conexiunile dintre elemente se numesc ramuri. Elementele de pe ultimul nivel al arborelui, care nu au alte elemente sub ele cu care s fie conectate se numesc frunze. Elementul de pe primul nivel al arborelui, de la care pornesc toate celelalte conexiuni, se numete rdcin (root). Elementele din interiorul arborelui, diferite de rdcin i de frunze, se numesc noduri interne. Elementele conectate la un element de pe un nivel superior se mai numesc i copii ai acestuia, n tip ce elementul superior se va numi printe. Arborele binar este un caz particular de arbore n care fiecare element are cel mult dou conexiuni cu elementele de sub el (2 copii).

B-tree: Este o generalizare a arborelui binar n care se impune ca numrul de copii ai unui nod intern s nu fie mai mare de o valoare limit; prin urmare, aceast structur de date pstreaz datele sortate, simplificnd operaiile de cutare, acces secvenial, inserare i tergere.

Grmada (Heap): Este o structur de date de tip arbore, care impune restricia ca: dac nodul B este copil al nodului A, atunci n mod obligatoriu cheia(A) cheia(B). n consecin, nodul cu cea mai mare cheie va fi ntotdeauna nod rdcin, structura numindu-se Max-Heap. Se poate impune i restricia invers, respectiv: dac nodul B este copil al nodului A, atunci n mod obligatoriu cheia(A) cheia(B); atunci nodul cu cea mai mic cheie va fi ntotdeauna nod rdcin, iar structura de acest tip se numete Min-Heap.

Structur de tip Max-Heap Arborele de prefixe (Trie): este un arbore ordonat n care cheile sunt de obicei iruri de caractere i nu sunt n mod obligatoriu stocate n nodul corespunztor; pentru a identifica cheia asociat unui nod este suficient specificarea poziiei sale n arbore. Toi copii unui nod au un prefix comun, corespunztor cheii acelui nod, iar rdcina are asociat cheia nul (irul de caractere vid). Nodurile frunz din structur i eventual anumite noduri interne de interes au asociate i valori numerice. Termenul trie provine din retrieval.

Structur de tip TrieStructurile de tip HASHES:

Hash table: este o structur de date care folosete o funcie de hash (amestecare) pentru a stabili asocierea ntre anumite valori, cunoscute drept chei (ex. numele unei persoane) i valorile lor pereche (ex. numrul de telefon). Valorile asociate sunt de obicei memorate ntr-un tablou (array), iar funcia de amestecare transform de fapt cheia ntr-un index la nivelul acelui tablou. Sunt folosite pentru implementarea mecanismului de indexare a bazelor de date.

Structur de tip Hash table

Funcia de amestecare (hash) poate fi aplicat i altor structuri de date, rezultnd combinaii ale acestora: Hash list, Hash tree, Hash Trie, etc.

GRAFUL:

Este o structur abstract de date format dintr-o mulime finit de perechi ordonate, numite arcuri, ntre un numr de elemente numite noduri. Un arc se noteaz sub forma (x, y) i se spune c merge de la x la y. Nodurile pot fi pri componente ale structurii, sau pot fi obiecte externe, reprezentate prin numere ntregi sau referine.

Structur de tip Graf

FIIERUL:

Este o colecie de date identificate cu un nume comun; toate datele memorate n calculator sunt memorate n fiiere. Exist diferite tipuri de fiiere, identificate prin extensia lor, n funcie de natura datelor pe care le conin i de programul cu care au fost create (fiiere de tip text, de tip imagine, de tip animaie, secvena video sau audio, etc.)

Una dintre cele mai performante i mai utilizate metode de organizare a datelor este banca de date.

O banc de date se definete ca fiind format din urmtoarele elemente:

baza de date: o colecie de date aflate n interdependen, structurat, mpreun cu descrierea lor;

sistemul de gestiune al bazei de date (SGBD): un sistem software ce coordoneaz gestiunea i prelucrarea datelor din baza de date, folosind n acest scop sistemul de operare i caracteristicile sistemului de fiiere al computerului i furniznd o interfa cu utilizatorul independent de acestea;

componenta hardware: partea fizic a bncii de date - sistemul de calcul prevzut cu uniti periferice pe care rezid volume de memorie extern, de regul adresabile, destinate BD i soft-ului, precum i linii de teletransmisie;

utilizatorii: grupai pe mai multe nivele, n funcie de drepturile de acces pe care le au:

administratorul BD: este o persoan sau un grup de persoane responsabile cu proiectarea, controlul exploatrii i meninerea n funciune a BD;

programatorii de aplicaie: sunt persoane care realizeaz programele utilizator i efectueaz unele prelucrri de date;

utilizatorii finali: sunt persoanele care apeleaz programele scrise de programatori.

Funciile sistemului de gestiune a bazei de date (SGBD):

supravegherea tuturor operaiilor de stocare, modificare i regsire ntr-o baz de date;

verificarea regulilor de integritate i consisten a datelor;

controlul i autorizarea accesului la baza de date;

controlul accesului concurenial (multi-user);

facilitarea sistemelor de protecie a datelor (controlul log-in-ului).

SGBD realizeaz interfaa dintre programele utilizator i sistemul de fiiere.

O baz de date se definete ca un ansamblu de date, interconectate, mpreun cu descrierea lor, care permite centralizarea, coordonarea, integrarea i difuzia informaiilor i care asigur satisfacerea tuturor necesitilor de prelucrare ale tuturor utilizatorilor din sistem. Termenul a fost introdus pentru prima dat n 1963, n cadrul unui simpozion organizat de System Development Corporation, avnd tema Development and Management of a Computer-centered Data Base i a devenit un termen larg utilizat n anii 1970.Avantajele organizrii datelor n baze de date sunt:

independena datelor memorate de aplicaie;

nivelul redus de redundan a datelor;

posibilitatea de a aplica restricii de securitate a datelor i protecia acestora fa de accesul neautorizat;

integritatea datelor: pe tot parcursul funcionrii sistemului este asigurat corectitudinea datelor;

uurina n manevrare: utilizatorii pot folosi datele fr a cunoate ntreaga structur a bazei de date;

posibilitatea de a defini i folosi criterii de selectare a datelor;

existena unor limbaje performante de regsire a datelor, care permit extragerea din baza de date a informaiilor dorite ntr-o modalitate comod i rapid;

datele pot fi accesate i gestionate de mai muli utilizatori, de pe mai multe calculatoare, simultan;

gestionarea eficient a datelor prin pachete de programe care asigur o interfa prietenoas cu utilizatorii.

ntr-o baz de date exist trei nivele de organizare a datelor:

Nivelul virtual: se refer la datele necesare tuturor utilizatorilor unei baze de date, n condiii de redundan minim i controlat a datelor; este schema conceptual a bazei de date, coninnd informaii relativ la structura global a bazei de date.

Nivelul logic: se refer la forma n care fiecare utilizator vede datele, n funcie de aplicaia pe care o folosete; este o subschem din schema conceptual a bazei de date, specific unui anumit program; relativ la aceeai schem pot fi concepute mai multe subscheme, corespunztor aplicaiilor folosite.

Nivelul fizic: se refer la modul de memorare a datelor pe suporturile de memorie, care trebuie s fie eficient att din punct de vedere al spaiului, ct i al timpului de acces.

n funcie de modul de realizare, exist mai multe tipuri de baze de date:

Baze de date integrate: baza de date i programele de manevrare a ei alctuiesc un tot unitar, fiind n mod obligatoriu instalate pe acelai calculator; astfel, datele sunt accesibile unui singur utilizator la un moment dat;

Baze de date client server: implementate n reele de calculatoare de tipul client server. Pe server este de obicei memorat baza de date, iar pe staiile de lucru din reea sunt memorate diferite pachete de programe pentru manevrarea ei care trebuie s aib o interfa unic pentru comunicare cu serverul, realizat de obicei n SQL (Structured Query Language) limbaj de interogare standard. Avantaj: baza de date sau programele pot fi folosite simultan de mai muli utilizatori, fr a fi nevoie ca acetia s aib pe staiile lor de lucru o copie a bazei sau programului respectiv.

Baze de date distribuite: n cazul bazelor de date foarte ample, acestea vor fi constituite din mai multe tabele, memorate separat (chiar pe staii de lucru diferite) i legate ntre ele prin relaii, independent de programele de manevrare a lor; principii care se respect la fragmentarea bazei de date n tabele:

Datele sunt plasate pe staia de lucru n care producerea i utilizarea lor este mai frecvent;

Datele sunt plasate astfel nct s fie minimizat transportul lor prin reea.

Baze de date cu prelucrare paralel a datelor: aceeai baz de date este folosit n comun de mai multe calculatoare, astfel nct o interogare complex a bazei de date este mprit n module mai simple, care sunt executate simultan pe mai multe procesoare (sistemul ctig mult n vitez).

Baze de date multimedia: permit memorarea i manipularea datelor de natur divers (sunet, imagine, text), pe baza codificrii lor numerice; exemple:

Image Base-Mac: program de gestiune a bncilor de imagini, care permite: preluarea imaginilor prin scanner, compresia lor n anumite formate, identificarea imaginilor prin existena unui fiier text asociat, cutarea i selecia imaginilor pe baz de criterii;

Media Rext-Windows: aplicaie pentru clasificarea documentelor sonore i video, cu posibilitatea de asociere de comentarii n text liber;

Baze de date orientate-obiect: reprezentarea i administrarea datelor este separat de programele utilizator de prelucrare, astfel nct datele s poat fi utilizate de mai multe programe utilizator , iar programele s fie total independente de reprezentarea intern a datelor.

Modele de organizare a datelor ntr-o baz de date

Orice sistem de gestiune a bazelor de date folosete un model particular de date, definit la nivel logic, i care, eventual, poate fi implementat fizic n mai multe modaliti. Cele mai cunoscute modele de date sunt:

1) Modelul ierarhic:

Este primul model folosit n exploatarea bazelor de date, i folosete 2 concepte principale de structurare a datelor: nregistrarea i relaiile printe copil (RPC), care definesc ierarhia corespunztoare modelului de date. Acest model de date a fost dezvoltat pe baza structurilor de date de tip ARBORE, prezentate anterior.

O nregistrare se definete ca o colecie de date care furnizeaz informaii relativ la o entitate (ex. pacient), fiind similar cu linia din modelul relaional.

nregistrrile de acelai tip sunt grupate n tipuri de nregistrri; un tip de nregistrare are un nume i o structur, definit de o colecie de cmpuri de date (ex. date administrative, examen fizic). RPC exprim relaia dintre un tip de nregistrare printe i un numr de tipuri de nregistrare copii. RPC determin n consecin gruparea tipurilor de nregistrare ntr-o structur de arbore, ceea ce presupune respectarea urmtoarelor condiii:

fiecrui tip de nregistrare i se asociaz un numr de nivel;

exist un singur tip de nregistrare de nivel 1, numit rdcin;

fiecrui tip de nregistrare, cu excepia celui de nivel 1, (rdcina) i corespunde un singur tip de nregistrare superior i mai multe tipuri de nregistrare inferioare (subordonate). Acestor tipuri de nregistrare li se atribuie un numr de nivel > 1;

tipurile de nregistrare care nu au alte tipuri subordonate sunt tipuri de ultim nivel;

tipurile de nregistrare subordonate aceluiai printe formeaz o familie de tipuri;

la orice tip de nregistrare se poate ajunge pornind de la rdcin i parcurgnd toate tipurile superioare.

Structurile arborescente permit efectuarea a dou clase de prelucrri:

adugarea sau tergerea unor tipuri de nregistrare (sunt dificile, deoarece tergerea unui tip presupune i tergerea tuturor descendenilor lui, iar adugarea unui tip impune reorganizarea ntregii baze de date);

consultarea tipurilor de nregistrare, prin parcurgerea structurii arborelui ntr-o anumit ordine.

Structur arborescentAvantajul acestui model este acela c datele sunt automat aezate ntr-o anumit ierarhie. Dezavantajul este ns acela c, pentru a realiza baza de date, este necesar s identificm de la nceput fiierele (tabelele) care vor trebui integrate i ierarhia logic a acestora sistemul nefiind suficient de flexibil nct s permit integrarea ulterioar i a altor fiiere de date. Astfel, atunci cnd se dorete extinderea sistemului, este necesar reproiectarea sa de la nceput.2) Modelul reea:

Reprezint o generalizare a modelului ierarhic, care folosete o structur de date similar, dar renun la restricia c un copil poate avea un singur printe. Asocierile ntre elemente sunt realizate prin pointeri, exprimai de obicei prin numerele nodurilor componente. Modelul reea poate fi exprimat la nivel logic prin modele de tip ierarhic i reciproc.

Structur reea

Avantajul acestui model este flexibilitatea sporit fa de modelul ierarhic i un grad mai mare de accesibilitate a datelor pentru a accesa datele de la un anumit nivel din structur, nu este necesar parcurgerea tuturor datelor de pe nivelele superioare. Dezavantajul este acela c procesul de proiectare i dezvoltare a bazelor de date construite cu acest model este complex, i necesit cunoaterea tuturor tipurilor de relaii ntre date de la nceput astfel nct modificarea acestora necesit eforturi de programare sporite. ntreinerea i operarea cu baze de date n model reea este costisitoare i consumatoare de timp. 3) Modelul relaional (Codd, 1970): Se bazeaz n exclusivitate pe conceptul matematic de relaie n-ar, folosit ca schem de structurare a datelor. Fiind date mulimile C1, C2, ....Cn finite, i nu neaprat distincte, se numete relaie peste aceste mulimi o submulime a produsului cartezian al lor, C1 ( C2 ( ... ( Cn (unde produsul cartezian este mulimea tuturor n-uplelor (x1, x2, ... xn) unde x1 ( C1, x2 ( C2, ... xn ( Cn).

Structura de date pe care este construit modelul relaional este TABELUL, n care informaiile referitoare la o anumit entitate sunt reprezentate pe linii i pe coloane.Coloanele enumer diferitele atribute ale entitii, fiind denumite i CMPURI (ex. nume, adres, CNP, numr de telefon), iar liniile, denumite i NREGISTRRI, reprezint instane particulare ale acelei entiti (ex. datele personale ale unui pacient).Cmpurile bazei de date sunt de fapt mulimile C1, C2, ... Cn descrise anterior. Relaia va fi constituit din mulimea tuturor nregistrrilor bazei de date (tabelului), fiecare n-uplu al relaiei fiind de fapt cte o nregistrare (linie) din tabel. Toate tabelele dintr-o baz de date relaional respect n mod obligatoriu urmtoarele trei reguli: ordinea coloanelor nu este important;

fiecare linie este diferit de celelalte linii (nu se admit duplicri);

fiecare linie are o valoare distinct i unic n fiecare dintre coloanele corespunztoare.

Avantajele modelului relaional al bazelor de date:

este o reprezentare simpl, uor accesibil informaticienilor, ct i neinformaticienilor (datorit faptului c BDR se prezint ca o colecie de tabele);

asigur independena programelor fa de date;

permite proiectarea unei structuri optime a nregistrrilor;

admite satisfacerea cerinelor ntmpltoare ale utilizatorilor, prin intermediul unor limbaje neprocedurale, fr a fi necesar preprogramarea acestor cerine.

Prin urmare, modelul relaional al bazelor de date permite crearea, consultarea i actualizarea rapid i facil a BD, folosind tehnici de acces i prelucrare optimizate. Pentru definirea sa se folosesc instruciuni i limbaje specializate, unul dintre cele mai cunoscute fiind SQL (Structured Query Language).

Structuri de indexare:

Un avantaj important al SGBD-urilor actuale este acela c furnizeaz acces rapid la date, independent de dimensiunea bazei de date; viteza de acces depinde n mod uzual de metoda prin care datele sunt ordonate din punct de vedere fizic n fiier. Pe parcursul exploatrii bazei de date poate aprea ns necesitatea de a modifica ordinea datelor, definind noi criterii de sortare a acestora. Pentru ca aceast operaie s se realizeze mai simplu, SGBD-urile moderne folosesc un sistem de indexare a nregistrrilor.

Se creeaz astfel fiiere (tabele) de indeci similare cu indexul unei cri (pentru fiecare cuvnt din index este indicat numrul de pagin sau paragraful n care apare acel cuvnt). Un index al unei baze de date este construit printr-o combinaie de unul sau mai multe cmpuri ale bazei de date, care alctuiesc o cheie de indexare condiia pe care trebuie s o ndeplineasc o astfel de cheie este c trebuie s aib valori specificate pentru fiecare nregistrare din baza de date.

Dac se adaug n plus i restricia ca aceste valori s fie distincte permind astfel identificarea n mod unic a tuturor nregistrrilor din baza de date, cheia obinut se numete cheie primar de indexare a bazei de date.

Odat ce baza de date este sub controlul unui fiier de indeci, acesta dicteaz ordinea de accesare a nregistrrilor bazei de date care nu va mai coincide cu ordinea fizic a nregistrrilor (ordinea n care aceste nregistrri au fost introduse n baza de date), ci va fi determinat de ordinea cresctoare / descresctoare a valorilor cheii de indexare.

Sistemul poate fi de asemenea generalizat cu uurin, definind pentru o baz de date mai multe fiiere de indeci, fiecare dintre ele avnd scopuri diferite adic construind ordini diferite de accesare a nregistrrilor bazei de date. n acest mod, accesarea liniilor unei baze de date n ordinea impus de un fiier de indeci const de fapt din 2 operaiuni:

accesarea fiierului de indeci, care returneaz cheia primar de indexare ce va fi folosit;

accesarea tabelului de nregistrri, pe baza acestei chei.

Modelul relaional al bazelor de date poate fi generalizat, considernd mai multe tabele cu structura descris mai sus, n fiecare dintre acestea fiind stocate tipuri diferite de date (ex.: datele administrative ale pacientului, datele medicale generale, rezultatul examenului fizic, etc.). Toate aceste tabele alctuiesc domeniul bazei de date.

Datele corespunztoare aceleiai nregistrri sunt fracionate i memorate n tabele diferite n baza de date, n funcie de natura lor; pentru a se putea regsi ulterior i eventual recompune, se folosete un sistem de relaii ntre tabele, asemntor cu sistemul de indexare a unui singur tabel: se identific un cmp comun al tuturor tabelelor (denumit cheie primar de indexare), care, de obicei pe baza unor coduri numerice, identific n mod unic nregistrrile din fiecare tabel.

Relaiile care apar ntre nregistrrile mai multor tabele pot fi de urmtoarele tipuri:

a) relaia de tip 1 - 1, numit i relaie biunivoc.

Se noteaz:

A B

Exemplu: relaia ntre tabelul cu grupele de studeni din anul I, i tabelul cu studenii care sunt efi de grup.

b) relaia de tip 1 - n, se caracterizeaz prin aceea c unei realizri din domeniu i corespund 0, 1 sau mai multe realizri n codomeniu.

Se noteaz:

A

B

Exemplu: Putem avea un fiier cu studenii bursieri (identificai n mod unic prin numrul matricol) i corespunztor un alt fiier cu bursele luate pe parcursul unui an universitar i data la care au fost ncasate.

c) relaia de tip n - 1, se caracterizeaz prin aceea c mai multe realizri din domeniu corespund unei singure realizri din codomeniu.

Se noteaz:

A

B

Exemplu: Considerm un fiier care conine crile dintr-o bibliotec i un altul care conine mulimea studenilor. Un student poate mprumuta mai multe cri simultan, ceea ce se exprim printr-o relaie de tipul:

d) relaia de tip m - n, se caracterizeaz prin aceea c unei realizri din domeniu i corespund 0, 1 sau mai multe realizri din codomeniu, iar unei realizri din codomeniu i corespund mai multe realizri din domeniu.

Se noteaz:

A

B

Exemplu: S lum problema simpatiilor: mai multe fete pot simpatiza un biat i mai muli biei pot simpatiza o fat, considernd fetele i bieii separat (n fiiere diferite) sau n cadrul aceluiai fiier.

EMBED Word.Picture.8