Documente Academic
Documente Profesional
Documente Cultură
Capitolul 2 - Modelarea Conceptual A Datelor PDF
Capitolul 2 - Modelarea Conceptual A Datelor PDF
Sistem
informaţional
Proceduri
Informaţii
Documentare şi
analiză
Modelare
Modelul EA urmăreşte obţinerea unei reprezentări fidele, utilizând concepte specifice, a realităţii
(problemei de rezolvat ce urmează a fi informatizată). Această reprezentare a lumii reale se va realiza
făcându-se abstracţie de orice restricţie fie ea informatică sau organizatorică. Pornind de la semantica
obiectelor lumii reale şi a legăturilor stabilite între acestea modelul EA serveşte în egală măsură ca un
mijloc de comunicare între modelator (informatician) şi viitorul utilizator al sistemului (beneficiarul
sistemului informatic), care descrie realitatea supusă modelării în conformitate cu propria lui percepţie.
Concepte de bază ale modelului Entitate Asociere
ENTITATEA reprezintă un obiect al realităţii modelate caracterizat printr-o existenţă proprie, cu o
identitate proprie (care-l face identificabil în raport cu celelalte obiecte de acelaşi tip) şi o mulţime de
caracteristici care exprimă proprietăţile acestuia.
Pentru exemplificare vă propunem ca domeniu de studiu gestiunea poliţelor încheiate de o
societate de asigurări. Entităţile pe care le putem defini sunt: o poliţă de asigurare, instrumente de plată,
etc.
Entitatea poliţă de asigurare nr. 25 se defineşte prin următoarele realizări ale caracteristicilor:
15/03/2002 (data încheierii), Ionescu Costel (numele agentului de asigurare), Popescu Marius (titularul
poliţei de asigurare), 22/03/2002 (data inceperii perioadei asigurate), etc. Entitatea poliţă de asigurare
nr. 25 are propria identitate, distingându-se clar de celelalte entităţi de acelaşi tip (celelalte poliţe
încheiate) prin numărul său şi are o existenţă de sine stătătoare (Figura 2.2).
25 27 117
15/03/2002 10/03/2002 11/03/2002
Ionescu Costel Ionescu Costel Ion Dan
Popescu Marius Popescu Ion Manea Marian
22/03/2002 17/03/2002 18/03/2002
Număr ATRIBUTE
Data încheierii
Agentul
Beneficiarul
Data începerii Realizări ale
ENTITĂŢI atributelor
25 27 117
15/03/2002 10/03/2002 11/03/2002
Ionescu Costel Ionescu Costel Ion Dan
Popescu Marius Popescu Ion Manea Marian
22/03/2002 17/03/2002 18/03/2002
CONT BANCAR
Nr. Cont
Tip Cont
Data Deschiderii
Limită credit
Moneda
Problema de modelat este adesea deosebit de complexă în cadrul ei putându-se identifica obiecte
simple, compozite şi/ sau complexe.
În modelul EA obiectelor lumii reale le corespund entităţi, iar entităţile definite prin aceleaşi
caracteristici formează un tip de entitate.
Aceasta înseamnă că obiectelor simple le va corespunde în modelul conceptual al datelor câte
un tip de entitate.
Exemplu: pentru conturile deschise de o bancă se poate defini în cadrul modelului conceptual al
datelor tipul de entitate cont bancar (Figura 2.4).
Clienţilor (persoane fizice) ai unei bănci, deoarece sunt definiţi prin aceleaşi caracteristici (nume
client, cod numeric personal, cod de identificare în cadrul băncii, adresa etc), le va corespunde în
modelul EA un singur tip de entitate, numărul de realizări ale acestuia (de entităţi) fiind egal cu numărul
clienţilor.
Obiectele compozite se caracterizează prin faptul că ele conţin una sau mai multe caracteristici
multivaloare (cărora în modelul EA le vor corespunde atribute multivaloare). Aceasta va determina ca în
modelul conceptual optimizat al datelor acestui obiect compozit să-i corespundă mai multe tipuri de
entităţi (atributele multivaloare se vor regăsi într-un tip de entitate distinct).
Exemplu:
Documentelor bonuri de consum le va corespunde tipul de entitate bon de consum definit prin
atributele monovaloare: număr bon, data bon, secţia, gestiunea dar şi atributele multivaloare: cod
material, cantitate eliberată, preţ unitar. Aceasta face ca tipul de entitate bon de consum, definit iniţial
prin mulţimea tuturor atributelor mai sus menţionate, să conducă în final la definirea a două tipuri de
entităţi: Bon de consum (documentul în sine) definit prin atributele: număr bon, data bon, secţia,
gestiunea şi tipul de entitate Material eliberat definit prin atributele: cod material, cantitate eliberată, preţ
unitar (Figura 2.5).
Într-un mod asemănător putem reprezenta în modelul EA facturile, comenzile emise de clienţi
pentru livrarea produselor etc.
Obiectele compuse sunt decompozabile ele regrupând în structura lor obiecte simple între care
există o anumită legătură. Chiar dacă în modelul EA iniţial pentru un obiect compus s-a definit un singur
tip de entitate, ulterior acesta se va descompune în tipuri de entităţi de sine stătătoare corespunzătoare
obiectelor elementare care intră în structura obiectului compus (Figura 2.6).
BON DE CONSUM
Obiect compozit Caracteristici multivaloare (un
Nr. bon bon de consum serveşte la
Data bon eliberarea din magazie a mai
Secţia multor materii prime)
Gestiunea
Cod material
Cantitate eliberată
Preţ unitar
Tip de entitate
Bon de consum Material eliberat
Nr bon Cod material
Data bon Cantitate eliberată
Secţia Preţ unitar
Gestiunea
Obiect
compus
TITULAR
CONTRACT DE CREDIT
COD IDENTIFICARE
NR CONTRACT NUME
DATA CONTRACT CNP
TITULAR ADRESA Tipuri de
VALOARE CONTRACT DATA NASTERII entităţi
UNITATE MONETARA
GARANTII
GARANTIE
NR DOCUMENT
DATA EMITERII
BANCA EMITENTA
SUMA
STUDENT
Nr matricol
Nume student
Data naşterii
Adresa
ASOCIEREA dintre entităţi exprimă legătura stabilită dintre acestea şi rolul pe care îl joacă fiecare
entitate participantă la legătură. Exprimând o legătură dintre entităţi ea nu are o existenţă de sine
stătătoare.
O asociere poate prezenta unul sau mai multe atribute proprii cu rol de a caracteriza, explicita,
legătura stabilită între entităţile participante la asociere.
Atributele Data debut şi Data sfârşit caracterizează asocierea Ocupă şi aceasta deoarece ele nu
sunt proprietăţi ale entităţii Camere, aceiaşi cameră cu nr. 10 poate fi ocupată la date diferite şi de către
clienţi diferiţi. Fiecare entitate participantă la asociere joacă un anumit rol. În exemplul prezentat în figura
2.8 entitatea Client joacă rolul Ocupant (clientul x ocupă în data y camera z) iar entitatea Camera
prezintă rolul este ocupată (camera z este ocupată în data y de clientul x).
TIPUL DE ASOCIERE se defineşte ca ansamblul legăturilor, prezentănd aceeaşi semnificaţie,
dintre entităţile aparţinând la două sau mai multe tipuri de entităţi. Exemplu: tipul de asociere Ocupă din
figura 2.8.
Cardinalităţi
Roluri
CARDINALITATEA cuplului entitate-asociere reprezintă cuplul de valori întregi (x,y) astfel încât:
• x (cardinalitate minimală) exprimă numărul minim de realizări ale legăturii (asocierii) existând
pentru o entitate.
• y (cardinalitate maximală) reprezintă numărul maxim de apariţii ale corespondenţei putând
exista pentru o entitate.
•
Cardinalitatea minimală 0 indică faptul că pot exista entităţi care să nu participe la nici o asociere:
Există clienţi potenţiali ai unei firme cărora încă nu li s-au încheiat poliţe de asigurare – cardinalitate
minimală 0, dar sunt clienţi cărora li s-au încheiat mai multe poliţe – cardinalitate maximală n.
CLIENT POLIŢA
0,n 1,1
Cardinalitatea minimală 1 indică faptul că toate realizările tipului de entitate trebuie să participe la
o realizare a tipului de asociere. De exemplu, orice contribuabil aflat în evidenţa administraţiei financiare
are deschis un rol şi numai unul singur (în acest caz şi cardinalitatea maximală este tot 1).
CLIENT DOCUMENT
1,n 1,1
Între realizările a două tipuri de entităţi se pot stabili mai multe asocieri prezentând semantică
diferită şi prin urmare cardinalităţi diferite. Exemplu: un profesor lucrează la o disciplină cu un grup de
studenţi, unora dintre aceştia (maxim 10) conducându-le şi proiectul de semestru la disciplina respectivă
(figura 2.13).
Figura 2.13
COD
DENUMIRE
Substituie UNIT. DE MĂSURĂ Este
substituit
Substituie
Cantsubstit
Spre exemplu, o materie primă necesară pentru fabricarea unui produs poate fi substituită (dacă
nu există cantitatea necesară în stoc) printr-o altă materie primă (având aceleaşi caracteristici dar spre
exemplu o altă concentraţie) într-o anumită cantitate.
Asocierile binare reprezintă legături (corespondenţe) stabilite între realizările aparţinând la două
tipuri de entităţi diferite.
Exemplu: asocierea Prevede stabilită între tipul de entitate POLIŢĂ şi tipul de entitate PRIMA DE
PLATĂ (figura 2.12) sau asocierile Lucrează şi Conduce din figura 2.13.
Asocierile complexe exprimă legături stabilite între realizările mai multor tipuri de entităţi. Spre
exemplu, o entitate ternară se poate stabili între tipurile de entităţi: CONTRIBUABIL, TAXA, DOCUMENT
DE PLATĂ (DOC PLATA).
1,N
1,1 Doc. plată
Contribuabil Plăteşte
Plătitor
Emis
Plătită 0,N
Taxă
Se recomandă însă reducerea acestor asocieri complexe la asocieri binare. Astfel asocierea
ternară prezentată în figura 2.15 se descompune conform figurii 2.16 în asocieri binare.
În continuare prezentarea se va referi doar la asocierile binare.
0,N 1,1
1,N
Datorează
1,N
Suma 1,N
0,N
Taxe Privesc
Stoc
Data stoc
Domeniul, ca mulţime de valori pe care le poate lua un atribut, poate fi definit printr-o proprietate
(o condiţie privind un atribut sau un grup de atribute), prin precizarea unui interval de valori sau prin
enumerarea mulţimii de valori admise.
Restricţiile de domeniu reprezintă condiţii (reguli) care privesc ansamblul de valori admise
pentru un atribut în cadrul tipului sau domeniului său. Restricţiile pot viza realizările unui/unor atribute
aparţinând unei aceleiaşi entităţi sau asocieri, caz în care se numesc restricţii intraentitate, sau a
unui/unor atribute aparţinând unor entităţi şi/sau asocieri diferite, caz în care se numesc restricţii
interentităţi. Restricţiile pe domeniu se pot exprima cu privire la:
1. Conţinutul unui singur atribut al unei entităţi sau asocieri:
Exemplu: Unit. Măsură={ “KG”,”Buc”}
TVA = { 0, 19}
Preţ > 10000 şi preţ <10000000
Cantitate > 10 (cantitatea este un atribut definit pentru asocierea CUPRINDE din Figura
2.17).
2. Corelaţiile ce trebuie să se respecte între valorile mai multor atribute sau asocieri
aparţinând aceleiaşi entităţi sau asocieri:
Exemple: Număr gestiune=1 atunci nume gestionar = “Ion Toma”
Cod produs=12 atunci Unit Măsură=”BUC”
3. Corelaţiile care trebuie să existe între atributele aparţinând mai multor entităţi sau asocieri
diferite:
Exemplu:
În gestiunea 1 se stochează doar produsele având codurile în mulţimea {1000, 1001,
1014}.
Data-stoc > data omologării
Cod produs=112 atunci număr gestiune=1
4. Corelaţii realizate pe baza unor valori obţinute prin operaţii de sintetizare (însumare, calculul
mediei, valorii minime /maxime etc.) a unui ansamblu de entităţi:
Exemplu:
Suma cantităţilor comandate pentru un produs nu poate depăşi stocul din data respectivă.
Preţul mediu al produselor >200000
2.2.2. Restricţii structurale
Identificarea entităţilor
Fiecare entitate va trebui să poată fi identificată fără echivoc. Acest lucru impune ca identificatorul
entităţii să ia valori unice diferite de NULL (NULL înseamnă că nu s-a atribuit nici o valoare, deci valoarea
NULL este diferită de zero sau spaţiu).
În definirea modelului EA putem întâlni cazuri mai speciale legate de identificarea entităţilor:
1. Nu putem defini un identificator sub forma unui atribut/grup de atribute pentru un anumit tip de
entitate (Figura 2.18). Exemplu: Pentru fiecare angajat al firmei se consemnează lunar
prezenţa prin reţinerea orelor efectiv lucrate, orelor absentate, orelor de concediu medical.
Identificarea entităţilor Prezenţa se face prin rolul Realizează pe care entitatea Angajat îl joacă
în asocierea Înregistrează
Identificarea prin rol a entităţilor se poate realiza doar dacă asocierea în cauză nu este ciclică
(unară) iar cardinalitatea cuplului entitate identificată-asociere este 1,1 şi cardinalitatea cuplului entitate
identificator - asociere este 1,1 sau 0,1.
1,1 1,1
PREZENŢA
ANGAJAT Înregistrează
Figura 2.18
2. Identificarea unei entităţi se poate realiza prin unul sau mai multe atribute proprii împreună cu
rolul jucat de alt tip de entitate (figura 2.19) în cadrul asocierii.
Cuprinde Priveşte
Figura 2.19
O poliţă de asigurare de viaţă presupune pe lângă specificarea numărului, datei încheierii poliţei,
valorii asigurate şi precizarea primelor de plată cu înscrierea datei limită a plăţii precum şi a sumei de
plată ( considerăm că sumele sunt diferite de la o scadenţă la alta). Fiecare poliţă se identifică prin
număr, atribuit în mod unic. Pentru tipul de entitate Scadenţa, atributul Data scadenţei nu poate fi
identificator deoarece, la aceeaşi dată mai multe poliţe au acelaşi termen limită de plată. Identificarea
entităţilor Prime asigurare se va realiza prin valorile atributului propriu Data scadenţei şi rolul Cuprinde
jucat de entitatea Asigurare în asocierea Prevede.
2.2.3. Restricţii de integritate de roluri
În definirea asocierii am subliniat faptul că aceasta exprimă legătura stabilită între entităţi diferite,
fiecare dintre acestea jucând un anumit rol. Plecând de la rolurile jucate de entităţi în cadrul asocierilor
putem defini o serie de restricţii de integritate şi anume de : egalitate, incluziune şi excluziune de roluri.
Restricţia de incluziune de roluri statuează faptul că, dacă o entitate E1 care joacă rolul r1 în
asocierea A1 va trebui să joace şi rolul r2 în asocierea A2. Rezultă că rolul r1 include (implică prin
incluziune) rolul r2 . Pentru reprezentarea restricţiei de incluziune de roluri se va utiliza următoarea
reprezentare grafică:
r1 I r2
Un exemplu îl constituie secvenţa de MCD elaborat pentru o firmă de asigurări. (Figura 2.21).
Clienţii încheie poliţe de asigurare şi primesc despăgubiri la producerea riscului asigurat dacă au
la zi plata primelor de asigurare. Între rolul despăgubită şi rolul achitată se manifestă o restricţie de
incluziune pe rol. De asemenea este o restricţie de integritate pe rolurile despăgubită şi încheiată pe care
le joacă entitatea poliţă.
1,1
PLATA PRIME
Nr chitanţă
Data chitanţă
Suma plătită
Egalitatea de roluri presupune ca restricţia de incluziune între roluri să fie reciprocă. Grafic
restricţia de egalitate de roluri se reprezintă conform figurii 2.22.
r1 = r2
Persoanele care au un rol (fişă) deschis la administraţia financiară, deci joacă rol de posesor în
asocierea Are, înseamnă că au obligaţii fiscale, deci joacă rol de contribuabil în asocierea Datorează,
reciproca fiind valabilă: orice persoană care are obligaţii fiscale trebuie să aibă deschis un rol. Dar nu
Posesor
toate persoanele sunt contribuabili, deci există entităţi ale tipului Persoana care nu joacă rolul de
Posesor în asocierea Are. Grafic, egalitatea de roluri se reprezintă conform figurii 2.23.
Rol
Persoana
1,1
0,1 Nr. rol
CNP Data deschid.
Nume Are
Adresa
Contri-
buabil
0,n =
Impozit
1,n
Cod impozit
Datorează Denumire
r1 # r2
Restricţia de incluziune exprimă faptul că asocierea A1 stabilită între două entităţi va determina
existenţa unei alte asocieri A2 în cadrul modelului EA.
Exemplu: Un broker primeşte ordine de la clientul său şi execută tranzacţii.
ORDINE
BROKER
1,n primeşte 1,1
ID ordin
ID Broker Data ordin
Nume broker Cod acţiune
SVM
1,n
I 1,1
Execută
emite
1,1
1,n
TRANZACŢII
CLIENTUL
Cod tranzactie
Valoare Cod client
Nume client
Adresa
Tipul de asociere execută este determinat de existenţa tipului de asociere primeşte (brokerul nu
poate efectua tranzacţia dacă nu a primit ordinul corespunzător).
1,n
TAXE SCOLARE
Achită
Plătitor 1,1 Cod TAXĂ
Denumire
Suma taxă
cititor 0,n
Împrumută =
0,n
CARŢI
Cota
Titlu
Editura
Determinant
Determinat
Exemplu:
Agent economic
Cod fiscal
Această df subliniază faptul că unei realizări a atributului Nr. rol îi va corespunde întotdeauna
aceeaşi realizare a atributului Nume contribuabil, iar aceeaşi realizare a atributului Cod fiscal va fi
asociată aceluiaşi Agent economic.
Rezultă că determinantul reprezintă atributul/grupul de atribute din stânga df care prin valoarea sa
determină valoarea luată de atributul cu rol de determinat.
Fie tipul de entitate R, A,B,C… atribute aparţinând lui R, iar X, Y, Z ansambluri de atribute de R.
Spunem că în tipul de entitate R se verifică df X → Y dacă în două realizări ale lui R având aceleaşi
valori pentru X există aceleaşi valori pentru Y.
Rezultă deci că df este o relaţie de determinare stabilită între atributele aparţinând aceluiaşi tip de
entitate.
Dacă valorile atributelor cuprinse în Y sunt cunoscute, atunci ele sunt în funcţie de valorile
atributelor aparţinând lui X pentru că ele sunt determinate în mod unic de acestea din urmă.
Dependenţa funcţională poate implica atribute sau grupuri de atribute.
Dacă:
A → (B,C)
atunci există dependenţele funcţionale:
A→B
A→C
Exemplu:
Nr. Poliţă → Data poliţă, nume agent
Ceea ce ne conduce la identificarea dependenţelor funcţionale:
Nr. Poliţă → Data poliţă
Nr. Poliţă → Nume agent
Dar dacă există df (A,B) → C nu înseamnă că se verifică dependenţele funcţionale:
A→B
şi
A→C
Exemplu:
DETERMINANTI
ATRIBUTE 1 2 3 4 5 6 7 8 9 10 11 5+8 1+5
1. Cod produs 1
2. Den. produs 1 1
3. Cod um 1 1 1
4. Preţ produs 1 1
5. Cod reper 1 1
6. Den. reper 1 1
7. Cantitate reper 1 1
8. Cod material 1 1 1
9. Den. material 1 1
10. Cant. normată 1 1
11. Den. um 1 1
Figura 2.31 Matricea completă a DF
Atribut 2
Df 3
Df 2
Atribut 3
Dependenţa tranzitivă DF3 va trebui eliminată din diagrama dependenţelor funcţionale. În cazul
problemei pe care o avem de rezolvat cvasidependenţe funcţionale reciproce sunt:
Dar dependenţa funcţională dintre atributul cod produs şi atributul cod material este tranzitivă şi va
trebui eliminată din diagrama DF.
Pornind de la mulţimea atributelor ce definesc problema de rezolvat (enumerate în paragraful
anterior) putem identifica dependenţele funcţionale pe care le vom grupa în cadrul diagramei în funcţie
de determinanţii pe care îi prezintă.
1. Pentru fiecare DF în care determinantul este elementar se creează un tip de entitate în care
determinantul DF joacă rolul de identificator.
În cazul problemei de rezolvat se vor defini patru tipuri de entităţi şi anume: Produs, Reper,
Material şi Unităţi măsură prezentând drept identificatori atributele: Cod produs, Cod reper, Cod material
şi respectiv Cod um (Figura 2.34).
4. Pentru fiecare DF neelementară (cu determinantul format dintr-un grup de atribute, identificatorii în
cadrul tipurilor de entităţi definite) se creează un tip de asociere neierarhic (restricţie de integritate
multiplă), definită prin atributul cu rol de determinant în DF.
Aplicând regula obţinem:
Figura 2.37 Model EA
Matricea s-a realizat pe baza DF manifestate în cadrul tipurilor de entităţi definite. Se observă că
prin eliminarea elementelor de reflexivitate pe fiecare linie a matricei rămâne, aşa cum este corect, o
singură valoare semnificând că un atribut prezintă un singur determinant.
Un subtip (o subclasă) de entităţi reprezintă un grup de entităţi aparţinând unui tip, reprezentate
distinct în cadrul modelului, ele prezentând anumite trăsături caracteristice ce le detaşează,
individualizează, de celelalte entităţi.
Definirea subtipurilor de entităţi se poate face pe două căi:
- plecând de la valoarea unui atribut (valorile unor atribute);
- utilizând criterii precizate de utilizator.
Prin această grupare a entităţilor aparţinând unui tip se ajunge la definirea unor supertipuri de
entităţi dominante în raport cu subtipurile (subclasele) acestora. Subclasele sunt rezultanta unei
specializări la nivelul entităţilor, ele conservând însă capacitatea de a moşteni de la supertipul lor
elementele comune definitorii.
Pentru a clarifica importanţa definirii în modelul EA a tipurilor şi subtipurilor de entităţi vă
propunem următorul exemplu:
O bancă lucrează atât cu clienţi persoane fizice cât şi cu clienţi persoane juridice. Fiecare client al
băncii primeşte un număr unic de identificare (cod ID), are un nume. Dacă este persoană fizică se reţine
codul numeric personal (CNP) şi data naşterii (DataN), dacă este persoană juridică se reţine codul fiscal
(CodF) şi codul din registrul comerţului (CodC).
CLIENŢI
Cod ID Tip (Supertip)
Nume
0,1
0,1
Este o Este o
1,1 1,1
Cele două subtipuri - PERS FIZICĂ şi PERS JURIDICĂ - moştenesc toate caracteristicile definite pentru
supertip (CLIENŢI) şi anume Cod ID şi Nume.
Generalizarea
NUMĂR
DATA DOC
0,1 EMITENT
BENEFICIAR 1,1
Este un
Este un
1,1
1,1
Sgaranţie
OrdinPlată
Specializarea
Specializarea reprezintă operaţia opusă generalizării permiţând realizarea unei decupări a unui
tip de entitate E (care va deveni SUPERTIP) în subtipuri de entităţi diferenţiate prin atribute proprii sau
prin anumite realizări aparţinând unui atribut. Specializarea şi generalizarea sunt două abordări diferite
ale aceluiaşi proces de modelare.
În măsura în care dorim să cuprindem în modelul EA informaţia existentă în documentele
Scrisoare de garanţie bancară şi ordin de plată (emis de agentul economic) putem crea iniţial un tip de
entitate document definit prin mulţimea atributelor corespunzătoare problemei analizate (mulţimea tuturor
atributelor celor două tipuri de documente).
Tipul de entitate DOCUMENT (Figura 2.41) este un concept generic, el cuprinzând elementele
caracteristice celor două documente aparţinând lumii reale, Scrisoarea de garanţie şi Ordinul de plată.
Chiar dacă pot exista atribute cu realizări opţionale în cadrul unui tip de entitate, atât timp cât privesc
caracteristici particulare ale unor entităţi este necesară “gruparea” acestora în subtipuri (de entităţi). La
nivelul tipului de entitate (Document) vor rămâne doar atributele comune subtipurilor definite. Obţinem
astfel subtipurile de entităţi Sgaranţie şi OrdinPlată ajungând astfel la modelul EA prezentat în figura
2.40.
Număr
Data
Emitent
Beneficiar
Nr. zile
Suma
Cont benef.
Banca benef.
Cont plătitor
Banca plătit.
Figura 2.41
• Specializarea totală corespunde situaţiei în care orice entitate a supertipului face parte dintr-un subtip.
Grafic se marchează printr-o linie dublă.
• Specializarea parţială corespunde situaţiei în care pot exista realizări ale supertipului care nu aparţin
nici unui subtip (spre exemplu o realizare a tipului document este un document de tip bon de consum
căruia nu-i corespunde nici un subtip din cele definite – în exemplul nostru Sgaranţie şi OrdinPlată).
Grafic se reprezintă printr-o linie simplă.
Să presupunem că secretariatul unei facultăţi doreşte să evidenţieze cele trei categorii de studenţi pe
care îi gestionează: studenţii de la forma de învăţământ zi, studenţii cursurilor postuniversitare şi studenţii
doctoranzi. Toţi aceşti studenţi se definesc printr-o serie de atribute comune: număr matricol, nume,
adresă, data naşterii care se reţin la nivelul tipului de entitate STUDENT. Atributele specifice fiecărui grup
de studenţi aparţinând unei anumite forme de pregătire se vor reţine în subtipurile specifice. Astfel,
studenţii de la cursurile de zi se definesc prin: an (de studii), grupa, categorie (student înscris pe loc
bugetat sau cu taxă), tip bursă. Studenţii cursurilor doctorale se caracterizează prin: cursul urmat, tema
aleasă pentru dizertaţie iar studenţii doctoranzi se definesc prin: specializare, conducător ştiinţific, tema
tezei, anul înscrierii.
Student
Nr. matricol
Nume
Adresă
Data naşterii
0,1 0,1
0,1
# #
Este un
Este un Este un
Postuniv. Doctoranzi
Zi
Cursul Specializare
An Tema dizertaţiei Conducător
Grupă Anul înscrierii
Categorie Tema
Tip bursă
Figura 2.42 evidenţiază faptul că orice entitate aparţinând tipului student îşi găseşte corespondent
într-o realizare a unui subtip. S-a marcat distinct şi de această dată restricţia de integritate de excluziune
dintre subtipurile de entităţi (dacă este un student la zi nu poate fi student la un curs postuniversitar sau
doctorand). Există situaţii în care între cele două subtipuri de entităţi având acelaşi supertip pot apărea şi
restricţii de incluziune, deci realizările cele două subtipuri nu sunt disjuncte (figura 2.43).
Şeful unui compartiment din structura organizatorică a firmei poate fi economist deci apare relaţia
de incluziune între cele două subtipuri definite – ŞEF şi ECONOMIST.
Angajat
Cod id
Nume
Funcţie
0,1 Salariu
0,1
Este un
Este un
1,1
1,1
Şef
Economist
Indemnizaţie
Specializarea
Se doreşte realizarea modelului conceptual al datelor pentru sistemul informatic al unei societăţi
de valori mobiliare ştiind că:
- Ordinele de tranzacţionare se primesc de la clienţi, fiecare client fiind definit printr-un cod unic
de identificare, nume, adresa, banca, cont.
- Ordinele de tranzacţionare vizează societăţile cotate pe piaţă, societăţi pentru care se reţine
codul, denumirea, capitalul social, cotaţia maximă şi respectiv cotaţia minimă înregistrată.
- Ordinele clienţilor privesc o anume societate tranzacţionată şi pot fi de vânzare, (caz în care
acesta poate specifica preţul minim pe care îl acceptă) sau de cumpărare, pentru care poate
preciza un preţ maxim. Ordinele primesc un număr unic la nivelul SVM-ului şi cuprind: data şi
ora emiterii, numărul de acţiuni, societatea vizată.
- Ordinele sunt executate de un broker, clienţii lucrând fiecare cu un anume broker din societate,
pentru care se reţin următoarele caracteristici: cod şi nume.
- Tranzacţiile realizate pe baza ordinelor primite prezintă: un număr, data tranzacţiei, numărul
acţiunilor care au făcut obiectul tranzacţiei, preţul la care s-a realizat tranzacţionarea.
- Un ordin poate fi acoperit prin mai multe tranzacţii realizate pe piaţă.
Figura 2.44
2.6 Reprezentarea timpului
Modulul EA nu oferă formalisme specializate pentru reprezentarea timpului. Dar elementul timp
trebuie de cele mai multe ori să se regăsească în cadrul modelului conceptual definit. Aşa se explică
faptul că modelul EA permite atât reprezentări sincronice (care aduc o viziune atemporală) sau
diacronice (care surprind elementul timp în MCD).
Să presupunem că dorim să realizăm un MCD care să permită reprezentarea consumului specific
de materii prime necesare fabricării fiecărui subansamblu din componenţa unui produs finit (Figura 2.45).
Modelul conceptual din figura 2.45 este o reprezentare sincronică. Realitatea modelată nu a impus
integrarea în MCD a elementului timp.
Sunt însă situaţii în care în cadrul MCD este necesar să integrăm şi elementul timp. Să
presupunem că dorim să reprezentăm cursele realizate de fiecare aeronavă a unei companii de
transporturi aeriene. Ne interesează să cunoaştem ce aeronavă a asigurat fiecare din cursele
programate. Vor fi utilizate în cadrul modelului două tipuri de entităţi AVION şi CURSA între cele două
stabilindu-se tipul de asociere REALIZEAZĂ.
1,n
Necesită
Cantitate
MaterPrimă
1,n
Codmat
Den mat
Nr-id Nr cursă
Marca Realizează Destinaţie
Tip Ora-plecării
Km parcurşi Ora-sosirii
Data reparaţiei
Figura 2.46
Reprezentarea sincronică din figura 2.46 evidenţiază ce curse au fost realizate de fiecare
aeronavă din dotare dar nu şi când. Cursa cu numărul 123 având destinaţia Paris se efectuează în
fiecare zi de joi a săptămânii şi deci nu putem identifica cu ce aeronavă s-a realizat într-o numită zi. Dacă
însă dorim să avem o evidenţă clară a curselor realizate de o anumită aeronavă această reprezentare se
dovedeşte neacoperitoare. Realizările tipului de asociere se identifică după Nr-ID şi Nr cursă. Cum
acelaşi avion poate realiza aceeaşi cursă, de mai multe ori identificarea realizărilor tipului de asociere nu
se mai poate realiza. Acest lucru impune introducerea în cadrul modelului a unui tip de entitate
temporală.
Caracteristic pentru entităţile temporale este faptul că ele sunt definite adesea printr-un singur
atribut (data calendaristică). În cazul în care prezintă mai multe atribute, fiecare dintre acestea reprezintă
o unitate de măsură a timpului (zi, oră, minut) iar ansamblul acestor atribute formează identificatorul
tipului de entitate.
Observăm că introducerea timpului de entitate temporală a condus la transformarea tipului de
asociere binară existent iniţial între AVION şi CURSA într-o asociere ternară.
Data cursei
Data
Nr-id Nr cursă
Marca Realizează Destinaţie
Tip Ora-plecării
Km parcurşi Ora-sosirii
Data reparaţiei
1,n 1,n
Figura 2.47 Reprezentare diacronică
1,n 1,1
Client
Poliţă
Cod client Încheie
Nume Nr poliţă
Tip Data poliţă
Adresă
1,n
1,n
Precizează
Asigură
1,n
1,1
Riscuri
Bun asigurat
Cod risc
Denumire Denrisc
Adresa
Val bun
Val asigurată
Realitate
Model Model
Extern 1 Extern n
Model
Extern 2
Model
Conceptual
În cazul unei actualizări ME construit va reda spre exemplu, fluxul de date implicat în cadrul
prelucrării. În cazul operaţiei de actualizare privind facturile emise clienţilor ME se prezintă astfel:
Factura
NR FACTURĂ
Data factură
Client
Val-factură
1,n
CUPRINDE
1,1
COD PROD
DEN PROD
UM
CANT FACT
PREŢ
VAL-PRODUS
TVA-PRODUS
TOTAL-PRODUS
Din analiza ME prezentat în figura 2.50 constatăm că unele atribute îşi găsesc corespondent
direct în MCD, altele sunt atribute calculate (VAL-PRODUS, TVA-PRODUS, TOTAL-PRODUS) iar unele
atribute, deşi definesc aceleaşi caracteristici, sunt definite cu nume diferite de cele utilizate în MCD
(Client în loc de DEN CLIENT de exemplu), deci prin echivalenţă îşi găsesc un corespondent în MCD.
CONSULTARE
1. Atributele externe trebuie să fie atribute conceptuale
2. Se verifică existenţa în MCD a atributelor necesare identificării datelor în procesul consultării.
3. Cardinalităţile asocierilor externe trebuie să fie incluse în cardinalităţile asocierilor aparţinând
MCD corespunzătoare semantic.
ACTUALIZARE
1. Orice atribut extern serveşte fie la identificarea unui element conceptual de actualizare
(atribut, entitate) fie la obţinerea valorii de actualizare a unui element conceptual.
Această regulă permite identificarea atributelor omise ce vor completa MCD precum şi la
identificarea atributelor ME care vor fi şterse deoarece nu servesc niciunuia din scopurile amintite.
2. Cardinalităţile asocierilor externe trebuie să se includă în cardinalităţile asocierilor
conceptuale corespunzătoare semantic.
3. Orice element conceptual trebuie să poată fi actualizat (inserat, modificat, şters) prin cel
puţin un model extern.
Se vor defini modele externe omise care realizează actualizarea elementelor conceptuale.
Probleme rezolvate
Problema 1
În cadrul subsistemului informatic privind calculaţia costurilor se urmăreşte evidenţierea
consumului de materii prime aferent comenzilor de produse lansate în fabricaţie. Ştiind că :
• În comandă se precizează secţia producătoare şi cantitatea de fabricat din produsul respectiv;
• Eliberarea materiilor prime din gestiune pentru consum se face pe baza bonului de consum în
care se specifică: numărul şi data bonului, gestiunea care eliberează materialele, comanda de
producţie pentru care se eliberează materialele, cantităţile şi preţurile materiilor prime date în
consum;
• Orice produs din nomenclatorul de fabricaţie se defineşte prin: cod, denumire, preţ de livrare;
• Materiile prime se definesc prin: codul materiei prime, denumire, unitate de măsură, gestiunea
în care se depozitează;
• Intrările de materii prime în gestiuni se realizează pe baza documentului Notă de recepţie şi
constatare de diferenţe (NRCD) în care se consemnează: numărul şi data documentului,
furnizorul, gestiunea primitoare, materia primă recepţionată, cantitatea şi preţul de
aprovizionare.
Restricţii:
• O comandă de producţie se referă la un singur produs;
• O materie primă poate fi stocată în mai multe depozite;
• Preţul fiecărei materii prime diferă de la un furnizor la altul;
• Un depozit are un singur gestionar.
Se cere:
1. Identificaţi mulţimea atributelor aparţinând problemei de rezolvat;
2. Realizaţi diagrama dependenţelor funcţionale;
3. Realizaţi modelul EA pe baza dependenţelor funcţionale identificate.
REZOLVARE:
1. Atributele care definesc realitatea modelată sunt:
Cod produs Den prod Preţ livrare
Nr. comandă Data lansării cdă Secţia de
producţie
Cantitate produs Nr. bon consum Data bon
Gestiune Cod material Den material
Cantitate eliberată Nr NRCD Cantitate intrată
Preţ intrare Furnizor Gestionar
2. Diagrama dependenţelor funcţionale este:
Cod produs
Den produs
Cantitate comandă
Preţ livrare
Data bon
Data lansării
Secţia
Cantit. eliberată
Cod material
Furnizor
Den material
Unit. măsură
NRCD
Gestiune
Cantit. Intrată,
Gestionar Pret Intrare
Modelul EA este:
PRODUS
COMANDĂ
0,N 1,1
Cod produs
Den prod Cuprinde Nr cda
Preţ livrare Data lansare
Cant cdă
Secţia
NRCD 1,N
Nr NRCD
Data NRCD Necesită
Furnizor
1,1
MATERIALE
0,N
1,N
Cod material
Den material
1,N
Stochează
Stoc iniţial
1,N
GESTIUNE
Nr Gestiune
Gestionar
Problema 2
Să se elaboreze MCD pentru evidenţa poliţelor de asigurare încheiate de o societate specializată
în asigurări de bunuri ştiind că:
• Un client poate încheia una sau mai multe poliţe de asigurare de bunuri. Fiecare client primeşte un
cod unic şi este definit prin nume, adresă, cod numeric personal;
• O poliţă de asigurare se întocmeşte pentru unul sau mai multe bunuri de către un agent de asigurări
şi cuprinde numărul, data întocmirii, perioada asigurării bunului;
• Pentru fiecare bun asigurat se specifică: numele bunului, adresa unde se află, valoarea bunului,
valoarea pentru care se asigură, riscul/riscurile pentru care se asigură (furt, incendiu, inundaţie etc);
• Pentru fiecare poliţă încheiată se stabileşte: valoarea primelor de asigurare pe care clientul urmează
să le achite şi data limită a plăţii, data de la care operează asigurarea, data de sfârşit a perioadei de
asigurare;
• Plata primelor de asigurare se face pe bază de documente (chitanţă, ordin de plată, filă cec etc
identificate prin număr şi dată).
REZOLVARE:
Notă: Entităţile Bun şi PRIMĂ nu prezintă indentificator propriu. Ele se vor identifica prin valoarea
atributului Numele bunului şi rolul pe care entitatea POLIŢĂ îl joacă în asocierea Priveşte şi respectiv
valoarea atributului Nr primă şi rolul pe care îl joacă entitatea POLIŢĂ în asocierea Prevede.
Problema 3
O societate de turism doreşte să implementeze un sistem informatic privind gestiunea hotelieră.
Să se elaboreze MCD ştiind că se doreşte realizarea evidenţei spaţiului de cazare (camerele sunt de
tipuri diferite – simplă, dublă, apartament – iar tariful diferă de la cameră la cameră chiar dacă sunt de
acelaşi tip), a serviciilor suplimentare oferite în unele camere (televizor, fax, frigider etc) care se tarifează
separat. Nota de plată se întocmeşte clientului în funcţie de camera ocupată, numărul zilelor de cazare,
serviciilor suplimentare solicitate. Rezervările se fac pe camere şi nu pe locurile din cameră. Verificaţi
modelul EA elaborat pe baza matricei simplificate a dependenţelor funcţionale.
REZOLVARE:
CLIENT
Are
Primeşte
SERVICII
1,n 1,1
Tip serviciu
Tarif/zi NOTĂ PLATĂ
0,n
1,n
Nr notă
Priveşte Data
1 6 10 12 1+6
1. Nr cameră 1
2.Tip cameră 1
3. Tarif cameră 1
4. Dată debut sejur 1
5. Dată sfârşit sejur 1
6. Cod numeric personal 1
7. Nume client 1
8. Adresă 1
9. Act identitate 1
10. Nr. notă plată 1
11. Data notă plată 1
12. Tip serviciu 1
13. Tarif serviciu/zi 1
Problema 4
Un spital doreşte să implementeze un sistem informatic de gestiune prin care va putea avea o
evidenţă clară a: pacienţilor (date personale, diagnostic), medicilor şi responsabilităţile lor pe saloane,
medicaţiei şi procedurilor de tratament prescrise pacienţilor, repartizării medicilor şi saloanelor pe secţii.
Reguli de gestiune:
• Un pacient, în decursul unei internări, este sub supravegherea aceluiaşi medic şi rămâne în
acelaşi salon;
• Pacienţii din acelaşi salon sunt sub îngrijirea aceluiaşi medic;
• Un medic are o singură specialitate şi lucrează în cadrul unei singure secţii;
• O procedură se poate efectua într-un singur cabinet, în ziua şi ora fixată.
Realizaţi diagrama dependenţelor funcţionale şi apoi modelul EA.
REZOLVARE:
Nume
Nume medic
Den diagnostic
Adresă
Cod Secţie
Cod
Data medicament
Nume secţie naşterii
Denumire
Nr salon Doză
Preţ
Act identit.
Cod procedură
Capacitate
Nume procedură
Pacient
Data, ora
data internării
Cod-id data externării
Nume Sala
0,n 0,n Proceduri
Adresă
Data naşterii
Face Cod procedură
Act identit.
Nume procedură
Data,ora Cabinet
1,n
0,n
Internat
Medic
Data int, Data
Cod-medic extern
Nume
Specialitate
0,n Primeşte
Secţie Dozaj
1,1
Cod secţie
0,n
Nume secţie
Lucreză Medicament
1,n
Cod medicament
1,n Den medicament
Preţ
1,n
Are
1,1
1,1
Răspunde
Salon
Nr salon
Capacitate
Probleme propuse
1. Ştiind că S.C. Agroprod este organizată pe mai multe ferme, fiecare fermă lucrând cu angajaţi
permanenţi să se elaboreze MCD privind evidenţa personalului şi calculul salariilor aferente timpului
lucrat. Un angajat ocupă un post pentru care s-a stabilit funcţia şi salariul. Fiecare post are un număr unic
în cadrul fermei, iar fiecare fermă are un şef. Unor angajaţi li se fac reţineri reprezentând chirii, popriri,
rate pe baza documentelor emise de creditori pentru care se reţine: nr.doc, data doc, tip reţinere,
emitent, suma datorată. Pentru fiecare angajat se reţine codul unic de identificare, numele, o dată a
angajării în firmă, data naşterii. În fiecare lună se consemnează în documentul Foaie colectivă de
prezenţă pentru fiecare angajat numărul orelor lucrate, numărul orelor absentate, numărul orelor de
concediu de odihnă, numărul orelor de concediu medical.
2. Să se elaboreze MCD pentru sistemul informatic privind gestiunea mărfurilor într-o firmă. Modelul va
trebui să evidenţieze informaţiile privitoare la: cantităţile şi preţurile de aprovizionare ale mărfurilor de la
furnizori, livrările de mărfuri către clienţi (preţul de livrare al mărfurilor este diferit de cel de achiziţionare).
Mărfurile se stochează în depozite. Fiecare depozit are un singur gestionar. Pentru fiecare marfă se
cunoaşte stocul iniţial la începutul perioadei şi depozitul în care se află. O anumită marfă este stocată în
unul sau mai multe depozite. Fiecare client este înscris într-un nomenclator cu numele, adresa, telefonul,
contul, banca şi codul de identificare.
3. Pentru un magazin de muzică se doreşte crearea unei baze de date cuprinzând oferta acestuia.
Realizaţi MCD necesar ştiind că baza de date va stoca următoarele informaţii: numele fiecărui album,
casa producătoare, anul înregistrării, preţul (care diferă în funcţie de suport: CD sau casetă), genul în
care se încadrează albumul (rap, dance, rock etc), melodiile cuprinse, durata fiecărei melodii, interpretul,
compozitorul. Menţionăm că o melodie poate avea mai mulţi autori şi poate fi interpretată de mai mulţi
cântăreţi.
LIVRARE
ÎNCHEIE
CLIENŢI
FACTURA
Cod client
Nr factură Den client
Data factura Adresă
Cantitate livrată
Ştiind că:
• Obiectul unui contract este reprezentat de unul sau mai multe produse pentru care se specifică
cantitatea contractată;
• Data livrării se referă la întregul contract;
• Livrarea produselor se face pe bază de factură care cuprinde cantitatea facturată şi preţul de
facturare pentru produsele livrate (într-o factură pot fi înscrise unul sau mai multe produse).
Se cere:
- Stabiliţi cardinalităţile.
- Elaboraţi matricea simplificată a dependenţelor funcţionale şi pe baza informaţiilor astfel obţinute
stabiliţi dacă MCD este corect elaborat. În caz contrar oferţi soluţia corectă pentru MCD. Precizaţi
restricţiile de integritate corespunzătoare.
- Dezvoltaţi MCD ştiind că obiectul de activitate este reprezentat de fabricarea de produse şi
prestarea de servicii; contractele încheiate precizând produsele sau serviciile solicitate de clienţi.
Realizaţi specializările implicate de această precizare.
4. Elaboraţi MCD pentru sistemul informatic privind gestiunea depozitelor bancare constituite de clienţii
unei bănci comerciale. Depozitele se pot constitui în lei sau valută (dolari USA sau Euro). Soldul
minim pentru un depozit în lei este de 1000000 iar în valută 1000. Depozitele se constituie pe termen
de 30, 60, 90, 180, 360 de zile, fără capitalizare, dobânda fiind de 30% pe an pentru termene sub 90
de zile şi 33% pentru restul termenelor. Un client poate avea oricâte depozite. Sistemul va reţine
numărul şi data documentelor de plată a dobânzii aferente depozitelor. Stabiliţi restricţiile impuse de
problema de rezolvat. Dobânzile neridicate la scadenţă se înregistrează într-un cont la vedere
deschis pe numele titularului depozitului bancar. Fiecare cont astfel deschis are un număr unic.