Documente Academic
Documente Profesional
Documente Cultură
Cuvinte de introducere
Baze de date ca o parte indispensabil a sistemelor informaionale. Orice sistem
informaional are coninutul lui informatic (umplerea informatic) care este nu alt
ceva dect o reprezentare formalizat a informaiilor n form de o colecie bine
structurat de date. Aceasta colecie structurat de date se numete baza de date i
este suportul informaiilor i totodat reflect legturile dintre obiectele i
procesele din lumea real. Cu alte cuvinte baza de date este modelul informaional
al careva domeniu concret din lumea real.
La rndul su sistemele informaionale fac parte din compartimentele domeniului
vast de tehnologii informaionale n genere.
BAZE DE DATE
SISTEME INFORMAIONALE
TEHNOLOGII INFORMAIONALE
Bibliografie
1. Marin Fotache, Proiectarea bazelor de date, Polirom, 2005.
2. M.Velicanu, I.Lungu, M.Muntean, Sisteme de baze de date-teorie i practic,
editura Petrion, 2003.
3. M.Velicanu Dicionar explicativ al sistemelor de baze de date, editura
Economic, 2005.
4. M.Velicanu, I.Lungu, M.Muntean s.a., Oracle-platform pentru baze de date,
editura Petrion, 2002.
, , , (manuale, folosind
dispozitive tehnice specializate pentru automatizarea unor procese, etc.).
Sisteme informatice. Inportant aici este c SI contemporane se bazeaz pe
tehnologii informaionale de memorare, prelucrare i utilizare a datelor
subnelese n sensul larg al cuvntului. Ele includ ct tehnologii computaionale
i comunicaionale (de reea), att i metode teoretice de prelucrare a informaiei
n form de metode algoritmi i programe.
, , ,
,
. ,
, ,
, (hard) (soft)
( ).
.
Aadar, sistemele informatice au ca baz exclusiv tehnologiile computaionale i
comunicaionale ca partea hard i tehnologiile informaionale n form de metode
i algoritmi teoretice de prelucrare a informaiei.
Definiie a sistemului informaric sintetizat:
n acest sens un sistemului informaric presupune crearea i stocarea n memoria
extern (secundar) a calculatorului a unei colecie de date organizat i
structurat dup anumite concepte, care modeleaz careva domeniu concret din
lumea real, precum i disponibilitatea mijloacelor de program pentru crearea i
manipularea acestei colecie de date n scopurile automatizrii gestiunii proceselor
concrete de activitate uman (de producere, de bussiness, etc.) n acest domeniu.
Aadar, baza de date reprezint modelul informaional a unui domeniu concret
din lumea real.
Scopul automatizrii gestiunii proceselor de producere (bussiness) const n
optimizarea lor, adica n:
Minimizarea resurselor umane i materialelor necesare i maximizarea prin
aceasta a rezultatului final;
Prelucrarea operativ a datelor i obinerea n orice moment de timp i ntr-o
form accesibil a informaiei actuale cu privire la starea proceselor de
bussiness;
Analiza datelor cu scopul pognozrii evoluiei lor n procesul lurii deciziilor.
1.3. Componentele sistemului iformatic cu baz de date
Baza fizic de
date
Sistemul de gestiune cu
procesele de creare a
structurii de date,
memorare, actualizare i
consultare a datelor
------------------------------(SGBD)
Utilizatorii;
Partea client a
aplicaiilor cu
baze de date
Cum s-a spus, datele se consider n calitate de suport fizic al informaiei. Din
acest punct de vedere SI presupune ndeplinirea urmtoarelor funcii cu datele:
Crearea structurei de date n memoria extern;
Manipulare cu datele n memoria operativ actualizarea i prelucrarea datelor;
Prezentarea datelor utilizatorului final utilizarea datelor n gestiunea
proceselor de activitate n domeniul concret al lumii reale.
Pentru a ndeplini funciile nominalizate sistemul informatic trebuie s posede
anumite componente (Fig. 1.1).
O parte indispensabil a sistemului o prezint un depozit unic de informaii o
colecie structurat de date memorate, permanent actualizat, care poart
denumirea bazei de date. Baza de date este o parte constituient principal a
sistemului informaional. Ea este coninutul informatic concret a sistemului
informaional. Baza de date este nucleul de date a sistemului informaional. Baza
de date este totodat modelul informaional al domeniul concret din lumea real.
O alt parte principal o prezint sistemul de gestiune a bazei de date (SGBD) un
sistem specializat de soft pentru crearea structurii coleciilor de date, actualizarea,
ntreinerea, prelucrarea i consultarea (interogarea) bazei de date.
A treea parte important a sistemului informaional o prezint utilizatorii cei care
elaboreaz, ntrein i utilizeaz aplicaii cu baze de date n scopurile automatizrii
proceselor de gestiune din lumea real.
Definiii. Exist i pot fi aduse mai multe definiii a acestor componente. Ne vom
opri la urmtoarele:
Baza de date n sensul ngust al cuvntului este o colecie structurat de date,
memorat n memoria extern, permanent actualizat, menit pentru modelarea i
prelucrarea automatizat a datelor n procesele de gestiune n domeniul concret al
lumii reale.
10
, .
-
.
14
()
.
15
.
.
.
,
(
, ).
.
Spre deosebire de fiiere independente baza de date reprezint un mod de
organizare a datelor oferit de sistemul de gestiune a bazelor de date (SGBD)
folosit. SGBD ca sistem de program specializat nlocuiete limbajul de programare
obinuit. Pentru asigurarea independenei datelor abstractizarea datelor n cazul
bazelor de date trebuie s se fac pe cel puin trei nivele:
Nivelul intern (sau nivelul fizic) sau baza de date fizic este reprezentat de
colecia de nregistrri memorate pe suportul fizic de memorare, nregistrri
care conin datele propriu-zise dar i informaii suplimentare despre structura
coleciilor de nregistrri. n unele SGBD nregistrrile pot fi grupate n
fiiere. Gestiunea proceselor de manipulare cu nregistrrile la nivel fizic este
funcia intrinsic al SGBD+SO (sistemului de operare). Nivelul intern se
concretizeaz n schema intern a bazei de date format din:
1. set de programe care interacioneaz cu sistemul de operare i asigur acces
optimal la date;
2. set de fiiere ce conin datele propriu-zise, alctuite din articole sau
nregistrri.
Nivelul conceptual (conceptual global sau nivelul logic) reprezint descrierea
unitilor de structur ( ) din care este format baza
de date integr (global) i a legturilor dintre ele. Unitile logice
( ) reprezint entitile din domeniul concret al lumii
reale i interlegturile dintre ele. La concret ele sunt formate din structuri de
nregistrri cu proprierti specifice ale cmpurilor care reflect proprietile
semantice ale datelor (restricii, validare, etc.). Cu alte cuvinte, nivelul
reprezint modelul integru a domeniului concret format n cadrul unei sau
altei metode concret. Nivelul exprim viziunea programatorului de aplicaie
sau mai bine zis a administratorului asupra structurii globale de date
formalizat dup anumite concepte. n modelul conceptual sunt specificate
toate constrngerile (restriciile) aplicate asupra datelor, care determin
restriciile operaiilor de actualizare. Ele sunt necesare pentru a asigura
integritatea i consistena datelor. Nivelul se concretizeaz n schema
general a bazei de date n ntregime.
16
17
18
Acum putem preciza schema din Fig. 1.1. astfel ca n Fig. 1.2.
Sistemul de gestiune a
proceselor de creare a
structurii, actualizare i
interogare a datelor
------------------------------(SGBD)
Utilizatorii
Busines
aplicaii
Utilitare
19
20
.
.
.
:
(
), ;
;
,
.
PS: De modificat aici n stilul:
Arhitectura CODASYL a unui SGBD (Velicanu et all, p. 49);
Arhitectura ANSI a unui SGBD (Velicanu et all, p. 50);
Arhitectura unui SGBD pe componente (Velicanu et all, p. 52).
21
22
23
, ..
() . ,
,
.
.
.
De obicei o baz de date este memorat ntr-unul sau mai multe fiiere. Bazele de date sunt
manipulate cu ajutorul sistemelor de gestiune a bazelor de date.
Cel mai rspndit tip de baze de date este cel relaional, n care datele sunt memorate n tabele.
Pe lnga tabele, o baz de date relaional mai poate conine: indeci, proceduri stocate, trigger-e,
utilizatori i grupuri de utilizatori, tipuri de date, mecanisme de securitate i de gestiune a
tranzaciilor etc. Alte tipuri de baze de date sunt modelul ierarhic, modelul orientat pe obiecte i,
mai nou, modelul XML.
24
n continuare vom analiza n detalii structurarea datelor n fiecare din acestea trei
niveluri. Vom ncepe cu nivelul conceptual global ca cel mai important.
modele de date generalizate sau globale structuri logice conceptuale de
date.
Modele de date generalizate sau globale implementate n SGBD
Pentru structurarea datelor n baza de date la nivelul conceptual global sunt
utilizate aa-numite modele de date generalizate sau modele de date mai pe
scurt. Exist o diversitate mare de tipuri obinuite de date, dar dintre ele pot fi
construite structuri de date generalizate modele de date, care vor fi specifice
pentru SGBD-ul dat.
Dac tipul de date este proprietatea principal a unei mrime (variabil), atunci
modelul de date prezint o structur integr global al datelor construit dup
anumite concepii.
Modele de date reprezint structuri de date generalizate, construite dup criterii
conceptuale care reflect viziunea programatorului sau proiectantului asupra
datelor din lumea real.
Cu alte cuvinte, modelul de date constituie un ansamblu de concepte i instrumente
necesar pentru a construi (descrie, prezenta) structura global a bazei de date sau
schema bazei de date.
Modele de date se difer prin modul de stabilire legturilor dintre colecii de date.
Amintim aici c ca elemente de structur de date n lumea real avem
entitate ca o colecie de date de acelai tip i
exemplare de entitate ca reprezentani concrei al entitilor.
Baza de date fiind de fapt o colecie de entiti reprezentate prin structuri generalizate sau
modele de date folosete organizarea acestor entiti in mai multe moduri astfel nct structura de
date s corespund ct mai bine necesitilor utilizatorului.
Modelul de date
(structuri conceptuale din
obiecte de structur i
legtiri dintre ele
modelul conceptual)
Baza de date
(structuri din uniti fizic
memorate)
26
Fiecare nod copil s refer numai la un singur nod printe. Cu alte cuvinte
fiecare nod copil are un singur nod printe crui i s supune.
Pentru a forma legturi nodurile trebuie se conin ct datele propriu zise att i
referine (pointeri) la alte noduri. Deci structura unui nod este urmtoarea
Data
Referin 1
Referin 2
Referin ...
Cu alte cuvinte, nodurile sunt puncte care conecteaz ramurile unui arbore
descendent. (de prezentat desenul structurii arborescente) Un nod de pe nivelul
inferior este subordonat unui singur nod din nivelul ierarhic imediat superior, dar
poate fi n relaie cu n noduri aflate la nivelul inferior. Altfel spus fiecare entitate
are un singur nod printe (parent node), dar un printe poate avea mai multe
noduri copil (child nodes). Este cazul legturii de tip unu la muli. Pentru a gsi o
nregistrare anumit (? exemplar de entitate sau nregistrare) trebuie s se
porneasc cu nodul printe de pe primul nivel i s se coboare pe arbore pn la
copilul care conine aceast nregistrare.
Baze de date ierarhice
Bazele de date care implementeaz modelul ierarhic de date se numesc baze de
date ierarhice (hierarchical database). Un exemplu de organizare ierarhic este
baza de date pentru sistemul de rezervare a biletelor la rutele de autobus,
structurat pe 3 nivele.
Bucureti
Cluj
Constana
Timioara
Iai
Colaborator
ClbNume
ClbFunctia
ClbSalariu
Colaborator
ClbNume
ClbFunctia
ClbSalariu
Contract
CntNumar
CntData
CntSuma
Client
ClnNume
ClnAdresa
ClnTelefon
Contract
CntNumar
CntData
CntSuma
Colaborator
SctDenum
SctSef
SctTelefon
Colaborator
ClbNume
ClbFunctia
ClbSalariu
Contract
CntNumar
CntData
CntSuma
Colaborator
SctDenum
SctSef
SctTelefon
Contract
CntNumar
CntData
CntSuma
Colaborator
SctDenum
SctSef
SctTelefon
Dac vom introduce un sistem de pointeri Cln, Cnt, Clb ctre fiecare exemplar de
Client, Contract i Colaborator respectiv, atunci un element din lista Contracte
asociat de un nod careva cu adresa Cnt124 va avea urmtoarea form: |Cln25 124
01.10.2012 35000 Clb17|. Informaia stocat sun n felul urmtor: clientul cu
pointer Cln25 a cheeat contract cu numrul 124 pe data de 01.10.2012 n, suma
contractului fiind 35000.
Aadar, o structur conceptual global de date creat dup n modelul ierarhic
prezint o colecie de scheme arborescente. Legturile dintre nodurile arborelor
sunt de tip 1: (unu la mai mult) i sunt realizate printr-o structur de pointeri
referine (adrese) fizice n spaiul memoral. Arborele Colaborator Contract este
introdus n schema conceptual pentru admite faptul c un colaborator poate s
ndeplineasc mai multe contracte.
Model de reea
Prezint o aranjare asmntoare cu cea ierarhizat a nodurilor, cu deosebirea c
un nod copil poate s aib mai multe noduri prini. i n acest caz exist o
subordonare dintre noduri, cu deosebirea c un nod copil poate s aib mai multe
noduri prini (legtura muli la muli). ntre nodurile printe i nodurile copil se
adaug conexiuni adiionale numite pointere. Aceasta nseamn c unui nod i se
poate aduga o cale nou i c pot fi trasate n jos ramuri noi.
Baze de date reea (network database).
n aceast organizare, fiecare exemplar de entitate (nod?) poate avea un numr
nelimitat de conexiuni, disprnd noiunea de entitate (nod?) ierarhic superioar.
Un exemplu de astfel de organizare este baza de date a produselor care se execut
ntr-o fabric. Fiecare produs este format din mai multe ansambluri, iar fiecare
ansamblu este format din mai multe piese. Fiecare pies poate intra n componena
mai multor ansambluri, iar fiecare ansamblu poate intra n componena mai multor
produse.
Modelul de tip reea cum se poate observa este mai flexibil i n multe cazuri mai
eficient dect cel ierarhic. Dar acest avantaj se obine pe contul mai multor eforturi
de organizare preliminare i folosirei mai multor resurse de memorare. Modificarea
structurii n asest caz este i mai anevoioas.
29
Colaborator
ClbNume
ClbFunctia
ClbSalariu
Client
ClnNume
ClnAdresa
ClnTelefon
Colaborator
SctDenum
SctSef
SctTelefon
Colaborator
ClbNume
ClbFunctia
ClbSalariu
Contract
CntNumar
CntData
CntSuma
Colaborator
SctDenum
SctSef
SctTelefon
Contract
CntNumar
CntData
CntSuma
Colaborator
SctDenum
SctSef
SctTelefon
30
(E Codd) 19691970 .
, ,
.
.
(
), (
).
/ /,
:
Obiecte de structur: unicele obiecte de structur sunt tabele, i anume
tabele relaionale. Datele sunt privite n form de tabele relaionale i nici
cum astfel;
Integritatea structural a modelului: este prezentat de un sistem de reguli
sau restricii asupra valorilor admisibile a datelor n tabele. Acestea reguli
(restricii) asigur integritatea structural a modelului prin stabilirea
legturilor dintre tabele i corespondena dintre datele din baza de date i
datele din lumea real;
Operatorii modelului:
SELECT (RESTRICT), PROJECT, JOIN.
Exemplu de Baz de date de tip relaional COMENZI.
Avem obiecte: Sectoare, Colaboratori, Clienti;
Procese: Contracte
Sectoare
SctId
SctDenum
SctTelefon
Colaboratori
ClbId
ClbNume
ClbSector
ClbFuncia
ClbSalariu
Contracte
1
CntNumar
CntData
Client
Executant
CntSuma
Clienti
ClnId
ClnNume
ClnAdresa
ClnTelefon
31
32
33
2. Importana semnificaiei datelor. n relaie se conin numai acele date care satisfac
predicatul relaiei, adic au un sens careva (coninutul semantic).
2.2. Definirea relaiei conform teoriei lui Codd. Noiuni formal logice de
domeniu, atribut, relaie
Redarea coninutului semantic al datelor este una din cele mai complexe
probleme n teoria bazelor de date. n teoria s-a pentru a rezolva aceast problem
Codd a mers pe calea logicii formale. El a ntrodus noiuni fundamentale abstracte
de domeniu, atribut i relaie, care reflect logica interlegeturilor dintre date,
coninutul i sensul lor.
Rezolvarea de baz a acestei probleme const n trecerea pe calea logicii formale n cadrul
crei se formuleaz noiuni fundamentale de domeniu, atribut i relaie, care reflect logica i
sensul datelor.
Altfel:
K B1 , B2 , ..., Bn R .
Este definit pe un tip de date simplu (scalar, standard) sau pe alt domeniu;
n timp ce tuplurile dintr-o relaie trebuie s fie unice, un domeniu poate apare
de mai multe ori n produsul cartezian pe baza cruia este definit relaia.
Titlul relaiei este static, n timp ce corpul este dinamic. Orice modificare a
titlului duce la trecerea la o alt relaie (se modific schema relaiei), n tim ce
modificri n colecia tuplurilor maximum duce la modificarea cardinalului relaiei.
Numele i structura (schema) relaiei se asemeneaz cu definiia unei variabile
specifice variabila-relaie. Corpul relaiei (tabelului relaional) n acest context
este o valoare a variabilei-relaie.
Exemplu:
R1 = Salariatii(Numar_tabel, Nume_salariat, Numar_sector, Salariu),
R2 = Sportivi(Id, Name, Age, Weight, Speciality).
R1(Numar_tabel:char(5),, Salariu:S)
Aadar corpul sau extensia relaiei este o colecie de tupluri (corteje) care prezint o
submulime a produsului cartezian al domeniilor. Anume corpul este relaie n sensul ei
matematic (s ne amintim aici definiia relaiei de pe poziia teoriei mulimilor).
Din definiia relaiei vedem c fiecare atribut a relaiei conine date de acelai
tip, mai mult ca att fiecare tuplu (cortej) are aceia-i structur. Asta ne d
posibilitatea de a prezenta relaia ntr-o form tabelar:
Tabel 1.1. Forma tabelar a relaiei
Antetul
relaiei
Corpul
relaiei
<A1:D1>
<A1:Val1>
<A2:D2>
<A2:Val2>
<A3:D3>
<A3:Val3>
<An:Dn
<An:Valn>
Sex
Adresa
Strada
Oras
Bloc
Se mai poate spune c relaia se afl n FN1 dac poate fi prezentat n forma unui tabel
relaional.?
38
Despre noiune de tipuri atomare (de analizat articolul lui Marin Fotache i de precizat lucrurile odat
i pentru totdeauna):
De nu uitat c o relaie este o mulime de corteje (acest lucru trebuie accentuat acolo unde se
abordeaz teoria mulimilor n genere, de comparat riguros concluziile teoriei mulimilor cu
concluzile teoriei lui Codd) iar un cortej este o concatenare a elementelor de mulime i, dat fiind
faptul c elementele mulimei sunt indivizibile dup definiie, valorile atributului trebuie s fie
indivizibile. Aceast proprietate este motenit de algebra relaional (n ce legtur este algebra
relaional cu teoria mulimelor?);
De ntemeiat linia de noiuni relaie tabel relaionl ca perechea obiect exemlar de obiect. De
tratat relaia ca tip structurat de date, iar tabelul relaional ca valoare concret a acestui tip de date
sau poate mai bine relaia este o clas de schivalen a tabelelor relaionale. Anume n legtur
cu tabele ralaionale se poate duce discuii despre FN1;
n teoria lui Codd nu se pornete de la teoria matematic a mulimelor ci de la structuri formale de
date (relaii n-are) cu accentuarea semanticei datelor. Deaceea i apar uneori discuii ndelungate
despre date atomare n FN1. i atunci trebuie de precizat c relaia reprezint un obiect din lumea
real (sau o clas de obiecte, avnd n vedere o colecie de exemplare a obiectului dat), iar
atributele relaiei sunt o colecie de caracteristici care unic (la nivel primit de detalizare)
evideniaz acest obiect dintre altele. Din punct de vedere a semanticii atributului, valorile lui
trebuie s fie complete i indivizibile. Atributul Adresa nu poate s aib numai indicaia strdei
(omul nu trete n strad). Aceasta nseamn c se poate vorbi de integritate i completitudine a
valoarelor atributului.
Cmp M
nregistrare de date 1
Data
Data
Data
nregistrare de date 2
Data
Data
Data
nregistrare de date N
Data
Data
Data
Antetul tabelului ca o nregistrare de structur este determinat de schema relaiei
(?)dac privim tabelul ca o reprezentare a relaiei. De exemplu Furnizor(FurnId,
FurnNume, ). Datele sunt nregistrate n baza de date n strict coreasponden
cu structura definit n nregistrarea de structur. Datele nu se descriu, sensul lor
este predescris de structura tabelului (cum va fi forma vasului aa va fi i forma apei n
el ). La crearea unui tabel trebuie definit mai nti structura tabelului (antetul
tabelului reieind din schema relaiei), adica trebuie precizate cmpurile care l
compun mpreun cu caracteristicile lor. Prin descrierea fiecrui cmp al tabelului
este definit tipul de date care vor fi memorate n el. Descrierea se face prin tipul
datelor, dimensiunea lor i alte proprieti.
Tabelul relaional permite gruparea unor date nrudite i poate fi privit ca o colecie de
nregistrri. Prin descrierea fiecrui cmp al tabelului este definit tipul de date care vor fi
memorate n el. Descrierea se face prin tipul datelor, dimensiunea lor i alte proprieti. Ele
definesc implicit domeniul de definiie al datelor memorate n cmp. Dac domeniul datelor
este inclus n domeniul implicit de definiie, se pot defini condiii de validare a datelor care s
controleze corectitudinea datelor introduse sau modificate. De exemplu, datele dintr-un cmp
sunt numere ntregi cuprinse ntre 1.000 i 30.000. Se va alege tipul ntreg, ca domeniu implicit
al datelor, dar se vor preciza condiii de validare suplimentare care s oblige utilizatorul s
introduc n acest cmp numai date ntregi pozitive din domeniul 1.000 - 30.000.
Cum s-a spus, un tabel relaional reprezint o relaie. Noiunea strict de relaie va
fi dat mai trziu n acest curs cnd se va aborda teoria modelului relaional. Aici
numai vom preciza-o prin noiune de tabele echivalente. Mulimea tabelelor
relaionale obinut dintr-un tabel dat prin aplicarea totalitii operaiilor de
permutri ale liniilor i coloanelor (?) formeaz o mulime de tabele echivalente.
Oricare din acestea tabele reprezint una i aceeai relaie.
Din acest punct de vedere relaia poate fi tratat ca un specific tip de date (?), iar
fiecare tabel care o reprezint ca o valoare a acestui tip de date. Se mai vorbete
despre o variabil-relaie.
De adus aici diferena dintre tabele obinuite i tabele relaionale.
40
Acum putem stabili urmtoarea analogie terminologic ntre domeniul concret din
lumea real, un fiier de date, modelul relaional de date i o baz relaional de
date:
Domeniul din lumea real
entitate (obiect, proces)
set complet de
caracteristici (atribute) a
entitii
o caracteristic (atribut) a
entitii
valorile unui exemplar de
entitate
Modelul relaional
de date
relaie
schema relaiei
Baza relaional
de date
tabel relaional
(table)
antetul (schema)
tabelului relaional
atribut
cmp (field)
tuplu, cortej
nregistrare (record),
articol
42
,
(integritate propriuzis), (corespundere
deplin consisten) (coeren)
.
(integritatea datelor)
. ..
.
(consistena datelor)
(, plenitudine, plintate, coninut
semantic deplin, suficient, plenitudinea coninutului semantic a datelor, plintatea
coninutului semantic).
, .
(coerena?) , ,
, ,
.
(consistena)
(coerena)
.
Pot fi evideniate (delimitate) dou categorii de restricii:
restricii de integritate structural. Sunt obligatoriu de definit pentru
susinerea consistenei datelor i integritii structurale a modelului de date.
Este partea indispensabil a modelului;
restricii specifice aplicaiei dat de baz de date. Aa numite restricii de
comportament. , 60,
..
n modelul relaional la restriciile de integritate structural se refer:
unicitatea cheii relaiei;
integritatea entitii;
integritatea referenial a datelor.
2.2.1. Identificare unic a nregistrrilor. Unicitatea cheii relaiei
43
, , ,
.
,
.
.
, .
Concluzie: ,
,
.
ntruct tuplurile unei relaii sunt unice, ele sunt distincte i trebuie s existe
posibilitatea identificrii unice a lor n cadrul unei relaii. Cum am putea distinge
(evidenia) cortejele? Este evident c exist unica posibilitate prin valorile
atributelor. n mod natural exist unica posibilitate de a gsi nregistrrile din
tabele prin valorile concrete a unor atribute. n realitate ns nu neaprat toate
atributele sunt necesare pentru identificarea unic a tuplurilor. Ca de obicei exist
un numr redus de atribute totalitatea valorilor crora este unic n relaie.
:
StName
StPhone
StAddress
, ()
()
.
. ,
, .
.
,
.
. , (
)
() .
()
(),
() (.. ).
Cheia relaiei este un set minim neexcedent de atribute, totalitatea valorilor crora
este unic pentru relaia dat n orice stare a bazei de date.
:
StName
StPhone
StAddress
(). ,
.
()
,
. ,
, ,
(?).
(definiie strict a cheii relaiei)
Se numete cheia relaiei submulimea K de atribute a relaiei de baz R, care
posed urmtoarele proprieti:
1. proprietatea de unicitate R
K;
2. proprietatea de neexceden (de a nu fi redundant)
K .
,
().
( ) ,
.
( ).
Cheia relaiei poate fi simpl, dac const dintr-un singur atribut, sau compus,
dac const din mai multe atribute.
,
(n calitate de instrument
de identificare unic a cortejelor). (cheie
primar). Restul cheilor se numesc chei secindare sau alternative.
() . Reieind exclusiv din
semnificaia datelor.
Ca de obicei n orice SGBD ea se nimete cheia primar (Primary Key) i este
aleas din mulimea cheilor de identificare a relaiei pe baza anumitor criterii
(reieind din semnificaia datelor!). Ea i este folosit pentru a face legtura ntre
nregistrrile tabelului dat cu nregistrrile altor tabele ale bazei de date. Cheia
primar va fi folosit de sistemul de gestiune a bazelor de date pentru a identifica
unic nregistrrile n procesul de regsire a datelor.
Se recomand ca din mulimea cheilor de identificare s se aleag, pentru cheia
primar, cheia care este format din cele mai puine cmpuri. n practic pentru
simplicitate n calitate de cheie primar se folosesc artificial introduse cmpuri cu
46
, (relations)
. :
() - (
);
(stri curente) (
).
.
,
. .
, ,
.
, :
;
, oe
- () .
Pentru a stabili legtur (asocierea) ntre dou relaii (tabele relaionale) trebuie:
Se avem n vedere c n legtur particip dou tabele. Legtura dintre ele nu
este una de egalitate, ci este o legtur de subordonare. Unul dintre dou
tabele n legtur este tabelul principal (sau tatl), iar altul este subordonat
(condus - copil). Deci, legtura trebue s fie de tip 1:.
S avem o modalitate de a stabili legturi unice dintre cortejele din dou
relaii (tabele). Cea mai simpl (i unica?) modalitate posibil este de a ne
referi din cortejele unui tabel la cortejele altui tabel. Aadar, legtura dintre
48
dou tabele apare cnd valorile unor atribute dintr-un tabel s refer la
valorile unor atribute din alt tabel. Acest lucru este posibil dac vom crea o
structur de referine. Pentru asta se ntroduce noiunea de migrare sau
propagare a cheii relaiei.
(
).
(mecanismul de migrare a cheilor);
S creem o structur de referine. Unica posibilitate de a crea referine
const n folosirea valorilor unice. Avem unicul instrument pentru distingere
i identificare unic a cortejelor. Unica distincie dintre dou corteje este
distincia dintre valorile unor atribute din aceste corteje. Aceast distincie
poate fi folosit n scopul identificrii unice a cortejelor. Setul de atribute cu
valori distincte n totalitate formeaz cheia relaiei, care i este folosit pentru
identificare i referire unic a cortejelor.
()
.
( );
S definim un set de restricii asupra datelor cu scopul asigurrii integritii
legturilor n orice stare a bazei de date.
===========================================================
Legturile dintre entitile lumii reale pot fi exprimate prin multitudenea propoziiilor de tip:
Furnizorul concret (I. Albu) livreaz marfa dat, sau marfa dat (televizorul) este livrat de
furnizorul dat (I. Albu);
Fiecare printe concret (Popa Ion) este printele copiilor (Mariei i Andrei), sau copiii
Maria i Andrei sunt copiii colaboratorului firmei Popa Ion;
Etc.
Putem deci spune c legtura dintre entitile Furnizori i Livrri nseamn existena unui set de
afirmaii de tip livreaz sau este livrat. Acestea legturi determin activiti (operaii) concrete
de bussiness. Deasemenea, legtura dintre entitile Colaboratori i Copii nseamn existena
setului de afirmaii de tip este printe/sunt copii. Acestea legturi determin starea actual dintre
exemplarele entitilor.
Aadar, legturile existente ntre entiti se determin prin descrierea multitudinii legturilor de
tip activitate sau stare dintre exemplarele entitilor. Adica, n forma descriptiv.
===========================================================
Din aceste exemple se vede c exist legturi elementare legturi dintre dou entiti. Fiecare
astfel de legtur se reduce la un set de legturi dintre exemplarele corespunztoare al acestor
entiti. Important s observm aici c:
Din dou entiti unite n legtur una este activ (este printe, livreaz), iar alta este
pasiv (sunt copii, este livrat);
Fiecare exemplar al entitii active este unic;
Fiecare exemplar al entitii active poate fi legat cu mai multe exemplare al entitii pasive;
Fiecare legtur concret dintre exemplarele entitilor este unic. Ea descrie o operaie
...
...
...
...
Parinte ...
...
C012
...
...
...
...
50
2. Stabilirea relaiilor ntre tabele. Relaiile care se vor stabili ntre fiecare
pereche de tabele sunt unidirecionale, adic ntre dou tabele nu se stabilete o
relaie de egalitate ci o relaie de subordonare: unul dintre tabele este tabelul
conductor, principal sau tabelul printe (tabelul de la care pornete legtura), iar
cellalt este tabelul condus, secundar sau tabelul copil (tabelul la care ajunge
legtura). Tabelul condus este subordonat tabelului conductor. Aceasta nseamn
c dac utilizatorul selecteaz o nregistrare n tabelul conductor, sistemul va
selecta automat nregistrarea de care este legat din tabelul condus.
Pentru a stabili legturi unice dintre nregistrrile a perechei de tabele care ntr n
legtur trebuie, cum s-a spus, s putem:
Identifica unic nregistrrile;
Stabili corespunderea unic dintre nregistrri.
Stabilirea corespunderei unice dintre nregistrrile care ntr n legtur
Stabilirea corespunderei dintre nregistrri i prin acesta a legturii dintre tabelele
bazei de date se realizeaz prin mecanismul de propagare a cheilor. Prin acest
mecanism n tabelul condus din legtur se creaz aa numit cheia extern
(Foreign Key). Cheia extern este format din cmpurile, care formeaz cheia
primar n tabelul conductor. Denumirile cmpurilor din cheia extern pot s
difere de denumirele respective din cheia primar, dar valorile lor sunt identice n
ambele tabele. Mecanismul de propagare a cheilor se realizeaz n modul
urmtor. n tabelul surs, tabelul de la care ncepe propagarea cheii (tabelul
conductor), se creaz cheia primar, iar n tabelul destinaie, tabelul pn la care
se propag cheia (tabel condus), se creaz cheia extern. Se spune c a avut loc
propagarea cheii din tabelul surs n tabelul destinaie. Acest mecanism permite
stabilirea legturii ntre o nregistrare din tabelul surs i o nregistrare din tabelul
destinaie. Se mai spune c valorile cheii externe s refer la valorile cheii primare.
, .
,
.
.
51
R1. (submulimea)
FK R1 (cheie extern), :
1. R2 ( )
K;
2. FK R1 K
R2
NULL.
R1 ()
, R2,
R2 ,
R1.
,
,
,
.
, ,
( NULL).
Employees
EmpId
EmpName
EmpPosition
EmpChief
...
MI21
Condrea Mihai
profesor
MI35
MI35
Cepoi Grigore
ef catedr
MI70
MI70
Apostol Eugen
rector
NULL
Legatura (asocierea) dintre dou tabele se stabilete prin valori care s refer i
valori referite. Valorile referite se gsesc n tabelul principal i trebuie s fie unice
sau de tip Primary Key sau de tip UNIQUE. Valorile care s refer se gsesc n
tabelul condus (dependent) n cimpurile cheii externe.
Dup definirea structurii bazei de date ncepe ncrcarea datelor n tabel. La nivelul tabelului
entitatea prelucrat este nregistrarea: se pot aduga nregistrri, se pot terge nregistrri, se pot
modifica nregistrri. Se poate modifica structura unui tabel chiar dup ce a fost ncrcat cu date.
Sistemul de gestiune a bazelor de date nu opereaz modificarea de structur direct n tabel, ci
execut urmtoarele operaii: creeaz noua structur de tabel (rezultat n urma modificrilor
cerute), ncarc n noul tabel datele din vechiul tabel i terge vechiul tabel. Toate aceste operaii
sunt executate automat de ctre sistem, fr intervenia utilizatorului i fr a fi vizibile pentru
utilizator.
Tabelele bazei de date pot fi organizate ntr-o structur arborescent (sau de reea) determinat de
relaia dintre tabele.
De obicei, modelul relaional cel mai des ntlnit este cel descris printr-un arbore cu o singur
rdcin, adic n baza de date exist un singur tabel conductor care reprezint rdcina
arborelui. Celelalte tabele sunt legate de tabelul conductor direct sau indirect (prin intermediul
altor tabele). ??? este o reea de tabele!!!
Schema general a unei baze de date relaionale este format din ansamblul
schemelor tabelelor i al legturilor dintre ele.
Regula (restricia) integritii refereniale
Legtura odat stabilit ntre dou tabele prin mecanismul de propagare a cheii
trebuie s fie permanent meninut. n orice moment trebuie s fie asigurat
determinare unic a legturii i corespunderea ei cu datele din lumea real.
Determinarea unic a legturii este asigurat de mecanismul de propagare a
valorilor cheiei primare (este rezultatul unicitii exemplarului entitii).
Corespunderea ei cu datele din lumea real se va asigura prin restricii specifice
cheii externe. Condiia care trebuie respectat pentru a putea fi asigurat
meninerea legturii n orice stare a bazei de date s numete condiia de
integritate referenial sau restricia de integritate referenial.
Este specific relaiilor dintre tabelele bazei de date. Ea nseamn o colecie de
reguli i restricii impuse tabelelor ntre care s-au stabilit relaii (sau, este un sistem
integru de referine i se cere meninerea integritii lui n orice stare a bazei de
date ). Astfel, a asigura integritatea referenial nseamn c atunci cnd se fac
modificri ale valorilor unor nregistrri dintr-un tabel din legtur s nu fie
afectat relaia dintre tabelele legturii. Aceast problem apare n cazul
cmpurilor care fac parte dintr-o cheie primar sau extern. Ele trebuie s respecte
condiia de integritate referenial.
53
A
A
B
C
C
D
1
B
E
ntr-un careva mod nserarea tuplului n relaia printe este echivalent (sau invers) cu tergerea
din relaia copil a tuplului care se refer la tuplul nserat. n ambele cazuri apar valori de cheie
primar nereferite.
C
A
C
B
C
D
C
D
E
...
E
D
B
E
...
n tabelul principal:
Modificarea (operaia UPDATE) unei nregistrri. Poate s afecteze integritatea
referenial numai n cazul n care exist chei externe valorile crora s refer la
valorile cheii primare care se modific. Deci, dac este referire ea trebuie
meninut n orice stare a bazei de date. n acest caz se pot aplica dou strategii:
RESTRICT modificarea restricionat. Nu s accept modificarea unui cmp
dac el este cheie primar i exist cel puin o cheie extern propagat din
aceast chei care are aceeai valoare cu cheia primar pe care dorim s-o
modificm;
CASCADE modificarea n cascad. Modificarea cheii primare va avea ca
efect modificarea tuturor cheilor externe propagate din aceasta n toate tabelele
care au aceeai valoare cu cheia primar care s modific.
tergerea (operaia DELETE) unei nregistrri. Amintim aici c cu operatorul
DELETE se terg nregistrri n ntregime, dar nu valori din cmpuri. Operaia
poate afecta integritatea referenial numai n cazul n care exist chei externe care
au aceeai valoare cu valoarea cheii primare din nregistrarea care se dorete a fi
tears. n acest caz iari se pot aplica dou strategii de baz:
RESTRICT tergerea restricionat. Nu se accept tergerea nregistrrii
dac exist cel puin o cheie extern, propagat din cheia primar care are
aceeai valoare cu cheia primar din nregistrarea pe care dorim s-o tergem;
CASCADE tergerea n cascad. tergerea nregistrrii va avea ca efect
tergerea din toate tabelele a nregistrrilor care conin chei externe propagate
din cheia primar i care au aceeai valoare cu cheia primar din nregistrarea
tears.
n tabelul condus:
Operaia de adugare (nserare) a unei nregistrri trebuie s se fac numai dac
valorile din cmpurile cheii externe se vor gsi n mulimea valorilor cheii primare
din care s-au propagat. Sau s fie de tip NULL.
Operaia de modificare a valorii unui cmp dintr-o nregistrare trebuie s aib n
vedere faptul c dac acest cmp este un cmp al cheii externe, valoarea sa
modificat trebuie s se gseasc n mulimea valorilor cheii primare din care s-a
propagat. Sau s fie de tip NULL.
Aici de dat i analizat un exemplu mai extins cu schema OralulLectiii
Examinare cu relaii comune Obiecte, Profesori.
Majoritatea SGBD-urilor relaionale susin parial strategiile descrise mai sus. n
MS SQL Server strategiile se indic ca proprieti ale cmpurilor la descrierea
structurii tabelelor prin urmtorele fragmente din SQL:
ON UPDATE CASCADE, ON DELETE CASCADE, IGNORE, etc.
n MS Access strategiile se indic ca proprieti ale legturilor dintre tabele.
56
.
n Enterprise Manager al Microsoft SQL Server 2000 strategiile se introduc prin
bifarea cmpurilor respective n csua de dialog Properties of relationships:
Check existing data on creation
Enforce relationship for replication
Enforce relationship for INSERTs and UPDATEs strategia RESTRICT (se
nterzice inserarea i modificarea datelor care duc la nclcarea integritii
referenciale)
Cascade Update Related fields strategia CASCADE (la modificarea cheii
primare automat se modific n cascad i cheia extern n relaia copil)
Cascade Delete Related Records strategia CASCADE (la tergerea
nregistrrii cu cheia primar automat se terge n cascad i nrgistrarea cu
cheia extern n relaia copil)
prelucrare.
2. Proprietate de multiplicitate (c ). Operaiile
relaionale se aplic odat asupra totalitii ntreag de nregistrri ci nu
asupra unor nregistrri n parte. Asta nseamn c ct operanzii, att i
rezultatele se consider drept tabele ntregi care conin mulimi de nregistrri.
.
58
, .
.
,
.
.
,
.
.
:
Codd E.F. A Relational Model of Data for Large Shared Data Banks //CACM.
1970. 13, Nr. 6.
:
1.
? .
.
.
2.
. : ,
.
(???).
3.
.
4. .
Avantajele modelului relaional
Succesul modelului relaional se explic prin trei momente:
Simplicitate i percepere intuitiv a structurii (utilizarea tabelelor relaionale);
Existena metodelor simple i totodat eficiente de accesare a datelor
(Indexarea datelor, indexarea tabelelor. Indexarea permite utilizarea
structurilor de memorie de la nivelul fizic);
i, n sfrit, modelul are o fundamentare strict matematic teoria
mulimilor. Se poate spus c teoria mulimilor este o teorie matematic a
relaiilor.
Ca rezultat, metoda relaional are avantage evidente:
60
61
63
.
() :
A {a, b, c,...} . x A ,
:
x A.
(cardinalul
mulimii). B
A , , B
A (B este inclus n A):
B A.
B A , ..
B A ( ). B A
(submulime proprie),
B A AND B A .
Dou mulimi sunt egale, A = B, dac i numai dac conin aceleai elemente: A
B i B A. Nu import ordinea elementelor n fiecare mulime.
3.1.2. Operaii asupra mulimilor
,
.
(obiecte mai complexe i consistente) .
reuniune, intersecie,
diferen, i produsul cartezian.
Definiie 1. Reuniunea (suma logic) a dou mulimi A i B este o mulime nou
A B (sau A B ) format din toate elementele distincte, care se conin sau n A
sau n B, sau i n A i n B
A B x x A OR x B .
2. Intersecia ( , , produsul
logic) a dou mulimi A i B este o mulime nou A B (sau A B ) format din
toate elementele, A B
A B x x A AND x B .
64
A \ B x x A AND x B .
: A={a,b,c,d,e}, B={c,d,e,g,h,f}, A \ B={a,b}.
Dac B A atunci A \ B se numete complementara lui B n raport cu A.
, ,
(), (complementul) A
A \ A.
, .
=
N Z\N.
1.
No
1
2
3
Notation
N
Z
Q
4
5
Description
( n 0,1,2,... ) numere naturale
numere ntregi
numere raionale.
(raport dintre numere ntregi)
numere reale
numere complexe
(
( ),
.?)
a A
(egalitatea de tip) a, b c, d , a c b d . n
cazul general putem considera o nirare ordonat n-ar binar, ternar, (a1,
a2, , an) din elementele a1 A1 ,..., a n An . acestea nirri ordonate se numesc
tupluri sau cortege.
.
n.
Definiia 4. Produsul cartezian a mulimilor A1 , A2 ,..., An se numete mulimea
nirrilor ordonate n-are (tuplurilor, cortejelor) de tip
A1 A2 ... An a1 , a 2 , ... a n a i Ai , i 1, 2, ... , n
1.
,
, " 1"
"" .
,
1. (dou
momente cheie):
-, corteje de
acelai tip. Asta ne permite s le considerm ca analojii ale linilor n tabele simple,
anume n tabele care
, .. ,
. , ,
{(1, "Albu", 1000), (2, "Condrea ", 2000), (3, "Moraru",
3000)} ,
. ,
:
1
2
3
Albu
Condrea
Moraru
1000
2000
3000
.
-. (dac excludim cazul extrem),
A1 A2 ... An ,
: R A1 A2 ... An . ,
, ,
, - . , ,
sensul () .
, (n
corespundere) P x1 , x 2 ,...x n , n
(n- un predicat n-poziional sau n-propoziional?)
, a1 , a 2 ,..., a n R .
R .
, a1 , a 2 ,..., a n R ,
P a1 , a 2 ,..., a n "":
R, dac i numai dac P a1 , a2 ,..., an true,
R, dac i numai dac P a1 , a2 ,..., an false.
a1 , a2 ,..., an
, n- n-
. ,
67
n- n- .
:
R A1 A2 ... An ;
, ,
. , R
R x1 , x 2 ,..., x n .
68
Din acest punct de vedere se spune c algebra relaional este compact (nchis).
Acest lucru ne permite s construim expresii ncorporate din operatori relaionali i
relaii:
R f ( f 1 ( R11 , R12 , ...), f 2 ( R21 , R22 , ...), ...) .
69
R1 R2
sau R1 UNION R2 .
Aadar:
R1 R2 R1 UNION R2 =
Exemplu:
R1
NumarTabel
1
2
3
Nume
Albu
Ceban
Vitiu
Salariu
1000
2000
3000
R2
NumarTabel
1
2
4
Nume
Albu
Proca
Vitiu
Salariu
1000
2500
3000
R1 UNION R2
NumarTabel
1
2
3
2
4
Nume
Albu
Ceban
Vitiu
Proca
Vitiu
Salariu
1000
2000
3000
2500
3000
70
n reuniunea relaiilor tuplurile identice din ambele relaii ntr numai o singur
dat. Cum observm la efectuarea operaiei de reuniune proprietatea de cheie
potenial nu este motenit. Cauza este c proprietatea de cheie potenial nu
poate fi dedus de undeva, ea explicit se inpune reieind din semnificaia
(semantica) datelor, pe cnd operatorii algebrei relaionale acioneaz ntr-un mod
formal identic n toate cazurile, independent de semnificaia datelor. Operatorii
relaionali opereaz formal logic i nu tiu de semnificaia datelor.
Intersecie
Reprezint o operaie definit pe dou relaii R1 i R2 compatibile dup tip i este
o relaie nou cu acelai titlu (schema) i corpul (extensia) care conine tupluri
aparinnd concomitent relaiei R1 i relaiei R2 .
S noteaz prin
R1 R2
sau R1 INTERSECT R2 .
Aadar:
R1 R2 R1 INTERSECT R2 =
Exemplu:
R1 INTERSECT R2
NumarTabel
1
Nume
Salariu
1000
Albu
Diferena
Diferena reprezint o operaie definit pe dou relaii R1 i R2 compatibile
dup tip i este o relaie nou cu acelai titlu (schema) i corpul (extensia) care
conine tupluri aparinnd relaiei R1 , i nu aparinnd relaiei R2 .
S noteaz prin
R1 \ R2
sau
R1 MINUS R2 .
Exemplu:
R1 MINUS R2
NumarTabel
2
3
Nume
Ceban
Vitiu
Salariu
2000
3000
Produsul cartezian
71
S noteaz prin
R1 R2
sau R1 TIMES R2 .
Exemplu:
R1 TIMES R2
NumarTabel1
1
1
1
2
2
2
3
3
3
Nume1
Albu
Albu
Albu
Ceban
Ceban
Ceban
Vitiu
Vitiu
Vitiu
Salariu1
1000
1000
1000
2000
2000
2000
3000
3000
3000
NumarTabel2
1
2
4
1
2
4
1
2
4
Nume2
Albu
Negru
Vitiu
Albu
Negru
Vitiu
Albu
Negru
Vitiu
Salariu2
1000
2500
3000
1000
2500
3000
1000
2500
3000
Exemplu cu -selecie
Exemplu:
R1 LName, Salary .
R1
FNUM
1
2
3
FNAME
Albu
Ceban
Vitiu
FMARK
4
1
2
R2
PNUM
1
2
3
PNAME
Ciocan
Clete
urubelni
Piese
PMARK
3
2
1
74
FNUM
1
1
1
2
3
3
FNAME
Albu
Albu
Albu
Ceban
Vitiu
Vitiu
FMARK
4
4
4
1
2
2
PNUM
PNAME
ciocan
clete
urubelni
urubelni
clete
urubelni
1
2
3
3
2
3
PMARK
3
2
1
1
2
1
Equijoinul
Fie avem relaii F, P, L Furnizori, Piese, Livrari corespunztor:
F Furnizori
FNUM
1
2
3
P Piese
FNAME
Albu
Ceban
Vitiu
PNUM
1
2
3
PNAME
ciocan
clete
urubelnia
L Livrari
FNUM
1
1
1
2
2
3
PNUM
1
2
3
1
2
1
VOLUME
100
200
300
150
250
1000
FNUM1
1
1
1
2
2
FNAME
Albu
Albu
Albu
Ceban
Ceban
FNUM2
1
1
1
2
2
PNUM
1
2
3
1
2
VOLUME
100
200
300
150
250
75
Vitiu
1000
R1 ( A1 , A2 , ..., An , X 1 , X 2 , ..., X p )
relaiile
i
R2 ( X 1 , X 2 , ..., X p , B1 , B2 , ..., Bm ) cu atributele X 1 , X 2 , ..., X p identice. Atunci joinul
natural a relaiilor R1 i R2 este o relaie nou cu schema
R ( A1 , A2 , ..., An , X 1 , X 2 , ..., X p , B1 , B2 , ..., Bm )
i cu extensia format din
(
a
,
a
,
...,
a
,
x
,
x
,
...,
x p , b1 , b2 , ..., bm ) ,
1
2
n
1
2
mulimea de tupluri
astfel c
( a , a , ..., a , x , x , ..., x ) R i ( x , x , ..., x , b , b , ..., b ) R .
1
sunt
date
Observm c:
1. n schema R atributele X1, X2, , Xp ntr o singur dat;
2. n sintaxa joinului natural R1 JOIN R2 nu sunt indicate atributele dup care
se formeaz joinul natural. Acest lucru s subnelege implicit: Joinul
natural se exercit dup toate atributele identice.
Joinul natural este eqivalent cu exercitarea urmtoarei secven de operaii:
a redenumi temporar atributele identice n relaiile iniiale;
a exercita produsul cartezian a relaiilor;
a exercita selecia tuplurilor cu valori egale ale atributelor care au fost identice
pn la redenumire;
a exercita proiecia, eliminnd dublri de atribute;
a restabili denumirile iniiale ale atributelor.
Joinul natural poate fi executat repetat pe mai multe relaii. Este uor de verificat
n acest context c joinul natural este o operaie asociativ:
( R1 JOIN R2 ) JOIN R3 R1 JOIN ( R2 JOIN R3 ) ,
R1 JOIN R2 JOIN R3 .
Exemplu:
Rspunsul la ntrebarea Ce piese i n ce volum sunt livrate de fiecare
furnizor? va da joinul natural F JOIN L JOIN P :
F JOIN L JOIN P
76
FNUM
1
1
1
2
2
3
FNAME
Albu
Albu
Albu
Ceban
Ceban
Vitiu
PNUM
1
2
3
1
2
1
PNAME
Ciocan
Cleste
surubelnita
Ciocan
Cleste
Ciocan
VOLUME
100
200
300
150
250
1000
Diviziunea
Definiie. Fie
R1 ( X 1 , X 2 , ..., X n , Y1 , Y2 , ..., Ym )
sunt date relaiile
i
R2 (Y1 , Y2 , ..., Ym ) cu atributele Y1 , Y2 , ..., Ym identice. Diviziunea relaiei R1 pe
relaia R2 este o relaie R nou cu schema ( X 1 , X 2 , ..., X n ) i extensia care const
din mulimea tuplurilor ( x1 , x 2 , ..., x n ) , acei care ntr n tuplurile
( x1 , x 2 , ..., x n , y1 , y 2 , ..., y m ) din relaia R1 n concatenare cu toate tuplurile
( y1 , y 2 , ..., y m ) din relatia R2 .
Aici:
R1 - divizor (numrtor?);
R2 - numitor.
Sintaxa: R1 DIVIDEBY R2 . Se utilizeaz la apeluri cu cuvntul toate.
FNUM
1
1
1
2
2
3
divizor
PNUM
1
2
3
1
2
1
Y P[PNUM ]
- numitor
PNUM
1
2
3
X DIVIDEBY Y
FNUM
1
Un alt exemplu mai evident pentru a nelege mai clar efectuarea operaiei de
diviziune:
S#
P#
Divizorul
Numitorii R2 :
R1 :
S1
S1
S1
S1
S1
S1
S2
S2
S3
S4
S4
S4
P1
P2
P3
P4
P5
P6
P1
P2
P2
P2
P4
P5
1) P#
P1
2) P#
P2
P4
3)
P#
P1
P2
P3
P4
P5
P6
77
R1 DIVIDEBY R2
1) S#
S1
S2
2) S#
S1
S4
3)
S#
S1
HIDROGEN
5
52
24
HELIU
3
0
0
105_ELEMENT
0,01
0
0
Se pune ntrebarea De a determina tote elementele chimice care se conin ntro substan careva n cantitate mai mare de 50%. Din punct de vedere
algoritmic rspunsul se obine simplu examinm consecutiv valorile atributelor i
memorizm acele atribute care au valori mai mare de 50%. Dar aceasta nseamn
selectarea condiionat a atributelor. Formal noi nu putem exprima acest apel prin
operatorii algebrei relaionale, fiind c n algebra relaional nu exist operatori de
selecie condiionat a atributelor.
Problema a aprut de fapt de aceea c relaia dat nu este bine proiectat sau cum
vom spune bine normalizat. Ce nseamn normalizare bun vom vorbi mai trziu,
iar aici vom repartiza informaiile necesare pe trei relaii SUBSTANTE(SNUM,
SNAME), ELEMENTE(ENUM, ENAME), COMPONENTA(SNUM, ENUM,
EPROCENT):
SUBSTANTE
SNUM
1
2
3
SNAME
AND
Benzina
acid ortofosforic
ELEMENTE
ENUM
1
2
105
ENAME
Hidrogen
Heliu
...
105_element
79
SNUM
1
1
1
2
2
COMPONENTA
EPROCENT
5
3
0,01
52
0
ENUM
1
2
105
1
2
24
ELEMENTE
1 ENUM
ENAME
...
COMPONENTA
SNUM
ENUM
EPROCENT
...
singur comand:
SELECT ENAME, EPROCENT
FROM ELEMENTE, COMPONENTA
WHERE ELEMENTE.ENUM=COMPONENTA.ENUM AND
80
EPROCENT>50;
De observat aici c legturile din diagrama ER sunt referite n opiunea comenzii
WHERE prin condiia ELEMENTE.ENUM=COMPONENTA.ENUM.
81
CNAME
SNUM
SNAME
1
1
2
3
3
Albu
Albu
Ceban
Vitiu
Vitiu
1
1
1
2
2
SPHON
E
11-22-33
11-22-33
11-22-33
34-45-56
34-45-56
PNUM
PNAME
LNUM
LNAME
1
2
1
1
2
Cosmos
Clima
Cosmos
Cosmos
Clima
1
1
2
3
2
Acest tabel reprezint relaia care n mod automat se afl n FN1. Cheia relaiei
este {CNUM, PNUM, LNUM}. Ea reies numai din tratarea noastr al datelor care
poate fi exprimat prin urmtoarele enunuri:
fiecare proiect const din mai multe lucrri (relaie dintre lucrri i proiecte);
fiecare lucrare se ndeplinete de un colaborator (relaie dintre lucrri i
colaboratori);
fiecare colaborator poate s ndeplineasc mai multe lucrri din unul sau mai
multe proiecte (relaie dintre colaboratori, lucrri i proiecte);
Mulimea de atribute {CNUM, PNUM, LNUM} unic va determina acestea relaii
dac vom impune restricia de cheie a relaiei. Valorile ei rspund la ntrebarea
cine ndeplinete, care lucrare, din care proiect, n care etap, dac vom introduce
i descrierea n dinamica timpului real. Adica, anume descrie procesul de
ndeplinire a lucrrilor n timp. Valorile cheii {CNUM, PNUM, LNUM} unic
rspund i la scopul crerii bazei de date. (? Cheia relaiei numai unic determin
corteje din R).
6.1.2. Anomalii n baza de date
Se analizm calitatea tabelului obinut reieind din relaia propus. Uor s observ
c n relaia dat are loc o redundan mare de date. De exemplu: se repet
84
informaia despre colaboratorul Albu sau despre proiectul Cosmos etc. Redundana
datelor rezult din aceea c n una i aceeai relaie se pstreaz datele despre
diferite obiecte. n relaie este cel puin o legtur de tip :
(Colaboratori:Proiecte, Sectoare:Proiecte). Redundana poate avea consecine
grave n ceea ce ine de corectitudinea datelor. Modificarea strii bazei de date n
prezena redundanei poate duce la distrugerea integritii structurale a modelului
relaional. Din acest motiv vom spune c redundana datelor duce la prezena n
relaie a aa numitor anomalii de modificare a strii bazei de date. Prezena
anomaliilor se manifest prin posibile situaii cnd modificarea datelor n relaie
(tabel) sau nu este posibil de loc sau poate duce la distrujerea corectidudinii sau
integritii datelor i cere eforturi adiionale pentru a evita aceast distrujere
posibil.
Exemple:
Nu putem ntroduce datele despre un lucrtor nou, dac el la momentul dat nu
ndeplinete nici o lucrare (nu este cunoscut valoare atributului cheie
LNUM). La fel despre un proiect nou, un colaborator nou. Deci, apare
problema de asigurare a integritii structural;
Modificarea eventual a numrului de telefon n sectorul 1 trebuie s se fac
cu mare atenie, fiind c s repet n mai multe nregistrri;
Eliminarea informaiei despre proiectul Cosmos (la finisarea etapei sau a
lucrrilor) va duce la pierderea informaiei despre colaboratorul Ceban;
...
Definiie. Vom spune c relaia dat conine anomalii atunci cnd modificarea unor
date din relaie nu este posibil sau exist pericolul c ea va duce la distrujerea
corectidudinii (integritii) datelor i sunt necesare eforturi adiionale pentru a evita
acest pericol.
Consecinele grave ale anomaliilor se manifest la efectuarea operaiilor de
modificare a strii bazei de date, deaceea exist trei tipuri de anomalii.
Anomalii de nserare (INSERT)
Nu putem introduce date despre un lucrtor nou, dac el la momentul
introducerii nu ndeplinete nici o lucrare;
Nu putem introduce date despre o lucrare, dac nc nu este numit persoana
care va ndeplini-o;
Cu alte cuvinte: nu putem introduce datele despre un obiect ne introducnd date
despre alt obiect.
85
86
Telefon
11-22-33
34-45-56
11-22-33
87
Sector Telefon .
CNUM SNAME
CNUM SPHONE
Sau CNUM {CNAME, SNUM, SNAME, SPHONE}.
Dependena funcional a denumirii proiectului de numrul lui (dependen
parial de cheie):
3. PNUM PNAME
Dependena funcional a denumirii lucrarii de numrului proiectului i numrul
lucrrii (dependen parial de cheie):
4. {PNUM, LNUM} LNAME
Dependena funcional a denumirii sectorului i numrului de telefon de numrul
sectorului (dependene dintre atribute non-cheie):
5. SNUM SNAME
SNUM SPHONE
Sau SNUM {SNAME, SPHONE}
1. .
,
(?) .
.
. , , ,
CASE , ERWin.
4. , , , , ,
! ,
(.. !) .
Remarca 5. Anume aici de introdus noiune de dependene funcionale directe i tranzitive.
90
CNAME
SNUM
SNAME
SPHON
E
PNUM
PNAME
LNUM
LNAME
COLABORATORI_SECTOARE (CS)
CNUM
CNAME
SNUM
SNAME
SPHON
E
PROIECTE (P)
PNUM
PNAME
LUCRARI (L)
PNUM
LNUM
LNAME
INDEPLINIRE_LUCRARI (CPL)
CNUM
PNUM
LNUM
CNAME
SNUM
SNAME
SPHON
E
COLABORATORI
CNUM
CNAME
SNUM
SECTOARE
SNUM
SNAME
SPHON
E
CNAME
SNUM
SECTOARE
SNUM
SNAME
SPHON
E
PROIECTE
PNUM
PNAME
LUCRARI
PNUM
LNUM
LNAME
INDEPLINIRE_LUCRARI
CNUM
PNUM
LNUM
eliminate toate anomaliile. Legturile dintre obiectele bazei de date care au fost
prezente n relaia iniial sau pstrat n relaia INDEPLINIRE_LUCRARI
INDEPLINIRE_LUCRARI
CNUM
1
1
2
3
3
PNUM
1
2
1
1
2
LNUM
1
1
2
3
2
Acum sistemul nostru informaional prezint un set de relaii legate ntre ele.
Aceste relaii sunt de dou tipuri: relaii care descriu obiecte i relaii care descriu
proces sau starea de proces. Primele sunt nomenclatoare (sau dicionare,
, ). Ele conin toate informaiile
necesare pentru a descrie procesul de busines sau starea lui in dinamica timpului
real. Adesea ori acestea informaii sunt extrase din acte normative oficiale. Cu alte
cuvinte, nomenclatoarele cuprind toate detaliile caracteristice obiectelor necesare
pentru a determina procese. Procesele la
Aadar, relaiile COLABORATORI, SECTOARE, PROIECTE, LUCRARI sunt
nomenclatoare (dicionare?), iar relaia INDEPLINIRE_LUCRARI este relaia
dinamic care reprezint starea actual a procesului n lumea real.
ER-diagrama acestei baze de date va fi:
COLABORATORI
SECTOARE
SNUM
SNAME
SPHONE
CNUM
CNAME
SNUM
LUCRARI
PROIECTE
PNUM
PNAME
INDEP_LUCRARI
CNUM
PNUM
LNUM
1 LNUM
PNUM
LNAME
PVOLUME
100
200
300
150
250
1000
PPRICE
,
, .. - PVOLUME (.
3). , , FPL 3.
,
. , ,
(se elimin) (prin descompunere)
:
FURNIZORI_1
FNUM
1
2
3
FNUM
1
1
1
2
2
3
FNAME
Firma 1
Firma 2
Firma 3
PNUM
1
2
3
1
2
1
LIVRARI_1
PVOLUME
100
200
300
150
250
1000
Prin aceast descompunere relaia iniial a fost adus la aa numit form normal
Boyce-Codd FNBC:
R -
,
.
Definiie. Relaia R se afl n forma normal Boyce-Codd FNBC dac i numai
dac determinanii al tuturor dependenelor funcionale n relaie sunt chei
candidat.
Cu alte cuvinte: toate dependenele funcionale n relaie trebuie s fie numai
dependene de cheie!
,
,
.
, .. . ,
, 3.
97
,
. ,
,
.
(Heath) 1971 .
Pentru o relaie cu o singur cheie candidat care se utilizeaz implicit ca i cheia
primar, formele FN3 i FNBC coincid.
. ,
3. , 3.
FURNIZORI_PIESE_ LIVRARI ,
.. (FNUM FNAME FNAME FNUM),
(
!).
,
, ,
.
FURNIZORI_1 LIVRARI_1,
.
. FPL
FURNIZORI_1 LIVRARI_1 .
:
FURNIZORI_2
FNAME
Firma 1
Firma 2
Firma 3
FNAME
Firma 1
Firma 1
Firma 1
Firma 2
Firma 2
Firma 3
FNUM
1
2
3
PNUM
1
2
3
1
2
1
LIVRARI_2
PVOLUME
100
200
300
150
250
1000
98
, , . ,
- , ,
(
!). , , .
, ,
, - . ,
( -
!), ""
.
. "-2"
" " (FNAME) ,
"-2". , ,
"-2" (.
. 3) "2" ,
"-1". ,
. , , ,
, ,
.
. "-2",
. , "-2"
, 3.
"" , , .. ,
, (???). ,
, 3
, ""?
Problem: De efectuat normalizarea n considerat mai sus exemplu cu relaia
COLABORATORI_SECTOARE_PROIECTE_LUCRARI dac puin modificm condiiile
(modelul logic):
Fiecare colaborator are numr unic de tabel pe toat organizaia;
...
Avem aici dou chei compuse i intersectate:
{CNUM, PNUM, LNUM},
{CNUM, PNUM, LNAME}.
.
Pe pai:
1. Aducerea la forma normal unu FN1. Informaia se plaseaz n una sau mai
multe relaii, care reprezint entitile lumii reale. Aceste relaii n mod automat
se afl n FN1. (dac sunt relaii, binenceles)
2. Aducerea la forma normal doi FN2. Dac dup analiz se afl c n careva
relaie exist dependen funcional de o parte a cheii poteniale se recurge la
decompoziia ei n urmtorul mod:
Situaia iniial. Relaia care nu este n FN2 - R(K1,K2, A1,,An, B1,,Bm):
{K1,K2} cheia relaiei compus,
{K1,K2} { A1,,An, B1,,Bm } dependene funcionale,
{K1} { A1,,An } dependena funcional a unor atribute de o parte a
cheii relaiei;
Situaia final. Relaiile decompuse:
R1(K1,K2, B1,,Bm) restul din relaia iniial R,
R2(K1, A1,,An) relaia nou n care a fost scoas dependena funcional de
o parte a cheii poteniale. (atributul K1 n R1 a devinit i cheie extern!)
3. Aducerea la forma normal trei FN3. Dac dup analiz relaiilor noi se afl c
n careva relaie exist dependen funcional dintre atributele non-cheie
recurgem la decompoziia ei n urmtorul mod:
Situaia iniial. Relaia care nu este n FN3 - R(K, A1,,An, B, B1,,Bm):
K cheia relaiei,
K { A1,,An, B, B1,,Bm } dependene funcionale,
100
K2
F2
R3
R4
R1
1
K1
K2
F1
F4
F1
F3
101
-
(recompune) (exact n forma
iniial). , ,
. (. . 4). ..
, (joinul natural).
6. R[ X ] R X
, X
R (.. X
R ).
7. R1 R2 R
, R
R :
R1 JOIN R2 R .
Definiie 1. Proiecia
a relaiei R pe mulimea de atribute X se numete
proprie dac mulimea de atribute X este o submulime proprie a mulimei de
atribute n relaia R (mulimea de atribute X nu coincide cu mulimea atributelor
relaiei R ).
R[ X ]
Petcu
1000
Albu
1000
R2
SALARY
1
1000
1000
NAME SALARY
Petcu
1000
Albu
1000
Petcu
1000
Albu
1000
Petcu
1000
Albu
1000
NUM NAME
1
Petcu
Albu
R2
NUM SALARY
1
1000
1000
, "NUM", R
. , ,
, ..
R , ,
R . , , R
:
NUM
NAME
SALARY
Petcu
1000
Albu
1000
Ceban
2000
13 R
, , .. U .
! :
NUM
NAME
Petcu
Albu
104
Ceban
14 R1
NUM
SALARY
1000
1000
2000
15 R2
:
NUM NAME SALARY
1
Petcu
1000
Albu
1000
Albu
2000
Ceban
1000
Ceban
2000
16 R1 JOIN R2
105
, r1 ( a, b) R1 r2 (a, c ) R2 . .. R1 R[ A, B ] ,
c1 , r1 ( a, b, c1 ) R . , ..
R2 R[ A, C ] , b1 , r2 (a, b1 , c ) R .
r1 r2 A , a . ,
A B , , b b1 . ,
r2 (a, b, c ) R . . .
.
R1 JOIN R2 R . ,
, .
,
, .
.. ( 3)
, ,
, ..
.
7.
. ,
, .
, ,
NF3 NFBC ,
. ,
NF1 NF2
. .
. ,
.
,
. ,
.
, ,
.
( )
.
.
:
1.
. ;
2.
.
-.
;
3.
.
. .
. ER ;
4.
.
. ;
5.
.
.
, ,
.
.
,
,
, .
( ) .
107
7.1.
,
,
, .
.
(baza de date de a fi
adecvat lumii reale);
(uurina de
elaborare);
(,
) viteza de actualizare;
( ) viteza de
regsire a datelor.
:
la orice moment de timp starea bazei de date corespunde strii lumii reale pe
care o reprezint;
modificrile n starea lumii real aduc la modificrile corespunzetoare n
starea bazei de date;
restriciile din lumea real, reflectate n modelul logic se consider de baza
de date;
legturile dintre obiectele lumii reale sunt considerate n baza de date.
Uurin de elaborare nseamn cerina de a elabora ct mai puine proceduri
memorate i trigeri.
Proceduri memorate proceduri i funcii compilate care fac parte din componena
aplicaiei bazei de date. Se folosesc de utilizatori pentru realizarea biznesproceselor concrete (calculul salariului, imprimarea datelor finale, etc.).
Trigeri proceduri memorate strns legate de careva evenimente n lumea real i,
respectiv, n baza de date, ca de obicei modificri de stare a bazei de date. Dac
n baza de date este prevzut careva triger el se ndeplinete n mod automat la
apariia evenimentului de care acest triger este asociat. Este important c
utilizatorul nu poate ocoli ndeplinirea trigerului. Trigerul se ndeplinete
independent de modul n care a aprut evenimentul. Rolul principal al trigerului
automatizarea (uurarea) procesului de prelucrare i meninerea integritii
bazei de date. Trigerii pot fi att simpli ct i compui. Exemple: la introducerea
incorect a datelor se prevede apariia la ecranul monitorului a unui mesaj, la
termirarea mrfii n depozit se prevede propunerea de a nainta o comand
furnizorilor, la ncercarea de a elibera marfa care s-a terminat iar-i un mesaj.
108
Relaii slab
normalizate
(NF1, NF2)
Relaii nalt
normalizate
(NF3, NFBC)
109
Cum se vede din acest tabel relaiile nalt normalizate sunt mai bine proiectate (trei
plusuri i un minus). Ele mai bine corespund universului de discurs, cu mai mare
uurin se elaboreaz i exploateaz, viteza de modificare a datelor n ele este mai
mare. Dar pentru aceste avantaje trebuie pltit: se ncetinete selectarea datelor
compuse.
-
,
. ,
.
, ,
.
ntroducerea datelor noi se face relativ rar cu seturi mari de date (de exemplu
odat n semestru datele de bilan al realizrilor comerciale din aplicaia OLTP);
OLAP-
- (slice-and-dice). OLAP- SQL-
,
,
. OLAP- ,
. OLAP-,
,
SQL, ,
. OLAP- ,
Microsoft SQL Server Analysis Services,
Hyperion Essbase, Oracle Express MicroStrategy.
112
OLAP- ,
.
,
SQL, , MDX- Calc-.
,
. OLAP .
OLAP , .
OLAP- . OLAP ,
, . OLAP-
,
() ,
OLAP, .
, OLAP- ,
. OLAP-
, ,
OLAP-.
OLAP-
, OLAP-. OLAP-
,
. OLAP. OLAP-
OLAP- .
, OLAP-
. OLAP-
.
, ,
.
Facultate F
Matematic
Matematic
Fizic
Fizic
Matematic
Matematic
AFO
Obiect O
Matematica
Informatica
Matematica
Fizica
Matematica
Informatica
1
2
2
2
1
1
3
1
2
Abiturieni
ANUM
1
2
ANAME
Albu
Petcu
Faculti
FNUM
1
2
ONUM
1
2
3
FNAME
Matematic
Fizic
Obiecte
ONAME
Matematica
Informatica
Fizica
.
- ,
, .
,
.
, (Albu, Fizic, Matematica),
(Albu, Fizic, Fizica), ,
.
"--"
,
115
.. .
, .. .
F A O .
- ( F)
( A)
( O), ( F)
( O)
( A).
.
cu seturi ntregi.
. R X, Y, Z
XY, XYZ.
,
, , R r1=(x,y,z1) r2=(x,y1,z).
XY , y=y1. r3=(x,y,z)
r2=(x,y1,z) , , R.
XY.
R r4=(x,y1,z1), r1.
XZ. , R
XYZ.
???:
116
|.
. . (Fagin R.[52])
:
Definiie 3. Relaia R este n forma normal patru FN4 dac i numai dac R este
n forma normal Boyce-Codd FNBC i nu conine dependene multivalente
netriviale.
"--" , 4.
,
:
FA
F
Matematic
Fizic
Matematic
A
Albu
Albu
Petcu
FO
F
Matematic
Matematic
Fizic
Fizic
O
Matematica
Informatica
Matematica
Fizica
117
,
"--".
Z
118
1
1
2
1
2
1
2
1
1
1
1
1
14 R
R, , :
X
Y
1
1
1
2
2
1
15 R1=R[X,Y]
X
Z
1
2
1
1
2
1
16 R2=R[X,Z]
Y
Z
1
2
2
1
1
1
17 R3=R[Y,Z]
, R
R1 JOIN R2, R1 JOIN R3 R2 JOIN R3. , R1 JOIN
R2 :
X
Y
Z
1
1
2
1
1
1
1
2
2
1
2
1
2
1
1
18 R1 JOIN R2
, R. (
)
R ( R1, R2, R3 ).
R :
R1 JOIN R2 JOIN R3 =R.
,
, ,
.
119
.
Noua dependen s numete dependen de jonciune.
5. R , A, B, ..., Z -
( )
R. R
( A, B,..., Z )
,
A, B, , Z, .. R=R[A] JOIN R[B] JOIN ... JOIN
R[Z].
, R 3
:
*(XY, XZ, YZ).
, , ..
R,
, .
,
. , ,
R( X ,Y , Z )
R[ X , Y ] R[ X , Z ] ,
X Y Z . ,
:
( ). R( X ,Y , Z )
( XY , XZ ) ,
X Y Z .
..
( ???),
. ,
, ..,
, .
, , .
6. ( A, B,..., Z )
,
:
A, B, ..., Z
R,
120
A, B, ..., Z
R.
,
R(X,Y,Z), X Y Z => R1=R[X,Z], R2=R[X,Y],
X R1 R2 (?) .
. !!! , X
. -: A, B, ..., Z
R,
,
. .., ,
NFBC. (
(? NFBC? )
,
. , ? Va fi o descompunere trivial
care nu va mbunti calitatea schemei. De dat aceast remarc n concluzii
referitor la normalizare consecutiv cu scopul eliminrii anomaliilor. Sau n
teorema lui Heath.)
:
7. ( A, B,..., Z )
, :
A, B, ..., Z
R.
A, B, ..., Z
R.
8. R (5)
,
.
5 ,
:
9. R 5,
.
, R
, .
3, , ,
,
, 5 (, ,
). ,
3 5. ,
R:
(i) R (..
).
121
(ii) ( , ):
R r1 ( x, y , z1 ) , r2 ( x, y1 , z ) r3 ( x1 , y , z ) ,
, R r4 ( x, y , z ) .
. , (i) (ii),
4, 5.
. , R 4.
4, ,
. ..
, .
( ), ,
, .
3 , ( ,
,
). .
, 5.
.
( XY , XZ , YZ ) . , .
, XY , XZ YZ
R .
?
, R1 R[ X , Y ] , R2 R[ X , Z ] R3 R[Y , Z ]
R (
,
R 3, ,
(ii)).
, ,
.
.
.
. ,
. ,
. (ii)
. .
122
NF5
.
-
(, . 335).
:
1.
( );
2. (FD, MV, S)
.
.
.
( 5)
3. ,
5.
4 ( ). ,
, ,
, .
,
. , ,
.
5 ( 4).
, .
5 ( 5).
,
.
3 , ,
-.
R - () ,
. .
-
, ,
.
.
( ) Y Z X, ( X Y Z ),
, , R r1 ( x, y, z1 )
r2 ( x, y1 , z ) , R r3 ( x, y , z ) .
,
,
123
,
.
,
,
. ( )
X Y Z
, X Y X Z .
R (4) ,
.
,
,
.
.
R (5) ,
.
125
126
127
Din dependenele d1-d4 putem obine altele trei d5, d6, d7:
d5: {A, E}{B, C, D, F, G, H}
d6: G{E, F, H}
d7: {A,G}{B, C, D, E, F, H}
(regula R2 extinderii)
(regulile R5, R3, R4)
(regula R2 extinderii)
Dependena d6 se obine din d3, d4: GE, E{F, H} G{F, H}; GE,
G{F, H} G{E, F, H}.
n baza dependenelor d5-d7 concludem c sunt dou cheie: {A, E} i {A, G}. n
mod arbitrar, alegem n calitate de cheie primar mulimea {A, E}. Dar nu uitm c
i G este componenta cheii primare.
Analizm dependenele obinute:
1. Dependenele de A, E i G (d1, d3, d4, d6) ncalc (nu satisfac) regula FN2;
2. Dependenele EG i GE (d3, d4, d6) nu ncalc regula FN2, deoarece
determinanii lor E i G sunt atribute cheie.
Putem elimina G i E din prile drepte al d3, d4, i d6. Dup acest pas regula FN2
o ncalc dependenele:
d1: A{B, C, D}
d3: E{F, H}
d4: GH
d6: G{F, H}
129
Pentru prima descompunere (proiecie) putem alege oricare din aceste dependene,
spre exemplu d1. Obinem relaii:
R1=R1(A, E, G, F, H),
restul din R
R2=R2(A, B, C, D)
relaie nou
Dependenele d3, d4 i d6 ncalc regula FN2 n relaia R1. Descompunerea
dup d3 ne aduce la relaiile:
R1= R1(A, E, G),
restul din R1
R2=R2(A, B, C, D),
R3=R3(E, F, H)
relaie nou
Schemele obinute R1, R2, R3 nu mai ncalc regula FN2. Descompunerea dup
d3 ne a eliminat i nclcrile FN2 n d4 i d6.
Dependena d2 ncalc regula FN3 n relaia R2. Descompunerea R2 dup
dependena d2 ne aduce la schema final a bazei de date n forma normal FNBC:
R1= R1(A, E, G),
R2=R2 (A, B, D),
restul din R2
R3=R3(E, F, H),
R4=R4(B, C)
relaie nou
Acum putem reprezenta aceast schem i n form de ER diagram.
R4
B
C
R3
R2
A
B
D
R1
E
F
H
A
E
G
130
10. ER- . -
.. , "
, .. -
".
,
.
( ""
relation - ""), .
,
,
.
,
,
.
.
.
,
,
. ,
.
. ,
.
ER- - (ER EntityRelationship). ,
ER-
-. ER-
,
.
- 1976 .
- .
( , IDEF1X,
131
.). , ,
, . ,
- -
.
,
(), .
-
, .
ER, .
10.1. "-"
( ER-)
1. - ,
.
.
"",
"", "".
:
. 1
2. -
.
, "" "
".
, ..
,
.
3. - ,
.
(, ).
""
" ", "", "", "", "", ""
..
132
. 4
,
:
4. - ,
. ,
.
. 2
.
:
5. - .
.
,
. ,
- " ", "
".
, :
.
: "",
"" ..
. .
:
. 5
-- ,
() (). -133
,
, .
-- ,
() ().
. ( "")
, ( "") - .
. 4.
-- ,
,
. --
, .
- .
:
. 6
"" ,
,
.
"" ,
.
( . 4).
,
:
< 1> < >
< > < > < 2>.
, .
. 4 :
: " ".
: "
".
10.2. ER-
(Exemplu de elaborare a unui ER-model simplu)
, ER- ,
, ,
.
( ?)
134
.
, .
-
(ER - Entity-Relationship).
:
.
-.
();
( ER-
);
ER- .
. -
, ,
.
- (,
) , (,
()). ,
- .
10.3. ER-
ER-
:
1. .
2. .
3. .
ER- , ,
.
, , .
, ,
ER-.
,
.
, .
, ,
(, ..).
, ()
, , () ,
:
135
, .
.
.
-
,
( ):
, .
- .
(?) - , ? ,
.
. 7
. 8
(?) , , ,
?
"
" " ".
:
, ,
. ,
.
"" "" ?
,
"" ""? ,
,
. .
.
( ).
, ,
136
. ,
,
. , ,
:
. ,
:
, , .
, ,
.
, ,
, .
.
.
,
, :
- ,
. .
- .
- .
- .
- .
(?) - , .
?
- .
- .
- .
(?) - .
, .
(?) - ,
? "", "
".
(?) -
, .
- ?
137
- .
.
, .
- .
. , .
, . ,
.
, , .
, - .
" " .
"" ""
--. , ,
--.
. "
". "" ""
- "
", "
", "
",
"
". " " "
" " ".
, "" "".
" ".
" ". ,
.
:
138
. 9
;
. ;
10.4. ER-
ER-
. ,
.
,
,
, .. ,
. 9 , , :
, .
, , ,
"CUST_DETAIL" "PROD_IN_SKLAD",
" " " ", ,
-
, ,
.
, 3.
139
. 10
.
, .
- (ER - Entity-Relationship).
-
.
ER-.
.
. ( !),
,
(
),
.
,
3. ,
.
, ER-,
,
,
,
,
..
140
:
, , , ;
ER , , ;
ER , , .
141
143
Marfa
Furnizori
Clienti
MarfaId
MarfaName
Producator
....
FurnId
FurnName
FurnPhone
FurnCont
...
ClientId
ClientName
ClientPhone
ClientCont
....
Depozit
FacturaLivrare
FactLivrId
Date
FurnId
LivrareSum
...
Livrari
NumLivrare
FactLivrId
MarfaId
Volume
Price
....
NumPozitie
MarfaId
Volume
Price
....
FacturaVinzare
Vinzari
NumVinzare
FactVinzId
MarfaId
Volume
Price
TVA
....
FactVinzId
Date
ClientId
VinzareSum
...
146
crearea/modificarea/suprimarea
indexului;
CREATE/ALTER/DROP SCHEMA crearea/modificarea/suprimarea
schemei;
CREATE/ALTER/DROP DOMAIN a domenului;
CREATE/ALTER/DROP SYNONIM a sinonimului (ALIAS);
CREATE/ALTER/DROP VIEW a viziunii (relaie virtual);
3. Comenzile principale a sublimbajului DML (manipularea sau actualizarea
datelor):
INSERT
147
UPDATE
DELETE
4. Comenzile principale a sublimbajului DQL (interogarea datelor):
SELECT
5. Comenzile principale a sublimbajului DCL (comenzile de protecie i gestiune a
datelor crearea i eliminarea obiectelor, care determin (regleaz) drepturile
de acces la baza de date, precum i acordarea privilegiilor de niveluri cuvenite
pentru utilizatori:
CREATE/ALTER/DROP PASSWORD
GRANT acordarea privilegiilor de acces;
REVOKE anularea (revocarea, abrogarea) privilegiilor;
6. Comenzile de administrare a datelor:
START AUDIT revizia conturilor;
STOP AUDIT
7. Comenzile de gestionare a tranzaciilor:
SET TRANZACTION a stabili tranzacia;
COMMIT a ndeplini, a realiza tranzacia;
ROLLBACK a anula tranzacia;
SAVEPOINT a stabili puncte de trecere n interiorul tranzaciei.
Structuri (tipuri) de date
1. iruri de simboale
CHARACTER (n)
CHARACTER VARYING (n)
VARCHAR2 Oracle)
2. Date numerice
DECFIMAL (n,m)
INTERGER
SMALLINT
FLOAT (p)
REAL (s)
DOUBLE PRESISSION (p)
3. Data i ora
DATE
148
TIME
INTERVAL
TIMESTAMP
**YEAR
**MONTH
**DAY
**HOUR
**MINUTE
**SECOND
4. Constante literale abc123.
5. Date de tip boolean (logical or boolean). Au valori TRUE, FALSE,
UNKNOWN.
6. Tipuri de date create de utilizator:
CREATE TYPE Person AS OBJECT
(NAME varchar(30),
SALARY real(p),
BIRTHDAY date);
11.2. CREAREA TABELELOR. SINTAXA GENERAL:
:
;
;
;
;
;
;
.
CREATE TABLE <tabel_name>
(field_definition_comma_list constraint_definition_comma_list);
field_definition_comma_list specificarea cmpurilor dup form
<camp_nume> <tip_date_lungimea> [NULL NOT NULL],
constraint_definition_comma_list specificarea constrngerilor (restriciilor),
care asigur consistena i integritatea (referenial n primul rnd) datelor
( ,
).
149
UPDATE <_._>
SET <_ = >
[WHERE <>];
152
<table_name> <schema_name.table_name>
UPDATE Delivery
SET Volume = 5
WHERE OrdNum = 109;
1 record updated
UPDATE Delivery
SET Volume = 5;
109 records updated
UPDATE <_._>
SET <C1 = 1>
[, 2 = 2,
3 = 3, ]
[WHERE <>];
UPDATE Delivery
SET Supplier = BEL007,
Price = 2599.99
WHERE Ware = TEL072;
7 records updated
11.5. TERGEREA DATELOR DIN TABELE
153
SELECT *
FROM Delivery
WHERE Volume > 20 AND Price > 2999.00;
154
155
deduciei. [Art. deducia; G.-D. deduciei; Sil. -i-e] /<fr. dduction, lat. deductio, ~onis
Sursa: NODEX | Adugat de siveco | Greeal de tipar | Permalink
DEDCIE s.f. Raionament logic prin care se obine o judecat nou (numit concluzie) din
dou sau mai multe judeci (numite premise), dintre care una trebuie s fie neaprat universal.
[Gen. -iei, var. deduciune s.f. / cf. lat. deductio, fr. dduction].
Sursa: DN | Adugat de LauraGellner | Greeal de tipar | Permalink
DEDCIE s. f. form fundamental de raionament n care concluzia rezult cu necesitate din
premise. (< fr. dduction, lat. deductio)
Sursa: MDN | Adugat de raduborza | Greeal de tipar | Permalink
CONSISTEN
Calitate a unui sistem axiomatic de a nu conine o formul oarecare n acelai timp cu negaia ei.
[Cf. it. consistenza, fr. consistance];
(log.) nsuire a unui sistem axiomatic de a nu fi contradictoriu. (< fr. consistance, it.
consistenza)
157
158