erd si baza de date a unui lant hotelier

Upload: ana-maria

Post on 19-Jul-2015

921 views

Category:

Documents


12 download

TRANSCRIPT

Profesor ndrumtor: Amariei Bogdan

Candidat:

2008

1. 2. 3. 4. 5. 6. 7. 8.

9.

Argument...............................................................................pag 3 Propuneri la nceput de drum............................................pag 4 Descrierea domeniului........................................................pag 5 Descrierea ERD-ului i a modului n care l-am creat...pag 7 Prezentarea tabelelor realizate pe baza ERD-ului.....pag12 Interogri.............................................................................pag24 Cteva elemente de interfa incluse............................pag30 Concluzii ...............................................................................pag33 Ce am realizat din ceea ce mi-am propuspag33 Cum a-i face din nou proiectul dac a-i lua-o de la nceput. pag34 Concluzii la sfrit de drum..pag34 Bibliografie...........................................................................pag34

2

Oriunde ai merge n vacan ai nevoie de un loc elegant i primitor unde s te odihneti aa cum trebuie pentru a reveni la munc cu fore proaspete. mi place s cltoresc foarte mult i de aceea am vrut s vin n ajutorul unei cunostine mai vechi pe care am cunoscut-o n timpul unei cltorii. Am putut observa c acesta deinea mai multe hoteluri ntr-o zon de munte, o zon magnific unde a vrea s-mi petrec toate vacanele. Am ales aceast tem pentru a veni n ajutorul hotelierilor i poate pentru a stimula hotelierii s-i fac o eviden mai bun a muncii pe care o desfoar n hotel. Totodat consider c exist multe hoteluri care ar dori s beneficieze de o aranjare si de o delimitare strict a ceea ce au de fcut. Managerul are posibilitatea de a ine evidena asupra tuturor i, dac ceva nu merge s-l trag de mnec pe cel vinovat i s-i spun: pn aici!. Tema mea se refer la ceea ce trebuie fcut n orice hotel din Romnia, iar dac deii un lan hotelier poi fi sigur c o structurare ca cea pe care o voi prezenta i va scdea stresul de care te plngi!

3

2.

Propuneri la nceput de drum

La nceput de drum cred c este necesar s v spun ceea ce mi-am propus s realizez n acest proiect, rmnnd ca la final s vd dac am realizat ce mi-am propus i ce lucruri am realizat. Obiectivul este identificarea entitilor din modelul conceptual al utilizatorului asupra necesitilor sale. Mai inti trebuie s stabilesc principalele obiective care prezint interes pentru mine, ca mai apoi s identific entitile principale i s stabilesc legturile dintre ele. O modalitate de identificare a entitilor const n examinarea a ceea ce consider eu c m-ar interesa dac a fi manager. Din aceast specificaie se identific elementele de legtur ntre entiti. O modalitate alternativ de identificare a entitilor este de a cuta obiectele care exist pe cont propriu. Uneori, entitile sunt greu de identificat, datorit modului n care sunt prezentate n cadrul specificaiei cerinei celui care le dorete, deoarece se exprim prin analogii sau exemple. Nu este ntotdeauna evident dac un anumit obiect este o entitate, o relaie sau un atribut. n acest proiect a vrea s vd care sunt elementele de legtur ntre entitile hotelului: angajai, clieni, camere, furnizori servicii, etc si apoi s le raportez la ntreg hotelul pentru a veni n ajutorul managerului hotelului. Apoi a vrea s identific atributele fiecrei entiti. Nu pot identifica de la nceput toate entitile, din acest motiv voi fi nevoit s nevoit s le deduc pe parcurs n urmtoarele faze de realizare, de exemplu la normalizare (verificarea respectrii celor trei forme normale). Voi transforma apoi entitile n tabele i voi face interogri pentru a obine ceea ce doresc. Totodat a vrea s vd ci clieni exist ntr-un hotel care vin impreun cu familia i care sunt clienii cei mai frecveni. A vrea s mai aflu ct la sut din clienii care i fac rezervri la hotelul meu renun la rezervare i care sunt cei mai nemulumii clieni.

4

3.

Descrierea domeniului

Apelnd de multe ori la bunul meu prieten ce deine hotelul Brad Argintiu m-am hotrt s-l ajut s-i stocheze ntr-o baz de date informaiile referitoare la hotel n vederea construirii unei aplicaii care si ofere posibilitatea de a crete randamantul afacerii sale. Aplicatia trebuie s-i ofere informaii cu privire la gradul de ocupare a camerelor n funcie de sezon, preferinele clienilor n funcie de dotri, cele mai populare servicii la care apeleaz pe durata ederii n hotel, etc. Hotelul se afl n zona Carpailor Orientali, mai exact i n centrul oraului Braov..Hotelul deinut are 5 stele. Clienii, prin intermediiul unui sistem on-line, trebuie s fie capabili s fac rezervri. n momentul rezervrii vor fi nevoii s pltesc un avans de 10% din contravaloarea camerei (camerelor), iar n cazul neprezentrii vor pierde acest avans. Plata rezervrii se poate efectua prin intermediul unei cri de credit (Visa, MasterCard). n momentul prezentrii la hotel clientului i se vor solicita informaii cu privire la identitatea sa (numa, prenume, CNP, etc). Camerele hotelului pot avea dotri diferite. De exemplu n hotel exist camere care au televizor cu diagonala de 51 cm, dar exist i camere dotate cu televizor cu diagonala de 80 cm. Dotare poate fi considerat i Vedere la munte, nu trebuie s fie neaprat un bun material. Pe lng dotrile camerelor, clienii pot opta i beneficia de o serie de servicii suplimentare (contra cost) cum ar fi: accesul la sala de sport, piscin, turul oraului cu un ghid, room-service, mic dejun, cina, etc. n vederea asigurrii celor mai bune condiii pentru clienii si, managerul hotelului ncearc s satisfac toate cererile clienilor si. Uneori apare situaia n care un client solicit un serviciu pe care hotelul nu l poate oferi cu ajutorul personalului i dotrile sale (de exemplu: o plimbare cu snowmobilul). n acel moment este nevoit s apeleze la

