Sunteți pe pagina 1din 37

05.11.

2017

ACADEMIA DE STUDII ECONOMICE BUCUREŞTI


FACULTATEA DE CIBERNETICĂ, STATISTICĂ ŞI INFORMATICĂ ECONOMICĂ

Obiectivul general al disciplinei


BAZE DE DATE Însuşirea de către studenţi a unor noţiuni
fundamentale privind bazele de date, proiectarea şi
CURSUL 1.
ASPECTE INTRODUCTIVE utilizarea acestora în mediul economic.

BUCUREŞTI
2017-2018

Conf.univ.dr. IULIANA BOTHA 2

Obiective specifice ale disciplinei Competenţe dobândite


• Definire, caracteristici, obiective, clasificări ale bazelor de • Proiectarea unei baze de date
date
• Formularea de interogări asupra bazei de date
• Diagrama Entitate-Asociere şi maparea acesteia în
schemă a tabelelor BD • Efectuarea de actualizări asupra bazei de date
• Optimizarea structurii bazei de date utilizând tehnica • Realizarea de optimizări ale interogărilor
normalizării în vederea eliminării redundanţei
• Definire şi caracteristici ale SGBD, depozitelor de date şi
bazelor de date NoSQL

3 4

1
05.11.2017

Desfășurarea cursului Cadre didactice


Prof.univ.dr. Ion Lungu – ion.lungu@ie.ase.ro

Cursurile Cursurile Cursurile Cursurile Cursul 14 Prof.univ.dr. Adela Bâra – bara.adela@ie.ase.ro


1-2 3-4 5-10 11-13
• Modelul de • Baze de date • Protecţia
• Elemente de
teoria bazelor de date relaţionale:
• Gestiunea altor
obiecte ale bazei bazelor de Conf.univ.dr. Iuliana Botha – iuliana.botha@ie.ase.ro
date relaţional tehnica de date date
• Modele de date normalizării • Optimizarea
• Organizarea
datelor în bazele
• Limbaje
relaţionale
cererilor de
regăsire a datelor
Conf.univ.dr. Vlad Diaconiţa – diaconita.vlad@ie.ase.ro
de date pentru definirea în bazele de date
şi manipularea
datelor.
Limbajul SQL. Lect.univ.dr. Alexandra Florea – alexandra.florea@ie.ase.ro

Asist.univ.dr. Simona Oprea – simona.oprea@csie.ase.ro

Modalitate evaluare Resurse


Examen final – 50% o http://bd.ase.ro
◦ Subiecte teorie
+ o I.Lungu (coord.), A.Bâra. C.Bodea, I.Botha, V.Diaconiţa,
◦ Subiecte practice A.Florea, A.Velicanu - Tratat de baze de date. Vol I. Baze de
Seminar – 50% date. Organizare, proiectare şi implementare, editura ASE,
Bucureşti, 2011, România
◦ Activitate pe parcurs 30%
◦ Test practic 40% o I. Lungu - Baze de date Oracle. Limbajul SQL, editura ASE,
◦ Proiect individual 30% Bucureşti, 2006, România
Atenţie! Condiţie de intrare în examen: minim nota 5 la seminar!
o M.Velicanu - Dicţionar explicativ al sistemelor de baze de
REEXAMINARE: se susţine examen + se refac probele de date, editura Economică, Bucureşti, 2005, România
seminar nesusţinute

7 8

2
05.11.2017

Activitate facultativă
Cursuri online, gratuite, facultative
BAZE DE DATE
◦ Semestrul 1: Oracle Academy Database Design and Programming with SQL
◦ Semestrul 2*: Oracle Academy Database Programming with PL/SQL
Condiţii de absolvire a cursurilor: ASPECTE CONCEPTUALE PRIVIND
◦ finalizare curs online (susţinere examene intermediare online + examen final
organizat la ASE)
ORGANIZAREA DATELOR
◦ cel mult 3 absenţe curs+seminar Baze de date
◦ cel puţin nota finală 7 la disciplina Baze de date
Beneficii:
◦ obţinere diplome de absolvire a cursurilor
◦ obţinere vouchere de reducere pentru cursuri Oracle University sau pentru
examene de certificare (www.oracle.ro)
* Cursul poate fi urmat NUMAI de către studenţii care au absolvit primul curs şi care au în planul de învăţământ
9
disciplina SGBD Oracle.

Organizarea datelor Organizarea datelor


Organizarea datelor presupune: Memoria internă vs. Memoria externă
• definirea şi structurarea datelor în colecţii de date
omogene în memoria internă sau în memoria externă; Criteriu Memoria internă Memoria externă
Cost Mare Mic
• stabilirea legăturilor între date, conform unui model de
Viteză Mare Mică
date.
Capacitate Mică Mare
Persistenţă Nu Da
Scopul organizării datelor: regăsirea automată a
Organizare date Variabile, constante, Fişiere, baze de date,
datelor după diverse criterii şi forme. masive etc. depozite de date

11 12

3
05.11.2017

Obiective specifice Paradigma DIKUW


(Data> Information > Knowledge > Understanding > Wisdom)

• Minimizarea timpului de acces;


Înţelepciune
• Minimizarea spaţiului ocupat de memorie;
• Eliminarea redundanţei datelor; Înţelegere

• Reprezentarea, pe cât este posibil, a tuturor Cunoştinţe


legăturilor dintre obiectele, fenomenele, procesele
economice pe care aceste date le reprezintă;
Informaţii
• Asigurarea independenţei datelor faţă de programe şi
invers. Date

13 14

• Fapte de bază, neprelucrate, simboluri


Date
• Obţinute prin observaţii, experimente sau calcule
Evoluţia organizării datelor (1)
• Date prelucrate, organizate, înzestrate cu semnificaţie, sens
Informaţii

• Ansambluri de informaţii dobândite, utile, care pot genera decizii


• Combinaţii de informaţii, valori, experienţe şi reguli
Cunoştinţe
Fişiere de Baze de Depozite de Baze de
date date date date NoSQL
• Proces analitic prin care se sintetizează informaţii derivate, în vederea adăugării unui plus de
cunoaştere
Înţelegere • Se folosesc cunoştinţe pentru verificarea ipotezelor şi observarea de contradicţii, ambiguităţi

• Proces de extrapolare prin care se folosesc cunoştinţele şi înţelegerea pentru atingerea


scopurilor şi asistarea deciziilor
Înţelepciune • Se adaugă valoare prin înţelegerea principiilor

