Documente Academic
Documente Profesional
Documente Cultură
A EFECTUAT: A VERIFICAT:
Chişinău 2016
Sarcina
Sa se elaboreze proiectul pentru Baza de Date,,Cazare’’ cu urmatorul continut:
1.Sarcina
2.Introducere(1-2 pag.o tema si se descrie)
3.Proiectarea conceptuala(se descriu toti pasii de proiectare si actiunea fiecaruia
descrisa in proiect model)
4.Schema Bazei de date (manual)
5.Crearea Bazei de Date(se descriu instructiunile de definire DLL si se anexeaza pentru
crearea Bazei de Date)
6.Selectarea Bazei de Date
7.Viziuni
8.Proceduri,functii,tranzactii
2
Cuprins:
Proiectarea Bazei de date 4
Schema BD 4
Elaborarea proiectului 5
Crearea Bazei de date 5
Inserarea Datelor 6
Afisarea tabelelor 7
Rezultatele executiei 7
Crearea tabelelor 7
Modificarea datelor 8
Interogarea Bazei de date 8
Implementarea BD 15
Vederi. 15
Indecşi.............................................................................................................................................16
Triggere............................................................................................................................................17
Concluzie 18
Bibliografie 18
3
Introducere
Am avut de creat o Bază de Date cu tema Cazare care are ca scop ducerea evidentei unui
hotel.Evidenta clientilor din acest hotel cere respectarea urmatoarelor cerinte:
4
Etapa 4. Proiectarea fizică şi implementarea bazei de date relaţionale
Etapa 5. Proiectarea şi implementarea reprezentării fizice
Etapa 6. Proiectarea şi implementarea unui mecanism de securitate
Etapa 7. Verificarea sistemului operaţional
Culegerea datelor se crează un tabel ce conţine tote datele găsite şi de care este necesar a se
afla în BD
1. Adunarea tuturor tipurilor de informații pe care le înregistrați în baza de date, în scopul obţinerii
de informaţiile necesare , documente în scopul primirii de decizii care ar îmbunătăţi
managmentul întreprinderii Pentru a găsi şi organiza informaţiile necesare, începeți cu
informațiile existente.
2. Pe măsură ce pregătiţi lista, nu vă faceți griji dacă nu este perfectă din prima încercare. În
schimb, treceți în listă fiecare element la care vă gândiți.
3. Luaţi în considerare tipurile de rapoarte sau de liste poștale pe care doriți să le obțineți din baza
de date. Proiectarea mentală a rapoartelor și a listelor poștale pe care doriți să le creați vă ajută la
identificarea elementelor de care veți avea nevoie în baza de date. Este logic să se construiască
un prototip al fiecărui raport sau listare de ieșire și să se ia în considerare elementele necesare
pentru a produce raportul.
4. Trebuie să se țină cont de faptul că informațiile trebuie despărțite în cele mai mici părți utile. În
cazul unui nume, pentru ca numele de familie să fie ușor disponibil, se va despărți numele în
două părți — Nume și Prenume.
Proiectul conceptual de nivel înalt se realizeaza pe baza cerintelor definite în prima etapa de
proiectare si se reprezinta, în general printr-o diagrama Entitate-Relaţie (extinsa)
În faza de proiectare logica a unei baze de date se realizeaza schema conceptuala globală şi
schemele conceptuale (vederile) externe pentru sistemul SGBD ales, pornind de la schema
conceptuală si schemele externe de nivel înalt independente de SGBD, proiectate în faza precedenta.
SAU:
Proiectarea logică a bazelor de date este procesul de constituire a unui model al informaţiilor
utilizate în cadrul sistemului informaţional al companiei, bazat pe un anumit model de date, dar
independent de sistemul de gestiune al bazelor de date, precum şi de alte consideraţii de ordin fizic.
Principalele etape ale proiectării logice a bazelor de date cuprind:
- constituirea şi validarea unui model de date logic local pentru fiecare vedere a utilizatorului
- constituirea şi validarea unui model de date logic global
Faţă de cele de mai sus putem spune că activităţile asociate rafinării unui model de date conceptual
pentru a obţine un model de date logic includ:
● eliminarea relaţiilor de tip n:m, eliminarea relaţiilor complexe,
● eliminarea relaţiilor recursive,
● eliminarea relaţiilor cu atribute trazitive ,
● eliminarea atributelor cu valori multiple,
● reexaminarea relaţiilor de tip 1:1 şi
● eliminarea relaţiilor redundante.
În ceea ce priveşte extragerea relaţiilor se vor identifica relaţiile tari şi slabe, relaţiile binare (1:1 şi
1:n), relaţii de tip superclasă/subclasă şi se vor documenta relaţiile şi atributele cheilor străine.
Modelul de date logic poate fi validat prin utilizarea tehnicii de normalizare şi conform tranzacţiilor
pe care trebuie să le accespte acesta.
2.4. Normalizarea bazei de date
6
Chiar daca toate etapele de pana aici au fost parcurse cu maxima atentie, exista un numar de probleme
care pot sa apara in cazul unor operatii de actualizare in baza de date, probleme care risca sa
compromita integritatea datelor. Este vorba despre asa-zisele anomalii de actualizare, datorate
dependentelor functionale nedorite. Evitarea acestor anomalii se face printr-un proces numit
normalizare, avand o fundamentare formala riguroasa.
Prima formă normală presupune că există o singură valoare la fiecare intersecție dintre un rând și o
coloană din tabel, și niciodată o listă de valori. De exemplu, nu poate exista un câmp denumit Preț în
care să plasați mai multe prețuri. Dacă priviți intersecția dintre un rând și o coloană ca pe o celulă,
atunci fiecare celulă poate conține o singură valoare.
A doua formă normală necesită ca fiecare coloană care nu este cheie să depindă complet de cheia
primară, nu doar de o parte a cheii. Această regulă se aplică când se utilizează o cheie primară care
conține mai multe coloane.
A treia formă normală necesită ca fiecare coloană care nu este cheie să depindă de întreaga cheie
primară, dar și ca toate coloanele care nu sunt chei să fie reciproc independente.
Schema BD
Schema conceptuală reprezintă o descriere concisă (Expus pe scurt) a datelor utilizatorului,
incluzând descrierea detaliată a tipurilor de date, a relaţiilor şi restricţiilor acestora.
Anagajati
Id_angajat Nume Prenume Adresa Telefon Salariu Data Varsta Limbi Functia
angajarii straine
7
Clienti
Fisa Personala
Id_angajat Nume Prenume Functia Id_client Observatie
Elaborarea proiectului
● USE nume_db;
Unde "nume_db" este numele bazei de date. Cu aceeasi comanda "USE nume_db" se
schimba si baza de date in care vrem sa lucram.
Unde "tabel" este numele tabelului, "coloana" este numele unei coloane, "tip" este tipul
datelor incluse în coloana, se poate specifica un numar nedefinit de coloane.
În afara tipului de date, intre paranteze, puteti specifica si alte atribute optionale ale unei
coloane:
8
● NOT NULL - Fiecare rând trebuie sa contina o valoare a coloanei asociate; valorile nule nu sunt
permise.
● DEFAULT valoare - Daca nu este data o valoare a coloanei asociate, se va presupune valoarea
specificata.
● PRIMARY KEY - Coloana asociata este cheia primara a tabelului care o contine.
Stergerea unui tabel sau a unei coloane este un act irevocabil, datele fiind definitiv
sterse.
Pentru a sterge un tabel, scrieti urmatoarea comanda:
Unde "tabel" este numele tabelului care va fi modificat, "coloana" este numele coloanei
care va fi adaugata, "tip" este tipul noii coloane, iar "[optiuni]" constituie toate
optiunile dorite, precum PRIMARY KEY.
Inserarea Datelor
insert into
ANGAJAT(Id_angajat,Nume,Prenume,Adresa,Telefon,Salariu,Data_angajarii,Varsta,Limb
i_straine,Functia)
values('111','Cernei','Filip','str.Sarmizegetusa','078454454','3000','2017/10/3',
'45','Rusa','operator');
insert into
ANGAJAT(Id_angajat,Nume,Prenume,Adresa,Telefon,Salariu,Data_angajarii,Varsta,Limb
i_straine,Functia)
values('222','Cernei','Aurelia','str.Sarmizegetusa','078454455','3500','4/10/2017
','20','Rusa','chelnerita')
insert into
ANGAJAT(Id_angajat,Nume,Prenume,Adresa,Telefon,Salariu,Data_angajarii,Varsta,Limb
i_straine,Functia)
values('333','Cernei','Ion','str.Sarmizegetusa','078454454','3600','2008/04/24','
45','Rusa/francza','chelner')
10
VALUES('3', '1','camara single','100','Mini-bar, acces internet, telefon,
tv,baie');
insert into HOTEL(Id_camera,Etaj,Tip_camera,Pret,Dotare)
VALUES('4', '1','apartamant','150','Mini-bar, acces internet, telefon, tv,baie');
insert into HOTEL(Id_camera,Etaj,Tip_camera,Pret,Dotare)
VALUES('8', '2','camera nuptiala','200','buna')
Rezultatele executiei
Crearea tabelelor
Tabelul Angajat
Tabelul clienti
11
Tabelul hotel
Tabelul Fisa_personala
Tabelul hoteluri
Clauza SELECT listeaza coloanele pentru afisare astfel incat este esentiala o Proiectie.
Clauza where este folosita pentru a extrage doar acele înregistrări care îndeplinesc o condiție
specificată.
SELECT*
FROM hotel
WHERE Tip_camera LIKE '%Cameră nupţială%';
1) 2) And
12
Operatorul And afiseaza o inregistrare in cazul in care toate conditiile separate de And sunt
adevarate.
SELECT client.nume, client.prenume, rezervare.nr_zile
FROM CLIENT, REZERVARE
WHERE client.id_client=rezervare.id_client AND rezervare.nr_zile=3 ;
3) Not si combinatii
4) Update
Update se utilizeaza pentru actualizare.
5) Delete
Delete se utilizeaza pentru stergere.
6) Min,Max
Functiile min,max reprezinta functiile care calculeaza valoare minima,respectiv valoarea
maxima.
7) Count,Avg,Sum
Functia COUNT numara cimpurile date,AVG calculeaza media si SUM calculeaza suma.
8) Like
Operatorul LIKE este utilizat într-o clauză WHERE pentru a căuta un model specificat
într-o coloană.
9) IN
10) Between
Operatorul BETWEEN selectează valori într-un anumit interval. Valorile pot fi
numere, text sau date.
11) Aliases
Aliasurile SQL sunt utilizate pentru a da o masă sau o coloană într-un tabel, un nume
temporar.
15) Union
Operatorul UNION este utilizat pentru a combina rezultatele mai multor declaratii SELECT
16) Group By
Declarația GROUP BY este adesea utilizat cu funcții agregate (COUNT, MAX, MIN, USM, AVG) la
grupa rezultatul-set de una sau mai multe coloane..
17) Having
Clauza HAVING a fost adăugat la SQL, deoarece cuvântul cheie WHERE nu a putut fi
utilizat cu funcții agregate.
18) Order by
Order by se utilizeaza pentru a putea ordona rezultatele dupa un cimp anume.
Implementarea BD
Vederi.
14
Setul dinamic:
Abalasei Ioan 01
1000 2008-04-23 3
Braham Matei 02
1004 2008-05-21 3
Condrea Andreea 03
1008 2008-04-05 3
Atitinei Mihai 04
1010 2008-04-21 5
Setul dinamic:
Abalasei Ioan 01
3
Braham Matei 02
3
Condrea Andreea 03
3
Diagrama
15
Indecşi
CREATE INDEX Client
ON client(Nume,Prenume,Patronimic)
Triggere
USE DANA1;
GO
IF EXISTS (SELECT * FROM sys.triggers
WHERE parent_class = 0 AND name = 'safety')
DROP TRIGGER safety
16
ON DATABASE;
GO
CREATE TRIGGER safety
ON DATABASE
FOR DROP_SYNONYM
AS
RAISERROR ('You must disable Trigger "safety" to drop synonyms!',10, 1)
ROLLBACK
GO
DROP TRIGGER safety
ON DATABASE;
GO
SELECT
SELECT TE.*
FROM sys.trigger_events AS TE
JOIN sys.triggers AS T
ON T.object_id = TE.object_id
WHERE T.parent_class = 0
AND T.name = 'safety'
GO
Crearea USER
GO
Concluzie
In baza acestui lucru individual am facut cunostinta cu etapele de proiectare a unei Baze de Date.Mi-
am aplicat in practica cunostintele acumulate la lectia de Asistenta pentru Baze de Date.Am aplicat in
practica nu numai cunostintele de la orele de studiu,ci si informatii de pe internet.In cadrul acestei
lucrari am elaborat o baza de date ce are ca scop evidenta unui hotel.Am folosit instructiunile si
functiile de creare,inserare,selectare,deasemenea am lucrat cu vederile si diagramele.Aceasta lucrare a
fost o incercare pentru mine pentru a-mi testa cunostintele si a intelege mai bine care este scopul
acestei lucrari.
Bibliografie
1) https://ro.wikipedia.org/wiki/Baz%C4%83_de_date
17
2) http://www.db.agepi.md/
3) http://www.scritub.com/stiinta/informatica/baze-de-date/Arhitectura-unei-baze-de-date21246.php
4) http://www.scritub.com/stiinta/informatica/Proiect-de-atestat-Baze-de-dat2436231322.php
5) http://www.supraten.md/ro/index.aspx
6) http://econstruct.md/ro/materiale-de-constructii
7) https://ro.wikipedia.org/wiki/Microsoft_SQL_Server
8) https://www.progress.com/tutorials/ado-net/code-examples-sql-server
18