5

serviciile unor furnizor externi (ex. Firma care inchiriaz snowmobiluri i personal) pentru a mulumi clientul. La sfritul sejurului n hotel cienii au posibilitatea de a-i axprima prerea despre calitatea serviciilor de care au beneficiat pe durata ederii. Aceste preri pot fi reclamaii sau laude. n cazul n care un client face o reclamaie, managerul trebuie s fie capabil s identifice angajatul care a furnizat respectivul serviciu pentru a putea lua msurile necesare. De axemplu, dac un client este nemulumit de curenia din camer, persoana care s-a ocupat de curenia camerei respective va fi penelizat. n acelai timp dac un client este foarte mulumit de serviciile oferite, angajatul respectiv va fi recompensat. Managerul hotelului, n funcie de raportul laude/ reclamaii, va fi la sfritul anului recompensat sau penalizat. Dac 15% din clienii hotelului depun reclamaii managerul va fi concediat. Hotelul are un manager, personal de ntreinere/ curenie, buctari, chelneri, recepioniti, etc.

6

4.

Descrierea ERD-ului i a modului n care l-am creat (modelul conceptual)

Baza de date este o colecie organizat de date persistente, pe suport extern, avnd posibilitatea accesrii acestora. Diagrama entitate-relaie (ERD) modeleaz, folosind anumite simboluri grafice i innd cont de anumite reguli, entitile care trebuie reinute n baza de date i relaiile dintre ele. O informaie trebuie stocat o singur dat ntr-un model de date. Un atribut al unei entiti nu trebuie s fie atribut i n alt entitate. De asemenea, definirea entitilor i atributelor lor n diagrama entitaterelaie nu trebuie s depind de limbajul de programare sau de modelul de date utilizat. Diagrama trebuie s cuprind toate informaiile relevante pentru fenomenele concrete pe care s le modelm, s reprezinte logic relaiile dintre ele i s nu conin date care se repet. La alctuirea digramei trebuie identificate i reprezentate entitile (substantive), proprietile (atributele) lor precum i relaiile (verbe) dintre entiti. Pe scurt, ERD-ul este o reprezentare fizic a modelului conceptual al beneficiarului. ncercnd s respect ceea ce nsemn ERD-ul i s-mi expun ct mai bine modelul pe care l am n cap voi ncepe cu identificarea enitilor principale. Consider c clientul, camera, angajatul i hotelul sunt entitile principale. La acestea se adaug entitile observaie,furnizor servicii i factur. Am pus mai nti entitile principele, adic client, camer, angajat i hotel i am ncercat s gsesc pentru fiecare atributele. Dup ce m-am gndit un pic i m-am mai documentat un pic de pe net am ajuns la urmtoarea concluzie: Hotelul are identificatorul unic numr i atributele:etaj, tip_camer, pre, data_nceput, nr_zile, dotare;

7

Angajatul are identificatorul unic id_angajat i atributele: cnp, nume, prenume, adresa, telefon, salar, data_angajrii, studii, limbi strine. Clientul are identificatorul unic id_client, atributele: cnp, nume, prenume i atributele opionale: adresa_rezidenial i telefon; Pentru celelalte entiti mi s-a prut mai uor la nceput, dar pn la urm am ajuns la concluzia c: Furnizorul de servicii are identificatorul unic id_furnizor, atributele: nume, adresa, telefon, pers_contact i atributul opional observaii; Observa ia are identificatorul unic id_client i atibutele: subiect, observaie i data; Factura are identificatorul unic numr i atributele id_client, data, valoare;

Dar totui am impresia c nici mcar nu am nceput ceea ce mi-am propus, plus c mai am nevoie de cteva entiti pentru c clientul meu pare c nu poate face nici o rezervare, plus c managerul nu are nc informaiile alea cu privire la fiecare angajat. Cred c n entitatea angajat ar trebui construite cteva sub-entiti deoarece au proprieti specifice, asta nseamn c ele au valori neregsite la celelalte instane ale entitii. Deci n entitatea Angajat creez sub-entitile: personal curenie- cu atributul varsta, recepionist- cu atributul limbi_strine, manager- cu atributul studii i alii- cu atributul funcia, prin care neleg buctari, chelneri, etc. n entitatea Angajat am pstrat identificatorul unic id_angajat i atributele: cnp, nume, prenume, adresa, telefon, salar, data_angajrii. Am realizat o entitate Fi personal pentru a veni n ajutorul managerului, pe care chiar am leagat-o de sub-entitatea Manager . Entitatea Rezervare evit ca o camer s fie dat n acelai timp mai multor persoane. Ea are identificatorul unic id_rezervare i atributele: cnp, nume, prenume, adresa, telefon, salar, data_angajrii, studii, limbi strine. Bineneles c clienii mei trebuia facturai pentru c altfel a da faliment din prima sptmn. Deci, voi crea entitatea Factur ce are identificatorul unic numr i atributele id_client, data, valoare8