15 16

4
05.11.2017

Fişiere de date Tipuri de acces la date


• Fişierul reprezintă o colecţie organizată de date, • Acces secvenţial
omogenă din punct de vedere al conţinutului şi
al prelucrării, stocată pe un suport de memorie • Acces direct
externă;
• Acces dinamic (mixt)
• Datele dintr-un fişier sunt structurate în
înregistrări logice.

17 18

Moduri de organizare clasică a Moduri de organizare complexă a


datelor datelor
Organizare secvenţială Organizare partiţionată
◦ înregistrări dispuse fără o ordine prestabilită; ◦ înregistrările din fişier sunt grupate în mai multe partiţii,
accesul fiind direct, prin determinarea poziţiei înregistrării
◦ actualizarea presupune în general recrearea fişierului. căutate în urma aplicării unui algoritm de
partiţionare/dispersie (hashing).
Organizare relativă
◦ înregistrări dispuse în fişier una după alta şi numerotate Organizare multiindexată
(de către sistem) de la 0 sau 1 la numărul maxim de ◦ este o extindere a indexării prin utilizarea mai multor chei
alese de programator.
realizare.
Organizare inversă
Organizare indexată ◦ se foloseşte un fişier “invers” care realizează maparea datelor
◦ se ataşează unul sau mai multe fişiere de indecşi. din fişierul de bază, pe baza poziţiilor de apariţie ale
elementelor considerate atomice în fişierul respectiv.

19 20

5
05.11.2017

Evoluţia organizării datelor (2) Baze de date

O bază de date reprezintă un ansamblu de colecţii


de date aflate în interdependenţă, împreună cu
dicţionarul de date care conţine descrierea datelor
Fişiere de Baze de Depozite de Baze de şi a legăturilor dintre ele, fapt ce asigură
date date date date NoSQL
independenţa datelor faţă de aplicaţii.

21 22

Clasificarea bazelor de date Clasificarea bazelor de date


Din punctul de vedere al modului de organizare, Din punctul de vedere al domeniului de aplicare,
structurare şi accesare a datelor: bazele de date se împart în:
 Baze de date ierarhice  Baze de date universale
Generaţia I
 Baze de date reţea  Baze de date specializate - satisfac cerinţele unor
anumite sectoare de activitate
 Baze de date relaţionale Generaţia II

 Baze de date orientate-obiect Generaţia III

23 24

6
05.11.2017

Sisteme de gestiune a bazelor


Clasificarea bazelor de date de date
Din punctul de vedere al gradului de centralizare a
datelor, bazele de date pot fi: Ansamblu complex de programe care asigură
 Baze de date centralizate
interfaţa între o bază de date şi utilizatorii acesteia.

 Baze de date distribuite

25 26

Evoluţia organizării datelor (3) Depozite de date


Depozitele de date sunt destinate managerilor şi
analiştilor în procesul luării deciziilor strategice privind
dezvoltarea şi viitorul organizaţiilor.
Fişiere de Baze de Depozite de Baze de Furnizează o sursă integrată şi centralizată de date,
date date date date NoSQL separată de sistemul operaţional.
Datele extrase sunt utilizate în analize dinamice care
presupun schimbări de perspectivă asupra datelor şi
vizualizări ale acestora de la un nivel detaliat la unul
sintetic, agregat şi invers.

27 28

7
05.11.2017

Obiective Evoluţia organizării datelor (4)


• Depozitul de date trebuie să asigure accesul la datele
organizaţiei;
• Utilizarea datelor din depozite direct în analize, fără
alte prelucrări suplimentare; Fişiere de Baze de Depozite de Baze de
date date date date NoSQL
• Stocarea de date istorice;
• Orientarea depozitului pe subiectele importante ale
procesului economic: clienţi, furnizori, produse,
activităţi.

29 30

Baze de date NoSQL Tipuri de baze de date NoSQL


Au apărut în contextul Big Data, pentru a rezolva 1. BD care stochează asocieri cheie-valoare
problema regăsirilor rapide pe aceste volume mari de
date; 2. BD pe coloane
Permit lucrul eficient cu date nestructurate, precum e-
mail sau multimedia; 3. BD organizate pe document
Lucrează cu texte XML, CSV sau JSON, stochează
documente întregi, obiecte, coloane cu valori ale unor 4. BD organizate ca graf
caracteristici etc.;
Folosesc mai multe limbaje de interogare diferite
(NoSQL - “not only” SQL).

31 32

8
05.11.2017

ACADEMIA DE STUDII ECONOMICE BUCUREŞTI


FACULTATEA DE CIBERNETICĂ, STATISTICĂ ŞI INFORMATICĂ ECONOMICĂ

Entitatea
BAZE DE DATE
O entitate desemnează un obiect concret sau
abstract, reprezentat prin proprietăţile sale.
◦ Entitate concretă: persoană, produs, clădire
CURSUL 2.
ELEMENTE DE TEORIA BAZELOR DE DATE ◦ Entitate abstractă: nivel calificare

Mai multe entităţi de acelaşi tip formează o clasă


de entităţi.

BUCUREŞTI
2017-2018

Conf.univ.dr. IULIANA BOTHA 34

Instanţa Atributul
 Este o proprietate care:
O instanţă desemnează o singură manifestare a unei
 descrie o entitate
entităţi
 cuantifică o entitate
◦ Persoana: Ionescu  califică o entitate
◦ Produs: mobilier  clasifică o entitate
◦ Nivel calificare: ridicat  specifică o entitate

 O entitate se exprimă prin unul sau mai multe


atribute.
 Atribut = câmp, caracteristică.

35 36

9
05.11.2017

Atributul Valoarea
 Definirea unui atribut poate fi extinsă prin impunerea
unui tip de dată: un format de reprezentare, o valoare  Reprezintă măsura atributului unei entităţi
implicită, restricţii de integritate.
 Volatile: vârsta
 Un atribut are o singură valoare, la un moment dat,
pentru fiecare instanţă a entităţii.  Non-volatile: data naşterii
 Fiecare atribut este caracterizat de natura valorilor pe
care le poate lua: numeric, alfanumeric, date
calendaristice etc. Orice proprietate a unei entităţi poate fi exprimată
prin una sau mai multe perechi (atribut, valoare).
 Poate avea valori elementare sau compuse.
 Atribute cheie, non-cheie, opţionale, obligatorii

37 38

Terminologie alternativă
Entitate (obiect): SALARIAT

