Sunteți pe pagina 1din 49

Capitolul 4

Modelul relaţional de organizare


a bazelor de date

1
Agenda
• Câte ceva despre baze de date
• Prezentarea generală a modelului
relaţional
• Restricţii ale bazei de date
• Schema şi conţinutul unei baze de date
relaţionale

2
CÂTE CEVA DESPRE BAZE DE DATE

Încă de la începuturile sale, informatica a fost


confruntată cu:
• efectuarea de calcule complexe, ştiinţifice;
• stocarea şi gestionarea unui volum de informaţii din ce
în ce mai mare.

Apariţia unor instrumente software dedicate gestiunii


şi prelucrării datelor → aplicaţii bazate pe:
• fişiere;
• baze de date.
3
Arhitectura aplicaţiilor de tip fişier
Data 1
Data 2 Raport 1

Data 3
FIŞIER 1 PRELUCRARE 1 Fişier de
Data 4 legături

Data 2
Raport 4
Data 4
FIŞIER 2 PRELUCRARE 2 Raport 3
Data 5
Raport 2
Data 6

Data 1 Raport 5
FIŞIER 3 PRELUCRARE 3
Data 5

Data 7
Data 8
DATE FIŞIERE PRELUCRĂRI IEŞIRI
4
Fişiere independente
(file-based sau flat files)

• fiecare dată (Data 1, Data 2,... Data n) este descrisă


(nume, tip, lungime) autonom, în toate fişierele în
care apare;
• descrierea fiecărui fişier de date (câmpurile care-l
alcătuiesc, tipul şi lungimea fiecăruia, modul de
organizare (secvenţial, indexat, relativ etc.)) este
obligatorie în toate programele care îl “citesc” sau
modifică;
• între FIŞIER 1, FIŞIER 2, ... FIŞIERn nu există nici o
relaţie definită explicit.

5
Dezavantajele organizării datelor după modelul fişierelor
independente

1. Redundanţa şi inconsistenţa datelor;


2. Dificultatea accesului;
3. Izolarea datelor;
4. Complexitatea actualizărilor;
5. Dificultatea creării unui mecanism care să
protejeze pe deplin datele din fişiere de accesul
neautorizat (probleme de securitate);

6
Dezavantajele organizării datelor după modelul fişierelor
independente

6. Mecanismul de integritate a datelor, deosebit de


complex în mediile de lucru multi-utilizator şi
eterogene;
7. Inabilitatea de a obţine răspunsuri rapide la probleme
ad-hoc simple;
8. Costul ridicat;
9. Inflexibilitatea faţă de schimbările ulterioare;
10. Modelarea inadecvată a lumii reale.

7
Baze de date
O bază de date reprezintă un ansamblu structurat de fişiere, care
grupează datele prelucrate în aplicaţiile informatice ale unei
persoane, grup de persoane, întreprinderi, instituţii etc.

Formal, BD poate fi definită ca:


• o colecţie de date aflate în interdependenţă, împreună cu
descrierea datelor şi a relaţiilor dintre ele,

sau

• o colecţie de date automatizată, partajată, definită riguros


(formalizată) şi controlată la nivel central.

• Faţă de modelul fişierelor independente, noutatea o


constituie existenţa unui fişier de descriere globală a bazei
(dicţionarul de date)  asigură independenţa programelor
faţă de date. 8
Schema de principiu a unei baze de date

B A Z A DE D A T E

Fişier de date 1

Fişier de date 2 Dicţionar


de date

Fişier de date n

Aplicaţia 1 Aplicaţia 2 Aplicaţia 3

9
Cu referire la o BD, trebuie avute în vedere
două aspecte fundamentale:

• schema; (vezi paragraful BD Excel)


• conţinutul.
• Schema (organizarea sau structura BD) reprezintă un
ansamblu de instrumente care asigură descrierea datelor,
a relaţiilor dintre acestea, a semanticii lor şi a restricţiilor
la care sunt supuse.

• Ansamblul informaţiilor stocate la un moment dat în BD


constituie conţinutul (instanţierea sau realizarea)
acesteia.
Conţinutul (volumul) prezintă o evoluţie (spectaculoasă) în timp, iar
schema rămâne relativ constantă pe tot parcursul utilizării BD.

10
Organizarea datelor în BD poate fi analizată din mai
multe puncte de vedere şi pe diferite paliere:

• fizic (intern);
• conceptual (global);
• extern.