Fie c le place, fie c nu clienii mei trebuie s dea din cnd n cnd cte o observaie referitoare la calitatea serviciilor oferite de hotel. Deci voi crea entitatea Observaie cu identificatorul unic id_client i atibutele: subiect, observaie i data;

9

Pn a ajunge al ERD-ul final am avut nevoie de a face mai multe ERD-uri deoarece nu poti face ceva din prima, trebuie s respeci nite reguli i, pentru a le respecta trebuia s ai o schi, ceva dup care s lucrezi. Picioarele de cioar zboar spre SE sau spre NV i nu n alte direcii. Am eliminat releiile many to many ( M:M ) introducnd entitatea rezervare intre cele doua, rezultnd astfel doua relaii de tip 1:M (unu la mai muli), corespunztoare entitii nou identificate. n final: am unit fornizorul de sevicii, clientul i camera de hotel , acesta avnd mai muli furnizori, clieni i camere am unit clientul de rezervare, de observaie i de factur. Acesta poate face mai multe observatii, poate deine mai multe facturi i i poate face mai multe rezervri. observaia ajunge la manager, care va face o fi personal a fiecrui angajat. recepionistul este cel care face rezervrile i elibereaz facturile. El poate elibera mai multe facturi i face mai multe rezervri. personalul curenie face curat n mai multe camere. Un client poate face o rezervare pentru mai multe camere. i am mai adaugat i cteva entiti: Observaia, care are identificatorul unic id_client i atibutele: subiect, observaie i data; Factura, care are identificatorul unic numr i atributele id_client, data, valoare;

10

11

5.

Prezentarea tabelelor realizate pe baza ERD-ului (modelul fizic)

n planificarea i proiectarea tabelelor e bine s fie avute n vedere cteva aspecte generale. Scopul acestei meu fiind acela de iniiere, voi prezenta doar o parte din ele: a. Am folosit nume sugestive pentru tabele i pentru coloanele lor b. Am ales tipul de date adecvat fiecrui atribut (coloan) c. Am normalizat tabelele d. Trebuie ca la sfrit s definesc coloanele care accept valoarea NULL (adic care pot s nu aib valori) e. Trebuie s creez tabele pentru date i tabele distincte pentru relaii Comanda SQL pentru crearea tabelelor este CREATE TABLE. Tabelele pot fi populate cu date folosind comanda INSERT- o comand DML ( Data Manipulation Language). Prin intermediul ecestei comenzi pot fi adugate noi nregistrri ntr-o tabel. Am ncercat s realizez tabelele pentru hotelul meu.

Tabela ANGAJAT