Marcă Nume Funcţie Salariu


Fişiere Teoria relaţională BD relaţionale
N(3) C(30) C(15) N(8)

Fişier Relaţie Tabelă


101 Popescu Ion economist 3500

Înregistrare Tuplu Rând


caracteristici
(atribute, câmpuri)
valori instanţă
(înregistrare, articol) Câmp Atribut Coloană
Metadate:
date despre date;
descrierea detaliată a datelor, formatul şi caracteristicile instanţelor populate
cu date;
stocate în dicţionarul bazei de date.

39 40

10
05.11.2017

Sistem Sistemul informatic


Un sistem desemnează un ansamblu de entităţi Este inclus în cadrul sistemului informaţional şi are ca
între care există legături variabile de obiect de activitate, în general, procesele de
culegere, verificare, transformare, stocare şi
intercondiţionare şi a cărui funcţionare,
prelucrare automată a datelor.
desfăşurată într-un mediu dinamic, pe care îl
influenţează şi de care este influenţat, permite Componentele sistemului informatic:
atingerea unor obiective cu evoluţie dinamică. ◦ Hardware
◦ Software
◦ Comunicaţii
◦ Baza ştiinţifico-metodologică
◦ Baza informaţională
◦ Resursele umane

41 42

Modelul de date
Model abstract care descrie modul în care datele
BAZE DE DATE sunt reprezentate şi accesate, utilizând formalizări
matematice.
Elementele modelului de date:
MODELE DE DATE 1. Structura de date

2. Operatorii

3. Restricţiile de integritate

44

11
05.11.2017

Structura de date Structura de date


Modalitate de stocare a informaţiilor într-un sistem În funcţie de tipurile de legături există cinci structuri logice
informatic, astfel încât acestea să poată fi utilizate în mod de date şi anume:
eficient. ◦ structura punctuală,
Poate fi definită ca o colecţie de date între care s-au stabilit ◦ structura liniară: masivele unidimensionale (vectorii), masivele
o serie de legături care conduc la un anumit mecanism de multidimensionale (matrice), stiva şi listele.
selecţie şi identificare a componentelor. ◦ structura arborescentă (arborii)
Categorii de legături: ◦ structura reţea
◦ legături de apartenenţă a datelor la entitate; ◦ structura relaţională (colecţie de date structurate în tabele de date
◦ legături dintre entităţile de acelaşi tip sau de tipuri diferite. elementare fără o legătură fizică între ele).

În structura relaţională, modalitatea de stocare a datelor se


implementează cu ajutorul LDD (limbajul de descriere a
datelor).
45 46

Operatorii Restricţiile de integritate


Acţionează asupra structurilor de date pentru Au rolul de a păstra datele corecte, consistente şi
operaţii de prelucrare: actualizare, consultare, coerente în procesul de culegere, stocare,
sortare. prelucrare, transmitere şi extragere a acestora.
Există operatori specifici fiecărui model de date. Se pot descrie prin LDD, dar nu numai.
În structura relaţională se implementează cu
ajutorul LMD (limbajul de manipulare a datelor).

47 48

12
05.11.2017

Tipologia modelelor de date


• Modelul de date arborescent
• Modelul de date reţea
BAZE DE DATE
• Modelul de date relaţional
• Modelul de date orientat-obiect
ORGANIZAREA DATELOR
ÎN BAZE DE DATE

49

Caracteristici ale unei baze de


Baze de date date
Conform CODASYL, o bază de date este definită ca  organizată pe trei niveluri (conceptual, logic, fizic);
una sau mai multe colecţii de date aflate în  structurată conform unui model de date;
interdependenţă, împreună cu un fişier de
descriere globală a datelor şi a legăturilor dintre  coerentă prin restricţiile de integritate şi tehnicile de
acestea (dicţionarul de date). protecţie a datelor;
 cu o redundanţă minimă şi controlată, prin
implementarea unui model de date şi prin aplicarea
unei tehnici de proiectare;
 accesibilă mai multor utilizatori în timp util.

51 52

13
05.11.2017

Niveluri de organizare a datelor în Niveluri de organizare a datelor în


bazele de date bazele de date
Nivelul conceptual Nivelul logic
 Reprezintă viziunea proiectantului bazei de date asupra
 Reprezintă viziunea dezvoltatorului de aplicaţie sau a
acesteia.
programatorului asupra datelor pentru o anumită
 Are un grad ridicat de abstractizare şi surprinde necesităţile aplicaţie, într-o anumită organizaţie.
funcţionale şi informaţionale.
 Rezultatul modelării datelor la nivel logic este schema
 Această viziune este independentă de aplicaţiile care vor fi logică (externă), ca parte din schema conceptuală,
dezvoltate pentru diferiţi beneficiari. independentă de suportul tehnic de informaţie
 Rezultatul modelării conceptuale este schema conceptuală, o (independenţa fizică).
reprezentare a realităţii pe care baza de date o transcrie.
 Programele de aplicaţie implementează schema logică a
 Schema conceptuală se obţine conform unui anumit model datelor.
de date şi cu o tehnică de proiectare adecvată.
53 54

Niveluri de organizare a datelor în


bazele de date Tipologia bazelor de date
Nivelul fizic Generaţia 1:
 Reprezintă viziunea inginerului de sistem asupra datelor.  Baze de date ierarhice şi reţea
SGBD: IMS, IDS, Total, IDMS
 Rezultatul modelării la nivelul fizic este schema internă
(fizică) care se defineşte în termeni de tabele, fişiere şi Generaţia 2:
înregistrări fizice.  Baze de date relaţionale
SGBD: IBM DB2, Oracle, MS SQL Server, MySQL
Generaţia 3:
 Baze de date orientate-obiect
SGBD: O2, GemStone, ObjectStore, Jasmine

55 56

14
05.11.2017

Etape de realizare a unei baze de Sistemul de baze de date (SBD)


date
1. Analiza problemei de rezolvat Reprezintă un ansamblu de elemente
◦ Studiul situaţiei existente Diagrama intercondiţionate care contribuie la realizarea şi
Entitate-Asociere (EA)
◦ Analiza cerinţelor rezultate exploatarea unei aplicaţii cu baze de date.
2. Proiectarea bazei de date Componentele unui SBD:
◦ Alegerea SGBD
Schemele BD ◦ Date
◦ Proiectarea schemelor bazei de date
◦ Software
3. Implementarea bazei de date
◦ Elemente auxiliare
4. Punerea în funcţiune şi exploatarea bazei de date
5. Întreţinerea bazei de date
57 58