11
• Nivelul fizic (intern) - modalitatea efectivă în care datele
sunt "scrise" pe suportul de stocare (disc magnetic, disc
optic, bandă magnetică etc.);

• Nivelul conceptual (global) este primul nivel de


abstractizare a lumii reale observate. Obiectivul acestui
nivel este modelarea realităţii considerate, asigurându-se
independenţa bazei de date faţă de orice restricţie
tehnologică (echipament);

• Nivelul extern este ultimul nivel de abstractizare la care


poate fi descrisă o bază de date. Dezideratele acestui
nivel vizează simplificarea interacţiunii dintre utilizatori şi
BD, precum şi creşterea securităţii BD.

12
Schematizarea unui sistem de lucru cu o BD

Utilizator A1 Utilizator A2 Utilizator B1 Utilizator B2 Utilizator B3

Comenzi Comenzi
Aplicaţie Aplicaţie Aplicaţie
autonome autonome

Schemă externă Imagine A Schemă externă Imagine B


A (nivel extern) B (nivel extern)

Interfaţă A Interfaţă B
dintre nivelele dintre nivelele
global şi extern global şi extern
SISTEM DE
Schema Imagine globală GESTIUNE A
conceptuală BAZEI
(nivel global)
(globală) DE DATE

Interfaţă dintre nivelele


fizic şi global

Definirea structurii
interne de stocare Baza de date memorată pe disc
(Schema internă) 13
Posibilitatea modificării structurii la un anumit nivel, fără a afecta
structura nivelului / nivelurilor superioare, se numeşte autonomia
datelor stocate în bază şi poate fi: fizică şi logică.

• Autonomia fizică - posibilitatea modificării


arhitecturii bazei la nivel intern, fără schimbarea
schemei conceptuale şi rescrierea programelor

se asigură portarea BD de pe un sistem de calcul


pe altul.
• Autonomia logică - posibilitatea modificării
schemei conceptuale a bazei fără a rescrie
programele de exploatare.

14
Datele stocate într-o BD prezintă următoarele caracteristici:

• partajabilitatea – disponibilitate pentru un mare


număr de utilizatori şi aplicaţii;
• persistenţa – existenţă permanentă, din momentul
preluării în bază până în momentul actualizării sau
ştergerii;
• securitatea – protejarea de accesul neautorizat,
atât în ceea ce priveşte citirea şi copierea, cât şi
modificarea şi ştergerea;
• validitatea (referită şi ca integritate sau
corectitudine) – priveşte gradul de adecvare dintre
datele din bază şi realitatea, procesele pe care le
reflectă aceste date;
15
Datele stocate într-o BD prezintă următoarele caracteristici:

• consistenţa – ori de câte ori diverse aspecte ale proceselor


sau fenomenelor reale sunt preluate în bază sub forma a
două sau mai multor entităţi sau atribute, acestea trebuie să
fie în concordanţă unele cu celelalte, să respecte relaţiile
existente între aspectele proceselor /fenomenelor reale;
• nonredundanţa - pe cât posibil, o entitate din realitate ar
trebui să aibă un singur corespondent în BD;
• independenţa – priveşte autonomia logică şi fizică.

16
Modele de organizare a datelor în BD

• Modelul reprezintă un ansamblu de instrumente


conceptuale care permit descrierea datelor, relaţiilor dintre
ele, a semanticii lor precum şi a restricţiilor la care sunt
supuse.

• Modelul datelor este:


– o reprezentare a obiectelor lumii reale şi a evenimentelor
asociate lor;

– o abstractizare care se concentrează pe aspectele esenţiale


ale organizaţiei /aplicaţiei, furnizând conceptele de bază şi
notaţiile care vor permite utilizatorilor BD să comunice clar şi
rapid informaţiile şi cunoştinţele lor despre datele organizaţiei.

17
PREZENTAREA GENERALĂ A MODELULUI RELAŢIONAL

Un model de date are trei piloni:

• componenta structurală - modul în care, efectiv, la nivel logic,


datele sunt stocate în bază;

• componenta de integritate - regulile ce pot fi declarate pentru


datele din bază;

• componentă manipulatorie - modul în care se obţin informaţii


din BD, ceea ce presupune o serie de operatori (selecţie,
reuniune, intersecţie, joncţiune) aplicabili uneia sau mai multor
relaţii.

19
Modelul relaţional se poate defini prin:

– structuri de date (relaţii alcătuite din tupluri),

– operaţii aplicate asupra structurilor de date


(selecţie, proiecţie, joncţiune etc.),

– reguli de integritate care să asigure consistenţa


datelor (chei primare, reguli de validare, restricţii
referenţiale ş.a.).

20
• Modelarea realităţii se concretizează în tabele de valori
numite relaţii, avându-se în vedere că:

• o relaţie are un nume;

• o coloană reprezintă un atribut;

• o linie reprezintă un tuplu de valori ale celor n atribute


din relaţie;

• ordinea liniilor şi coloanelor în cadrul tabelei nu este


relevantă pentru conţinutul informaţional.

• Fiecare linie a tabelei reprezintă o entitate sau un fapt al


realităţii, în timp ce o coloană reprezintă o proprietate a
acestei entităţi sau fapt.
21
Modelul relaţional - Avantaje:

• propune structuri de date uşor de utilizat;

• ameliorează independenţa logică şi fizică;

• pune la dispoziţia utilizatorilor limbaje ne-procedurale;

• optimizează accesul la date;

• îmbunătăţeşte integritatea şi confidenţialitatea datelor;

• ia în calcul o largă varietate de aplicaţii;

• abordează metodologic definirea structurii bazei de date.

22
Relaţii /tabele, domenii şi atribute
• La modul simplist, o bază de date relaţională (BDR) poate
fi definită ca un ansamblu de relaţii (tabele);
În teoria relaţională se foloseşte termenul relaţie. Practica, însă, a consacrat
termenul tabelă /tabel (engl. table).

• Fiecare tabelă:
– are un nume unic,
– este alcătuită din linii (tupluri) şi coloane (atribute),
– este stocată pe suport extern (de obicei disc);
• La intersecţia unei linii cu o coloană se găseşte o valoare
atomică (elementară).
• O relaţie conţine informaţii omogene legate de anumite
entităţi, procese, fenomene.
23
Relaţia (tabela) CLIENŢI

24
Relaţii /tabele, domenii şi atribute
• Un tuplu (linie) este o succesiune de valori de diferite
tipuri.
• În general, o linie grupează informaţii referitoare la o
entitate (informaţii referitoare la un obiect, eveniment etc.):
o carte (un titlu sau un exemplar din depozitul unei
biblioteci), un /o student(ă), o localitate (oraş sau comună),
un angajat al firmei, o factură emisă etc.
• Orice tuplu reprezintă o relaţie între clase de valori 
sintagma baze de date relaţionale, în sensul matematic al
relaţiei, de asociere a două sau mai multe elemente.
• Toate tuplurile unei relaţii au acelaşi format (structură),
• Ordinea tuplurilor nu prezintă importanţă din punctul de
vedere al conţinutul informaţional al tabelei.

25
Relaţii /tabele, domenii şi atribute

• Fiecare atribut este caracterizat printr-un nume şi un


domeniu de valori pe care le poate lua.

• Domeniul = ansamblul valorilor acceptate (autorizate)


pentru un element component al relaţiei.

• Exemple de domenii:
– Categorii de bursă (SO, M, S1, S2)
– Valoare factură (-9999999,9999999)

26
Prima definiţie a unei Relaţii (Structura)

În general, orice relaţie R poate fi definită ca un subansamblu


al produsului cartezian de n domenii Di:
R  D1 x D2 x D3 x ...x D n
• n este denumit gradul sau ordinul relaţiei.
• Relaţiile de grad 1 sunt unare, cele de grad 2 - binare, ...,
cele de grad n - n-are.
• Această definiţie pune în evidenţă aspectul constant al
relaţiei, de independenţă în timp (în acest caz, se spune că
relaţia este definită ca un predicat).

27
A doua definiţie a unei Relaţii (Conținut)

• A doua definiţie abordează o relaţie R ca


un ansamblu de m-tupluri (m-uplete) de
valori:
R = { t1, t 2 , ..., t k , ..., t m}

unde: t k = (dk1,dk2 , ..., dki ,...,dkn )

în care:
• dk1 este o valoare în D1, dk2 este o valoare
în D2, … , dkn este o valoare în Dn;
• m - reprezintă cardinalitatea lui R;
• n - reprezintă ordinul lui R.
28
29
RESTRICŢII ALE BAZEI DE DATE

• Pentru păstrarea coerenţei datelor, prevenirea


inconsistenţelor şi reflectarea corectă a fenomenelor şi
proceselor conţinute în BD, se definesc restricţiile, a
căror respectare, după declarare, cade în sarcina
SGBD-ului.

• Restricţiile semnalează existenţa unor constrângeri


instituite şi obligatorii.

• Prin restricţii, creşte gradul de corectitudine şi de


încredere al datelor din bază.

30
Cele mai importante restricţii definibile într-o BDR:

1. restricţia de domeniu,
2. restricţia de atomicitate,
3. restricţia de unicitate,
4. restricţia referenţială,
5. restricţiile utilizator.

31
1. Restricţia de domeniu
Restricţia de domeniu se referă la ansamblul valorilor autorizate pentru
un atribut.
Domeniul poate fi alcătuit din valori finite (notele la un examen,
judeţele ţării) sau infinite (valoarea unei facturi etc.).

2. Restricţia de atomicitate

Orice atribut trebuie să fie atomic, în sensul imposibilităţii descompunerii


sale în alte atribute.

3. Restricţia de unicitate

Într-o relaţie nu pot exista două linii identice (două linii care prezintă
aceleaşi valori pentru toate atributele).
Majoritatea relaţiilor prezintă un atribut, sau o combinaţie de atribute a
cărui /ale căror valori nu se repetă şi care diferenţiază un tuplu de toate
celelalte tupluri ale relaţiei = restricţia de unicitate.
32
Nenulitate

• Modelul relaţional acceptă ca atunci când nu se cunoaşte


valoarea unui atribut pentru o entitate, sau când atributul este
inaplicabil, să se foloseacă (meta)valoarea NULL.

• Într-o BDR se poate impune ca unele atribute să aibă


întotdeauna valori specificate, altfel spus, li se interzic valorile
nule.

• Ca regulă, atributele importante, ce ţin de identificarea sau


caracterizarea unei entităţi, proces, fenomen, precum şi cele
implicitate în calculul unor informaţii importante, sunt
declarate NOT NULL, iar atributele fără importanţă deosebită
pot fi mai “relaxate”.

33
Un atribut “forţat” să nu primească valori NULL şi un altul “relaxat”

34
Restricţia de unicitate

Noţiunile legate de această restricţie sunt:


– chei primare,
– chei candidat,
– chei alternative.

Cheia primară a unei relaţii (tabele) este un atribut sau un


grup de atribute care identifică fără ambiguitate fiecare tuplu
(linie) al relaţiei (tabelei).

Pot exista mai multe astfel de atribute = chei candidat.

Dintre cheile candidat, proiectantul BD alege o singură cheie


primară (simplă sau compusă). Cheile rămase = chei
alternative.
35
O cheie primară şi o cheie alternativă

36
vinzari.accdb
După E.F.Codd, există trei restricţii pentru cheia primară:

• unicitate: o cheie identifică un singur tuplu (linie) al relaţiei.


• compoziţie minimală: atunci când cheia primară este
compusă, nici un atribut din cheie nu poate fi eliminat fără
distrugerea unicităţii tuplului în cadrul relaţiei; în cazuri limită,
o cheie poate fi alcătuită din toate atributele relaţiei.
• valori non-nule: valorile atributului (sau ale ansamblului de
atribute) ce desemnează cheia primară sunt întotdeauna
specificate, deci ne-nule şi, mai mult, nici un atribut din
compoziţia cheii primare nu poate avea valori nule; această a
treia condiţie se mai numeşte şi restricţie a entităţii.

37
4. Restricţia referenţială
• O BDR este alcătuită din relaţii (tabele) aflate în legătură. Stabilirea
legăturii se bazează pe mecanismul cheii străine şi, implicit, a
restricţiei referenţiale.

• Cheile străine (coloanele de referinţă) sunt atribute sau combinaţii de


atribute care pun în legătură linii (tupluri) din relaţii diferite.
• Restricţia referenţială se instituie între două tabele, prin intermediul
unui atribut comun (de fapt, numele poate să difere, dar să aibă
aceeaşi semnificaţie).

Tabela în care atributul de legătură este primară se numeşte tabelă-


părinte, iar cealaltă tabelă-copil.

• Se interzice apariţia de valori ale cheii străine (din tabela copil)


care să nu se regăsească printre valorile cheii primare din tabela
părinte.
38
O restricţie referenţială între FACTURI (tabelă-copil) şi CLIENŢI (părinte)

39
5. Restricţii utilizator

• Restricţiile utilizator sunt denumite şi restricţii de


comportament sau restricţii ale organizaţiei sau reguli ale
afacerii.

