Informatica
Concepte fundamentale privindarea sistemelor informaticeConcepte fundamentale privind proiectarea sistemelor informatice 1. Modelarea conceptuala a datelor. Modelul entitate-asociere 1.1. Concepte de baza Entitate: - reprezentarea unui 'obiect' concret sau abstract care: - apartine spatiului problemei de rezolvat - are o existenta de sine statatoare; - poate fi identificat in raport cu celelalte obiecte de acelasi tip. Exemple: angajat, produs, utilaj, operatie tehnologica, client, factura O entitate este reprezentata printr-un ansamblu de atribute. Atribut: caracteristica sau proprietate a unei entitati, semnificativa pentru spatiul problemei de rezolvat. Tipuri de valori ale atributelor: un anumit ansamblu de valori, definite fie printr-o proprietate fie printr-o enumerare. - simplu: atunci cand pentru o entitate sau o asociere poate lua o singura valoare; - repetitiv: daca pentru o entitate sau o asociere poate lua mai multe valori (ex: limbi straine cunoscute) Reguli privitoare la atribute: fiecare atribut poate apare intr-o singura entitate (principiul nonredondantei) un atribut poate avea numai valori elementare. Identificatorul entitatii: un atribut sau un grup de atribute care primesc valori unice pentru fiecare realizare a entitatii respective si pot servi astfel pentru identificarea fara echivoc a acestora. Pentru simplitate se recurge frecvent la coduri care sunt atribute construite special astfel incat sa raspunda cerintelor de identificare (ex: marca salariat) sau la atribute de tip 'numar de ordine' sau 'numar de aparitie' (ex: numarul de inventar al unui mijloc fix). In reprezentarea grafica, identificatorul entitatii se subliniaza. Asocierea reprezentarea legaturii existente intre doua sau mai multe realizari de entitati O asociere poate avea atribute proprii. Entitatile care participa la o asociere constituie colectia acesteia. Numarul de entitati care participa la o asociere formeaza dimensiunea sau gradul acesteia (mai mare sau egala cu numarul de entitati al colectiei). Cardinalitatea minimala / maximala exprima modul de participare al realizarilor fiecarei entitati la asociere ( valori uzuale:0,1; 1,1; 0,n; 1,n ). Reprezentarea grafica se poate vedea in figura 1.3.: Intre realizarile acelorasi entitati pot exista mai multe asocieri diferite, cu semantica si cardinalitati distincte. Asociere reflexiva: o asociere care leaga realizari diferite ale aceleiasi entitati (colectie = 1). In asemenea cazuri, este indispensabila specificarea in schema a rolurilor jucate de entitate. Rol al entitatii nume care serveste pentru a desemna participarea entitatii la o asociere. Restrictii de integritate. Sunt reguli suplimentare, nereprezentabile direct in formalismul EA, care trebuie respectate permanent de date. a) Restrictii de integritate structurale: inerente conceptelor folosite la modelare: integritatea entitatii: valorile luate de identificatorul entitatii trebuie sa fie unice si nenule; - integritatea referentiala: pentru orice realizare a unei asocieri este obligatorie existenta realizarile entitatilor participante. - Cardinalitatea: Cardinalitatile minimale (0 si 1) Cardinalitatile maximale 1 si n Dupa momentul in care actioneaza, exista doua clase de RI: statice si dinamice R.I. Statice: conditii care trebuie sa se verifice permanent: R.I. Dinamice: privesc evolutia in timp a datelor. b) Restrictii de domeniu RI de domeniu sunt conditii impuse asupra ansamblului de valori acceptate pentru un atribut in cadrul tipului sau domeniului sau. c) Incluziune, excluziune, egalitate de roluri
Acestea formuleaza reguli referitoare la rolurile jucate de un tip de entitate in diverse asocieri. Incluziunea: daca o entitate E joaca un rol r1 intr-o asociere a1, atunci trebuie sa joace si rolul r2 intr-o asociere a2 Egalitatea: restrictia de incluziune intre rolurile r1 si r2 ale entitatii este reciproca. Excluziunea: rolurile r1 si r2 ale entitatii se exclud reciproc. Incluziune, excluziune, egalitate de asocieri Aceste restrictii impun conditii care actioneaza asupra tuturor rolurilor dintr-o asociere; cu alte cuvinte, este vizata asocierea si toate entitatile participante si nu numai participarea unei anumite entitatti, ca in cazul anterior. 3. Subtipuri de entitati In numeroase cazuri, in ansamblul entitatile ce apartin unui anumit tip exista subgrupuri cu o anumita relevanta pentru realitatea reflectata si care, in consecinta, trebuie reprezentate explicit. Grupurile de entitati sunt numite subclase ale TE, acesta fiind, la randul sau, superclasa acestora. Definirea de subclase se poate face in doua moduri: - pe baza valorilor unui anumit atribut - pe baza unor criterii definite de utilizator. Prin definirea de subclase se efectueaza specializarea entitatilor superclasei acestora (TE). Acestea mostenesc toate atributele superclasei si pot avea atribute proprii specifice, inexistente la nivelul superclasei. Delimitand subansambluri de entitati ale aceluiasi tip de entitate, subclasele constituie subtipuri ale acestuia. Generalizarea este procesul invers, prin care doua sau mai multe tipuri de entitati sunt generalizate, pe baza proprietatilor comune, intr-un nou tip. In aceasta relatie, TE initiale devin subtipuri ale tipului obtinut prin generalizare. Maniera in care se procedeaza - prin specializare sau generalizare - depinde exclusiv de cerintele unei cat mai fidele reprezentari a realitatii. Specializarea poate fi totala (orice entitate a tipului face parte, obligatoriu, dintr-un subtip) sau partiala (pot exista entitati care sa nu apartina nici unui subtip). Introducerea de subtipuri prin specializare/generalizare prezinta doua avantaje principale: - factorizeaza proprietatile comune la nivelul tipului (superclasei); - face mult mai clara reprezentarea unor tipuri asocieri la care participa numai o parte dintre entitati. 1.4. Reguli referitoare la Modelul Conceptual al Datelor (MCD ) a Unicitatea numelor. Regula de unicitate a numelor se aplica tutoror elementelor ce apar in MCD: TE, TA, atribute, roluri, RI. Prin urmare, se vor elimina eventualele posibile ambiguitati prin utilizarea de nume complete (ex: Nume angajat, Nume produs si nu, simplu, Nume, in ideea ca apartenenta acestui atribut la un tip de entitate sau altul inlatura de la sine ambiguitatea). b) Atribute repetitive sau decompozabile Prezenta acestora poate indica existenta unor structuri care trebuie reprezentate ca atare. Aceasta regula nu trebuie aplicata pentru orice atribut repetitiv sau decompozabil decat in masura in care conduce la evidentierea unor elemente, entitati sau asocieri semnificative pentru problema reprezentata. c) Minimalitatea identificatorilor Aceasta regula prevede ca, in cazul identificatorilor compusi dintr-un grup de atribute sau roluri, sa nu existe un subgrup in interiorul acestora care sa poata indeplini functia de identificator. Nerespectarea acestei reguli poate fi usor evidentiata prin examinarea dependentelor functionale dintre atributele sau rolurile ce compun identificatorul. Existenta unor atribute ale caror valori devin 'nule' pentru anumite valori luate de alte atribute. Aceasta situatie semnaleaza, in general, existenta de subtipuri. d) O asociere nu poate exista decat o singura data intre aceleasi entitati Ca si entitatile, asocierilor trebuie sa fie identificabile si identificarea lor se face prin entitatile participante (mai precis, prin identificatorii acestora). Conditiile impuse identificatorilor: valori nenule si unice pentru fiecare element, trebuie respectate si in cazul asocierilor. Considerand ca ar exista cardinalitati si pentru asociere (nu numai pentru entitati), acestea ar trebui sa fie intotdeauna 1,1. Daca pentru aceleasi entiati apar mai multe asocieri (de acelasi tip), inseamna ca restrictia de unicitate este incalcata. Solutia consta, in acest caz, in transformarea asocierii intr-o noua entitate. 1.5. Dependente functionale (DF) a) Dependente functionale simple. Intre doua atribute A si B exista o dependenta functionala notata A B daca fiecarei valori a lui A ii corespunde o singura valoare a lui B. Atributul aflat in stanga DF este numit determinant. Determinantul poate fi compus din unul sau mai multe atribute. b. Dependente functionale multivaloare Intre doua atribute A si B exista o dependenta functionala multivaloare, notata: A B daca o valoare a lui A determina un ansamblu de valori al lui B. Dependenta functionala este un caz particular al dependentei functionale multivalore Dependentele functionale reprezinta RI. Identificatorul unei entitati este un atribut sau un grup de atribute fata de care toate celelate atribute depind functional. Dependentele functionale pot exista si intre entitati si asocieri. Cardinalitatile 1,1 corespund intotdeauna unor DF. Normalizarea Normalizarea este un proces care asigura: - eliminarea redondantelor fara pierdere de informatie semnificativa - eliminarea anomaliilor manifestate in procesul actualizarii. Anomaliile se pot manifesta in procesul actualizarii in cursul operatiilor de adaugare, stergere si modificare. Exista cinci forme de normalizare (FN) si una intermediara intre forma 3 si 4 numita NFBC dupa numele lui Boyce Codd - fondatorul modelului relational al bazelor de date.. Normalizarea entitatilor Normalizarea are drept scop eliminarea redondantelor si a anomaliilor de actualizare. Deoarece prin cele mentionate anterior se elimina o parte dintre cazurile de nerespectare a conditiilor de normalizare (existenta unui identificator, eliminarea atributelor repetitive sau compuse). Normalizarea asocierilor Situatia este similara entitatilor, cu observatia ca pentru asocieri nu exista identificatori proprii, rolul acestora fiind indeplinit de identificatorii entitatilor participante. 2. Modelarea logica a datelor (MLD) 2.1. Cadru general Trecerea de la MCD, care este un model universal, spre o solutie informatica se face gradat, luand in considerare un anumit tip de solutie si apoi, in cadrul tipului respectiv, o solutie direct implementabila. Expresia MCD in termenii unui anumit tip de solutie informatica constituie modelul logic al datelor (MLD). Deoarece aplicatiile informatice de gestiune se caracterizeaza prin stocarea si prelucrarea relativ simpla a unor volume mari sau foarte mari de date, tipurile de solutii luate in considerare vizeaza modalitatile de gestionare a datelor pe suporturile de memorie externa. 2.2. Modelul relational Conform acestui model, o entitate poate fi definita ca o relatie (in sens matematic), R D1 xD2 xD3 x . ..Dn , mai exact o submultime a produsului cartezian de <<n>> multimi denumite domenii si notate cu D1, D2, D3 , . ,Dn . Odata demonstrat acest lucru, pe obisnuitul tabel cu date referitoare la o entitate s-au putut aplica toate conceptele unei metode logice si riguroase de modelare a datelor, inclusiv algebra relationala. Astfel relatiei (tabelului) i se poate asocia un grad <<n>> (numarul de coloane ale tabelului) si o cardinalitate <<m>> (numarul de realizari sau randuri sau articole), iar mai nou , un articol se identifica in cadrul modelului relational cu ceea ce se numeste tuplu. Modelul relational foloseste urmatoarele concepte fizice: - relatie = tabel bidimensional format din randuri (linii) numite tupluri si coloane numite domenii. Relatiile abordate sunt finite; chiar daca domeniile pe care sunt construite pot fi infinite (de ex. domeniul numerelor intregi); - tuplu = un rand dintr-o tabela; - caracteristica= numele/antetul unei coloane dintr-o tabela (relatie); - cheie = o caracteristica sau o multime de caracteristice a caror valoare identifica fiecare tuplu dintr-o tabela; - cheie primara = permite identificarea in mod unic a unui tuplu (inregistrare); - cheie secundara = permite identificarea tuturor tuplurilor care au aceeasi proprietate; - cheie externa = cheie identica cu cheia primara a relatiei asociate; prin construirea cheilor externe se realizeaza un acces rapid la informatiile continute in baza de date, datorita legaturilor pe care le realizeaza; - domeniu = multimea de valori ale unei caracteristici (o coloana dintr-o tabela); - grad = numarul de coloane din cadrul unei tabele; se noteaza G(R)=n, unde R este numele tabelei; - cardinalitate = numarul de randuri din cadrul unei tabele; se noteaza C(R)=m, unde R este este numele tabelei; - dimensiunea relatiei = produsul dintre cardinalitate si gradul relatiei. Un model relational cuprinde trei elemente: - structura datelor; - reguli de integritate, care guverneaza utilizarea cheilor in model; - operatori. Atribut: o submultime a unui domeniu careia i s-a atribuit un nume. Numele exprima rolul sau semnificatia atribuite elementelor domeniului respectiv. Relatiile se reprezinta grafic sub forma de tabele, in care se disting: gradul relatiei: numarul de atribute utilizate cardinalitatea relatiei: numarul de tupluri (linii in tabel). Cardinalitatea unei relatii este variabila in timp datorita operatiilor de actualizare care pot adauga sau sterge tupluri. Pentru o relatie pot exista 3 tipuri de chei: cheie primara: cel mai mic ansamblu de atribute (eventual unul singur) care permite identificarea fara echivoc al fiecarui tuplu al unei relatii; atributele care compun cheia primara nu pot avea valori nule. cheie candidat: o alta posibila cheie primara, care nu a fost insa retinuta ca atare. cheie externa: un ansamblu de atribute (eventual unul singur) care este cheie primara intr-o alta relatie Restrictie de integritate referentiala (RIR): daca intre un atribut A si o cheie primara B exista o RIR atunci A nu poate lua decat valori care exista si in B. Prin definitie, cheile externe sunt supuse RIR in raport cu cheile primare corespunzatoare. 2.3. Trecerea de la MCD la MLD relational a. Cazul entitatilor Fiecare entitate devine o relatie. Atributele entitatii devin atribute ale relatiei. Identificatorul entitatii devine cheia primara a relatiei b. Cazul asocierilor b.1 Cazul general 1) Asocierea devine o relatie. 2) Atributele proprii ale asocierii (daca exista) devin atribute ale relatiei. 3) Cheile primare ale entitatilor participante la asociere devin chei externe. 4) Identificatorul asocierii devine
cheia primara a relatiei. Se adauga la atributele relatiei corespunzatoare entitatii cu cardinalitatea maximala 1 identificatorul celeilalte entitati (cheia primara a relatiei corespunzatoare acesteia), care devine cheie externa. Daca asocierea are atribute proprii, acestea se adauga la randul lor relatiei care reprezinta entitatea cu cardinalitate maximala 1. c. Subtipuri de entitati (Generalizarea/specializarea) c.1. Reprezentarea simpla a legaturilor dintre tip si subtip Se aplica regulile de la b.2. c.2. Reprezentarea mostenirii Reprezentarea mostenirii ca proces de transfer al proprietatilor generice ale tipului spre subtipuri nu beneficiaza de o solutie relationala dedicata. Din aceasta cauza, este necesar sa se recurga la defactorizarea proprietatilor comune. Aceasta se poate face in doua variante: a) se favorizeaza specializarea: tipul de entitate generica dispare iar atributele sunt adaugate la fiecare dintre subtipuri. b) se favorizeaza generalizarea tipul de entitate generica preia si atributele specializate care, in functie de subtipul reprezentat, primesc valori nule. atat tipul cat si subtipurile sunt conservate ca atare.
|