Astăzi, răspunde prof.univ.dr. Marius Daniel MAREŞ
Conceptul de bază de date
Conceptul de bază de date a apărut în anul 1969, la prezentarea primului raport CODASYL. Concepţia de bază în organizarea datelor se baza pe existenţa unui fişier de descriere globală a datelor prin care se realiza independenţa programelor faţă de date şi a datelor faţă de programe.
Cum putem defini o bază de date?
O bază de date poate fi definită ca una sau mai multe colecţii de date (K1) aflate în interdependenţă, împreună cu descrierea datelor şi a relaţiilor dintre ele, (B = (K1, K2,…)).
O bază de date trebuie să îndeplinească următoarele condiţii: • să asigure o independenţă sporită a datelor faţă de programe şi invers; • concepţia structurii bazei de date trebuie făcută astfel încât să se asigure informaţiile necesare şi suficiente pentru necesităţile de informare şi decizie; • să asigure o redundanţă minimă şi controlată a datelor; • să permită un acces rapid la informaţiile stocate în baza de date.
Există mai multe feluri de baze de date?
Din punctul de vedere al criteriilor luate în considerare, bazele de date se pot grupa:
• după orientare: generalizate şi specializate; • după modelul de date: ierarhice, reţea, relaţionale, orientate obiect; • după amploarea geografică: locale şi distribuite; • după limbajele utilizate: autonome (adică dispun de limbaje proprii), cu limbaj gazdă şi mixte. Arhitectura bazei de date cuprinde: • baza de date propriu-zisă, în care se memorează colecţiile de date; • sistemul de gestiune a bazei de date, care este un ansamblu de programe (soft) care realizează gestiunea şi prelucrarea complexă a datelor; • un set de proceduri manuale şi automate; • un dicţionar al bazei de date cu informaţii despre date, structura acestora, elemente de descriere a semanticii, elemente de statistică, documentaţii ş.a.; • mijloace hard utilizate; • personal implicat.
Cum pot fi structurate componentele bazei de date?
Componentele bazei de date pot fi structurate pe trei nivele, în funcţie de clasa de utilizator, şi anume: 1. nivelul logic, care este dat de viziunea programatorului de aplicaţie, care realizează aplicaţiile pentru manipularea datelor şi structura logică sau subschema corespunzătoare descrierii datelor aplicaţiei; 2. nivelul conceptual sau global, care este dat de viziunea administratorului bazei de date; 3. nivelul fizic, care este dat de viziunea inginerului de sistem care realizează structura fizică corespunzătoare descrierii datelor pe suportul fizic.
Care sunt etapele de realizare a unei baze de date?
În proiectarea unei baze de date sunt prevăzute mai multe etape: 1. analiza sistemului sau a domeniului economic şi a cerinţelor informaţionale asociate pentru care se realizează baza de date; 2. proiectarea structurii bazei de date, adică elaborarea schemei conceptuale externe şi a schemei conceptuale interne; 3. încărcarea datelor în baza de date; 4. exploatarea şi întreţinerea bazei de date.
De ce depinde conţinutul acestor etape?
Conţinutul acestor etape depinde, în general, de tipul bazei de date şi de domeniul în care este ea folosită. Astfel, activitatea de analiză a sistemului economic presupune ca etape: a. analiza componentelor sistemului şi a legăturilor dintre acestea, sau analiza structurală în urma căreia rezultă modelul structural sau static al sistemului; b. analiza stărilor sistemului şi a tranzacţiilor posibile între aceste stări în raport cu anumite evenimente. În urma acestei analize rezultă modelul dinamic sau temporal; c. analiza cerinţelor informaţionale, în urma căreia se obţine modelul funcţional sau transformaţional al sistemului economic; d. integrarea modelelor sistemului economic (structural, dinamic şi funcţional) în scopul corelării şi completării lor.
Ce obiectiv are analiza sistemului economic?
Analiza sistemului economic are ca obiectiv evidenţierea componentelor din cadrul sistemului pentru care urmează să se colecteze şi să se memoreze date în baza de date, precum şi evidenţierea legăturilor dintre aceste componente. Ca tehnici pentru această analiză enumerăm: • entitate-asociere; • SDM (Semantic Data Model) • IFO, RM/T. Tehnica entitate-asociere permite construirea modelului structural sub forma unei diagrame entitate-asociere prin parcurgerea următorilor paşi: a. identificarea componentelor (entităţilor) din cadrul sistemului economic. Fiecare entitate prezintă mai multe realizări. În urma acestei etape se elaborează o primă formă a diagramei entitate-asociere. b. identificarea asocierilor dintre entităţi şi codificarea acestora. Legăturile dintre entităţi sunt reprezentate prin arce neorientate, care fac legătura între nodurile ce reprezintă entităţile participante la asociere. Cardinalitatea asocierilor exprimă numărul minim şi numărul maxim de realizări (instanţe) de entitate care pot fi asociate cu o realizare a partenerului de asociere. Cardinalitatea se exprimă prin perechi de numere, câte o pereche pentru fiecare entitate din cadrul legăturii. Un anumit tip de materie primă poate fi aprovizionat de la cel mult un furnizor, putând exista materii prime fără sursă de aprovizionare. Perechea (1,1) este asociată entităţii MATPRIME şi înseamnă că un furnizor poate oferi minimum un tip de materii prime, dar nu mai mult de un tip de materii prime. c. identificarea atributelor aferente entităţilor şi asocierilor dintre entităţi; d. stabilirea atributelor de identificare a entităţilor.
Ce tipuri de legături există între entităţi?
Tipuri de legături între entităţi: 1. După cardinalitatea asocierii. În acest caz se are în vedere gradul asocierii şi obligativitatea participării entităţilor la asociere. După gradul asocierii (maximele cardinalităţii), identificăm: – asociere de tip „unu la unu”; – asocieri de tip „unu la mulţi”; – asocieri de tip „mulţi la mulţi”. După obligativitatea participării entităţilor la asociere (minimele cardinalităţii) există: – asocieri parţiale; – asociere totale (complete). Concomitent, după gradul asocierii şi după obligativitatea participării la asociere sunt: – asocieri parţiale de tip „unu la unu”; – asocieri totale de tip „unu la unu”; – asocieri parţiale de tip „unu la mulţi”; – asocieri totale de tip „unu la mulţi”; – asocieri parţiale de tip „mulţi la mulţi”; – asocieri totale de tip „mulţi la mulţi”. 2. După numărul de entităţi distincte care participă la asociere sunt: – asocieri binare (între două entităţi distincte); – asocieri recursive (asocieri ale entităţilor cu ele însele); – asocieri complexe (între mai mult de două entităţi distincte). Asocierile parţiale sunt acele asocieri care nu obligă participarea la asociere a tuturor entităţilor vizate, ci numai a unora dintre ele sau a niciuneia. Această obligativitate este reflectată de minimele cardinalităţii. Valoarea zero a uneia dintre minime arată lipsa de obligativitate a participării partenerului la această asociere, în timp ce o valoare mai mare decât zero exprimă obligativitatea participării la asociere.
La ce ne referim când vorbim despre atribute?
Atributele exprimă caracteristici ale componentelor domeniului economic analizat sau ale asocierilor dintre aceste componente. De obicei, atributele sunt asociate entităţilor, dar ele pot descrie şi asocierile dintre entităţi. De exemplu, asocierea dintre PRODUSE şi MATPRIME se poate descrie printr-o serie de atribute, referitoare la tehnologia de fabricaţie a produselor.
Un atribut poate fi: 1. Atribut compus sau bloc, constituit din cel puţin alte două atribute. Valoarea sa este reprezentată de valorile atributelor componente. Exemplu: adresa unei persoane. 2. Atribut calculat sau dedus. Valoarea sa nu este cunoscută direct, ci calculată pe baza valorilor altor atribute. Exemplu: atributul valoare care se calculează ca produs între cantitate şi preţ. 3. Atribut simplu este acel atribut care are valori atomice. 4. Atributul repetitiv sau multivaloare. Este un atribut care la un moment dat are mai multe valori care apar sub forma unor liste de valori. Un atribut de identificare, care se numeşte cheie, reprezintă un atribut care se caracterizează prin unicitatea valorii sale pentru fiecare instanţă a entităţii. De exemplu: marca angajatului, pentru entitatea Angajaţi, numărul de înmatriculare, pentru entitatea Autoturisme. Un atribut constituie cheie dacă satisface următoarele restricţii: – oferă o identificare unică a realizărilor de entităţi; – are o semnificaţie; – este uşor de utilizat; – este scurt. De cele mai multe ori atributul de identificare a entităţii apare şi în alte entităţi, drept cheie externă. Pe de altă parte, indecşii pentru accesul direct la date se construiesc pe atribute cheie. De aceea, cheile lungi determină scăderea eficienţei accesului. Pentru o aceeaşi entitate pot exista mai multe atribute care să servească drept atribute de identificare, adică pot exista mai multe chei candidate.
La ce sunt utile bazele de date orientate pe obiecte?
Bazele de date orientate pe obiecte permit crearea de obiecte complexe, din componente simple, fiecare având propriile atribute şi propriul comportament. Sistemul de gestiune a bazelor de date orientate pe obiect (SGBD-OO) are ca principale obiective: 1. Modelarea superioară a datelor care se poate realiza prin: deschiderea către noi aplicaţii; facilitatea concepţiei realizată prin posibilităţi de generalizare şi agregare a relaţiilor; evoluţia către multimedia (sunet, imagine, texte). 2. Posibilităţi de deducţie superioară (ierarhie de clase, moştenire); 3. Ameliorarea interfeţei cu utilizatorul. 4. Posibilităţi de tratare pentru aspect dinamic, integrarea descrierii structurale şi comportamentale. SGBD-OO îmbină noile concepte asociate limbajelor de programare orientate obiect cu capacităţile SGBD-urilor convenţionale. Modelul de dată-obiect permite reprezentarea unor structuri de date complexe şi a unor ierarhii model, asigurând posibilitatea de a defini tipuri de date care combină atât structura de date, cât şi definirea procedurii. Un model de date orientat pe obiecte are la bază noţiunea de entitate conceptuală şi defineşte un obiect ca o colecţie de proprietăţi care descriu entitatea.
Cu ce concepte de bază operăm?
Obiectul – reprezintă conceptual o unitate identificabilă cu conţinut propriu, care se deosebeşte de ceea ce o înconjoară. Starea unui obiect este exprimată prin valorile atributelor sale. Colecţia de atribute trebuie aleasă astfel încât să descrie entitatea, adică să includă atribute pe care utilizatorul trebuie să le cunoască. Comportamentul unui obiect reprezintă un set de metode sau operaţii care acţionează asupra atributelor sale. Sunt identificate trei tipuri de obiecte, şi anume: – obiecte elementare ca: întreg, boolean, şir de caractere; – obiecte compuse ca: nume, adresă; – obiecte complexe ca: autoturism, angajat. Un obiect înglobează următoarele elemente: a. structura de date; b. specificarea operaţiilor; c. implementarea operaţiilor. Structura unui obiect şi operaţiile (metodele) permise pentru acel obiect sunt definite împreună. Metoda reprezintă un program care manipulează obiectul sau indică starea sa. Ea este asociată unei clase, iar specificarea metodei se numeşte „semnătura”. Metodele şi atributele nu sunt vizibile din „exteriorul”obiectului. Un obiect răspunde la mesaje care reprezintă cereri adresate obiectului pentru a returna o valoare sau pentru a-şi schimba starea. Structura obiectului şi modul de acţiune al metodelor sale nu pot fi accesate şi actualizate direct de un agent extern, dar pot fi modificate indirect prin intermediul mesajelor. Această caracteristică ascunsă a obiectului se numeşte încapsulare. Un obiect este divizat în interfaţă, care este reprezentată de mesaje şi starea internă şi metodele obiectului. Interfaţa permite unui utilizator extern să solicite obiectului executarea unei acţiuni trimiţându-i un mesaj corespunzător metodei asociate acţiunii. Obiectele pot fi considerate şi date abstracte. Persistenţa este o proprietate a datelor sau a obiectelor care implică existenţa lor mai îndelungată faţă de procesul care le-a creat. Este proprietatea prin care starea bazei de date asigură execuţia unui proces pentru a fi refolosit ulterior în alt proces. Codul aferent metodelor, întrucât face parte integrantă din obiect, este stocat ca şi starea obiectului, în baza de date.
Cum clasificăm obiectele?
Obiectele care au acelaşi fel de atribute şi comportament pot fi categorisite ca făcând parte din acelaşi tip sau clasă. În raport cu această caracteristică, există două categorii de sisteme orientate pe obiecte: a) sisteme care admit ca noţiune de bază clasa, cum ar fi: VISION, ORION, G-BASSE; b) sisteme care admit ca noţiune de bază tipul, cum sunt: C++, Simula,O2.
Într-un sistem orientat pe obiecte, tipul sintetizează elementele comune ale unui set de obiecte cu aceleaşi caracteristici. Acest sistem are ca şi componente interfaţa şi implementarea. Interfaţa este partea vizibilă pentru utilizator, şi constă într-o listă de operaţii. Implementarea este obiectul activităţii proiectantului şi presupune descrierea structurii interne a datelor obiectului şi realizarea procedurilor de implementare a operaţiilor interfeţei. Un tip este construit recursiv, începând cu tipurile de bază: caracter, întreg, real, şir de caractere, boolean. Constructorii de tipuri sunt: tuplul, lista, setul şi clasa. O listă este o colecţie ordonată de obiecte ale aceleiaşi clase sau de valori ale aceluiaşi tip. Elementele unei liste sunt accesibile direct prin rangul lor. Operaţiile permise asupra listelor sunt: afectarea (=), comparaţia (= =), concatenarea(+), accesul direct ([i]),apartenenţa (in), sublista ([i ; j]), numărarea (count ( ) ), înlocuirea, ştergerea (list ( ) ), inserarea ([:i]+=), iteraţia ( { }). Noţiunea de clasă, deşi are aceeaşi specificaţie cu cea de tip, este asociată cu faza de execuţie. Ea presupune generarea de obiecte prin operaţia „new” aplicată unei clase şi stocarea setului de obiecte care reprezintă instanţele clasei. Descrierea clasei serveşte ca şablon după care vor fi create obiectele noi. O clasă este un tip abstract de date care defineşte atât structura obiectelor din clasa respectivă, cât şi mulţimea metodelor existente pentru aceste obiecte. Obiectele din aceeaşi clasă au aceleaşi atribute şi aceleaşi metode şi răspund la acelaşi mesaj. Moştenirea. Într-o bază de date orientată pe obiecte, clasele sunt aranjate într-o ierarhie în care fiecare clasă moşteneşte toate atributele şi metodele superclasei din care face parte. Moştenirea conduce la reutilizarea codului. Mecanismul de realizare a definirii unei clase în care derivă variabilele de instanţă şi metodele din altă definire de clasă se numeşte moştenire. Când o clasă moşteneşte, ea este considerată ca subclasă. Conceptele de subclasă şi superclasă sunt analoge conceptelor de generalizare şi specializare. Obiectele, clasele şi moştenirea formează baza modelului de date orientat pe obiecte şi presupune următoarele aspecte: – obiectele sunt entităţi de bază care încorporează structuri de date şi operaţii; – fiecare obiect are asociat un identificator care este unic şi asigurat de sistem; – clasele descriu tipuri generice de obiecte, toate obiectele sunt membrii unei clase; – clasele sunt înrudite prin moştenire; – definirea unei clase este mecanismul de specificare a schemei bazei de date; – definirea unei clase poate include variabile de instanţă, având tipuri de date definite de sistem sau de utilizator; – schema bazei de date poate fi extinsă dinamic prin definirea de noi clase.
Care sunt operaţiile modelului de date orientat pe obiecte?
Operaţiile se pot grupa în modul următor: a) obiectele comunică între ele prin mesaje; b) un mesaj poate fi trimis instanţelor mai multor clase; c) metodele pot fi definite, şterse sau modificate; d) clasele pot fi definite şi actualizate prin operaţii de creare, ştergere şi modificare; e) instanţa unei clase poate fi actualizată prin metode care modifică valorile variabilelor propriei instanţe, aceasta modificând starea internă a obiectului.
Într-o serie de implementări, definirile de clasă sunt ele însele obiecte, numite obiecte de clasă, instanţe ale unei clase generice sau ale unei metaclase. Operaţiile de creare, modificare şi ştergere ale definirilor de clasă pot fi şi implementate ca mesaje. Regulile de integritate sunt o consecinţă a structurii modelului şi a următoarelor operaţii: – toate obiectele trebuie să respecte protocolul specificat de definirile lor de clasă. Astfel, un obiect poate răspunde doar la acele mesaje permise de clasa de care aparţine; – obiectele sunt încapsulate, acest lucru presupunând accesul limitat la obiecte prin folosirea protocolului de mesaje definit pentru clasa obiectului; – identificatorul obiectului asigură integritatea referirii la un obiect. Ca atare, un obiect nu există fără să aibă asignat un identificator. Dacă un obiect este şters sau mutat, identificatorul său trebuie şi el şters sau mutat.
O schemă completă a unei astfel de baze de date poate consta din una sau mai multe ierarhii de clasă, împreună cu relaţiile structurale. Modificarea schemei presupune: 1. Definirea unei taxonomii şi a unui model al schimbărilor. Taxonomia defineşte un set de schimbări semnificative ale schemei, iar modelul furnizează o bază pentru specificarea semanticilor schimbărilor schemei; 2. Implementarea schimbărilor schemei. Aceste schimbări pot fi: a) schimbări referitoare la modul de definire al unei clase. Acestea includ schimbările atributelor şi metodelor definite pentru o clasă, cum ar fi: schimbarea numelui sau domeniul unui atribut, adăugarea, ştergerea unui atribut sau a unei metode; b) schimbări referitoare la structura ierarhiei de clase care includ adăugarea sau ştergerea unei clase şi schimbarea relaţiilor superclasă/subclasă dintre o pereche de clase.