Documente Academic
Documente Profesional
Documente Cultură
Note de curs
Definiii
Date - sunt material brut, fapte, simboluri, numere, cuvinte, poze fr un neles de sine
stttor, neintegrate ntr-un context, fr relaii cu alte date sau obiecte.
Informaie - Datele organizate i prezentate ntr-un mod sistematic pentru a sublinia
sensul acestor date devin informaii. Informaiile se prezint sub form de rapoarte,
statistici, diagrame etc.
Cunotinele - sunt colecii de date, informaii, adevruri i principii nvate,
acumulate de-a lungul timpului. Informaiile despre un subiect reinute i nelese i care
pot fi folosite n luarea de decizii, formeaz judeci i opinii devin cunotine.
Fiier - un set de informaii memorat n format electronic pe diverse medii de stocare
(programe, baze de date, documente text, imagini,secvene video).
Baz de date colecie partajat de date legate logic, organizate n scopul optimizrii
procesului de cutare i modificare a lor sau a relaiilor dintre ele, independent de o
anumit aplicaie.
SGBD - un sistem de programe care fac posibil definirea, ntreinerea i accesul
controlat la baza de date.
complexitate crescut,
costul SGBD,
cost crescut rezultat din cerine de hard,
costul trecerii de la un sistem la altul,
eventual defeciune are un impact crescut, global.
Note
de curs
Pe ct posibil, fiecare informaie s apar o singur dat. Nu sunt excluse nici
cazurile ncare s se accepte o anumit redundan a datelor.
Asigurarea unor faciliti sporite de utilizare a datelor
Obiectivele bazelor de date (continuare)
Asigurarea integritii datelor mpotriva unor tergeri intenionate sau
neintenionate,prin intermediul unor proceduri de validare, a unor protocoale de
control concurent i aunor proceduri de refacere a bazei de date dup incidente.
Asigurarea partajabilitii datelor.
Partajabilitatea datelor trebuie neleas i subaspectul posibilitii dezvoltrii unor
aplicaii fr a se modifica structura bazei de date.
Note
de curs
Tipul n reea
Un model de tip reea este utilizat
atunci cnd datele sunt dispuse ntr-o
structur complex n care un nod
printe poate avea mai muli copii,
dar i un nod copii poate avea mai
muli prinin. n general ntre un nod
i copiii si exist o relaie de tip unala mai-multe, dar nivelele nu mai sunt
dispuse ierarhic, astfel nct
informaia nu trece obligatoriu de la
general la particular pe msura ce
coborm nivelele.
Note
de curs
Domenii (n special cele care manipuleaz tipuri de date complexe): proiectarea
asistat de calculator, sisteme de informaii geografice, medicin . . .
Modelul relaional
Este un model deoarece el poate fi descris cu ajutorul unui numr mic de concepte care
se refer la relaii (structuri de date bidimensionale ce au proprieti speciale), rnduri
(datele aflate n cadrul relaiilor), coloane (cmpurile datelor din rndurile
corespunztoare) i chei (mecanismul de identificare i asociere a rndurilor aflate n
unul sau mai multe tabele).
se bazeaz pe teoria matematic a seturilor, ceea ce nseamn faptul c toate operaiile
sunt ncheiate cu succes, iar rezultatele operaiilor sunt predictibile.
Note
de curs
efectuate de ctre productorul bazei de date implementrii fizice a acesteia, nu
vor afecta programele aplicaiilor care utilizeaz baza de date.
Garanteaz consistena i precizia datelor: datele sunt consistente i precise
datorit multiplelor nivele de integritate ce pot fi introduse n baza de date.
Extragerea cu uurin a datelor din baza de date. n urma comenzilor introduse de
ctre utilizator, datele din baza de date pot fi extrase fie dintr-un singur tabel, fie
dintr-o multitudine de tabele asociate prin intermediul relaiilor, ceea ce ofer
posibilitatea prezentrii datelor ntr-un numr nelimitat de moduri.
Noiuni de baz
Relaie tabel ce conine coloane i rnduri.
Atribut o coloana a relaiei (tabelului), cu o anumit denumire.
Domeniu mulimea de valori permise pentru unul sau mai multe atribute.
Tuplu rndul dintr-o relaie.
Grad numrul de atribute pe care le conine aceasta.
Cardinalitate numrul de tupluri coninute.
Schema relaiei denumirea relaiei, urmat de un set de perechi de atribute i
denumiri de domenii.
Null : lipsa valorii unui atribut ; este diferit de valoarea 0 sau un ir de caractere
alctuit din spaii albe
Note
de curs
Definiie: Tip slab de entitate: Este un tip de entitate, a crui existen este
dependent de un alt tip de entitate.
Definiie: Tip tare de entitate: Este un tip de entitate, a crui existen nu
depinde de nici un alt tip de entitate.
Entitile slabe se mai numesc dependente sau cubordonate iar cele tari printe sau
dominante.
Atribute
Definiie: Atribute: Proprietaile unui tip de entitate sau de relaie.
Definiie: Domeniul atributului: Un set de valori ce se pot da acelui atribut.
Domeniul unui atribut nu se poate definii totdeauna foarte exact. De exemplu, atributul
nume de familie poate lua orice nume de familie existent. Evident, acest atribut trebuie
s fie un ir de caractere, dar oare ce caractere poate s conin? Unele domenii se pot
descompune n mai multe subdomenii. De exemplu data naterii se poate descompune
in subdomeniile: an, lun, zi.
Atributele se pot clasifica n simple sau compuse; cu o singur valoare sau cu mai
multe valori; respectiv derivate.
Definiie: Atribut simplu: Atribut care are doar o singur component i o
existen independent.
Aceste atribute nu se pot diviza mai trziu n mai multe atribute distincte.
Definiie: Atribut compus: Atribut care are mai multe componente i o existen
independent.
Aceste atribute se pot diviza n mai multe atribute simple. De exemplu atributul adres
se poate descompune n atributele: strada, numr, ora, cod potal i jude. Decizia ca
un atribut compus s se descompun n mai multe atribute simple este dependent de
modul n care se va utiliza acel atribut: separat pe componente, sau ntregul atribut.
Definiie: Atribut cu o singur valoare: Atribut care poate lua o singur valoare
pentru fiecare entitate.
Majoritatea atributelor sunt atribute cu o singur valoare, ceea ce este indicat n
proiectarea bazelor de date.
Definiie: Atribut cu mai multe valori: Atribut care poate lua mai multe valori
pentru fiecare entitate.
Atributele cu mai multe valori, trebuie s aib totdeauna o limit inferioar i una
superioar.
Note
de curs
Definiie: Atribut derivat: Atribvut a crei valoare se poate calcula din unul, sau
mai multe alte atribute, care nu sunt neaprat atributele entitii n cauz.
De exemplu atributul vrsta este derivat din atributul data naterii i data zilei n care
se utilizeaz acest atribut. Alt exemplu ar fi atributul numrul total de entiti, ceea ce
se poate calcula, numrnd entitile nregistrate.
Chei:
Definiie: O cheie este un cmp ce are o valoare unic, corespunztoare fiecrei
nregistrri dintr-un tabel.
Sunt mai multe tipuri de chei, fiecare avnd propriile caracteristici.
Definiie: Cheie candidat: Un atribut, sau un set de atribute, care identific unic o
entitate ditr-un tip de entitate.
Definiie: Cheie primar: O entitate poate s aib una sau mai multe chei
candidat, din care doar una selectat este i primar. Orice tabel trebuie s aiba o
cheie primar.
Decizia referitoare la care din chile candidate s fie cheie primar este dependent de
lungimea cheii. Cheia primar este de obicei cea mai scurt dintre cheile candidat.
O cheie primar trebuie s fie:
1. Stabil. Valoarea unei chei primare nu trebuie s se modifice sau s devin nul pe
tot parcursul existenei unei entiti. O cheie primar stabil ajut la pstrarea unui
model stabil.
2. Minimal. Cheia primar trebuie s fie alctuit dintr-un numr minim de cmpuri ce
sunt capabile s asigure unicitatea.
3. Centrat pe date, nu pe informaii. Nu trebuie s apar grupri de caracteristici n
cadrul unei valori a unei chei ce pstreaz meta-informaii adiionale, deoarece nu se
respect principiul atomicitii atributelor, crescnd astfel posibilitatea ca valorile
cheii primare s se modifice.
4. Definitiv. n momentul introducerii unei noi nregistrri, trebuie s existe
posibilitatea introducerii unei valori. Cheia primar acioneaz ca un mecanism de
constrngere suplimentar a entitii deoarece nu poate fi introdus o instan a unui
tip de entitate dac aceasta nu are o valoare permis n cheia primar.
5. Accesibil. Oricine dorete s creeze, citeasc, sau tearg o nregistrare trebuie s
poat vizualiza valoarea cheii primare.
Definiie: Cheie alternativ: Este o cheie candidat ce nu a fost desemnat drept
cheie primar. Ea poate deveni cheie primar dac cheia primar aleas iniial nu mai
corespunde la un moment dat.
Definiie: Cheie extern: Exist doar n situaia n care se stabilesc dou sau mai
multe relaii ntre tabelele bazei de date. Un atribut al unui tabel trebuie s existe i n
cellalt tabel legat de primul printr-o relaie.
7
Note
de curs
Definiie: Cheie compus: O cheie candidat care contine cel putin dou atribute.
Relaiile
Definiie: Relaie: Asociere ntre entitti (tabele), cnd asocierea include un tip de
entitate dintre toate tipurile participante.
Tipuri de relaii
Definiie: Tip de relaie: Asociere ntre tipuri de entiti.
Definiie: Gradul relaiei: Numrul entitiilor participante n relaie.
Entitiile dintr-o relaie se numesc participani. Numrul lor d gradul relaiei. Dac
intr-o relaie sunt doi participani, atunci relaia se numete binar.
Definiie: Relaie recursiv: Relaie n care aceleai entiti particip n roluri
diferite.
n cazul relaiilor recursive cele dou arce de la entitate la relaie i napoi, primesc
diferite etichete, care sunt importante n nelegerea corect a relaiei.
Atributele relaiilor
Atributele descrise mai sus, se pot asocia i relaiilor. Aceste atribute se reprezint
grafic, ca i atributele entitiilor, cu deosebirea c legtura nu este cu o entitate, ci cu o
relaie. Adic linia leag elipsa de rombul ce semnific relaia.
Structuralitatea
S analizm acum restriciile ce pot aprea la includerea unei entiti participante
ntr-o relaie. Avem dou tipuri mari de restricii: cardinalitatea i prticiparea.
Cardinalitatea
Definiie:
partricipant.
Cardinalul
este
numrul
relaiilor
posibile
pentru
entitate
Majoritatea relaiilor au gradul doi, care pot fi: unu-la-unu (1:1), unu-la-multe (1:M),
sau multe-la-multe (M:N).
Note
de curs
Relaiile unu-la-unu:
n relaiile unu-la-unu, o entitate este legat de cel mult o entitate din partea cealalt a
relaiei.
Relaiile unu-la-multe:
Relaia de tip unu-la-multe are cardinalul 1 n stnga i N n dereapta. Deci o entitate
participant este legat n relaia respectiv de 0, 1, sau mai multe entiti.
Relaiile multe-la-multe:
Acest tip de relaie se deosebete de relaia unu-la-multe prin faptul c relaia invers
nu este de unu-la-unu, ci de unu-la-multe. Deci, dac i relaia direct i reaia invers
este de tipul unu-la-multe, atunci relaia este de tipul multe-la-multe i se noteaz cu
(N:M).
1:1
1:M
M:M
Participarea
Definiie: Participarea determin dac existena unei entiti depinde sau nu de
relaia cu o alt entitate. Participarea poate fi de mai multe tipuri: total i parial. n
cazul participrii totale, toate entitiile particip n relaia dat. n caz contrar
participarea se numete parial.
Note
de curs
Funcia de manipulare a datelor este cea mai complex funcie i realizeaz
urmtoarele activiti:
Hardware.
Reprezint suportul fizic pentru SGBD i poate fi format de un singur calculator personal,
un calculator mainframe, sau chiar o reea de calculatoare. Elementele specifice de
hardware depind de cerinele organizaiei i de SGBD utilizat. Fiecare SGBD impune
cerine minimale pentru echipamentele fizice necesare funcionrii optime.
2.
Software.
utilitare.
Administratorul bazei de date are una dintre cele mai importante funcii n
cadrul unui sistem de gestiune al bazelor de date. Principalele componente ale
acestuia sunt prezentate n figura 1.4. Aceste componente pot fi urmtoarele:
- Procesorul de interogare este utilizat pentru a simplifica i uura accesul
la date. Acesta conine Evaluatorul de interogare care execut fiecare
interogare pe baza unui plan.
- Administratorul de date este utilizat pentru a minimiza resursele necesare
transferului de date dintre memoria intern i cea extern. Administratorul
de date este un program care ofer o interfa ntre datele nmagazinate n
baza de date i interogrile formulate prin intermediul aplicaiilor. Conine
urmtoarele componente:
10
Note
de curs
3.
Date.
Reprezint cea mai important component a unui mediu SGBD i include att
meta-datele ct i datele propriu-zise.
4.
Proceduri.
Procedurile includ regulile care guverneaz proiectarea i utilizarea bazei de date.
Activitatea utilizatorilor sistemului i a personalul care administreaz baza de date se
desfoar conform unor proceduri documentate privind modul de folosire i funcionare
a sistemului. Aceste instruciuni se refer la deschiderea i nchiderea unei sesiuni de
lucru, utilizarea unor faciliti SGBD i a programelor de aplicaie, activarea i
dezactivarea SGBD, arhivarea datelor, utilizarea copiilor de siguran, tratarea
defeciunilor hardware, respectiv software, refacerea bazei de date n caz de incident,
modificarea i reorganizarea bazei de date.
5.
Persoane.
n mediul SGBD se identific patru tipuri distincte de persoane implicate: administratorii,
proiectanii, programatorii de aplicaie i utilizatorii finali.
Note
de curs
serviciile.
Utilizatorii finali reprezint clienii bazei de date i pot fi grupai n dou categorii:
utilizatori simpli i utilizatori specialiti. Utilizatorii simpli nu percep baza de date i
nici SGBD ci doar acceseaz baza de date prin intermediul programelor de aplicaie.
Utilizatorii specialiti cunosc structura bazei de date i facilitile oferite de SGBD.
Ei sunt capabil s efectueze instantaneu interogri ale bazei de date, pentru aceasta
folosind fie un limbaj extern, fie unul intern al SGBD pentru a efectua anumite operaii
asupra bazei de date, fiind capabili s realizeze chiar propriile programe de aplicaie.
12
Note
de curs
13
Note
de curs
cea logica, pentru ca deciziile luate la implementarea fizica pot afecta baza de date
logice.
Proiectarea logica a bazei de date se divide n trei pasi mari:
1. descompunerea proiectarii sistemului informatic n vederi, care se pot discuta cu
utilizatorii sistemului.
2. Modelul de date astfel creat, se valideaza prin normalizare si prin tranzactii
3. Se genereaza modelul global al ntreprinderii, cars este la rndul lui validat si
verificat cu ajutorul utilizatorului sistemului.
Factori critici pentru succesul proiectarii logice:
tipuri de entitati,
tipuri de relatii,
atribute,
domeniile atributelor,
cheile candidat,
chei primare
Pasii din prima etapa a proiectarii logice sunt:
14
Note
de curs
Obiectivul: Identificarea tipurilor de entitati principale n vederile utilizatorilor.
Primul pas n proiectarea bazei de date este identificarea entitatiilor din datele furnizate
de utilizatori. De exemplu, daca avem informatiile Nr_Mat, Nr_Bloc, Scara, Etaj,
Apartament si Nume, putem identifica entitatea Locatari. n general putem identifica
entitatiile n mai multe moduri. De exemplu n locul entitatii Locatari, am putea crea o
entitate Locatari cu atributele Nr_Mat si Nume, iar celelelte informatii n entitatea
ProprietateLocatari.
Documentarea tipurilor de entitati
Dupa identificarea entitatiilor, le dam cte un nume, iar aceste nume le vom evidentia n
dictionarul de date, mpreuna cu explicatiile despre entitati, precum si posibilele aliasuri.
Pasul 1.2. Identificarea tipurilor de relatii
Obiectivul: Identificarea relatiilor importante dintre entitati.
Dupa identificarea entitatiilor, va trebui sa identificam si relatiile importante dintre
aceste entitati. Reletiile se descriu printr-un verb al relatiei. De exemplu:
Furnizorii Vnd Produse; Produsele sunt Comandate de Clieni
La identificarea relatiilor vom lua n considerare doar relatiile care ne intereseaza.
Degeaba exista si alte relatii care sa se poata identificate, daca nu prezinta importanta
pentru problema noastra, atunci nu le luam n consideratie.
n cele mai multe din cazuri, relatiile sunt binare, adica se realizeaza ntrea exact
doua entitati. Exista si relatii mai complexe, care se realizeaza ntre mai multe entitati,
sau relatii recursive, care pune n relatie o singura entitate cu ea nsasi.
Determinarea cardinalitatii si a participarii la tipurile de relatii
Dupa identificarea tipurilor de relatii, trebuie sa determinam cardinalitatea lor,
alegnd dintre posibilitatiile: unu-la-unu (1:1), unu-la-multe (1:M), sau multe-la-multe
(M:N). Daca se cunosc valori specifice ale cardinalitatiilor, aceste valori se scriu la
documentarea relatiilor. n continuare determinam si participarea la relatie, care poate fii
totala, sau partiala.
Documentarea tipurilor de relatii
Dupa identificarea tipurilor de relatii, le denumim si le introducem n dictionarul
de date, mpreuna cu cardinalitatea si participarea lor.
Utilizarea modelarii ER
Pentru vizualizarea sistemelor complicate, utilizam diagrama ER, pentru ca este
mult mai usor de a cuprinde toate informatiile.
Pasul 1.3. Identificarea si asocierea de atribute la tipurile de entitati si tipurile
de relatii
Obiectivul: Asocierea de atribute la tipurile de entitati si la tipurile de relatii.
Urmatorul pas n metodologie este identificarea atributelor. Aceste atribute se
identifica n aceeasi mod ca si entitatiile. Pentru o mai usoara identificare, trebuie sa
15
Note
de curs
luam entitatiile si relatiile ra rnd si sa ne punem urmatoarea ntrebare: Ce informatii
detinem despre aceasta . ? Raspunsul la aceasta ntrebare ne va da atributele cautate.
Atribute simple sau compuse
Este important sa notam daca un atribut este simplu sau compus. Conform
acestei informatii va trebui sa luam decizii referitoare la acel atribut. Daca un atribut este
compus, atunci putem opta pentru descompunerea sa, daca este necesara prelucrarea
separata a detelor compuse, sau putem sa-l lasam compus n caz contrar.
De exemplu, atributul Adresa contine informatiile (Raion, Localitate, Strada, Bloc,
Apartament). Noi va trebui sa prelucram aceste informatii separat, deci vom
descompune acest atribut n cele patru atribute simple.
Putem avea cazuri n care atributele simple sa le compunem. De exemplu n cazul
atributelor Nume_Familie si Prenume, neavnd nevoie de aceste informatii separat, le
vom compune n atributul Nume.
Atribute derivate (calculate)
Sunt acele atribute, care se pot calcula din alte atribute existente n baza de
date. De exemplu numarul locatarilor de pe o scara se poate numara n tipul de entitate
Locatari. Deci acest atribut este atribut derivat.
n general aceste atribute nu trebuie incluse n modelul de date, pentru ca n
cazul n care se modifica atributul din care se calculeaza atributul derivat, trebuie sa se
modifice si acesta. n cazul n care nu se modifica, baza de date devine inconsistenta. De
aceea este important de a mentiona daca un atribut este sau nu derivat.
Daca identificam un atribut care sa nu-l putem asocia nici unei entitati sau relatii,
ne ntoarcem la pasii anteriori, identificnd noua relatie sau entitate la care sa asociem
atributul respectiv.
n cazul n care putem asocia acelasi atribut la mai multe entitati, atunci va trebui
sa decidem daca generalizam sau nu aceste entitati, proces care este descris la pasul
1.6.
Documentarea atributelor
Dupa identificarea atributelor, le asociem un nume, si le nregistram n dictionarul
de date, mpreuna cu urmatoarele informatii:
Note
de curs
17
Note
de curs
Pasul 2. Crearea si validarea modelului logic local
Obiectivul: Crearea unui model logic local bazata pe modelul conceptual al
utilizatorilor asupra ntreprinderii si validarea ei prin procesul de normalizare si prin
tehnica tranzactiilor cerute.
n acest pas verificam modelul conceptual creat n pasul anterior si eliminam din
el structurile care sunt dificil de realizat ntr-un SGBD. Daca la sfrsitul acestui proces
modelul ete alterat, vom corecta aceste probleme si ne vom referi n continuare la
modelul rezultat, ca fiind modelul logic local. Vom valida modelul logic prin procesul de
normalizare si a tranzactiilor.
Pasul 2.1. Proiectarea modelului conceptual local pe modelul logic local
Obiectivul: Verificarea modelului conceptual local pentru eliminarea structurilor
care se pot implementa greu ntr-un SGBD si proiectarea modelului rezultat la modelul
logic local. Acest model trebuie prelucrat, pentru a putea fi usor de prelucrat de sistemul
de gestiune a bazelor de date.
Obiectivele acestui pas sunt:
Note
de curs
n modelul conceptual putem avea entitati ntre care sa avem relatie de
tipul
1:1. Se poate ntmpla ca aceste entitati sa fie de fapt aceeasi entitate cu nume diferite.
Daca suntem n acest caz, unim cele doua entitati, cheia primara devenind cheia primara
al uneia dintre entitati.
Eliminarea relatiilor redundante
O relatie este redundanta daca se poate ajunge de la un tip de entitate la alt tip
de entitate pe mai multe drumuri. n finalul acestui pas putem spune ca am eliminat din
modelul conceptual acele structuri care sunt dificil de implementat si deci este mai
corect ca n continuare sa ne referim la acest model ca fiind un model logic local de
date.
19
Note
de curs
Pentru toate relatiile 1:M ntre doua entitati E1 si E2 n modelul logic de date,
vom avea copia cheii primare a entitatii E1 n compunerea entitatii E2. Totdeauna
entitatea de partea unu a relatiei este considerata entitate "parinte", iar cealalta entitate
"fiu".
Atributele cu mai multe valori
Pentru ficarea atribut A care permite mai multe valori din entitatea E1 n modelul
logic de date, cream o noua relatie care va contine atributul A mpreuna cu cheia primara
a entitatii E1 pe post de cheie straina. Cheia primara a noii relatii va fi atributul A, sau
daca este necesar, compunerea ei cu cheia primara al lui E1.
Documentarea relatiilor si a atributelor din cheile straine
Actualizam dictionarul de date, ntroducnd fiacare atribut nou introdus n
compunerea unei chei la acest pas.
Pasul 2.3. Validarea, utiliznd normalizarea
Examinam procesul de normalizare. Prin normalizare trebuie sa demonstram ca
modelul creat este consistent, contine redundanta minimala si are stabilitate
maxima. Normalizarea produce o baza de date care va fi usor extensibila n viitor.
Pasul 2.4. Validarea modelului prin tranzactii
Obiectivul: Verificarea ca modelul de date suporte toate tranzactiile cerute de
utilizator.
n acest pas se valideaza baza de date prin verificarea tranzactiilor ce se cer de
catre utilizator. Lund n considerare tipurile de entitati, relatiile, cheile primare si
straine, ncercam sa rezolvam manual cerintele utilizatorilor. Daca reusim sa rezolvam
fiecare tranzactie ceruta, atuci nseamna ca modelul creat este valid. Daca nu putem
rezolva o tranzactie, atunci este foarte posibil sa fi omis un atribut, o relatie, sau o
entitate din modelul de date.
Pasul 2.5. Desenarea diagramei ER.
Pasul 2.6. Identificarea regulilor de integritate.
Regulile de integritate sunt importante pentru a proteja baza de date mpotriva
posibilelor inconsistente. Daca este necesar, putem produce un proiect fizic de baza de
date, pentru a putea vedea mai usor ce reguli sunt necesare.
Vom considera cinci tipuri de reguli de integritate:
Necesitatea datelor
Exista atribute care nu pot contine valoarea nula, ci trebuie sa aiba totdeauna o
valoare.
Note
de curs
Unele atribute au un domeniu de definitie bine definit. Aceste domenii trebuie
respectate. Domeniile de definitie au fost deja identificate cnd am documentat
domeniile atributelor n pasul 1.2.
Integritatea entitatilor.
Cheia primara a entitatilor nu poate lua valori nule. De exemplu fiecare furnizor
trebuie sa aiba un cod diferit de zero.
Integritatea referintelor
Cheia straina din tipul de entitate "fiu" face ligatura cu o entitate din tipul de
entitate "parinte". Deci, daca cheia straina contine o valoare, ea trebuie neaparat sa se
regaseasca si n tipul de entitate "parinte". De exemplu tipul de entitate Cheltuieli
contine cheia straina Cod_furnizor, care se refera la Furnizori(Cod_furnizor). Daca aceasta
cheie nu este nula, atunci trebuie sa gasim un furnizor care sa aiba acel cod.
Prima ntrebare pe care trebuie sa ne-o ponem este: Poate fii cheia straina nula?
n cazul exemplului nostru asta ar nsemna ca exista cheltuieli care nu se pratesc
nimanui. Aceste cazuri nu sunt admise de lege, deci nu putem avea valoare nula n cheia
straina din tipul de entitate Cheltuieli.
n general daca pariciparea tipului de entitate "fiu" este totala, atunci nu putem
avea valoare nula n cheia straina. n caz contrar putem avea valoare nula.
Pentru a demonstra diferitele cazuri la definirea acestor reguli, folosim relatia de
mai sus dintre Furnizori si Cheltuieli, care este de tipul 1:M. Consideram urmatoarele
cazuri:
Cazul 1: Inserarea unei entitati n tipul de entitate "fiu" (Cheltuieli): Pentru a
verifica integritatea referintei, verificam daca atributele din componenta cheii straine
(Cod_furnizor) sunt vide, sau sa existe entitate n tipul de entitate "parinte" care sa aiba
valoare cheii primare egala cu valoare cheii straine.
Cazul 2: stergerea unei entitati din tipul de entitate "fiu" (Cheltuieli): stergerea
unei entitati din tipul de entitate "fiu" nu creeaza probleme la integritatea referintelor.
Cazul 3: Actualizarea cheii straine n tipul de entitate "fiu" (Cheltuieli): Acest caz
este similar caz. 1.
Cazul 4: Stergerea unei entitati din tipul de entitate "parinte" (Furnizori): Daca se
sterge o entitate din tipul de entitate "parinte", integritatea referintelor se strica n cazul
n care exista entitati n tipul de entitate "fiu", care se refera la entitatea stearsa. Exista
strategii severe de a rezolva integritatea referintelor:
FR ACIUNE
Neacceptarea stergerii unei entitati din tipul de entitate parinte, daca
acesta este referit de o entitate din tipul de entitate fiu. n cazul nostru, nu se accepta
stergerea furnizorului, daca el are o factura de ncasat.
CASCAD
Daca o entitate din tipul de entitate parinte este stearsa, se sterg automat
toate entitatiile din tipurile de entitati fiu. Daca tipurile de entitati fiu au si ei la rndul lor
21
Note
de curs
alte tipuri de entitati fiu, se va efectua stergerea n cascada n toate tipurile de entitati
fiu, pna la ultimul nivel. Cu alte cuvinte, daca se sterge un furnizor, atunci automat se
sterge fiacare factura pe carea are de ncasat acest furnizor.
SETARE LA NULL
Daca o entitate din tipul de entitate parinte se sterge, atunci se vor
seta la valoare nula toate cheile straine ai tipurilor de entitati fiu n cascada pna la
ultimul nivel. n exemplul nortru, daca se sterge un furnizor, atunci se vor seta la valoare
nula toate referintele la acest furnizor n tipul de entitate Cheltuieli. Acesta nseamna ca
nu vom stii ca anumite cheltuieli la ce furnizor trebuie platite.
SETARE IMPLICIT Este analog cazului de setare la nul, cu diferenta ca aici se seteaza
cheia straina la o valoare implicita n loc de valoare nula. n exemplul nostru putem seta
cheia straina din Cheltuieli la o valoare a cheii primare din Furnizori, care sa contina un
furnizor predefinit - de exemplu cu numele de "Furnizor sters".
FR MODIFICARE n cazul stergerii unei entitati din tipul de antitate parinte, nu se
actualizeaza deloc cheile straine din tipurile de entitati fiu.
Cazul 6: Modificarea cheii primare n tipul de entitate parinte (Furnizori): Daca se
modifica cheia primara din tipul de entitate parinte, integritatea referintelor se strica.
Pentru mentinerea integritatii, se pot folosii toate cazurile descrise mai sus, dar cel mai
indicat este folosirea cazului CASCAD.
Regulile ntreprinderii.
n final evidentiem acele reguli care sunt date de realitatea ce se va modela n
baza de date.
Documentarea tuturor regulilor de integritate.
Trecem toate regulile de integritate n dictionarul de date.
Pasul 2.7. Verificarea modelului logic local cu ajutorul utilizatorului.
Obiectivul: Convingerea ca modelul creat reprezinta n totalitate realitatea care
trebuie modelata n baza de date.
La acest pas modelul local logic este complet si este bine documentat. nainte de
a trece la pasul 3, trebuie verificat modelul, sa fie conform cu realitatea. n cazul n care
se gasesc diferente, ne vom rentoarce la pasii anteriori si modificam cele necasare.
Pasul 3. Crearea si validarea modelului global logic de date.
Obiectivul: Combinarea modelelor locale logice ntr-un model logic global care sa
reprezinte ntreprinderea care este modelata.
A treia activitate majora n proiectarea bazei de date logice este crearea
modelului logic global, prin compunerea tuturor modelelor locale. Dupa combinarea
modelelor locale, trebuie validat modelul global prin tehnica de normalizare si dupa
22
Note
de curs
aceea, prin tehnica tranzactiilor. Acest proces utilizeaza aceleasi tehnici pe care le-am
descris la pasii 2.3. si 2.2.
Acest proces este foarte important n proiectarea bazei de date, pentru ca el
demonstreaza ca reprezentarea ntreprinderii este independenta de orice utilizator,
functie sau aplicatie. Activitatile din acest pas sunt:
Pasul 3.1. Compunerea modelelor logice locale ntr-un model logic global.
n cazul unui sistem mic, cu putine vederi ai utilizatorilor, este relativ usor de a
compune modelele logice locale. n cazul unui sistem mai mare nsa, trebuie sa urmam
un proces sistematic de realizare a modelului global. Pasii acestui proces sunt
urmatoarele:
Note
de curs
cardinalitate si participare. Putem compune relatii care au aceleasi nume si acelasi scop,
sau acelasi scop, dar nume diferite.
Relatile care au ramas neincluse n modelul global dupa pasul anterior, se includ
n modelul global fara modificare.
Este unul din cei mai grei pasi din crearea modelului global. Trebuie cautate acele
entitati si relatii, care s-au omis la pasii anteriori si n-au ajuns n modelul global.
n decursul pasilor anterioare, s-au modificat entitati, chei primare si chei straine.
n acest pas verificam daca cheile straine sunt corecte n fiecare entitate fiu si efectuam
toate modificarile necesare.
Actualizarea documentatiei.
24
Note
de curs
Este important ca modelul creat sa fie expansibil n viitor. Daca modelul nu are
aceasta calitate, viata lui poate fi scurta si pentru o mai mare modificare va trebui
refacuta de la nceput.
Pasul 3.4. Desenarea diagramei Entitz-Relationship finale.
Obiectivul: Desenarea unei diagrame ER, care sa reprezinte modelul global de
date al ntreprinderii.
Pasul 3.5. Verificarea modelului global cu ajutorul utilizatorului.
Obiectivul: Verificarea ca modelul global reprezinta n totalitate realitatea.
n acest moment modelul global este complet si documentat. mpreuna cu
utilizatorul sistemului se verifica acest model si se aduc eventualele corecturi prin
ntoarcerea la pasii n cauza.
25