Arhitectura pe componente a Datele


unui SBD
 Colecţiile cu datele propriu-zise: între aceste colecţii de date
sunt legături de diferite tipuri (unu la unu, unu la mulţi, mulţi
la mulţi), fiecare colecţie trebuind să fie legată de cel puţin o
altă colecţie din baza de date;
 Dicţionarul de date: zonă separată a bazei de date care
conţine informaţii despre baza de date şi cuprinde structura
de date, restricţiile de integritate, viziunile, clusterele etc.;
 Fişierele anexe: conţin informaţii auxiliare bazei de date

59 60

15
05.11.2017

Componenta software Elemente auxiliare


 Are rolul de a realiza şi exploata baza de date  setul de proceduri automate (rutine) şi manuale conform
cărora se va desfăşura activitatea în cadrul sistemului de
 Ansamblu complex de programe utilizate pentru baze de date;
realizarea aplicaţiilor cu baze de date, care conţine:
 reglementările legale privind dreptul de utilizare a unor
◦ sistemul de gestiune a bazelor de date cu ajutorul produse şi servicii necesare în sistemul de baze de date;
căruia utilizatorul poate realiza şi exploata baza de  reglementările administrative ale organizaţiei în care se va
date; realiza sistemul de baze de date;
◦ programele de aplicaţie dezvoltate de către  mijloacele hardware utilizate pentru buna funcţionare a
utilizatori. sistemului de baze de date;
 personalul implicat pentru realizarea şi utilizarea sistem de
baze de date, pe categorii de utilizatori.
61 62

Sistemul de gestiune a bazelor de


Categorii de utilizatori date (SGBD)

 Utilizatori finali (end-users) Constituie un ansamblu complex de programe, care


asigură interfaţa între o bază de date şi utilizatorii
◦ Au altă pregătire decât cea în informatică şi utilizează acesteia.
calculatorul ocazional sau zilnic (utilizatorii intensivi)
 Specialişti Reprezintă partea principală a componentei
software a unui SBD, care interacţionează cu toate
◦ Au pregătire de profil şi creează produse informatice celelalte componente, precum şi cu exteriorul
 Cercetători în informatică sistemului.
◦ Au pregătire de profil şi creează concepte

63 64

16
05.11.2017

ACADEMIA DE STUDII ECONOMICE BUCUREŞTI


FACULTATEA DE CIBERNETICĂ, STATISTICĂ ŞI INFORMATICĂ ECONOMICĂ

Modelul de date relaţional


BAZE DE DATE
 Structura relaţională

 Operatorii relaţionali
CURSUL 3.
MODELUL DE DATE RELAŢIONAL  Restricţiile de integritate

BUCUREŞTI
2017-2018

Conf.univ.dr. IULIANA BOTHA

Structura relaţională Domeniul


 Domeniu Reprezintă un ansamblu de valori, caracterizat
printr-un nume.
 Relaţie
Un domeniu se poate defini:
 Atribut
◦ explicit, prin enumerarea tuturor valorilor aparţinând
 Tuplu acestuia
 Cheie ◦ implicit, prin precizarea proprietăţilor pe care le au valorile
 Schemă din cadrul domeniului respectiv
Exemplu:
D1 : {"F", "M" }
D2 : {x | x  N, x  [0, 100]}
D3 : {s | s=şir de caractere}

17
05.11.2017

Relaţia Relaţia
Relaţia reprezintă un subansamblu al produsului cartezian al R : {<a, 1, α >, <b, 2, β >}
mai multor domenii, care este caracterizat printr-un nume şi
conţine tupluri cu semnificaţie. Reprezentare ca tabel bidimensional

Într-o relaţie, tuplurile trebuie să fie distincte (nu se admit D3 D1 D2


duplicări). a 1 α
b 2 β

Să presupunem că se acordă o anumită semnificaţie Extensia unei relaţii: ansamblul tuplurilor care compun
valorilor domeniilor D1, D2, D3.
Numai unele dintre tuplurile produsului cartezian: D3 D1
la un moment dat relaţia
D2 pot avea o semnificaţie şi anume cele care conţin Numărul tuplurilor dintr-o relaţie reprezintă cardinalul
numele, sexul şi vârsta aceleiaşi persoane
relaţiei, în timp ce numărul valorilor dintr-un tuplu
defineşte gradul acesteia.

Schema unei relaţii


Atributul
Atributul reprezintă coloana unei tabele de date, Aceasta este alcătuită din numele relaţiei, urmat de
caracterizată printr-un nume. Numele coloanei (atributului)
exprimă, de regulă, semnificaţia valorilor din cadrul coloanei
lista atributelor, pentru fiecare atribut precizându-
respective. se domeniul asociat.

Tuplul
R (A1:D1, ..., An:Dm)
Tuplul reprezintă linia unei tabele de date şi nu are nume.

Cheia R: A1:D1 ... An:Dm

Cheia desemnează un atribut sau un ansamblu de atribute


care are rolul de a identifica o înregistrare dintr-o tabelă.

18
05.11.2017

Operatorii modelului relaţional Algebra relaţională

 Operatori din algebra relaţională (AR); ◦ Operatori de bază:


 Universali: reuniunea, diferenţa, produsul
 Operatori din calculul relaţional (CR). cartezian
 Specifici: proiecţia, selecţia şi joncţiunea
◦ Operatori derivaţi: intersecţia şi diviziunea
◦ Extensii ale algebrei relaţionale standard:
complementarea unei relaţii, spargerea unei relaţii şi
închiderea tranzitivă.

R A1 A2 A3 A4

Proiecţia Proiecţia
Definită asupra unei relaţii R, proiecţia constă din  Ai,……, Am (R)
construirea unei noi relaţii P, în care se regăsesc numai R[Ai,..., Am]
acele atribute din R specificate explicit în cadrul
operaţiei. PROJECT(R, Ai,..., Am)
Implică efectuarea unor tăieturi verticale asupra relaţiei ANGAJATI  Varsta,salariu
R şi care pot avea ca efect apariţia unor tupluri Nume Varsta Salariu Varsta Salariu
duplicate, care se cer a fi eliminate. Ion 25 3000 25 3000
Varsta Salariu
Se trece de la o relaţie de grad n la o relaţie de grad p, Mihai 30 2000 30 2000
25 3000
mai mic decât cel iniţial (p < n), adică de la un spaţiu de Anca 25 3000 25 3000
30 2000
n dimensiuni la unul cu mai puţine dimensiuni, ceea ce Sofia 30 2000 30 2000
explică şi numele de proiecţie. Mircea 30 2000 30 2000

19
05.11.2017

R A1 A2 A3 A4

Exemplu SQL Selecţia

SELECT DISTINCT varsta, salariu Reprezintă operaţia definită asupra unei relaţii R,
care constă din construirea unei relaţii S, cu aceeaşi
FROM angajati; schemă ca R şi a cărei extensie este constituită din
acele tupluri din R care satisfac condiţia menţionată
explicit în cadrul operaţiei.
Implică efectuarea de tăieturi orizontale asupra
relaţiei R, adică eliminarea unor tupluri ale relaţiei.

Selecţia Exemplu SQL


δcondiţie (R)
R [condiţie]
SELECT *
RESTRICT (R, condiţie)
FROM angajati

ANGAJATI WHERE salariu>2000 or nume=‘Mircea’;


Nume Varsta Salariu δ(salariu>2000 or nume=Mircea)
Ion 25 3000 Nume Varsta Salariu
Mihai 30 2000 Ion 25 3000
Anca 25 3000 Anca 25 3000
Sofia 30 2000 Mircea 30 2000
Mircea 30 2000

20
05.11.2017

Produsul cartezian Produsul cartezian


Este o operaţie definită pe două relaţii, R1 şi R2. R1 x R2
Pe baza relaţiilor R1 şi R2 se construieşte o nouă PRODUCT (R1, R2) Angajati x Comenzi
relaţie, R3, a cărei schemă se obţine prin ID Nume NRC Data ID
TIMES (R1, R2)
concatenarea schemelor relaţiilor R1 şi R2 şi a cărei Angajati Comenzi
1 Ion 1 01.01.11 1
extensie cuprinde toate combinaţiile tuplurilor din ID Nume NRC Data ID
1 Ion 2 07.01.11 2
R1 cu cele din R2. 1 Ion 1 01.01.11 1
1 Ion 3 08.01.11 3
1 Ion 4 08.01.11 2
2 Mihai 2 07.01.11 2
1 Ion 5 09.01.11
3 Anca 3 08.01.11 3
2 Mihai 1 01.01.11 1
4 Sofia 4 08.01.11 2
2 Mihai 2 07.01.11 2
5 Mircea 5 09.01.11
…… ……. …… …… ……

Exemplu SQL Joncţiune


SELECT * Reprezintă operaţia definită pe două relaţii, R1 şi R2,
FROM angajati, comenzi; care constă din construirea unei noi relaţii R3, prin
concatenarea unor tupluri din R1 cu tupluri din R2,
pe baza unei condiţii specificate explicit în cadrul
SELECT * operaţiei.

FROM angajati CROSS JOIN comenzi; Extensia relaţiei R3 va conţine combinaţiile acelor
tupluri care satisfac condiţia de concatenare.

21
05.11.2017

Tipuri de joncţiuni Tipuri de joncţiuni


 Internă (inner join)
 De egalitate
 Naturală
 De neegalitate
 Externă (outer join)
 La stânga
 La dreapta
 Completă

Joncţiunea de egalitate şi naturală Joncţiunea de egalitate


Operaţie definită pe două relaţii, R1 şi R2, prin care
R1 ⋈ R2
este construită o nouă relaţie, R3, a cărei schemă
este obţinută prin reuniunea atributelor din
JOIN (R1, R2, condiţie) relaţiile iniţiale;
JOIN (R1, R2, condiţie) = RESTRICT (PRODUCT (R1, Extensia relaţiei R3 conţine tuplurile obţinute prin
concatenarea tuplurilor din R1 cu tuplurile din R2
R2), condiţie) care au aceleaşi valori pentru atributele folosite în
condiţia de joncţiune.

22
05.11.2017

Joncţiunea de egalitate Exemple SQL


Comenzi SELECT *
Angajati
FROM angajati a, comenzi c
WHERE a.id_ang=c.id_ang;

SELECT *
FROM angajati a JOIN comenzi c
ON a.id_ang=c.id_ang;

SELECT *
FROM angajati a JOIN comenzi c
USING (id_Ang);

Joncţiunea naturală Joncţiunea externă


Presupune existenţa unor atribute având aceeaşi Operaţie prin care din două relaţii, R1 şi R2, se
denumire în ambele relaţii obţine o nouă relaţie, R3, prin joncţiunea relaţiilor
iniţiale
SELECT * FROM angajati a NATURAL JOIN comenzi c;
La noua relaţie R3 sunt adăugate şi tuplurile din R1
şi/sau R2 care nu au participat la joncţiune.
Aceste tupluri sunt completate în relaţia R3 cu valori
NULL pentru atributele relaţiei corespondente (R2,
respectiv R1).
◦ R1 ⋈ R2
◦ EXT-JOIN (R1, R2, condiţie)

23
05.11.2017

Joncţiunea la stânga Joncţiunea la dreapta

ACADEMIA DE STUDII ECONOMICE BUCUREŞTI


FACULTATEA DE CIBERNETICĂ, STATISTICĂ ŞI INFORMATICĂ ECONOMICĂ

Joncţiunea completă
BAZE DE DATE

CURSUL 4.
MODELUL DE DATE RELAŢIONAL (continuare)

BUCUREŞTI
2017-2018

Conf.univ.dr. IULIANA BOTHA

24
05.11.2017

Reuniunea Exemplu UNION


Este o operaţie definită pe două relaţii, R1 şi R2,
ambele cu aceeaşi schemă, prin care se obţine o
nouă relaţie R3, cu schema identică cu R1 şi R2, dar
având ca extensie tuplurile din R1 şi R2, luate
împreună o singură dată. Clienti  Angajati
Clienti  Angajati
◦ R1  R2
◦ OR (R1, R2)
◦ APPEND (R1, R2)
◦ UNION (R1, R2)

Exemplu UNION ALL Diferenţa


Este o operaţie definită pe două relaţii, R1 şi R2,
ambele cu aceeaşi schemă, prin care se obţine o
nouă relaţie, R3, cu extensia formată din acele
tupluri ale relaţiei R1 care nu se regăsesc şi în relaţia
Clienti  Angajati R2.

◦ R1 – R2
◦ REMOVE (R1, R2)
◦ MINUS (R1, R2)

25
05.11.2017

Diferenţa Intersecţia
Reprezintă o operaţie definită pe două relaţii, R1 şi
R2 ambele cu aceeaşi schemă, prin care se obţine o
nouă relaţie, R3, cu schema identică cu a relaţiilor
NU! operand şi cu extensia formată din tuplurile din R1
DE CE?
şi R2.
Clienti – Comenzi
Clienti – Comenzi
◦ R1  R2
◦ INTERSECT (R1, R2)
◦ AND (R1, R2)

DA

Intersecţia Alţi operatori


 Diviziunea
 Complementarea
 Spargerea unei relaţii
 Închiderea tranzitivă
Clienti  Comenzi

26
05.11.2017

Calculul relaţional Operatori


 Este o adaptare a calculului cu predicate de ordinul  Conectivele (conectorii):
1 (domeniu al logicii matematice) la domeniul
• Conjuncţia 
bazelor de date relaţionale.
• Disjuncţia 
 Predicatul este o relaţie care se stabileşte între
anumite elemente şi care are drept argumente • Negaţia 
variabile care nu sunt predicate.  Cuantificatorii:
 Acestea pot fi de tip tuplu (valorile sunt dintr-un • Cuantificatorul existenţial 
tuplu al unei tabele) sau domeniu (valorile sunt • Cuantificatorul universal 
dintr-un domeniu al unei tabele). Rezultă astfel:
Calcul relaţional orientat pe tuplu
Calcul relaţional orientat pe domeniu

Restricţiile de integritate Restricţiile de integritate


Restricţiile de integritate, denumite şi reguli de  Restricţii structurale (minimale):
integritate, definesc cerinţele pe care trebuie să le  De unicitate a cheii
satisfacă datele din cadrul bazei de date pentru a  Referenţială
putea fi considerate corecte şi coerente în raport cu  Entităţii
domeniul pe care îl reflectă.
 Restricţii de comportament:
 De domeniu
 Temporare

27
05.11.2017

Restricţia de unicitate a cheii Restricţia de unicitate a cheii


Impune ca într-o relaţie R, care are cheia K, oricare  Cheia primară
ar fi tuplurile t1 şi t2 să fie satisfăcută inegalitatea:  Simplă
t1(K) ≠ t2(K).  Compusă
Această inegalitate semnifică faptul că într-o relaţie  Cheia candidată
nu pot exista două tupluri cu aceeaşi valoare
pentru atributele cheie. CLIENTI

Id_client Cheie primară


Cheia unei relaţii trebuie să fie minimală, în sensul Denumire RAND_COMENZI
că nicio parte a sa nu trebuie să aibă proprietatea CUI Cheie candidată
Id_produs Cheie primară
CNP Cheie candidată
de identificare unică a tuplurilor relaţiei. Capital_social Nr_comanda compusă
Nivel_venit Cantitate
Email Pret

Restricţia referenţială Restricţia entităţii


Un atribut sau un grup de atribute dintr-o relaţie R1 ale Restricţia entităţii reprezintă restricţia de
cărui/căror valori sunt definite pe acelaşi/aceleaşi integritate care impune ca într-o relaţie, anumite
domeniu/domenii ca şi cheia primară a unei alte relaţii, atribute sa fie nenule.
R2 şi care are rolul de a modela asocierea între entităţile CLIENTI COMENZI

reprezentate cu ajutorul relaţiilor R1 şi R2. Id_client Cheie primară Nr_comanda Cheie primară
Denumire Not null Data_comanda Not null
R1 şi R2 nu trebuie să fie neapărat distincte. CUI Cheie candidată Data_livrare
CNP Cheie candidată Modalitate_comanda
CLIENTI Modalitate_livrare
COMENZI Capital_social
Nivel_venit Id_client Cheie externă
Id_client Cheie primară
Nr_comanda Cheie primară Denumire Email Not null RAND_COMENZI
Data_comanda CUI Cheie candidată Id_produs Cheie primară
Data_livrare CNP Cheie candidată Nr_comanda compusă
Modalitate_comanda Capital_social Cantitate Not null
Modalitate_livrare Nivel_venit Pret Not null
Id_client Cheie externă Email

28
05.11.2017

Alte restricţii de integritate Restricţiile de integritate


suportate în SQL-Oracle
NOT NULL
 De domeniu ◦ nu permite valori NULL (nespecificate) în coloanele unei tabele;
 Domeniul corespunzător unui atribut dintr-o UNIQUE
tabelă trebuie să se încadreze între anumite ◦ nu permite valori duplicat în coloanele unei tabele;
valori; PRIMARY KEY
 Temporare ◦ nu permite valori duplicate sau NULL în coloana sau coloanele definite
astfel;
 Valorile anumitor atribute se compară cu nişte FOREIGN KEY
valori temporare (rezultate din calcule etc.). ◦ presupune ca fiecare valoare din coloana sau setul de coloane definit
COMENZI RAND_COMENZI astfel să aibă o valoare corespondentă identică în tabela de legătură,
Nr_comanda Cheie primară Id_produs Cheie primară tabelă în care coloana corespondentă este definită cu restricţia
Data_comanda Not null Nr_comanda compusă UNIQUE sau PRIMARY KEY;
Data_livrare > Data_comanda Cantitate Not null, > 0 CHECK
Modalitate_comanda ‘online’, ‘direct’ Pret Not null, > 0
Modalitate_livrare ‘curier’, ‘ridicare personala’ ◦ elimină valorile care nu satisfac anumite cerinţe (condiţii) logice.
Id_client Cheie externă

Exemplificare SQL-Oracle Exemplificare SQL-Oracle

29
05.11.2017

ACADEMIA DE STUDII ECONOMICE BUCUREŞTI


FACULTATEA DE CIBERNETICĂ, STATISTICĂ ŞI INFORMATICĂ ECONOMICĂ

Exemplificare SQL-Oracle

BAZE DE DATE

CURSUL 5.
BAZE DE DATE RELAŢIONALE

BUCUREŞTI
2017-2018

Conf.univ.dr. IULIANA BOTHA

Definiţie BDR Etape de realizare a unei BDR

O bază de date relaţională (BDR) reprezintă un 1. Analiza de sistem

ansamblu de relaţii (tabele de date) împreună cu 2. Proiectarea bazei de date


3. Implementarea bazei de date
legăturile dintre ele.
4. Punerea în funcţiune şi exploatarea bazei de
date
5. Întreţinerea bazei de date

119 120

30
05.11.2017

Analiza de sistem Analiza structurală


1. Analiză structurală (statică) - analiza componentelor sistemului
Are ca obiectiv evidenţierea componentelor (entităţilor) din
(entităţilor) şi a legăturilor (asocierilor) dintre acestea. Conduce
cadrul sistemului, pentru care urmează să se colecteze şi să
la obţinerea modelului structural (static) al sistemului;
se memoreze date în cadrul bazei de date, precum şi
2. Analiză dinamică (de comportament, temporală) - analiza stărilor evidenţierea legăturilor dintre aceste componente;
sistemului şi a tranziţiilor posibile între aceste stări, în raport de
anumite evenimente. Conduce la obţinerea modelului dinamic al Cea mai utilizată tehnică de analiză structurală este tehnica
sistemului; entitate-asociere (E-R: Entity-Relationship), introdusă de
P.P.S. Chen, în anul 1976
3. Analiză funcţională - analiza cerinţelor informaţionale, respectiv
a transformărilor de date (a tranzacţiilor) din cadrul sistemului.
Conduce la obţinerea modelului funcţional al sistemului
economic;
4. Integrarea modelelor sistemului economic (structural, dinamic şi
funcţional) în scopul corelării şi completării lor.
121 122

Analiza structurală (2) Analiza structurală (3)


a. Identificarea componentelor (entităţilor) din cadrul sistemului economic
Tehnica entitate-asociere permite construirea
modelului structural sub forma unei diagrame entitate- EXEMPLU: activitatea comercială dintr-o organizaţie economică
asociere prin parcurgerea următorilor paşi:
Descrierea entităţilor
a. identificarea componentelor (entităţilor) din cadrul
sistemului economic;
b. identificarea asocierilor dintre entităţi şi calificarea
acestora;
c. identificarea atributelor aferente entităţilor şi a
asocierilor dintre entităţi;
d. stabilirea atributelor de identificare a entităţilor.

123 124

31
05.11.2017

Analiza structurală (4) Analiza structurală (5)


EXEMPLU: activitatea comercială dintr-o organizaţie economică b. Identificarea asocierilor dintre entităţi şi calificarea acestora

Asocierile dintre entităţi pot fi clasificate după mai multe criterii, şi anume:
A.Cardinalitatea asocierii:
1. gradul asocierii (maximele cardinalităţii):
a) asocieri de tip unu la unu;
b) asocieri de tip unu la mulţi;
c) asocieri de tip mulţi la mulţi.

125 126

Analiza structurală (6) Analiza structurală (7)


b. Identificarea asocierilor dintre entităţi şi calificarea acestora b. Identificarea asocierilor dintre entităţi şi calificarea acestora

Asocierile dintre entităţi pot fi clasificate după mai multe criterii, şi anume: Asocierile dintre entităţi pot fi clasificate după mai multe criterii, şi anume:
A.Cardinalitatea asocierii: A.Cardinalitatea asocierii:
2. obligativitatea participării entităţilor la asociere (minimele 3. concomitent după gradul asocierii şi după obligativitatea participării
cardinalităţii): la asociere:
a) asocieri parţiale; a) asocieri parţiale de tip unu la unu;
b) asocieri totale (complete). b) asocieri totale de tip unu la unu;
c) asocieri parţiale de tip unu la mulţi;
d) asocieri totale de tip unu la mulţi;
e) asocieri parţiale de tip mulţi la mulţi;
f) asocieri totale de tip mulţi la mulţi.

127 128

32
05.11.2017

Analiza structurală (8) Identificaţi entităţile şi asocierile!


b. Identificarea asocierilor dintre entităţi şi calificarea acestora  Se doreşte evidenţa clienţilor şi a comenzilor încheiate de
aceştia.
Asocierile dintre entităţi pot fi clasificate după mai multe criterii, şi anume:
 De-a lungul timpului, clientul poate realiza câte comenzi
B.Numărul de entităţi distincte care participă la asociere: doreşte, pentru el sau pentru cunoscuţii săi.
1. asocieri binare (între două entităţi distincte);
2. asocieri recursive (asocieri ale entităţilor cu ele însele); CLIENT COMANDĂ
Identificarea entităţilor:
3. asocieri complexe (între mai mult de două entităţi distincte).
Identificarea asocierilor (obligativitate + cardinalitate):
 Asociere binară
 Un client poate să efectueze una sau mai multe comenzi
 O comandă trebuie să fie plasată de un singur client
efectuează
CLIENT COMANDĂ
este realizată
129 130

Identificaţi entităţile şi asocierile! Analiza structurală (9)


 Se doreşte evidenţa angajaţilor şi a managerilor acestora. b. Identificarea asocierilor dintre entităţi şi calificarea acestora

 Fiecare angajat are un manager, iar un manager poate Asocierile dintre entităţi pot fi clasificate după mai multe criterii, şi anume:
controla mai mulţi angajaţi. C.Semnificaţia asocierii:
1. “este-un” (generalizare);
Identificarea entităţilor: ANGAJAT 2. “este-conţinut-în” (agregare).
Identificarea asocierilor (obligativitate + cardinalitate):
 Asociere recursivă
conduce
 Un angajat poate să fie condus ANGAJAT
de un singur manager
este condus
 Un manager poate conduce
unul sau mai mulţi angajaţi

131 132

33
05.11.2017

Analiza structurală (10) Analiza structurală (11)


EXEMPLU: activitatea comercială dintr-o organizaţie economică c. Identificarea atributelor aferente entităţilor şi a asocierilor între entităţi

Un atribut poate fi:


◦ Atribut compus. Este un atribut constituit din cel puţin două alte atribute.
Valoarea sa este reprezentată de valorile atributelor componente;
◦ Atribut calculat (dedus). Reprezintă un atribut a cărui valoare nu este
cunoscută direct, ci calculată pe baza valorilor altor atribute;
◦ Atribut simplu. Reprezintă un atribut care nu este nici compus şi nici calculat.
Valorile sale sunt valori atomice;
◦ Atribut repetitiv (multivaloare). Este un atribut care, la un moment dat, are
mai multe valori care apar sub forma unei liste de valori.

133 134

Analiza structurală (12) Analiza structurală (13)


EXEMPLU: activitatea comercială dintr-o organizaţie economică
d. Stabilirea atributelor de identificare a entităţilor
Un atribut poate fi considerat de identificare dacă:
◦ oferă o identificare unică a instanţelor unei entităţi;
◦ posedă o semnificaţie;
◦ este uşor de utilizat;
◦ este scurt.

