CATEGORII DOCUMENTE |
Teoria bazelor de date
Organizarea datelor ocupa un loc important in proiectarea sistemelor informatice. De modul in care sunt organizate datele depinde eficienta sistemului informatic.
Organizarea datelor presupune:
definirea structurarea, ordonarea si gruparea datelor in colectii de date omogene
stabilirea relatiilor intre date
stocarea datelor pe suport informational, prelucrabil intr-un sistem de calcul.
Scopul organizarii datelor il constituie regasirea automata a datelor dupa diverse criterii.
Obiectivele urmarite in organizarea datelor sunt:
timpul de acces la date sa fie minim (acces rapid la date)
spatiul de memorie interna si externa ocupat de date sa fie cat mai redus (economie de memorie interna si externa)
datele sa apara o singura data in sistem (unicitatea datelor)
sa se permite schimbarea structurii datelor si a relatiilor dintre ele fara a modifica programele ce le gestioneaza (flexibilitatea datelor).
Definitie: Structura de date este definita ca o colectie de date intre care s-au stabilit o serie de relatii care conduc la un anumit mecanism de selectie si identificare a componentelor. Accesul la o componenta a unei structuri se poate face in doua moduri:
acces secvential sau
acces direct.
In cazul accesului secvential localizarea unei componente se face prin parcurgerea tuturor componentelor care se afla inaintea componentei accesate.
Daca o componenta din structura poate fi selectata fara a tine seama de celelalte componente, atunci structura are un acces direct.
Componentele unei structuri de date pot fi date elementare sau pot fi ele insele structuri de date.
Asupra unei structuri de date se pot efectua o multitudine de operatii care se refera la valori si/sau la structura. Dintre acestea, cele mai frecvente sunt:
crearea
consultarea (accesul la componentele structurii)
actualizarea (adaugare, stergere, modificare valori, modificare relatii)
sortarea
fuzionarea (formarea unui noi structuri din doua sau mai multe structuri)
ventilarea (spargerea structurii in doua sau mai multe structuri)
copierea
interclasarea.
Operatiile la care poate fi supusa o structura de date si eficienta cu care acestea pot fi realizate depind in mare masura de relatiile intre datele materializate pe suportul de memorie.
Un tip de structura de date este o multime ordonata de date intre care s-au stabilit anumite relatii si pentru realizarea operatiilor se foloseste un grup de operatori de baza cu o anumita semantica.
Dupa tipul componentelor structurile se clasifica in:
structuri omogene, in care componentele sunt de acelasi tip
structuri eterogene, in care componentele apartin unor tipuri diferite.
Daca o structura se poate descompune in structuri de acelasi tip, atunci structura este recursiva.
Dupa posibilitatea de modificare a valorilor si/sau structurii avem:
structuri statice, care pe tot parcursul existentei lor au acelasi numar de componente in aceeasi ordine
structuri dinamice, care permit modificarea valorilor si/sau structurii prin aplicarea operatorilor.
Din punct de vedere al nivelului de structurare al datelor avem:
structura logica, ce se refera la modul de ordonare al datelor, operatorii de tratare a datelor
structura fizica, ce se refera la modul de implementare al datelor de reprezentare efectiva pe suport informational.
Clasificarea in structuri statice si dinamice se refera, in principal la structurile fizice de date. Din acest punct de vedere, alocarea memoriei pentru o structura statica este o alocare statica, atat pentru componente cat si pentru structura. Pentru o structura dinamica, alocarea este dinamica atat la nivelul intregii structuri cat si la nivelul componentelor.
In organizarea datelor trebuie definita atat structura logica cat si structura fizica, cele doua nivele conditionandu-se reciproc.
Principalele tipuri de structuri (logice) de date sunt:
structura punctuala
structura liniara
structura arborescenta
structura retea
structura relationala.
Structura punctuala este reprezentata de o entitate grup izolata. Considerand ca nu exista relatii explicite intre realizarile entitate, acest tip de entitate luat singur reprezinta structura punctuala.
Structura liniara presupune ca intre elementele unei colectii de date sa existe o relatie de ordine totala. Acest tip de structura are urmatoarele proprietati:
Cardinalul multimii elementelor initiale este egal cu 1;
Cardinalul multimii elementelor terminale este egal cu 1;
Primul element nu are predecesori;
Ultimul element nu are succesori;
Orice element neterminal are un succesor imediat unic;
Relatiile stabilite intre date sunt de tipul 1 la 1;
Structura arborescenta (ierarhica). Daca intre elementele unei colectii de date exista o relatie de ordine, spunem ca structura acestei colectii de date este o structura arborescenta. Acest tip de structura are urmatoarele proprietati:
Exista un element unic, numit radacina arborelui;
Orice nod diferit de radacina are un predecesor imediat unic;
Orice nod neterminal are un numar finit de succesori imediati;
Relatiile stabilite intre noduri sunt de tipul 1 la m;
Structura retea. Daca intre elementele unei colectii de date exista o relatie de preordine, atunci spunem ca structura acestei colectii de date este o structura retea. Aceasta are urmatoarele proprietati:
O retea este un graf in care intre doua noduri exista legaturi bidirectionale;
Un nod are mai multi predecesori si el insusi poate fi predecesor pentru propriul sau predecesor. Apar astfel in retea cicluri. Un ciclu este un drum in care nodul initial este acelasi cu nodul final;
Cardinalul multimii elementelor initiale este mai mare sau egal cu 1;
Cardinalul multimii elementelor finale este mai mare sau egal cu 1;
Intre elementele retelei se stabilesc relatii de tipul m la n;
Structura relationala.Structura relationala este formata din mai multe tabele (relatii) de date elementare, fara o legatura aparenta intre ele. Operatiile pe aceste structuri sunt realizate cu operatori relationali ai algebrei relationale sau ai calcului relational.
Definirea unui model de date presupune precizarea urmatoarelor trei elemente:
structura modelului
operatorii care actioneaza asupra structurilor de date
restrictiile pentru mentinerea corectitudinii datelor, numite si reguli de integritate.
Descrierea structurii modelului presupune:
definirea obiectelor (entitatilor) si a caracteristicilor asociate
stabilirea relatiilor intre obiecte.
Formarea relatiilor intre inregistrari in cadrul unui model de date are ca scop reducerea redundantei datelor.
Relatia intre inregistrari poate pune in evidenta doua tipuri de legaturi:
legaturi orizontale (liste inlantuite)
legaturi verticale, care permit localizarea inregistrarii parinte.
Legatura dintre obiecte (entitati) poarta denumirea de asociere. Legaturile dintre doua entitati pot fi de trei tipuri:
legatura "unu la unu" (1->1). De exemplu, relatia dintre un apartament si un chirias. Un apartament este inchiriat unui singur chirias, iar un chirias poate beneficia de un singur apartament cu chirie.
Fig. 3‑
legatura "unu la mai multi" (1->n). De exemplu: un elev poate face parte dintr-o singura clasa, iar o clasa poate avea mai multi elevi. Aceasta structura este de tip arborescent.
Fig. 3‑
legatura de tipul "multi la multi" (m->n). De exemplu, un produs este achizitionat de mai multi clienti si un client poate achizitiona mai multe produse. Aceasta structura este de tip retea.
Produs 1 Produs 2 ... Produs m
Client 1 Client 2 ... Client n
Fig. 3‑
Operatorii care actioneaza asupra structurilor de date reprezinta cel de al doilea element al unui model de date. Acesti operatori pot fi de citire, memorare, modificare, jonctiune, etc.
Regulile de integritate, cel de-al treilea element al unui model de date sunt restrictii menite sa asigure mentinerea corectitudinii datelor.
Exemple de astfel de restrictii:
Sa nu se accepte memorarea valorilor asociate caracteristicilor unui produs daca nu se cunoaste valoarea cheii lui CODP;
Sa nu se permita stergerea valorilor atributelor unui client daca acesta nu a achitat integral factura pentru cumpararea unui produs;
Modelele de date se impart in:
modele ierarhice sau arborescente
modele retea
modele relationale
modele orientate pe obiect.
Modelul ierarhic are ca structura de baza tipuri de inregistrari care grupeaza toate atributele unei entitati. Acest model introduce un nou tip de structura: ierarhia.
O ierarhie are un tip de inregistrare definit ca "radacina" si mai multe tipuri de inregistrari subordonate, legate sub forma de arbore.
Legatura de la un nod superior la unul inferior este de tipul 1->n, iar legatura de la un nod inferior la unul superior este de tipul 1->1.
Exemplu:
. . .
Fig. 3‑
Deci modelul ierarhic pune la dispozitie doua structuri: tipuri de inregistrari si ierarhia.
La acest model, in cazul operatiei de actualizare apar o serie de anomalii precum:
la inserare, nu se pot introduce noi inregistrari subordonate daca nu sunt cunoscuti superiorii
la stergere, nu se sterge o inregistrare radacina, atunci se sterg automat toate inregistrarile subordonate.
In acest model, datele sunt reprezentate asemanator cu modelul ierarhic, cu deosebirea ca fiecare nod inferior poate avea mai multi superiori. In cadrul acestui model, intalnim doua structuri:
tipul de inregistrari (care asigura campurile unei inregistrari)
tipul set (care asigura legaturile intre tipurile de inregistrare).
Actualizarile in acest caz sunt cele obisnuite (adaugare, modificare, stergere) si se pot opera atat tipurile inregistrarilor logice cat si in legaturi.
Acest model are la baza teoria matematica a relatiilor. Are o singura structura de date: relatia (tabelul), o submultime a produsului cartezian al unor domenii.
In concluzie, un astfel de model poate fi privit ca o multime de tabele obtinute prin metoda normalizarii. Normalizarea pleaca de la o multime de atribute (campuri de date) si o multime de dependente functionale dintre campuri si conduce la o schema conceptuala a modelului relational intr-o forma normalizata in care se vor elimina anomaliile de actualizari.
Modelul de date orientat pe obiecte este bazat pe o colectie de obiecte. Un obiect contine valori stovcate in variabilele de instanta ale acestuia, deasemenea contine fragmente de cod care opereaza asupra obiectului. Aceste fragmente de cod sunt denumite metode.
Obiectele care contin valori de acelasi tip si aceleasi metode sunt grupate impreuna in clase. O clasa paote fi vazuta de tip pentru obiecte. Aceasta combinatie de date si obiecte care formeaza definitia tipului este similara cu tipurile abstracte din limbajele de programare.
Singurul mod in care un obiect poate accesa datele unui alt obiect este prin invocarea unei metode a obiectului respectiv. Aceasta actiune este denumita trimitere de mesaj la obiect. Astfel interfata de apelare a metodelor unui obiect defineste partea vizibila din exterior a acestuia.
Partea interna a obiectului, adica variabilele de instanta si codul metodelor, nu sunt vizibile din exterior. Rezultatul este o abstractizare pe doua nivele.
Conceptul de baza de date poate fi definit ca fiind una sau mai multe colectii de date aflate in interdependenta, impreuna cu descrierea datelor si a relatiilor dintre ele.
Baza de date astfel definita trebuie sa indeplineasca urmatoarele conditii:
sa asigure o independenta sporita a datelor fata de programe si invers;
structura bazei de date trebuie astfel conceputa incat sa asigure informatiile necesare si suficiente pentru cerintele de informare si decizie;
sa se asigure o redundanta minima si controlata a datelor;
sa permita accesul rapid la informatiile stocate in baza;
Pe plan international exista mai multe grupuri specializate in standardizarea conceptelor ce apar in dezvoltarea bazelor de date, cele mai importante fiind DBTG, CODASYL, ANSI.
Bazele de date sunt extrem de variate in functie de criteriile luate in considerare. Prezentam cateva criterii:
dupa orientare: generalizate, specializate;
dupa modelul de date: ierarhice, retele, relationale, orientate obiect;
dupa amploarea geografica: locale, distribuite;
dupa limbajele utilizate: autonome (limbaje proprii), cu limbaj gazda, mixte;
Arhitectura bazelor de date evidentiaza componentele acestora si a fost standardizata international. O astfel de arhitectura generala cuprinde urmatoarele componente:
baza de date propriu-zisa in care se memoreaza colectia de date;
sistemul de gestiune al bazei de date, care este un ansamblu de programe (soft) care realizeaza gestiunea si prelucrarea complexa a datelor;
un set de proceduri manuale si automate, precum si reglementarile administrative, destinate bunei functionari a intregului sistem;
un dictionar al bazei de date (metabaza de date), ce contine informatii despre date, structura acestora, elemente de descriere a semanticii, statistici, documentatie;
mijloacele hard utilizate:
personalul implicatL categorii de utilizatori: neinformaticieni, de specialitate- adiminstrator, analisti - programatori, gestionari, operatori).
Arhitectura bazei de date da o imagine despre modul general de organizare si functionare a ei. Componentele bazei de date pot fi structurate pe trei nivele, in functie de clasa utilizatorilor implicati:
nivelul logic. Este dat de viziunea programatorului de aplicatii, care realizeaza programele de aplicatii pentru manipularea datelor si structura logica corespunzatoare descrierii datelor aplicatiei;
nivelul conceptual (global). Este dat de viziunea administratorului bazei de date, care realizeaza structura conceptuala (schema) corespunzatoare descrierii bazei de date si administreaza componentele bazei de date pentru manipularea datelor;
nivelul fizic (intern). Este dat de viziunea inginerului de sistem care realizeaza structura fizica corespunzatoare descrierii datelor pe suportul fizic.
nivelul virtual (extern). Este dat de viziunea utilizatorului final asupra datelor. Datele exista doar la nivel fizic, iar celelalte trei nivele reprezinta virtualizari ale acestora.
O baza de date apare ca o colectie de date stocate pe memorii externe adresabile, folosite de o multitudine de utilizatori.
Sistemul de gestiune al bazei de date reprezinta software-ul propriu-zis al acestuia care asigura realizarea urmatoarelor activitati:
definirea structurii bazei de date
incarcarea datelor in baza de date
accesul la date (interogare, actualizare)
intretinerea bazei de date
reorganizarea bazei de date (restructurarea si modificarea strategiei de acces)
securitatea datelor.
Sistemul de gestiune al bazei de date apare ca un sistem complex de programare care asigura interfata intre o baza de date si utilizatorii acestuia.
Unui sistem de gestiune a bazei de date ii revin o serie de obiective, acestea sunt:
Asigurarea independentei datelor.
O aplicatie este dependenta de date in sensul ca modificarea structurii de memorare a datelor sau a strategiei de acces la date afecteaza si aplicatia. Independenta datelor este totusi necesara din urmatoarele considerente:
diferite aplicatii au nevoie de viziuni diferite ale acelorasi date
administratorul bazei de date trebuie sa aiba libertatea de a schimba structura de memorare sau strategia de acces ca raspuns la cerintele utilizatorilor, fara a modifica aplicatiile existente.
Deci, modificarile care se fac la nivel de structura de date nu trebuie sa modifice programele de aplicatie.
Independenta fizica a datelor privita din doua puncte de vedere:
independenta fizica
independenta logica.
Independenta fizica a datelor face ca memorarea datelor si tehnicile fizice de memorare sa poata fi modificate fara a determina rescrierea programelor de aplicatie.
Independenta logica a datelor se refera la posibilitatea adaugarii de noi articole de date sau extinderea structurii conceptuale, fara ca aceasta sa impuna rescrierea programelor existente.
Asigurarea unei redundante minime si controlate a datelor din baza de date.
Stocarea datelor in baza de date se face astfel incat fiecare data sa apare o singura data. Totusi nu sunt excluse nici cazurile in care pentru a realiza performante sporite, referitoare la timpul de acces la date si raspuns la solicitarile utilizatorilor, sa se accepte o anumita redundanta a datelor, insa in acest caz se va institui un control automat asupra ei in vederea asigurarii coerentei datelor din baza.
Asigurarea unor facilitati sporite de utilizare a datelor.
Aceasta presupune:
folosirea datelor de catre mai multi utilizatori in diferite scopuri
accesul cat mai simplu al utilizatorilor la date
existenta unor limbaje performante de regasirea datelor
utilizarea unui limbaj cat mai apropiat de limbajul natural, cu posibilitatea exploatarii bazei de date in regim conventional. Aceasta ar oferi posibilitatea exploatarii in mod facil a bazei de date si de catre utilizatorii neinformaticieni.
Sporirea gradului de securitate a datelor impotriva accesului neautorizat la ele
Adminstratorul bazei de date poate prevedea ca accesul la baza de date sa se faca numai autorizat, si poate totodata defini verificari de autorizare realizate oricand se incearca accesul la anumite date;
Asigurarea integritatii datelor, impotriva unor stergeri intentionate sau neintentionate, prin intermediul unor proceduri de validare, a unor protocoale de control concurent si a unor proceduri de refacere a bazei de date dupa incidente.
Asigurarea partajabilitatii datelor.
Aceasta trebuie inteleasa nu numai sub aspectul asigurarii accesului mai multor utilizatori la aceleasi date, ci si acela al posibilitatii dezvoltarii unor aplicatii fara a se modifica structura bazei de date.
In continuare sunt prezentate cateva functii ale unui sistem de gestiune a bazei de date:
Functia de descriere a datelor, permite definirea structurii bazei de date cu ajutorul limbajului de definire.
In cadrul acestei functii se descriu campurile din cadrul structurii bazei de date, legaturile dintre entitatile bazei de date sau dintre atributele (campurile) aceleiasi entitati (inregistrari), metodele de acces la date, aspectele referitoare la asigurarea integritatii si confidentialitatii datelor.
Functia de manipulare a datelor, este cea mai complexa functie si realizeaza urmatoarele activitati:
crearea bazei de date
adaugarea unei noi inregistrari
suprimarea unor inregistrari
modificarea valorilor corespunzatoare unor campuri
cautarea, sortarea, etc.
Functia de utilizare, asigura multimea interfetelor necesare pentru comunicare tuturor utilizatorilor cu baza de date.
Functia de administrare a bazei de date apare ca o functie complexa si este de competenta administratorului bazei de date.
6. Proiectarea bazelor de date
Realizarea unei baze de date presupune parcurgerea urmatoarelor etape:
analiza sistemului (domeniului) economic pentru care se realizeaza baza de date si a cerintelor informationale asociate;
proiectarea structurii bazei de date (schema conceptuala, externa si interna);
incarcarea datelor in baza de date
exploatarea si intretinerea
Continutul acestor etape, respectiv activitatile implicate si modul lor de desfasurare depind, in general, de tipul bazei de date precum si de domeniul pentru care se construieste baza de date.
Realizarea bazei de date presupune utilizarea unor metode si tehnici de analiza (tehnica normalizarii relatiilor, a diagramelor de dependenta riguroasa, etc.) de programare precum si a unor instrumente de lucru cum ar fi: limbajele de descriere a datelor (data definition language) si limbaje de manipulare a datelor (data manipulation language).
Activitatea de analiza a sistemului presupune:
analiza componentelor sistemului si a legaturilor dintre acestea, activitate cunoscuta sub numele de analiza structurala sau statica, in urma careia se obtine modelul structural (static).
analiza starilor sistemului si a tranzitiilor posibile intre aceste stari, numita si analiza temporala, prin care se obtine modelul dinamic al sistemului.
analiza cerintelor informationale, in urma acestei activitati se obtine modelul functional.
integrarea modelelor sistemului economic ( structural, dinamic si functional ) in scopul corelarii si completarii lor.
Analiza structurala a sistemului economic are ca obiectiv evidentierea componentelor din cadrul sistemului, pentru care urmeaza sa se colecteze si sa se memoreze date in cadrul bazei de date, precum si evidentierea legaturilor dintre aceste componente.
Se cunosc mai multe tehnici de analiza structurala si anume: tehnica entitate-asociere ("entity-relationship"), introdusa de P.P.S. Chen, in 1976, tehnica SMD ('semantic datamodel'), introdusa de Hammer in 1981, etc. Dintre acestea, tehnica entitate-asociere este cea mai utilizata.
Tehnica entitate-asociere permite construirea modelului structural sub forma unei diagrame entitate-asociere prin parcurgerea urmatorilor pasi:
identificarea componentelor (entitatilor) din cadrul sistemului economic;
identificarea asocierilor dintre entitati si clasificarea acestora;
identificarea atributelor aferente entitatilor si asocierilor dintre entitati;
stabilirea atributelor de identificare a entitatilor.
Analiza dinamica are drept scop explicarea comportamentului componentelor sistemului economic analizat. In urma acestei analize se obtine modelul dinamic al sistemului. Construirea acestui model presupune:
identificarea starilor in care se pot afla componentele sistemului;
identificarea evenimentelor care determina trecerea unei componente dintr.o stare in alta;
stabilirea fluxului de evenimente si construirea unei diagrame care sa reflecte tranzitiile de stare pentru componentele sistemului.
In realizarea diagramei de flux a evenimentelor este necesar sa se tina cont de restrictiile dinamice ale sistemului care servesc la identificarea tranzactiilor admisibile intre doua stari.
Are ca scop determinarea transformarilor de date care se produc in cadrul sistemului in scopul satisfacerii cerintelor informationale aferente acestui sistem. Transformarile de date se vor prezenta sub forma unei diagrame de flux a prelucrarilor (modelul functional), in care nodurile reflecta procesele de prelucrare informationala iar arcele reflecta fluxurile informationale.
Model functional partial pentru un domeniu bancar, va fi reprezentat ca in figura de mai jos:
Fig. 6‑
Pe baza rezultatelor obtinute in aceasta etapa se trece la urmatoarea etapa de realizare a bazei de date si anume la definirea structurii bazei de date.
In cadrul etapei de integrare a modelelor sistemului economic se stabileste in ce masura modelul structural si cel dinamic satisfac necesitatile diferitelor aplicatii, verificandu-se completitudinea si consistenta lor. Se verifica daca relatiile dintre componentele sistemului sunt stabilite in mod corespunzator, pentru a face posibila regasirea informatiilor din mai multe entitati. Se determina, de asemenea daca legaturile dintre entitati asigura coerenta informatiilor.
Pe baza acestei analize integrate se efectueaza adaugarile si sau corelarile necesare intre modelele sistemului.
In final, se ajunge ca modelul structural si cel dinamic sa nu fie complet independente fata de aplicatii, iar modelul functional sa nu fie orientat exclusiv pe aplicatii.
Este extrem de important ca in etapa de analiza a sistemului economic si a cerintelor informationale asociate, activitatea de modelare a datelor sa se realizeze independent de sistemul de gestune al bazei de date.
Orientarea pe conceptele proprii a unui anumit sistem de gestiune al bazelor de date prezinta numeroase dezavantaje, dintre care se pot mentiona:
schimbarea SGBD-ului impune reproiectarea bazei de date
conceptele tehnice ale SGBD-ului pot influenta negativ activitatea de analiza, prin restrictiile impuse de acestea, care pot incuraja sau descuraja anumite reprezentari.
Trecerea la proiectarea structurii bazei de date impune luarea in considerare a SGBD-ului cu ajutorul caruia va fi implementata si exploatata baza de date.
Etapele de proiectare a structurii bazei de date, consta din urmatoarele activitatii:
alegerea SGBD-ului care sa fie utilizat pentru implementarea si exploatarea bazei de date;
proiectarea schemei conceptuale a bazei de date;
proiectarea schemei externe a bazei de date;
proiectarea schemei interne (de memorare) a bazei de date;
Aceste activitati sunt puternic influentate de tipul bazei de date care se proiecteaza.
Procesul de alegere a unui SGBD presupune realizarea urmatoarelor activitati:
a. Stabilirea cerintelor utilizatorilor, sub aspectul:
tipurilor de aplicatii
timpului de raspuns
confidentialitatii datelor
securitatii datelor
usurintei de utilizare si altele
b. Stabilirea cerintelor de ordin tehnic privind realizarea B.D., precum:
portabilitatea S.G.B.D. (utilizarea S.G.B.D.-ului pe diferite sisteme de calcul).
portabilitatea colectiilor de date si a programelor.
facilitatile de incarcare, exploatare si intretinere a B.D. ce trebuiesc asigurate (modalitatile de descriere a datelor tehnicile de organizare si regasire a datelor ) si altele.
c. Stabilirea cerintelor de ordin economic, privind:
incadrarea in bugetul alocat pentru realizarea B.D.
timpul necesar pentru pregatirea utilizatorilor si trecerea la exploatarea curenta a B.D.
Proiectarea schemei conceptuale a bazei de date presupune:
stabilirea colectiilor de date si definirea detaliata a continutului acestora;
determinarea legaturilor dintre colectiile de date si a modului de reprezentare a acestora in cadrul schemei conceptuale;
tratarea schemei obtinute si revizuirea acestuia, daca este cazul;
descrierea schemei conceptuale in limbajul de descriere a datelor de care dispune SGBD-ul si incarcarea acestei descrieri in baza de date.
Schema externa a bazei de date reprezinta forma sub care apare schema conceptuala pentru un utilizator oarecare. Programele de aplicatie opereaza asupra elementelor schemei conceptuale prin intermediul schemei externe, avand acces doar la acele elemente care sunt incluse in schema externa.
In cazul bazei de date relationale, schema externa este realizata, in principal cu ajutorul view-urilor si al mecanismelor de acordare a drepturilor de acces la baza de date.
Schema conceptuala prezinta diferite forme de structurare a datelor si anume: liniara, arborescenta, retea, relationala.
La proiectarea schemei interne a bazei de date se pune problema modului in care sa fie liniarizata schema conceptuala.
Metoda de liniarizare a schemei conceptuale este specifica SGBD-ului utilizat.
Este etapa in care se introduc datele in baza de date. Introducerea datelor in baza de date trebuie sa garanteze incarcarea numai a datelor corecte si acesta cu un minim efort.
Exploatarea bazei de date de catre diferiti utilizatori este realizata in scopul satisfacerii cerintelor de informare.
Intretinerea bazei de date reprezinta o activitate complexa, care se refera la actualizarea datelor din cadrul bazei de date si la reproiectarea structurii bazei de date. Activitatea este realizata in principal de catre administratorul bazei de date.
Protectia bazelor de date
Protectia bazelor de date consta intr-un set de masuri umane si facilitati oferite de SGBD, prin care se urmareste asigurarea integritatii datelor, definita simplu prin corectitudinea datelor introduse si manipulate, si a securitatii datelor, ce vizeaza interzicerea accesului la date pentru persoanele ce nu au competente in folosirea lor. Aceasta capata o importanta deosebita in contextul extinderii folosirii configuratiilor cu numar mare de utilizatori si cu un volum mare de date de prelucrat.
In ceea ce priveste sfera de actiune a metodelor utilizate pentru protectia datelor, pot fi puse in evidenta doua tendinte: protectia impotriva unor defecte sau erori accidentale si protectia completa care realizeaza in plus fata de prima si protectia contra unor actiuni voite. Teoretic, toate sitemele ar trebui sa asigure protectia completa a datelor. In practica insa, costul protectiei, care creste pe masura ce sunt reeduse posibilitatile de aparitie a unor erori si de violare a confidentialitatii datelor, este cel care dicteaza complexitatea metodelor de protectie care vor fi utilizate.
Aspectele protectiei bazelor de date ce vor fi prezentate in continaure, se bazeaza pe presupunerea ca protectia informatiei la nivelul sistemului de operare, este asigurata.
Corespunzator situatiilor care pot genera aparitia unor date incorecte in baza de date, se disting trei aspecte ale asigurari integritatii datelor:
Asigurare integritatii semantice a datelor - presupune prevenirea introducerii unro date incorecte si a efectuarii unor prelucrari gresite. Daca acest lucru nu va fi impiedicat sau semnalat imediat, datele vor fi utilizate in alte prelucarri, declansandu-se astfel un proces necontrolat de alterare a bazei de date. Cu cat sesizarea unei erori are loc dupa o perioada mai mare, cu atat efectele ei vor fi mai greu sau chiar imposibil de inlaturat.
Controlul accesului concurent la date - presupune prevenirea obtinerii unor rezultate incorecte din executia concurenta a unor prelucrari in regim multi utilizator. De exemplu, in cazul adoua prelucrari concurente, care constau in calcularea salariului mediu lunar al angajatilor unei firme si respectiv, aplicarea unui procent de crestere de 10% salariilor angajatilor, exista riscul ca in calculul salariului mediului sa intervina valorri actualizate si valori vechi ale campului salariu, rezultatul fiind evident fara semnificatie.
Salvareaa si restaurarea datelor - presupun refacerea bazei de date afectata de functionarea anormala sau caderea SGBD sau a SO sau ca urmare a unor defecte hardware.
Introducerea unor date incorecte sau prelucrarile ce furnizeaza rezultate gresite, trebuie prevenite prin includerea in programele de aplicatie a unor secvente de testare a datelor si prin utilizarea unor facilitati de asigurare a integritatii semantice a datelor oferite de SGBD. Concret, orice operatie asupra datelor trebuie constransa sa respecte anumite reguli, reguli care reprezinta restrictii de integritate.
Restrictiile de integritate se pot clasifica, dupa modul in care sunt exprimate, astfel:
restrictii de integritate implicite;
restrictii de integritate explicite.
Restrictiile implicite de integritate - decurg din caracteristicile modelului utilizat pentru reprezentarea datelor si din elementele furnizate la descrierea structurii bazei de date. Astfel, la introducerea datelor nu vor fi acceptate valorile care nu apartin tipului de data specificat pentru campurile respective din inregistrare. Daca exista conceptul de cheie unica, la inserare se va verifica unicitatea chii. Structurile de date pot impune, de asemenea, restrictii antre tipurilde de inregistrari. De exemplu, IMS impune o relatie de forma 1 : N intre parinte si segmente dependente ( daca segmentul radacina contine date despre profesori si segmentele dependnete date despre cursuri, sistemul impune - automat - restrictia ca fiecare curs sa aiba un singur profesor).
In modelul relational, exista doua restrictii de integritate asociate cheilor primare si celor externe si anume:
Integritatea entitatii (entity integrity) - conform acesteia, nici un atribut care participa la formarea cheii primare a unei relatii, nu poate primi o valoare NULL( valoare diferita de blanc sau 0, considerata in lipsa unei valori explicite pentru campul respectiv). Aceasta este o consecinta a faptului ca o cheie primara trebuie sa identifice in mod unic tipurile unei relatii.
Integritatea referentiala ( referential integrity) - se refera la faptul ca orice valoare a unei chei externe din relatia care refera trebuie sa corespunda o cheie primara cu aceeasi valaore in relatia referita sau sa fie NULL.
Restrictiile explicite de integritate - pot fi incluse in programele de aplicatie si verificare in momentul executiei acestora sau pot fi memorate in dictionarul datelor si verificate automat de SGBD, la fiecare operatie vizata asupra anumitor date.
Un SGBD cu facilitati sarace in asigurarea integritatii datelor, impune includerea acestor restrictii in programele de aplicatie. Aceasta solutie, foarte frecventa in practica, prezinta urmatoarel dezavantaje:
efortul de programare va fi mare si dimensiunea programelor va creste prin includerea partilor de cod pentru testarea restrictiilor de integritate;
restrictiile de integritate asociate anumitor date trebuie testate de fiecare program care lucreaza cu datele respectiv; o aceeasi parte de cod va trebui repetata in toate aceste programe;
programele de aplicatie nu pot controla operatiile efectuate de utilizatori in limbajele de interogare de nivel inalt, existand deci, in continuare, pericolul afectarii integritatii datelor;
daca restrictiile de integritate se schimba, efortul pentru modificarea tuturor programelor implicate va fi foarte mare.
Toate aceste dezavantaje dispar in cazul specificarii restrictiilor de integritate la nivelul SGBD. Acestea pot rfi exprimate cu ajutorul limbajului de definire a datelor sau al limbajului de manipulare a datelor, in functie de particularitatile fiecarui SGBD.
Sistemele monoutilizator, raspund unui numar redus de probleme practice care implica utilizarea bazelor de date. Cea mai mare parte a aplicatiilor, trebuie concepute pentru a functiona in regim de lucru multiutilizator si implementate pe sisteme care prezinta aceasta caracteristica. Pe langa aspectele prezentate privind asigurarea integritatii datelor, in acest caz apare si necesitatea controlului accesului concurent la date.
In sistemele multiutilizator, sistemul de operare asigura accesul concurent al programelor in executie in resurse dupa o anumita disciplina interna. In cazul aplicatiilor care utilizeaza o aceeasi baza de date, intreruperea executarii unui proces, pentru inceperea sau continuarea altora, poate conduce la alterarea datelor. Asigurarea integritatiii datelor, in acest context, presupune existenta unor facilitati special pentru controlul accesului concurent la date la nivelul SGBD. Pentru prezentarea acestora este necesara explicarea conceptului de tranzactie.
Tranzactia este o secventa de operatii care, din punct de vedere al SGBD, constituie o unitate de prelucrare, aceasta insemnand ca se va accepta fie executarea ei completa, fie - in situatia in care acest lucru nu este posibil - nu va trebui retinuta nici o modificare facuta de ea asupra bazei de date, SGBD efectuand ( automat sau la comanda) derularea inapoi a tranzactiei.
O tranzactie este caracterizata de punctul sau de inceput si sfarsit. Dupa modul in care acestea sunt definite, tranzactiile se pot clasifica in:
Tranzactii implicite - sunt acelea pentru care punctele de inceput si de sfarsit sunt automat definite. Pentru SOL toate comenzile de modificare a datelor (insert, update si delete) sunt tranzactii implicite.
Tranzactiile explicite - presupun folosirea unor comenzi speciale pentru stabilirea punctelor de inceput si sfarsit a tranzactiei. In anumite conditii, utilizatorul poate comanda derularea inapoi a tranzactiei.
Aspectele prezentate sunt, deci, o consecinta a executiei concurente necontrolate a tranzactiilor. Executia seriala a tranzactilor (una dupa alta), care ar asigura consistenta bazei de date, nu este posibila in regim multi-utilizator. Ea sta insa, la baza criteriului formal de apreciere a efectelor executiei concurente a tranzactiilor. Conform acestuia, o executie neseriala a unor tranzactii concurente va fi considerata corecta daca este serializabila, adica daca produce acelasi rezultat ca o executie seriala a acelor tranzactii. Daca SGBD va asigura doar executii serializabile ale tranzactiilor, atunci consistenta datelor va fi garantata.
Tehnica utilizata de catre SGBD pentru a asigura executia serializabila a tranzactiilor este tehnica blocarii. In cea mai simpla forma, blocarea unor date de catre o tranzactie, interzice celorlalte tranzactii accesul la aceste date. Blocarea se poate aplica la nivelul intregii baze de date, al unui fisier, grup de inregistrari sau inregistrare sau chiar al unui camp, cu implicatii ce urmeaza a fi prezentate.
Solutia de blocare prezentata este prea restrictiva, ea fiind folosita de anumite SGBD. Trebuie urmarite doua aspecte:
accesul la datele pe care un utilizator intentioneaza sa le actualizeze sa fie interzis celorlalti utilizatori, pana la completarea procesului de actualizare;
accesul la datele pe care un utilizator le citeste fara a le actualiza, sa fie interzis utilizatorilor pentru operatii de actualizare si permis pentru operatii de citire.
Deci, tipul de blocare trebuie diferentiat in functie de oepratia care va fi executata asurpa datelor respectiv, astfel:
blocare pentru citire (partajabila) - datele vor putea fi folosite si de catre ceilalti utilizatori, insa numai pentru operatii de citire;
blocarea pentru scriere ( exclusiva) - datele nu vor putea fi accesate de nici un alt utilizator.
Salvarea si restaurarea bazei de date au ca scop readucerea datelor la o forma consistenta, in urma unor evenimente care au alterat corectitudinea lor, precum:
functionarea anormala sau o cadere a SGBD sau SO;
defectiune a suportului fizic pe care este memorata baza de date.
Caderea sistemului lasa baza de date intr-o stare de inconsistenta care poate constitui un punct de plecare in procesul de restaurare, in timp ce - in cazul unei defectiuni a suportului pe care este memorata BD - restaurarea va fi posibila doar daca exista o copie anterioara a BD. Pe aceste baze dec, procesul de restaurare va trebui sa asigure o stare consistenta a BD, minimizand,totodata, volumul prelucrarilor pierdute.
Pentru baza de date inconsistenta, aceasta inseamna eliminarea efectelor tranzactiilor active in momentul caderii sistemului si reflectarea an baza de adate a rezultatelor tranzactiilor terminate, dar care - din motive ce vor fi prezentate ulterior - nu apar in baza de date. Pentru o copie anterioara a BD va trebui sa existe posibilitatea ca intr-un timp cat mai scurt, aceasta sa fie adusa la o stare consistenta cat mai apropiata de momentul aparitiei defectiunii.
In ambele situatii, este necesara existenta unor informatii despre derularea tranzactiilor pana in momentul intreruperii lucrului si aplicarea - dupa caz - a uneia din urmatoarele tehnici de restaurare de baza:
derularea inapoi a tranzactiilor necompletate - care presupune anularea modificarilor efectuate de acestea asupra BD;
derularea inainte a tranzactiilor completate dar nereflectate in baza de date - care presupune efectuarea acelor transformari prin care BD restaurata trebuie, fie sa reflecte rezultatele finale ale tranzactiilor, fie sa nu fie afectata de acestea.
Procesul de restaurare utilizeaza o serie de informatii obtinute prin aplicarea unei anumite strategii de salvare.
Salvarea, in contextul asigurarii integritatii bazei de date este procesul de stocare de date, inn vederea folosirii lor pentru restaurarea BD. Volumul informatiilor ce se salveaza, natura lor si intervalul de timp dintre doua operatii succesive de salvare, determina strategia de salvare. Aceasta va influenta procesul de restaurare a BD. Astfel, stocarea unei cantitati mari de date cu o frecventa mare si in forme diferite ( ceea ce are ca efect intreruperi ale lucrului sau marirea timpului de raspuns an exploatarea BD), face posibila restaurarea simpla si rapida.a BD. In caz contrar, cu cat informatiile de care dispunem sunt mai sarace, cu atat procesul de restaurare va fi mai complicat.
Datele salvate por fi diferite combinatii intre:
copii ale bazei de date si copii ale jurnalelor acesteia;
jurnale ale tranzactiilor;
jurnale ale imaginii inregistrarilor din BD.
Copiile BD - pot fi realizate automat de catre sistem, la anumite intervale de timp sau la comanda administratorului BD, ori de cate ori este nevoie, de preferat pe suporturi magnetice dirferite de cele pe care rezida baza de date. In cazul unei deteriorari a discului care pastreaza baza de date, acestea constituie singura posibilitate de recuperare a BD. Ele pot fi utilizate ca unica sursa de date in procesul de restaurare doar in situatia in care prelucrarile efectuate intre momentul realizarii copiilor si cel al aparitiei unei defectiuni pot fi realuat. Acest lucru este posibil daca prelucrarile sunt efectuate intr-o secventa cunoscuta si in timpul necesar pentru reprocesarea lro nu este foarte mare sau poate fi acceptat in contextul de lucru particular. Aceastalimita, ca si durata mare a executarii unor astfel de copii face ca anumite SGBD sa recurga la efectuarea de copii ale jurnalelor BD. Volumul datelor ce vor fi copiate este in acest caz, mult mai mic, deci durata copierii va fi mai mica, iar procesul de restaurare implica doar intr-o mica masura interventia umana.
Jurnalull tranzactiilor - este un fisier special intretinut de SGBD, in care sunt memorate informnatii despre tranzactiile efectuate asupra BD, cum sunt:
identificatorul sau codul tranzactiei;
momentul inceperii executiei tranzactiei;
numarul terminalului sau identificatorul utilzatorului care a initiat tranzactia;
datele introduse;
inregistrarile modificate si tipul modificarii.
Pe baza lui, va putea fi stabilita, ulterior, succesiunea corecta si natura prelucrarilor efectuate in intervalul de timp pentru care trebuie sa se asigure restaurarea bazei de date.
Jurnalul imaginilor - se deosebeste de juranlul tranzactiilor prin aceea ca el nu contine descrierea operatiilor efectuate asupra BD, ci efectul acestora. Poate imbraca una din urmatoarele forme:
jurnalul cu imaginea inregistrarilor dupa modificare, va contine copie fiecarei inregistrari ce este modificata in forma rezultata dupa modificare;
jurnalul cu imaginea inregistrarilor inaintea unei modificari, va cuprinde copia fiecarei imnregistrari ce este modificata, in forma initiala, anterioara efectuarii modificarii;
jurnal care contine atat before images, cat si after images.
In prima forma, jurnalul imaginilor permite restaurarea BD prin derualrea inainte a tranzactiilor intr-un timp mai scurt decat in cazul utilizarii jurnalului tranzactiilor. Nu mai este necesara reprocesarea tranzactiilor putand fi utilizat direct rezultatul acestora, reprezentat de ultima imagine modificata a inregistrarii respective. In mod similar, cea de a doua forma a jurnalului imaginilor, va putea fi utilizata pentru derularea inapoi a tranzactiilor fiind necesara doar regasirea inregistrarii memorate la inceputul fiecarei tranzactii.
Derularea inapoi a tranzactiilor este foarte dificila si uneori chiar imposibila, daca se foloseste doar jurnalul tranzactiilor.
Cea de a treia forma faciliteaza mult procesul de restaurare, insa presupune mentinerea unui volum mare de informatii redundante (pentru o inregistrare, ceea ce constituie after image dupa o modificare va deveni before image, la urmatoarea modificare).
In functie de defectiunea care a determinat intreruperea lucrului, restaurarea BD se realizeaza automat de catre SGBD, sau manual, intelegand prin aceasta ca procesul de restaurare va necesita interventia umana.
Restaurarea automata a BD este determinata de SGBD, dupa oprirea si restaurarea sistemului, in urma unei caderi. Prin acest proces, baza de date este adusa la o stare consistenta, prin derularea inapoi a tranzactiilor active in momentul defectiunii si continuarea tranzactiilor inregistrate ca finalitate in fisierul jurnal dar care nusut reflectate in BD.
Situatia in care efectele unei tranzactii competata inaintea caderii sistemului nu se regasesc in baza de date ca si existenta informatiilor necesare pentru restaurare in fisierele jurnal, sunt explicate de modul in care este gestionata memoria principala.
O cerere de acces la date primita de SGBD, va determina transferul unei pagini de disc in memoria principala. Eventualele modificari ale datelor, aflate acum in memoria principala, nu vor fi urmate imediat de rescrierea paginii respective pe disc. Acest lucru poate fi efectuat, fie periodic - la un anumit interval de timp - fie la o cerere explicita a sistemului sau pentru a face loc uneei alte pagini de disc solicitata.
Asigurarea securitatii bazei de date presupune interzicerea accesului neautorizat la date. Aceasta se realizeaza cu ajutorul unui set de masuri de protectie umane, software si hardware.
O prima astfel de masura o poate constitui izolarea sistemului in incaperi in care accesul persoanelor sa fie permis numai pe baza de legitimatii sau a altor forme de identificare.
Un alt nivel de protectie il poate constitui stabilirea de parole pe baza carora sa fie permis accesul la resursele sistemului de calcul.
In contextul lucrului efectiv cu baza de date, se va verifica daca utilizatorul arre dreptul de a executa un tip de operatie asupra anumitor date. SGBD poate tine si un jurnal pentru urmarirea accesului la baza de date, pe baza caruia pot fi urmarite incercarile de acces neautorizat la baza de date.
Pentru cererile de I/O transmise sistemului de operare de catre SGBD, sunt posibile verificari suplimentare referitoare la utilizarea corecta a fisierelor sau a functiilor sistemului de operare.
Hardware-ul poate sa ofere o protectie suplimentara, ca de exemplu transferarea datelor numai in zona de memorie controlata de SGBD. De asemenea, datele pot fi memorate pe suportul extern intr-o forma criptata.
In cele ce urmeaza, vor fi prezentate urmataorele mecanisme de asigurare a securitatii bazei de date:
autorizarea si controlului accesului la date;
definirea si utilizarea viziunilor;
realizarea de proceduri speciale;
criptarea datelor.
Autorizarea si controlul accesului la date presupune identificarea utilizatorilor, restrictionarea accesului la date precum si restrictionarea operatiilor ce pot fi executate asupra datelor accesate.
Cea mai mare parte a SGBD actuale folosesc pentru identificarea utilizatorilor parole. Fiecare parola va fi asociata cu anumite drepturi de acces la date, ea nefiind deci, decat un prim obstacol pentru cei care incearca sa violeze securitatea bazei de date.
Astfel, pentru fiecare utilizator identificat prin parola, SGBD mentine o lista a privilegiilor acestuia. De asemenea, utilizatorii pot fi asociati unor grupuri de utilizatori, la drepturile fiecaruia adaugandu-se drepturile stabilite pentru grupul respectiv.
Privilegiile unui utilizator depind de clasa de utilizatori careia ii apartine. Astfel, administratorull bazei de date este utilizatorul care are, implicit, toate drepturile asupra bazei de date si - de asemenea - dreptul de a stabili sau revoca privilegii pentru ceilalti utilizatori. O clasa de utilizatori, in anumite SGBD, o constituie proprietarii de obiecte ( tabele, viziuni, proceduri), un obiect fiind intotdeauna in proprietatea celui care-l creeaza. Implicit, proprietarul unui obiect are toate privilegiile asupra acestuia, putand sale transmita sau revoce celorlalti utilizatori. Utilizatorii obisnuiti sunt cei care nu au in proprietate obiecte si nu au alte privilegii decat cele mostenite ca membrii ai unui grup sau mentionate explicit de administratorul bazei de date sau proprietgarii de obiecte.
Subiectul - in general - este prezentat de un utilizator sau un grup de utilizatori, identificat printr-o parola dar poate fi si un terminal, o tranzactie sau aplicatie. De asemenea, poate fi o combinatie a acestora, de exemplu o anumita persoana care executa o tranzactie particulara la un terminal.
Obiectul - este reprezentat de datele ce trebuie protejate (inregistrare, relatii, campuri, programe, baze de date). Nivelul la care se asigura protectia este specific fiecarui SGBD.
Actiunea - reprezinta operatiile pe care subiectul le poate efectua asupra obiectului.
Restrictiile - reprezinta conditii suplimentare ce trebuie respectate cand un subiect executa o actiune asupra unui anumit obiect. Majoritatea SGBD implementeaza versiuni simplificate ale acestui model. O varianta o constituie mentinerrea pentru fiecare subiect, a unei tabele in care sunt specificate obiectele si drepturile stabilite pentru fiecare subiect asupra lor. O alta posibilitate consta in asocierea pentru fiecare obiect, a unei tabele in care pentru fiecare subiect, sunnt specificate privilegiile sale, in raport cu obiectul respectiv.
Aceste informatii sunt stocate in dictionarul datelor si pentru ele trebuie prevazute mecanisme de securitate speciale. In general, SGBD permit specificarea privilegiilor prin comenzi speciale ale limbajului.
Viziunile (schemele externe) sunt partitii logice ale bazei de date. Ele sunt definite pentru diferiti utilizatori in raport cu necesitatile acestora de a avea acces la date, putand fi utilizate pentru a restrictiona accesul la date.
Privilegiile pentru o viziune sunt specificate independent de cele pentru obiectele pe baza carora sunt definite. Securitatea datelor este asigurata prin definirea tutuor drepturilor necesare unui utilizator pentru o viziune si revocarea drepturilor pentru obiectele initiale.
Aceasta modalitate este suficienta in cazul in care asupra datelor viziunii este permisa doar operatia de citire. Pentru operatia de modificare trebuie avute in vedere efectele laterale pe care aceasta le poate produce asupra obiectelor initiale. Utilizatorului nu trebuie sa i se permita sa efectueaze asupra viziunii acele operatii cre pot afecta obiectele initaile. In caz contrar, pot sa apara erori sau inconsistente in baza de date.
Unele SGBD ofera facilitatea definirii unor proceduri ce vor fi pastrate la nivelul sistemului intr-o forma precompilata.
In cadrul acestor proceduri, vor fi specificate explicit operatiile ce trebuie efectuate asupra datelor. Utilizatorului i se va acorda dreptul de executie a acestor proceduri si i se va interzice accesul la obiectele bazei de date, gestionate de procedura.
Criptarea - este operatia de codificare a datelor pe timpul stocarii sau al transportului, astfel incat descifrarea lor sa poata fi facuta numai de posesorii de cod.
La nivelul SGBD aceasta facilitate poate imbraca doua forme:
existenta unor rutine speciale, care realizeaza criptarea datelor la cerere sau automat;
existenta unor instrumente care permit utilizatorului sa-si realizeze propriile rutine de criptare.
Procesul efectiv de criptare presupune utilizarea unui sistem de cifrare, ale carui componente sunt:
Algoritmul de criptare - realizeaza transformarea datelor din forma initiala in forma criptata ( cifrata);
Cheia de criptare - valoare ce constituie o intrare a logaritmului de criptgare, aleasa dintr-o multime de chei posibile;
Algoritmul de decriptare - realizeaza transformarea datelor din forma criptata, in forma initiala;
Cheia de decriptare - valoare ce constituie o intrare a algoritmului de decriptare.
Un alt sistem de cifrare larg raspandit, este sistemul de criptare cu cheie publica. Aceasta presupune ca pentru fiecare utilizator sa fie stabilita o cheie publica. Cheia privata va fi reprezentata de o pereche de numere prime foarte mari, produsul acestora formand cheia publica. Transformarea textului initial in text cifrat, va fi realizata pe baza cheii publice. Decriptarea acestuia va fri posibila doar prin furnizarea cheii publice.
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 1274
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved