Upload
adelina-pricope
View
424
Download
14
Embed Size (px)
DESCRIPTION
BDR hotel baza de date pasi
Citation preview
Proiectarea şi implementarea unei baze de date relaţionale destinate gestiunii
informatizate a datelor despre clienţii unui hotel
Bazele de date relaţionale sunt un tip de baze de date în care datele, văzute ca şi
atribute ale entităţilor reale, sunt socate în tabele şi sunt legate între ele prin relaţii. Acest
mod de structurare a datelor, bazat pe legături între date, permite eliminarea redundanţei,
astfel încât stocarea şi, mai ales, modificarea unei informaţii se face într-un singur loc;
din punct de vedere funcţional, această structură permite regăsirea, filtrarea, ordonarea şi
agregarea datelor într-un timp foarte scurt.
În contextul hiper-concurenţei existente în industria ospitalităţii, performanţele
unui hotel sunt condiţionate de modul în care managerul acestuia reuşeşte să integreze
eficient noile tehnologii ale informaţiei şi comunicaţiilor în sistemul de Business
Intelligence.
Am considerat oportună proiectarea unei baze de date relaţionale pentru a
evidenţia avantajele sale în managementul performant al unui hotel. Structura bazei de
date este generată de interconectarea a patru tabele, pe care le-am denumit: „Turişti”,
„Rezervări”, „Camere ocupate” şi „Carduri de loialitate”.
În cadrul tabelului „Turişti” (figura nr. 3), am definit cheia primară „cod turist”,
iar celelalte câmpuri reflectă principalele informaţii referitoare la clienţii unui hotel
(nume, prenume, adresă, oraş, telefon, e-mail), care pot fi valorificate prin intermediul
unor campanii de marketing personalizate; de asemenea, am inclus un câmp „puncte de
loialitate”, care permite o ierarhizare a clienţilor în funcţie de rezervările lor trecute şi
evidenţiază aportul lor la profitul hotelului.
Figura nr. 3 – Câmpurile alocate tabelului „Turişti” din structura bazei de date
relaţionale
Dezvoltarea relaţiilor cu clienţii reprezintă o strategie de succes a unui hotel, iar
cardurile de loialitate constituie instrumentele de fidelizare ale acestora; în acest sens, am
configurat în cadrul bazei de date relaţionale un tabel „Carduri de loialitate”, care
conţine codul fiecărui turist (cheie primară), tipul de card în funcţie de rezervările
anterioare (Silver, Gold şi Platinum”, beneficiile asociate deţinerii acestor carduri şi
perioada lor de valabilitate. (figura nr. 4)
Figura nr. 4 – Câmpurile alocate tabelului „Carduri de loialitate” din structura bazei de
date
Managerii hotelurilor se confruntă cu următoarea problemă: depozitarea şi
gestiunea unui volum mare de date, referitoare la disponibilitatea camerelor, tarifele pe
fiecare tip de cameră şi rezervările turiştilor. Programele de rezervare au fost dezvoltate
ca sisteme interne de control pentru performanţa hotelurilor, fiind utilizate de către
personalul lor de rezervare pentru a monitoriza disponibilitatea locurilor mai eficient.
Tabelul „Rezervări” are alocate următoarele câmpuri: cod rezervare – care
reprezintă cheia primară, numărul camerei, codul turistului, data rezervării, numărul de
zile de cazare şi modalitatea de rezervare. (figura nr. 5) Accesarea unui astfel de tabel
destinat rezervărilor de camere din baza de date relaţională permite reducerea timpului
necesar agenţiilor de turism de a găsi informaţiile solicitate de clienţi, oferind acces
instantaneu la ofertele de preţuri practicate de hoteluri. Modalitatea de rezervare aleasă de
fiecare client (website-ul hotelului, website-uri specializate în rezervări on-line, agenţii de
turism, etc.) furnizează decidenţilor unui hotel informaţii despre preferinţele acestuia
legate de accesibilitatea ofertelor.
Figura nr. 5 – Câmpurile alocate tabelului „Rezervări” din structura bazei de date
În cadrul tabelului „Camere ocupate”, câmpul „număr cameră” este considerat
cheie primară, în timp ce inserarea codului alocat fiecărui turist va permite realizarea
legăturilor dintre tabele. De asemenea, am considerat necesară includerea următoarelor
câmpuri cu informaţii relevante pentru managementul bazei de date: categoria camerelor
(single, double, apartament, lux), tariful practicat de hotel în funcţie de categoria camerei,
precum şi data sosirii respectiv data plecării turiştilor (check-in – check out). (figura nr.
6
Figura nr. 6 – Câmpurile alocate tabelului „Camere ocupate” din structura bazei de
date
Cheile primare setate în cele patru tabele care compun structura bazei de date (cod
turist, cod rezervare, număr cameră) permit realizarea legăturilor dintre tabele, în cadrul
opţiunii Relationships din meniul Tools al SGBD-ului Microsoft Access. (figura nr. 7)
Figura nr. 7 – Editarea legăturilor dintre tabelele bazei de date relaţionale
În momentul proiectării legăturilor dintre tabele, am optat pentru relaţii de tip
„one-to-many”, care sunt cele mai flexibile, deoarece apar atunci când o singură
înregistrare din primul tabel poate fi în relaţie cu o mai multe înregistrări dincel de-al
doilea tabel, dar o singură înregistrare din al doilea tabel este în relaţie numai cu o
singură înregistrare din primul tabel.
Realizarea legăturilor facilitează procesele de structurare a informaţiilor din mai
multe tabele ale bazei de date relaţionale. Spre exemplu, accesând tabelul „Camere
ocupate”, care a fost legat prin cheia primară „Număr cameră” de tabelul „rezervări”,
putem vizualiza pentru fiecare cameră a hotelului, codul rezervării, data rezercării,
numărul de zile de cazare precum şi modalitatea de rezervare, fără a fi necesară
proiectarea şi lansarea în execuţie a unei interogări SQL. (figura nr. 8)
Figura nr. 8 – Afişarea informaţiilor din două tabele în urma realizării legăturilor dintre ele
Cele mai performante instrumente de gestiune a unei baze de date sunt
interogările, care, pe lângă regăsirea datelor în funcţie de criteriile stabilizate de
utilizator, efectuează şi operaţii complexe privind actualizarea şi administrarea bazei de
date.
Limbajul SQL permite o comunicare complexă şi rapidă a utilizatorului cu bazele
de date, în funcţie de cerinţele şi restricţiile acestuia, având în vedere atât aspectele de
definire, interogare, manipulare a datelor, procesare a tranzacţiilor, cât şi caracteristicile
complexe privind integritatea informaţiilor, cursoarele derulante sau joncţiunile externe.
Sistemul de gestiune a bazelor de date ACCESS acceptă utilizarea limbajului de
interogare SQL pentru realizarea interogărilor. Cu toate că existenţa tehnicii grafice QBE
(Query by Example) permite proiectarea facilă a unor interogari în care informaţia
definită pe grila QBE este automat transformată într-o instrucţiune SQL, vom proiecta şi
lansa în execuţie în cadrul bazei de date relaţionale cinci exemple de interogări complexe
utilizând instrucţiuni SQL, care prezintă avantajul major că pot fi utilizate indiferent de
SGBD-ul utilizat.
Prima interogare realizată în cadrul bazei de date a hotelului evidenţiază turiştii
care au rezervat camere prin intermediul website-ul hotelului. Câmpurile care fac obiectul
interogării sunt reprezentate de cod turist, nume şi prenume client din tabelul Turişti şi
modalitate rezervare din tabelul Rezervări. Această interogare compusă a impus inserarea
clauzei INNER JOIN pentru a releva legătura dintre cele două tabele după cheia primară
cod turist. Pentru a scrie interogarea SQL, este necesar ca din meniul View utilizatorul să
opteze pentru modul de vizualizare SQL View. În fereastra care apare se vor tasta
instrucţiunile SQL specifice, respectând sintaxa corespunzătoare; interogarea SQL
Access creată se poate lansa în execuţie în două moduri: prin utilizarea butonului din bara
Query Design sau prin opţiunea Run, din meniul Query. Sintaxa instrucţiunii SQL este
prezentată în figura 9.a, în timp ce rezultatul interogării poate fi vizualizat în figura 9.b.
Figura nr. 9.a – Interogare privind numele turiştilor care au rezervat camere pe website-ul hotelului
Figura nr. 9.b – Rezultatul interogării privind numele turiştilor care au rezervat camere pe website-ul hotelului
A doua interogare pe care am realizat-o în cadrul bazei de date relaţionale se
referă la determinarea veniturilor încasate de hotel pe fiecare cameră ocupată prin
înmulţirea valorilor din câmpurile tarif şi număr zile cazare din tabelele camere ocupate
respectiv rezervări. Clauza INNER JOIN a fost aplicată pentru a pune evidenţa legăturii
dintre cele două tabele, pe baza cheii primare număr cameră. Sintaxa instrucţiunii SQL
specifice acestei interogări este relevată în figura 10.a, în timp ce rezultatul interogării
poate fi vizualizat în figura 10.b.
Figura nr. 10.a – Interogare destinată determinării veniturilor încasate de hotel
Figura nr. 10.b – Rezultatul interogării privind determinarea veniturilor încasate de hotel
A treia interogare are ca obiectiv evidenţierea clienţilor care au primit carduri de
loialitate de tip GOLD din partea departamentului de relaţii cu clienţii al hotelului.
Întrucât între tabelele turişti şi carduri de loialitate nu există o legătură directă prin
intermediul unei chei primare, această interogare a necesitat transformarea tabelului
rezervări într-un pivot, fiind legat atât de tabelul turişti cât şi de tabelul carduri de
loialitate prin cheia primară cod turist. Sintaxa instrucţiunii SQL este prezentată în figura
11.a, în timp ce rezultatul interogării poate fi vizualizat în figura 11.b.
Figura nr. 11.a – Interogare destinată evidenţierii clienţilor hotelului care au primit carduri de loialitate de tip GOLD
Figura nr. 11.b – Rezultatul Interogării destinate evidenţierii clienţilor hotelului care au primit carduri de loialitate de tip GOLD
Bazele de date sunt metodele preferate de stocare a informaţiilor în cazul folosirii
multi-utilizator pe scară largă a resurselor, iar actualizarea informaţiilor reprezintă un
factor esenţial. A patra interogare va avea ca efect actualizarea informaţiilor din tabelul
turişti, cu ajutorul comenzii SQL UPDATE. Presupunem că unul dintre clienţii hotelului
a realizat rezervări în ultima perioadă de timp, fapt care a generat creşterea numărului
punctelor de loialitate la valoarea 300. Pentru a realiza această actualizare, vom utiliza
instrucţiunea SET care va aloca valoarea noului punctaj câmpului puncte loialitate,
ţinând cont de codul clientului. Sintaxa instrucţiunii SQL este prezentată în figura 12.a, în
timp ce rezultatul interogării poate fi vizualizat în figura 12.b.
Figura nr. 12.a –Interogare privind actualizarea punctelor de loialitate acumulate de un client al hotelului
Figura nr. 12.b – Rezultatul interogării privind actualizarea punctelor de loialitate acumulate de un client al hotelului (cod turist —127)
Ultima interogare aplicată bazei de date relaţionale urmăreşte includerea unui
câmp suplimentar în tabelul rezervări, pe care-l vom denumi confirmare rezervare; în
acest scop, vom utiliza clauza SQL ALTER TABLE şi instrucţiunea ADD. Sintaxa
instrucţiunii SQL este prezentată în figura 13.a, în timp ce rezultatul interogării poate fi
vizualizat în figura 13.b.
Figura nr. 13.a –Interogare destinată inserării câmpului confirmare rezervare în tabelul Rezervări
Figura nr. 13.b –Rezultatul interogării destinate inserării câmpului confirmare rezervare în tabelul Rezervări