135 136

34
05.11.2017

Analiza structurală (14) Analiza dinamică


EXEMPLU: activitatea comercială dintr-o organizaţie economică

Are drept scop explicarea comportamentului entităţilor


din domeniul economic analizat.
Presupune:
a. identificarea stărilor în care se pot afla componentele
sistemului
b. identificarea evenimentelor care determină trecerea
unei componente dintr-o stare în alta
c. stabilirea succesiunii (fluxului) de evenimente

137 138

Analiza funcţională Proiectarea structurii bazei de date


Are drept scop determinarea transformărilor de date
Constă din următoarele activităţi:
care se produc în cadrul sistemului în scopul satisfacerii
cerinţelor informaţionale aferente acestui sistem. a. proiectarea schemei conceptuale;
Presupune: b. proiectarea schemei externe (logice);
a. identificarea datelor de intrare şi a datelor de ieşire din c. proiectarea schemei interne (fizice, de memorare).
sistem
b. construirea diagramelor de flux prin care sunt reflectate
legăturile procedurale dintre intrări şi ieşiri
c. identificarea restricţiilor şi precizarea criteriilor de
optimizare

139 140

35
05.11.2017

Proiectarea structurii bazei de date Proiectarea structurii bazei de date


a. Proiectarea schemei conceptuale a BDR presupune:
b. Proiectarea schemei externe a BDR presupune:
 stabilirea colecţiilor de date şi definirea detaliată a
 realizarea tabelelor virtuale (views);
conţinutului acestora;
 folosirea mecanismelor de acordare a drepturilor de
 determinarea legăturilor dintre colecţiile de date şi a
acces la BDR.
modului de reprezentare a acestora în cadrul schemei
conceptuale; c. Proiectarea schemei interne a BDR presupune:
 testarea schemei obţinute şi revizuirea acesteia, dacă  stabilirea modului de organizare fizică a datelor;
este cazul.
 stabilirea căilor de acces la acestea;
 realizarea de indecşi şi clustere.

141 142

Proiectarea schemei conceptuale Proiectarea schemei conceptuale


iniţiale a BDR iniţiale a BDR
Schema conceptuală iniţială a BDR se poate obţine în Regulile de mapare sunt următoarele:
două moduri: a. o entitate devine o tabelă, numele tabelei fiind pluralul
numelui entităţii;
A. se realizează maparea entităţilor şi a asocierilor în relaţii.
Este o variantă top-down de utilizare a tehnicii de b. o instanţă devine un tuplu al relaţiei;
normalizare a relaţiilor; c. un atribut devine o coloană. Pentru atributele obligatorii
se vor declara restricţii de tip NOT NULL;
B. se constituie o relaţie unică, aşa numita relaţie d. un identificator primar devine o cheie primară;
universală, din atributele tuturor entităţilor şi asocierilor
e. un identificator secundar devine cheie unică;
- varianta bottom-up.
f. o legătură se transformă într-o coloană pe care se declară
o cheie externă. Dacă participarea entităţii referite este
obligatorie, pe lângă cheie externă se declară şi o
restricţie de tip NOT NULL.
143 144

36
05.11.2017

Proiectarea schemei conceptuale iniţiale a BDR


Reguli de mapare
Etapa de ANALIZĂ Etapa de PROIECTARE
ANGAJATI
DIAGRAMA EA (Entitate-Asociere) BAZA DE DATE RELAŢIONALĂ Marca Cheie primară
Nume Not Null
Prenume Not Null

Entitate Tabelă Data_nasterii Not Null


Telefon
Instanţă Rând Email
Din maparea entităţilor Data_angajarii
Atribut Coloană ANGAJAT şi Salariu Not Null
Comision Not Null
DEPARTAMENT rezultă
Identificator Primar Cheie primară tabelele ANGAJATI şi Id_departament Cheie externă, face legătura cu tabela DEPARTAMENTE
Id_manager Cheie externă, face legătura cu coloana Marca a tabelei, arată care este şeful
DEPARTAMENTE
Identificator Secundar Cheie unică fiecărui angajat

DEPARTAMENTE
Asociere Cheie externă Id_departament Cheie primară
Denumire Not null
Id_manager Cheie externă, face legătura cu coloana Marca a tabelei ANGAJATI, se arată care
este managerul fiecărui departament. Restricţie NOT NULL.

145 146

Studiu de caz
1. Să se construiască diagrama enititate-asociere pentru următorul scenariu.
2. Să se proiecteze schema conceptuală a bazei de date relaţionale.
Studiul de caz tratează gestiunea activităţii unei unităţi hoteliere.
În vederea cazării, un client poate solicita rezervarea uneia sau mai multor camere prin e-mail sau
telefonic. Pentru aceasta furnizează recepţionerului informaţii privind perioada de cazare şi
tipurile de camere solicitate. Clienţii vor beneficia de reduceri dacă rezervă cel puţin 3 camere sau
dacă perioada de cazare depăşeşte 5 zile. Recepţionerul verifică disponibilitatea camerelor şi îl
înştiinţează pe client de acest lucru precum şi de costul estimat al cazării. Dacă nu există camere
disponibile conform solicitării, recepţionerul poate oferi clientului alternative. De asemenea,
clientul poate solicita un discount (suplimentar sau nu), iar recepţionerul va decide fezabilitatea
discountului, fiind asistat obligatoriu de managerul hotelului. În situaţia în care clientul este de
acord cu preţul propus, se va proceda la realizarea rezervării. Pentru clienţii noi, recepţionerul
solicită datele de identificare, pe care le introduce în aplicaţie.
Odată ajuns la hotel, şi dacă a făcut în prealabil o rezervare, clientul va furniza datele de
identificare ale sale şi/sau ale rezervării şi se face cazarea. Dacă nu există o rezervare, se va
verifica disponibilitatea camerelor pentru perioada cerută. Atunci când se găseşte o astfel de
cameră, se face cazarea. La finalul sejurului, recepţionerul întocmeşte o listă cu toate serviciile
solicitate de client şi preţul acestora. Lista trebuie validată de client, după care se întocmeşte
factura finală. Factura poate fi plătită parţial sau integral, prin transfer bancar, numerar sau
folosind un card bancar. Totodată, înainte de a părăsi hotelul, clientul este rugat să completeze un
formular prin care să evalueze serviciile oferite de unitatea hotelieră. 147

37