CREATE TABLE ANGAJAT(Id_angajat VARCHAR2(6), Cnp NUMBER(10), Nume VARCHAR2(10), Prenume VARCHAR2(10), Adresa VARCHAR2(10), Telefon VARCHAR2(10), Salariu NUMBER(10), Data_angajarii VARCHAR2(10), Varsta NUMBER(198) Limbi_straine VARCHAR2(10), Functia VARCHAR2(10);

Dup cum vedei, o comand se ncheie cu ; i poate fi scris pe mai multe linii- pentru claritate.

12

Cum putem ti dac am creat corect o tabel? Sau dac am setat coprect dimensiunile coloanelor? Comanda DESCRIBE afieaz inormaii despre coloanele din tabele. DESCRIBE ANGAJAT; O cheie primar nu poate avea valoarea NULL; adic nu este acceptat adugarea nregistrrii fr a seta o valoare valid pentru atributele care compun cheia primar. Acest gen de protecie implicit este necesar uneori i pentu alte atribute ale tabelei. De exemplu pentru tabela Angajat poate fi acceptat o valoare fr valori pentru Varsta, Limbi_straine, studii i functia, dar o nregistrare cu valoarea NULL pentru atributul id_angajat nu are nici un rost. Pentru a evita o astfel de graeal, la crearea tabelei voi aduga o restricie NOT NULL pentru atributele id_angajat, Data_angajarii, Salariu, Telefon, Adresa, Prenume, Nume, Cnp. CREATE TABLE ANGAJAT( Id_angajat VARCHAR2(6) PRIMARY KEY, Cnp NUMBER(10) NOT NULL, Nume VARCHAR2(10) NOT NULL, Prenume VARCHAR2(10) NOT NULL, Adresa VARCHAR2(10) NOT NULL, Telefon VARCHAR2(10) NOT NULL, Salariu NUMBER(10) NOT NULL, Data_angajarii VARCHAR2(10) NOT NULL, Studii VARCHAR2(45), Varsta NUMBER(198), Limbi_straine VARCHAR2(10), Functia VARCHAR2(10);

Col umn NameID_ANGAJAT

Dat a TypeNUMBER N

Nullabl e-

Defaul t

Primary Key1

13

CNP NUME PRENUME ADRESA TELEFON SALARIU() DATA_ANGAJARII LIMBI_STRAINE STUDII FUNCTIA VARSTA

NUMBER VARCHAR2(4000) VARCHAR2(4000) VARCHAR2(4000) VARCHAR2(4000) NUMBER VARCHAR2(4000) VARCHAR2(4000) VARCHAR2(4000) VARCHAR2(4000) NUMBER

N N N N N N N Y Y Y Y

-

-

Tabelele pot fi populate cu date folosind comanda INSERT- o comand DML (Data Manipulation Language). Prin intermediul acestei comenzi pot fi ad[ugate noi ]nregistrri ]ntr-o tebel. Formatul ei general este: INSERT INTO (,,,) VALUES(,,,); Pentru a vedea efectul acestor comenzi, vom afia coninutul tabelelor: SELECT*FROM Numele tabelei; Din sintaxa comenzii INSERT poate lipsi lista coloanelor, dar, n acest caz, este foarte important oprdinea i tipul valorilor din lista VALUES pentru c atributele (coloanele) vor fi completate cu velori exact n ordinea definirii lor la crearea tabelei. Pentru siguran i claritate este mai bine ca lista atributelor s fie specificat. De acum voi insera cteva valori n tabela ANGAJAT. INSERT INTO ANGAJAT(id_angajat, data_angajarii, salariu, telefon, adresa, prenume, nume, cnp, studii, varsta, limbi_straine, functia ) VALUES(01,1120289071389, Pogonaru, Mihai, Str. Mihai Eminecu 12, Brasov, 0747244957, 2000, 20.06.2000, Academia de tiie Econimice); INSERT INTO ANGAJAT(id_angajat, data_angajarii, salariu, telefon, adresa, prenume, nume, cnp, studii, varsta, limbi_straine, functia )

14

VALUES(02, 2221277077756, Buliga, Ramona, Str. Al. Pcii 22, Miercurea cuic, Harghita, 0747873135, 800, 12.07.2000, Englez / Francez); INSERT INTO ANGAJAT(id_angajat, data_angajarii, salariu, telefon, adresa, prenume, nume, cnp, studii, varsta, limbi_straine, functia ) VALUES(05, 2780222456789 , Drob, Laura, Str. Principal 12, Miercurea Ciuc, Harghita, '0741548798 , 500, 14.05.2004,30); INSERT INTO ANGAJAT(id_angajat, data_angajarii, salariu, telefon, adresa, prenume, nume, cnp, studii, varsta, limbi_straine, functia ) VALUES(07, "1781210907856","Iordache","Mihai","Str. Doi Pomi 163, Brasov","0748724879","700","20.06.2000","Instructor nnot"); INSERT INTO ANGAJAT(id_angajat, data_angajarii, salariu, telefon, adresa, prenume, nume, cnp, studii, varsta, limbi_straine, functia ) VALUES(20, "2780219216789","Rotaru","Valeria","Str. Doi Pomi 10, Brasov","0767891387","1000","12.04.2007","Bucatar");

Tabela CLIENT15

CREATE TABLE CLIENT( Id_client VARCHAR2(6) PRIMARY KEY, Cnp NUMBER(10) NOT NULL, Nume VARCHAR2(10) NOT NULL, Prenume VARCHAR2(10) NOT NULL, Adresa_rezidentiala VARCHAR2(10) NOT NULL, Telefon VARCHAR2(10) NOT NULL;

Col umn NameID_CLIENT CNP NUME PRENUME ADRESA_REZIDENIAL TELEFON

Data TypeNUMBER NUMBER VARCHAR2(40) VARCHAR2(40) VARCHAR2(4000) VARCHAR2(4000) N N N N N Y

Null able-

Default

Pri mary Key1 -

INSERT INTO CLIENT(id_client, cnp, prenume, nume, adresa_rezidentiala, telefon) VALUES(01,"1781216070890","Abalasei","Ioan","Str. Savenilor 27, bl M1, Botosani", "0745342435","0745342435"); INSERT INTO CLIENT (id_client, cnp, prenume, nume, adresa_rezidentiala, telefon) VALUES(02, 1560312071389", "Braham","Matei","Str. George Enescu 27, bl M4, Dorohoi, Botosani"); INSERT INTO CLIENT(id_client, cnp, prenume, nume, adresa_rezidentiala, telefon) VALUES(03, "2720721074513", "Condrea", "Andreea", "Str. Aleea Arcului 29, bl G1, Botosani"); INSERT INTO CLIENT(id_client, cnp, prenume, nume, adresa_rezidentiala, telefon) VALUES(04, "4531113071456", "Atitinei","Mihai","Str. Aleea Scolii1 27, bl F1, Botosani","0715875487");

16

INSERT INTO CLIENT(id_client, cnp, prenume, nume, adresa_rezidentiala, telefon) VALUES(05, "2870812070899","Cristea","Anca","Str. Piata Revolutiei 13, bl N1, Botosani");

Tabela HOTEL

CREATE TABLE HOTEL( Id_camera VARCHAR2(6) PRIMARY KEY, Etaj NUMBER(10) NOT NULL, Tip_camera VARCHAR2(10) NOT NULL, Pret NUMBER(10) NOT NULL, Dotare VARCHAR2(10) NOT NULL;Col umn NameID_CAMERA ETAJ TIP_CAMERA PRET DOTARE

Dat a TypeNUMBER NUMBER VARCHAR2(4000) NUMBER VARCHAR2(4000) N Y Y Y Y

Nullabl e-

Defaul t

Primary Key1 -

INSERT INTO HOTEL(Id_camera, Etaj , Tip_camera , Pret , Dotare) VALUES(1, "1","Camera single","100","Mini-bar, acces internet, telefon, tv cu diagonala de 51 cm, cantar de baie"); INSERT INTO HOTEL(Id_camera, Etaj , Tip_camera , Pret , Dotare) VALUES(2, "1","apartament","150","Mini-bar, acces internet, telefon, tv cu diagonala de 80 cm, cantar de baie"); INSERT INTO HOTEL(Id_camera, Etaj , Tip_camera , Pret , Dotare) VALUES(3, "1","camara single","100","Mini-bar, acces internet, telefon, tv cu diagonala de 51 cm, cantar de baie");

17

INSERT INTO HOTEL(Id_camera, Etaj , Tip_camera , Pret , Dotare) VALUES(4, "1","apartamant","150","Mini-bar, acces internet, telefon, tv cu diagonala de 80 cm, cantar de baie"); INSERT INTO HOTEL(Id_camera, Etaj , Tip_camera , Pret , Dotare) VALUES(8, "2","camera nuptiala","200","Mini-bar, acces internet, telefon, tv cu diagonala de 51 cm, cantar de baie");

Tabela FACTURA

CREATE TABLE FACTURA( Data VARCHAR2(6) PRIMARY KEY, Valoare NUMBER(10) NOT NULL, Id_client VARCHAR2(10) NOT NULL, Numar NUMBER(10) NOT NULL;Col umn NameDATA VALOARE ID_CLIENT NUMAR

Dat a TypeVARCHAR2(4000) NUMBER NUMBER NUMBER Y Y Y Y

Nullabl e-

Defaul t

Primary Key-

INSERT INTO FACTURA(Data, Valoare, Id_client, Numar) VALUES(14.04.2008 ,"200","2","1001"); INSERT INTO FACTURA(Data, Valoare, Id_client, Numar) VALUES(04.05.2008 ,"600","3","1002"); INSERT INTO FACTURA(Data, Valoare, Id_client, Numar) VALUES(28.04.2008 ,"800","4","1003"); INSERT INTO FACTURA(Data, Valoare, Id_client, Numar) VALUES(29.04.2008 ,"200","5","1004");

18

Tabela REZERVARE

CREATE TABLE REZERVARE( Id_rezervare VARCHAR2(6) PRIMARY KEY, Id_camera NUMBER(10) NOT NULL, Id_client VARCHAR2(10) NOT NULL, Data_inceput NUMBER(10) NOT NULL, Nr_zile VERCHAR2(23) NOT NULL;Col umn NameID_REZERVARE ID_CAMERA ID_CLIENT DATA_INCEPUT NR_ZILE

Dat a TypeVARCHAR2(4000) VARCHAR2(4000) VARCHAR2(4000) VARCHAR2(4000) VARCHAR2(4000) N Y Y Y Y

Nullabl e-

Defaul t

Primary Key1 -

INSERT INTO FACTURA(Id_rezervare, Id_camera, Id_client, Data_inceput, Nr_zile) VALUES(1000,"01","001", "23.04.2008","3"); INSERT INTO FACTURA(Id_rezervare, Id_camera, Id_client, Data_inceput, Nr_zile) VALUES(1004, "02", "005", "25.04.2008", "3"); INSERT INTO FACTURA(Id_rezervare, Id_camera, Id_client, Data_inceput, Nr_zile) VALUES(1008,"03","009", "25.04.2008", "3"); INSERT INTO FACTURA(Id_rezervare, Id_camera, Id_client, Data_inceput, Nr_zile)19

VALUES(1010, "04", "011", "22.04.2008", "5"); INSERT INTO FACTURA(Id_rezervare, Id_camera, Id_client, Data_inceput, Nr_zile) VALUES(1013,"01","014","24.04.2008","3");

Tabela OBSERVATIE

CREATE TABLE OBSERVATIE( Id_client VARCHAR2(10) NOT NULL, Subiect VARCHAR2(10) NOT NULL, Observatie VERCHAR2(23) NOT NULL, Data VARCHAR2(10) NOT NULL;Col umn NameID_CLIENT SUBIECT OBSERVATIE DATA

Dat a TypeVARCHAR2(4000) VARCHAR2(4000) VARCHAR2(4000) VARCHAR2(4000) N Y Y Y

Nullabl e-

Defaul t

Primary Key1 -

INSERT INTO OBSERVATIE(Id_client , Subiect, Observatie, Data) VALUES(001,"Lauda","Mi-a placut amabilitatea angajatilor si curatenia m-a impresionat","24.04.2008"); INSERT INTO OBSERVATIE(Id_client , Subiect, Observatie, Data) VALUES(003,"Simpatie","Mi-a placut mult faptul ca toti angajatii poarta uniforma ","13.04.2008"); INSERT INTO OBSERVATIE(Id_client , Subiect, Observatie, Data) VALUES(004,"Lauda","Sunteti cu adevarat niste oameni super de treba, voi mai reveni ","30.04.2008"); INSERT INTO FACTURA(Id_client , Subiect, Observatie, Data) VALUES(005,"Reclamatie","Tratare cu indiferenta de receptionist, cam slab pregatit schimbati-l ","25.04.2008");

20

INSERT INTO OBSERVATIE(Id_client , Subiect, Observatie, Data) VALUES(006,"Lauda","Unde a-ti nvatat sa gatiti asa? Multumiri bucatareselor","25.04.2008");

Tabela FISA_PERSONALA

CREATE TABLE FISA_PERSONALA( Id_angajat VARCHAR2(10) NULL, Nume VARCHAR2(10) NULL, Prenume VERCHAR2(23) NULL, Functia VARCHAR2(10) NULL, Id_client VARCHAR2(24) NOT NULL; Observatie VARCHAR2(10) NOT NULL;Col umn NameID_CLIENT ID_ANGAJAT NUME PRENUME FUNCTIA OBSERVATIE

Dat a TypeVARCHAR2(4000) VARCHAR2(4000) VARCHAR2(4000) VARCHAR2(4000) VARCHAR2(4000) VARCHAR2(4000) N Y Y Y Y Y

Nullabl e-

Defaul t

Primary Key1 -

INSERT INTO FISA_PERSONALA(Id_angajat , Nume, Prenume, Functia, Id_client , Observatie) VALUES("004","Sunteti cu adevarat niste oameni super de treba, voi mai reveni"); INSERT INTO FISA_PERSONALA(Id_angajat , Nume, Prenume, Functia, Id_client , Observatie)

21

VALUES(03,"Ungureanu","Tiberiu","Receptionist","005","Tratare cu indiferenta de receptionist, cam slab pregatit schimbati-l"); INSERT INTO FISA_PERSONALA(Id_angajat , Nume, Prenume, Functia, Id_client , Observatie) VALUES(11,12,"Rotaru, Tudose","Valeria, Radu","Bucatar","006","Unde a-ti nvatat sa gatiti asa? Multumiri bucatareselor); INSERT INTO FISA_PERSONALA(Id_angajat , Nume, Prenume, Functia, Id_client , Observatie) VALUES(10,"Vatavu","Ion","Chelner","008","Invatati-va chelnerii sa serveasca o persoana"); INSERT INTO FISA_PERSONALA(Id_angajat , Nume, Prenume, Functia, Id_client , Observatie) VALUES("","","","009","Multumesc pentru ajutor si pentru faptul ca nu m-ati tratat ca pe un fraier");

Tabela FURNIZOR_SERVICII

CREATE TABLE FURNIZOR_SERVICII( Id_furnizor VARCHAR2(10) NULL, Nume VARCHAR2(10) NULL, Adresa VERCHAR2(23) NULL, Telefon VARCHAR2(10) NULL, Pers_contact VARCHAR2(24) NOT NULL; Observatii VARCHAR2(10) NOT NULL;Col umn NameID_FURNIZOR NUME ADRESA TELEFON PERS_CONTACT OBSERVATII

Dat a TypeVARCHAR2(4000) VARCHAR2(4000) VARCHAR2(4000) VARCHAR2(4000) VARCHAR2(4000) VARCHAR2(4000) N Y Y Y Y Y

Nullabl e-

Defaul t

Primary Key1 -

22

INSERT INTO FURNIZOR_SERVICII(id_furnizor, nume, adresa, telefon, pers_contact, observatii) VALUES(02,"Sport&Pleasure","Str. Bradului 3, Brasov","0742181834","Mihaescu Vasile","Tir sportiv cu pusca cu alice si cu arcul adresata atat celor care au facut stagiul militar cat si celor care nu au facut); INSERT INTO FURNIZOR_SERVICII(id_furnizor, nume, adresa, telefon, pers_contact, observatii) VALUES(03,"Mobiles","Str. Aleea Pinului 7, Brasov","0767564534","Dinu Matache","plimbari in functie de sezon cu ATV-ul sau cu Smowmobilul"); INSERT INTO FURNIZOR_SERVICII(id_furnizor, nume, adresa, telefon, pers_contact, observatii) VALUES(04,"A114U","Str. Hublubar 6, Brasov","0745213287","Rapidu Maricela","Clientii primesc echipement special, precum si pusca de painball cu bilele incluse; INSERT INTO FURNIZOR_SERVICII(id_furnizor, nume, adresa, telefon, pers_contact, observatii) VALUES(05,"SkyAlpine","Str. Satului 132, Brasov","0768787845","Tarnauceanu Codrut","Partii pentru ski si snowboard");

6. Interogri23

Informaiile sunt stocate n baze de date tocmai pentru a putea fi consultate ulterior. Procesul de extragere de informaii din baza de date se numete interogare, iar formularea unei interogri nseamn construirea unei comenzi SELECT. O interogare poate evea ca scop obinearea de informaii din una sau mai multe tabele; deocamdat voi redacta interogri asupra unei singure tabele. Exemple: 1. afiai din tabela ANGAJAT data_angajarii fiecrei persoane SELECT nume, prenume, data_angajarii FROM ANGAJAT;NUMEPogonaru Buliga Drob Ungureanu Tanasele Buliga Iordache Rusu Salinciuc Miron Tudose Rotaru Lefter Mihalache Mocan Munteanu Basescu Ifrim Rotaru Ababei Balinisteanu

PRENUMEMihai Ramona Laura Tiberiu Marian Romica Mihai Ileana Adelin Valeri Virgil Valeria Lucian Lucian Razvan Ionela Stefan Paul Valeria Dorin Evelina

DATA_ANGAJARII20.06.2000 12.07.2000 14.05.2004 01.08.2003 06.06.2005 12.02.2007 20.06.2000 12.07.2000 01.08.2003 07.12.2007 20.06.2000 12.04.2007 12.07.2000 06.06.2005 07.12.2007 20.06.2000 07.12.2007 12.04.2007 12.04.2007 06.06.2005 20.06.2000

24

2. afiai numele clientului i observaia pe care acesta o face SELECT client.nume, client.prenume, observatie.observatie FROM client, observatie WHERE client.id_client=observatie.id_client;NUMEAbalaei Condrea Atitinei Cristea Chiric Chiriac urubaru Georgescu Hanganu Petcu Spetco Burlacu Aburlchiei Plii Plimaru Braham Cojocariu Tnase Ungureanu Tnsele Istrati Bostan

PRENUMEIoan Andreea Mihai Anca Daniel Paula Mihi Paul Mihai Marcela Anca Andrei Mihai Andreea Costel Matei Marian Camelia Andreea Bogdana Marian Drago

OBSERVATIEMi-a plcut amabilitatea angajailor i curenia m-a impresionat Mi-a plcut mult faptul c toi angajaii poart uniform Suntei cu adevrat nite oameni super de treb, voi mai reveni Tratare cu indiferen de recepionist, cam slab pregtit schimbai-l Unde a-i nvat s gtii aa? Mulumiri buctreselor Recepioniti care chiar tiu s-i fac treaba i chiar tiu s comunice cu un om Mulumesc pentru ajutor i pentru faptul c nu m-ai tratat ca pe un fraier Mai avei de nvat din toate punctele de vedere, n special n ceea ce privete servirea Mai dai cu parfum prin camere Ce-i cu atta aprfum vrei s omori lumea? Foarte la mod i n tendine Reparai centrala c am ngheat, nu e aa cald, suntem la munte Fii mai punctuali Mai punei i muzic c e cam monotonie 22.04.2008 mi-a fcut avansuri barmanul Invati-v chelnerii s serveasc o persoan Facei ceva cu apa de la duuri e cam rece pt un om normal Curai piscina Mai splai WC-ul Totul e ok, sunt mulumit de voi, inei-o tot aa

3. afiai pentru fiecare camer id-ul i tipul25

SELECT id_camera, tip_camera FROM HOTEL;ID_CAMERA1 6 7 9 11 12 18 19 21 24 2 3 4 5 8 10 13 14 15 16 17 20 22 23

TIP_CAMERACamera single camera single apartament camera single Camer nupial Camera single Camer nupial Camera single Camera single Camer nupial apartament camara single apartamant camera single camera nuptiala camera single Camera single Camer nupial Camera single Camer nupial Camer nupial Camera single Apartament Camera single

4. afiai id-ul clienilor care au stat 3 zile la hotel SELECT client.nume, client.prenume, rezervare.nr_zile FROM CLIENT, REZERVARE

26

WHERE client.id_client=rezervare.id_client AND rezervare.nr_zile=3 ;NUMEAbalasei Aburlachitei Palimaru Cristea Surubaru Istrati Spetco Pelinescu

PRENUMEIoan Mihai Costel Anca Mihaita Marian Anca Matei 3 3 3 3 3 3 3 3

NR_ZILE

5. afiai id_clien ilor care au venit pe data de 26.04.2008

la hotel SELECT client.nume, client.prenume, rezervare.data_inceput FROM CLIENT, REZERVARE WHERE client.id_client=rezervare.id_client AND data_inceput LIKE '%26.04.2008%';NUMETanasele Georgescu Ungureanu Petcu Spetco Burlacu

PRENUMEBogdana Paul Andreea Marcela Anca Andrei

DATA_INCEPUT26.04.2008 26.04.2008 26.04.2008 26.04.2008 26.04.2008 26.04.2008

6. afiai observaia i numele angajatului creia i este adresat observaia SELECT nume, observatie FROM fisa_personala;NUME-

OBSERVATIESuntei cu adevrat nite oameni super de treb, voi mai reveni

27

Ungureanu Rotaru Tnsele Munteanu Drob Mihalache Munteanu

Tratare cu indiferen de recepionist, cam slab pregtit schimbai-l Unde a-i nvat s gtii aa? Mulumiri buctreselor Recepioniti care chiar tiu s-i fac treaba i chiar tiu s comunice cu un om Invati-v chelnerii s serveasc o persoan Mulumesc pentru ajutor i pentru faptul c nu m-ai tratat ca pe un fraier Facei ceva cu apa de la duuri e cam rece pt un om normal mi-a plcut mult faptul c toi angajaii poart uniform mi-a plcut amabilitatea angajailor i curenia m-a impresionat mi-a fcut avansuri barmanul Mai avei de nvat din toate punctele de vedere, n special n ceea ce privete servirea

7. afiai toate camerele nupiale din hotel SELECT*FROM hotel WHERE Tip_camera LIKE '%Camer nupial%';ID_CAMERA11 18 24 14 16 17 2 3 4 3 3 3

ETAJ

TIP_CAMERACamer nupial Camer nupial Camer nupial Camer nupial Camer nupial Camer nupial

PRET200 200 200 200 200 200

DOTAREMini-bar, acces internet, telefon, tv cu diagonala de 51 cm, cantar de baie Mini-bar, acces internet, telefon, tv cu diagonala de 51 cm, cantar de baie Mini-bar, acces internet, telefon, tv cu diagonala de 51 cm, cantar de baie, cu vedere la munte Mini-bar, acces internet, telefon, tv cu diagonala de 51 cm, cantar de baie Mini-bar, acces internet, telefon, tv cu diagonala de 51 cm, cantar de baie Mini-bar, acces internet, telefon, tv cu diagonala de 51 cm, cantar de baie

8. afiati numele i prenumele clientului,precum i costul facturii SELECT client.nume, client.prenume, factura.valoare FROM client, factura WHERE client.id_client=factura.id_clientNUMEAbalaei Braham Condrea

PRENUMEIoan Matei Andreea

VALOARE300 200 600

28

Atitinei Cristea Chiric Chiriac Cojocariu urubaru Georgescu Hanganu Tnase Ungureanu Tnsele Istrati Petcu Spetco Burlacu Aburlchiei Plii Plimaru Bostan Pelinescu Petrariu Frunz

Mihai Anca Daniel Paula Marian Mihi Paul Mihai Camelia Andreea Bogdana Marian Marcela Anca Andrei Mihai Andreea Costel Drago Matei Marcela Gabriel

800 200 450 750 100 100 600 100 400 600 450 300 800 600 450 100 200 800 800 300 400 100

9. Cati clienti sunt la hotel? SELECT COUNT(*) FROM CLIENT;COUNT(*)25

7. Cteva elemente de interfa incluseScopul aplicaiei este este s realizm o interfa web pentru actualizarea tabelelor i extragerea rezultatului sub o form prietenoas. Din acest motiv nu voi mai crea tabelele, acest lucru l-am fcut anterior.

29

Pentru realizarea acestei interfee va trebui s stabilesc mai nti care sunt tabelele n care se modific cel mai des valorile, aceste tabele vor deveni meniul principal al aplicaiei. Va trebui s deschidem mai nti aplicaia oracle, s intrm n

Aplication Builder i dm denumirea pe care o dorim pentru interfa. n continuare urmm cu strictee paii, alegem tabelele pe care le dorim iar dac dorim s inserm valori trebuie s selectm form&report. La final interfaa va arta astfel.

30

De asemenea putem insera valori cu ajutorul acestei tabele.

31

8. Concluzii

32

a. Ce am realizat din ceea ce mi-am propus Doar la finalul unui proiect poi s-i dai seama de ceea ce ai realizat i, dac ceea ce ai fcut tu coincide cu ceea ce i-ai propus cnd ai pornit n realizarea proiectului. Pentru a fi sigur c respect toate regulile pe care mi le-am pus nainte de a ncepe am urmat cu strictee paii aceia i n mare parte am realizat ceea ce mi-am propus. De ce n mare parte? Deoarece iniial am spus c clienii suznt taxai cu o sum n momentul n care fac acea rezervare, iar n proiect nu am pus n calcul acest lucru deoarece am presupus c toat lumea care face o rezervare o i realizeaz. Pe lng astea nici mcar nu aveam cum s fac ceea ce mi-am propus deoarece cunotinele mele nu au ptruns att de mult acest domeniu, dar sper ca pe viitor s m mai mbuntesc.

b. Cum a-i face din nou proiectul dac a-i lua-o de la nceput. Dac ar fi s ncep din nou proiectul cred c a ncepe mult mai devreme. Adic a vrea s m documentez33

mai mult asupra a ceea ce poate oferi un hotel mare, care are pretenii i dac a putea s sustrag nite informaii reale. Dac dorii s realizai acest tem v sftuiesc s incepei s cutai informaii privitoare la un hotel, pe internet i de ce nu s apelai chier la un specialist, cineva din domeniu, care face acest lucru n fiecare zi. V va fi mult mai uor i v va scuti de nite drumuri.

c. Concluzii la sfrit de drum Cred c aceast tem este mult mai complex dect ceea ce am realizat eu n acest proiect. Eu am ncercat doar s fac o eviden aa cum mi se pare mie mai bine, dar dac ar fi s intru n detaliile hoteliere cred c a complica lucrarea, dar poate pe final voi putea s schimb viziunea mea i s realizez ceva mai coerent i mai amplu.

34

9. Bibliografie

Manual de Informatic,clasa a XII-a/ Autori: Cristina Crna, Sanda Junea, Maria Scripc, Ed. Gimnasium 2007 www.google.com https://iacademy.oracle.com www.yahoo.comwww.oracle.com en.wikipedia.org www.studentie.ro/cursuri_Oracle-50.html - 66k www.anahotels.ro

35