• De obicei, aceste restricţii iau forma unor:

– reguli de validare la nivel de atribut (pot fi mai multe reguli


într-o tabelă),

– reguli de validare la nivel de linie /înregistrare /tabelă (poate


fi o singură regulă într-o tabelă, dar implică cel puțin două
atribute),

– reguli implementate prin declanşatoare (triggere).


40
Reguli la nivel de atribut

• O restricţie la nivel de atribut poate preveni introducerea în


BD a unor valori din alte intervale decât cele stabilite, în alte
formate decât cele acceptate etc.

• Forma clasică a unei restricţii la nivel de atribut este o expresie


în care apar constante, operatori, funcţii sistem și atributul
respectiv.

• La orice editare a atributului respectiv expresia este


evaluată şi dacă rezultatul evaluării este TRUE (adevărat),
atunci inserarea /modificarea este permisă, iar dacă rezultatul
este FALSE, atunci inserarea /modificarea este blocată.

41
Restricţii
Prima literă din atributul NumeClient trebuie să fie majusculă:
la nivel de StrComp(Left(UCase([NumeClient]),1),Left([NumeClient],1),0) = 0.
atribut
Cel mai mic cod de client acceptat este 1001
[CodClient]>1000

42
• Cel mai mic cod de client acceptat este 1001

[CodClient]>1000
• Atributul NumeClient să fie scris cu majusculă:

StrComp(UCase([NumeClient]));
[NumeClient];0) = 0
• Prima literă din atributul NumeClient trebuie să fie majusculă:

StrComp(Left(UCase([NumeClient]);1);
Left([NumeClient];1);0) = 0
43
Reguli la nivel de înregistrare

• Expresia care defineşte o restricţie la nivel de înregistrare


conţine două sau mai multe atribute şi este evaluată la
inserarea sau modificarea oricărei linii din tabelă.

• Exemplu: TVA colectată pentru o factură poate fi egală sau


mai mică decât 20% din Valoarea fără TVA.
TVAColectată <= ValoareTotală * 0.20 / 1.20

44
Restricţie la nivel de înregistrare

45
SCHEMA ŞI CONŢINUTUL UNEI BAZE DE DATE RELAŢIONALE

Există două aspecte complementare de abordare a bazelor de


date relaţionale: conţinutul (instanţierea, extensia) şi schema
(structura, intensia).

Conţinutul unei relaţii este reprezentat de ansamblul tuplurilor


ce o alcătuiesc la un moment dat. Pe parcursul exploatării
bazei, conţinutul poate creşte exponenţial, în funcţie de volumul
şi complexitatea operaţiunilor consemnate. Este aspectul cel
mai dinamic al unei baze de date.

46
Schema unei BD conţine:
– denumiri ale tabelelor;
– numele, tipul şi lungimea atributelor;
– restricţii de unicitate, de non-nulitate;
– restricţii la nivel de atribut şi / sau linie;
– restricţii referenţiale;
– alte tipuri de restricţii de comportament.

Observaţie:
Există câteva reguli de notaţie a schemei restrânse a unei BD:
– cheia primară se subliniază,
– atributele ce pot avea valori nule se scriu între paranteze,
– restricţia referenţială se reprezintă prin săgeţi
– etc.

47
Foarte importante în lumea profesioniştilor dezvoltării de
aplicaţii cu BD sunt procedurile stocate – programe de
forma funcţiilor, procedurilor, pachetelor şi mai ales
declanşatoarelor (triggerelor) – care, după cum le spune şi
numele, sunt memorate în schema bazei de date şi fac parte
integrantă din aceasta.
Schema este independentă de timp şi reprezintă componenta
permanentă a relaţiilor.

48
Atenţie !

În literatura de popularizare a BD (mai ales a Access-ului) apar


şi o serie de neadevăruri, precum că rapoartele, formularele,
meniurile ar fi incluse în schema unei baze de date. Nu este
adevărat !

În Visual FoxPro, Access şi alte SGBD-uri, pentru a gestiona


mai uşor o aplicaţie se creează un project în care sunt incluse:
• bazele de date (tabele, tabele virtuale, proceduri stocate),
• interogări,
• formulare,
• rapoarte,
• meniuri etc.

Ori, confuzia care se face uneori este între proiect şi bază de


date.
49
Schema simplificată a bazei de date VÂNZĂRI
(ce va fi folosită pt. exemplele din Capitolele 5 si 6)

50

S-ar putea să vă placă și