Documente Academic
Documente Profesional
Documente Cultură
A EFECTUAT: A VERIFICAT:
st. grupei I-1435 profesorul
Cazacliu Cristian V. Bulat
Chişinău 2016
Sarcina
Informațiile despre imobilul și răspunzătorii de auditoare din colegiu sunt stocate într-o bază de date.
2
Introducere
Această bază de date elaborată are scopul de a duce evidența imobilului din colegiu. Cu ajutorul
acestei baze de date se va putea controla mai ușor starea și numărul de imobil din auditoare. Cred că este o
necesitate foarte mare în astfel de bază de date, doarece doar în așa mod se poate gestiona cu auditoarele și
imobilul simplu și ușor.
O bază de date este un ansamblu de date, înregistrate pe un suport accesibil calculatorului, pentru a
satisface simultan cerințele mai multor utilizatori într-un mod selectiv și într-un timp rezonabil.
În ultimii ani, dezvoltarea sistemelor de baze de date reprezintă unul dintre cele mai importante
aspecte în domeniul tehnologiei informaţiei, având un impact decisiv asupra modului de organizare şi
funcţionare a numeroaselor instituţii şi servicii. Acestea sunt companiile de comunicaţie, intreprinderile de
comerţ, serviciile bancare, serviciile de transport, asigurările, universităţile etc. Acestea sunt dependente de
funcţionarea corectă şi neîntreruptă a sistemelor de baze de date.
3
Cuprins
Sarcina..........................................................................................................................2
Introducere...................................................................................................................3
Baza de date.................................................................................................................8
Inventarierea atributelor............................................................................................8
3. Determinarea cîmpurilor.............................................................................15
6. Crearea tabelelor..........................................................................................16
Tipuri de date.............................................................................................................25
4
Concluzie....................................................................................................................27
5
1. Tema
Proiectarea logică a bazei de date
Proiectare logica este procesul de construcție a unui model de informații folosite într-o întreprindere, bazata
pe modelul de date, dar independent de particularizările sistemului de gestiune a bazei de date si a altor
considerente fizice.
Proiectarea logica a bazei de date se divide în trei pasi mari. Primul pas are ca obiectiv,
descompunerea proiectarii sistemului informatic în vederi, care se pot discuta cu utilizatorii sistemului.
Modelul de date astfel creat, se valideaza prin normalizare si prin tranzactii în pasul doi. În final, se
genereaza modelul global al întreprinderii, cars este la rândul lui validat si verificat cu ajutorul utilizatorului
sistemului.
Începem sa identificam tipurile de entitati din toate vederile utilizatorilor. Vom descrie separat
identificarea acestor entitati pentru cele doua vederi.
Urmatorul pas în metodologie este identificarea atributelor. Aceste atribute se identifica în aceeasi
mod ca si entitatiile. Pentru o mai usoara identificare, trebuie sa luam entitatiile si relatiile ra rând si sa ne
punem urmatoarea întrebare: Ce informatii detinem despre aceasta . ? Raspunsul la aceasta întrebare ne va
da atributele cautate.
În acest pas determinam domeniile atributelor. Domeniul unui atribut este nultimea acelor valori, pe care le
poate lua în lucrul de zi cu zi.
Pasul 2. Crearea si validarea modelului logic local
Obiectivul: Crearea unui model logic local bazata pe modelul conceptual al utilizatorilor asupra
întreprinderii si validarea ei prin procesul de normalizare si prin tehnica tranzactiilor cerute.
În acest pas verificam modelul conceptual creat în pasul anterior si eliminam din el structurile care
sunt dificil de realizat într-un SGBD. Daca la sfârsitul acestui proces modelul ete alterat, vom corecta aceste
probleme si ne vom referi în continuare la modelul rezultat, ca fiind modelul logic local. Vom valida
modelul logic prin procesul de normalizare si a tranzactiilor.
7
Daca în modelul de date apar relatii de tipul multe-la-multe (M:N), trebuie descompuse în doua
relatii unu-la-multe (1:M) prin adaugarea unei noi entitati suplimentare.
De exemplu, pot exista mai multe cheltuieli pentru o scara, dar si o cheltuiala (factura) poate sa se
refere la mai multe scari. Deci relatia dintre entitatea Scari si entitatea Cheltuieli este de M:N, ceea de este
evidentiat în figura 6.1.(a).
Eliminarea relatiilor complexe
O relatie complexa este o relatie între mai mult de coua tipuri de entitati. Daca în modelul conceptual
apar relatii complexe, acestea trebuie eliminate. Se pot elimina prin crearea unui nou tip de entitate, care sa
fie în relatie de tipul 1:M cu fiecare tip de entitate din relatia initiala, partea cu M a relatiei fiind spre tipul de
entitate nou creat.
Eliminarea relatiilor recursive
Relatiile recursive sunt niste relatii particulare, prin care un tip de entitate este în relatie cu el însusi.
Daca apare o astfel de relatie în modelul conceptual, ea trebuie eliminata. Eliminarea se poate rezolva prin
crearea unei noi entitati unde sa se evidentieze fiecare entitate care este legata de entitatea din tipul de
entitate initial. În acest caz vom avea o relatie de tipul 1:M între tipul de entitate initial si tipul de entitate
nou creat si o relatie de tipul 1:1 între tipul de entitate nou creat si tipul de entitate initial.
Eliminarea relatiilor cu atribute
Daca în modelul conceptual avem relatie cu atribute, putem descompune aceasta relatie, identificând
un nou tip de entitate în care sa înregistram atributele necesare.
Eliminarea relatiilor redundante
O relatie este redundanta daca se poate ajunge de la un tip de entitate la alt tip de entitate pe mai
multe drumuri. Va amintim ca noi vrem sa ajungem la un model minimal si deci relatiile redundante nu sunt
necesare. Decizia ca o relatie este redundanta trebuie sa fie precedata de o analiza amanuntita a relatiilor
care compun cele doua drumuri dintre cele doua entitati, pentru ca pot aparea situatii, când o relatie este
aparent redundanta, dar în realitate este nevoie de ea.
În finalul acestui pas putem spune ca am eliminat din modelul conceptual acele structuri care sunt
dificil de implementat si deci este mai corect ca în continuare sa ne referim la acest model ca fiind un model
logic local de date.
Pasul 2.2. Crearea de relatii peste modelul logic local
Obiectivul: Crearea de relatii peste modelul logic.
Relatia pe care un tip de entitate o are cu alt tip de entitate este reprezentata prin mecanismul cheie
primara/cheie straina. Cheia straina pentru o entitate este reproducerea cheii primare a altei entitati. Pentru a
decide entitatiile unde vom include copia cheii primare a altei entitati, trebuie înainte sa identificam entitatile
"parinte" si "fiu". Entitatile "parinte" se refera la acele entitati ale caror chei primare se vor copia în entitatile
"fiu".
Pentru descrierea relatiilor vom folosi un limbaj de definire a bazei de date (Database Definition
Language - DDL). În acest limbaj, specificam prima data numele entitatii, urmat de atributele asociate între
paranteze. Dupa aceea identificam cheia primara si toate cheile alternante, precum si/sau cheile straine.
9
Regulile de integritate sunt importante pentru a proteja baza de date împotriva posibilelor
inconsistente. Daca este necesar, putem produce un proiect fizic de baza de date, pentru a putea vedea mai
usor ce reguli sunt necesare.
Necesitatea datelor
Exista atribute care nu pot contine valoarea nula, ci trebuie sa aiba totdeauna o valoare. De
exemplu fiecare cheltuiala înregistrata trebuie sa aiba asociat un furnizor al serviciilor sau al obiectelor ce se
platesc prin acea cheltuiala.
Aceste reguli deja le-am identificat, când am documentat atributele în pasul 1.3.
Reguli asupra domeniului atributelor.
Unele atribute au un domeniu de definitie bine definit. Aceste domenii trebuie respectate. Domeniile
de definitie au fost deja identificate când am documentat domeniile atributelor în pasul 1.2.
Integritatea entitatilor.
Cheia primara a entitatilor nu poate lua valori nule. De exemplu fiecare furnizor trebuie sa aiba un
cod diferit de zero.
Aceste reguli au fost deja identificate, când am documentat cheile primare în pasul 1.5.
Integritatea referintelor
Cheia straina din tipul de entitate "fiu" face ligatura cu o entitate din tipul de entitate "parinte".
Deci, daca cheia straina contine o valoare, ea trebuie neaparat sa se regaseasca si în tipul de entitate
"parinte". De exemplu tipul de entitate Cheltuieli contine cheia straina Cod_furnizor, care se refera la
Furnizori(Cod_furnizor). Daca aceasta cheie nu este nula, atunci trebuie sa gasim un furnizor care sa aiba
acel cod.
Prima întrebare pe care trebuie sa ne-o ponem este: Poate fii cheia straina nula? În cazul exemplului
nostru asta ar însemna ca exista cheltuieli care nu se pratesc nimanui. Aceste cazuri nu sunt admise de lege,
deci nu putem avea valoare nula în cheia straina din tipul de entitate Cheltuieli.
În general daca pariciparea tipului de entitate "fiu" este totala, atunci nu putem avea valoare nula în
cheia straina. În caz contrar putem avea valoare nula.
Regulile întreprinderii.
În final evidentiem acele reguli care sunt date de realitatea ce se va modela în baza de date.
Documentarea tuturor regulilor de integritate.
Trecem toate regulile de integritate în dictionarul de date.
Pasul 2.7. Verificarea modelului logic local cu ajutorul utilizatorului.
Obiectivul: Convingerea ca modelul creat reprezinta în totalitate realitatea care trebuie modelata
în baza de date.
La acest pas modelul local logic este clomplet si este bine documentat. Înainte de a trece la pasul 3,
trebuie verificat modelul, sa fie conform cu realitatea. În cazul în care se gasesc diferente, ne vom reîntoarce
la pasii anteriori si modificam cele necasare.
11
2. Proiectarea bazei de date
2.1. Culegerea datelor
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. De exemplu, se pot
înregistra comenzile de cumpărare într-un registru sau se pot ține informații despre clienți în formulare, într-
un dulap pentru dosare. Colectați aceste documente și treceți în listă fiecare tip de informații afișate (de
exemplu, fiecare casetă completată dintr-un formular). Dacă nu aveți formulare existente, imaginați-vă că
trebuie să proiectați un formular pentru a înregistra informații despre clienți. Ce informații ați dori să puneți
în formular? Ce casete de completat ați crea? Identificați și treceți în listă toate aceste elemente. De
exemplu, să presupunem că în prezent țineți lista de clienți pe fișe indexate. Examinând aceste fișe veți
descoperi că fiecare fișă conține numele, adresa, orașul, statul, codul poștal și numărul de telefon ale unui
client. Fiecare dintre aceste elemente poate reprezenta o coloană din tabel.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. Dacă va utiliza și altcineva baza de date, cereți-i părerea. Lista se poate îmbunătăți ulterior.
Apoi, 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. De exemplu, se poate crea un raport de vânzări pentru un produs, care afișează vânzările în funcție
de regiune sau un raport de rezumare a inventarului, care afișează nivelurile de inventar ale produselor. De
asemenea, se pot genera scrisori formale, care li se vor trimite clienților pentru a îi anunța de evenimente sau
de oferte speciale. Proiectați mintal raportul și imaginați-vă cum ar arăta. Ce informații ați dori să puneți în
raport? Treceți fiecare element în listă. Faceți același lucru pentru scrisoarea formală și pentru orice alt
raport pe care considerați că îl veți crea.
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. De exemplu, să presupunem că le oferiți clienților
oportunitatea de a se abona (sau a se dezabona) la actualizări periodice prin poștă electronică și că doriți să
imprimați o listă a celor care s-au abonat. Pentru a înregistra acele informații, adăugați o coloană “Abonat la
mesaje de poștă electronică” la tabelul pentru clienți. Pentru fiecare client, se poate seta câmpul la Da sau la
Nu.
Necesitatea de a le trimite mesaje de poștă electronică clienților sugerează alt element de înregistrat.
După ce știți că un client dorește să primească mesaje de poștă electronică, va trebui să aflați adresa de poștă
electronică la care să le trimiteți. Așadar, trebuie înregistrată o adresă de poștă electronică pentru fiecare
client.
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. De exemplu, când examinați o scrisoare formală, se poate să
vă vină în minte alte idei. Pentru a include o formulă introductivă corespunzătoare — de exemplu, șirul
"Dl.", "Dna." sau "Dra." cu care începe o formulă de salut, va trebui creat un element pentru introducere. De
asemenea, este mai bine să se înceapă scrisorile cu “Dragă Dl. Georgescu”, decât cu “Dragă Dl. Florin
Georgescu”. Așadar, de obicei este mai bine să se stocheze numele de familie separat de prenume.
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. Pentru a sorta un raport după numele de familie, de exemplu, este util să se stocheze separat
numele de familie ale clienților. În general, pentru a sorta, căuta, celula sau raporta în funcție de un element
informațional, trebuie pus acel element într-un câmp propriu.
12
Tipuri de date
ID Tipul de date NULL/ NOT NULL
Nr_mese int NOT NULL
Nr_scaune int NOT NULL
Nr_tabla int NOT NULL
Nr_computere int NOT NULL
Culoare_mese char(50) NULL
Culoare_scaune char(50) NULL
Firma_Producatoare _mese char(100) NULL
Firma_Producatoare_scaune char(100) NULL
Tabelul nr.1 - Imobilul
13
14
2.2. Proiectarea conceptuală.
Modelul conceptual ER (diagrama Entitatea-Relație)
În faza de proiectare conceptuală a bazelor de date se proiectează schema conceptuală şi schemele
externe ale bazei de date.
Deşi nu este obligatoriu, această fază se poate menţine independenţa de SGBD şi produce un model
de date de nivel înalt, care va fi implementat după transpunerea lui într-un model de date specific. Chiar
dacă proiectanţii pot porni direct cu scheme conceptuale specifice unui anumit SGBD (care se mai numesc şi
scheme logice), este totuşi recomandabil să se realizeze mai întâi schema conceptuală de nivel înalt
independentă de SGBD, deoarece aceasta este o descriere stabilă şi inavuabilă a bazei de date. Alegerea unui
SGBD şi deciziile ulterioare de proiectare se pot schimba fără ca aceasta să se schimbe.
Proiectul conceptual de nivel înalt se realizează pe baza cerinţelor definite în prima etapa de
proiectare şi se reprezintă, în general printr-o diagramă Entitate-Asociere (extinsă).
Proiectarea conceptuala, sau designul conceptual, este acea parte a procesului de design în care se
trece la elaborarea unei solutii de principiu prin:
· identificarea problemelor esentiale, prin abstractizare;
· stabilirea structurii functiilor;
· cautarea celor mai adecvate principii de lucru si a modului de combinare a acestora.
Designul conceptual determina principiul unei solutii.
Această schemă evidentiaza faptul ca faza de conceptie este precedata de o decizie. Scopul acestei decizii
este de a raspunde la o serie de întrebari, pe baza listei de cerinte stabilita în etapa clarificarii obiectivului:
A fost tema clarificata suficient, astfel încât sa permita dezvoltarea unei solutii sub forma unui
proiect?
Mai sunt necesare informatii suplimentare referitoare la tema?
Este posibil ca obiectivele sa fie atinse în conditiile restrictiilor de ordin financiar?
Este cu adevarat necesara etapa de conceptie, sau solutiile cunoscute permit trecerea direct la etapele
de proiectare a formelor si detaliere?
Daca etapa de conceptie este absolut necesara, cum si cu ce amploare trebuie dezvoltata?
Mai concret, etapa de conceptie are drept scop determinarea elementelor de masina, a mecanismelor,
proceselor si configuratiilor, care, combinate într-un anumit mod, pot da nastere unui proiect care sa
raspunda cerintelor formulate. Aceasta este etapa în care inventivitatea si creativitatea sunt stimulate si se
pot manifesta cel mai din plin.
15
De cele mai multe ori, aceasta etapa implica formularea unui model, care poate fi de doua
feluri: analitic sau experimental. Lucrarea de fata pune accentul pe dezvoltarea modelelor analitice bazate pe
efecte si principii fizice.
Un alt aspect deosebit de important în etapa conceptuala este sinteza. Sinteza reprezinta acel proces
prin care elementele conceptului sunt aranjate într-o anumita ordine, calculate si dimensionate în cel mai
potrivit mod posibil. Sinteza este un proces creativ care este prezent în orice proiect, ca si în principalele
etape ale procesului de design.
Faza 3:
Alegerea unui SGBD
16
2.3. Modelul relațional
Modelul relațional ca și orice alt model utilizat în proiectarea logica a bazelor de date eliberează
utilizatorului de cunoaștere detaliilor despre structura fizică și metodele de acces la date. În afară de aceasta,
el are două avantaje suplimentare: e simplu și elegant. Simplitatea sa constă în structurile de date omogene
în formă de relații tabelare. Iar elegența modelului se explică prin temelia sa științifică. El este riguros din
punct de vedere matematic grație faptului că se sprijină pe bine puse la punct teoriile matematica relațiilor și
logca de ordinul unu.
Elementele de bază ale modelului
1. Domeniu
Domeniu – este o mulțime de valori avînd asociat un nume. Un domeniu se poate defini fie prin enumerarea
elementelor sale fie prin specificarea unor caracteristici definitorii ale acestora. Exemplu:
Culori={gri, alb, negru, maro etc.}
Numere={Mulțimea numerelor întregi pozitive din intervalul [0, 100000]}
Trebuie menționat că în șirul de domenii care participă la un produs cartezian unele se poate găsi în mod
repetat.
2. Relația
Relația este o submulțime a unui produs cartezian avînd asociat un nume. Termenul de relație
provide de asemenea din matematica. Un exemplu de relație aparținînd bazei de date Imobil este:
Imobil={ ('14','16','16','1','14','Neagra','Neagra','Mobex','Mobex'),
('19','19','21','2','19','Cafenie','Cafenie','Mobex','Plimob'),
('20','12','10','1','20','Albastra','Albastra','Sortilemn','GP Sofa')}
In fapt deci o relatie se reprezinta o tabela care contine date, fiecare coloana avand asociat un anumit tip de
date, dat de domeniul din care provine.
3. Atribut
Deoarece o relatie are o reprezentare tabelara putem vorbi de ‘coloană a unei relatii’. In mod
obisnuit, intr-o tabela coloanele au un nume.
Atribut este coloană a unei relatii avand asociat un nume.
Pentru tabelul Imobil putem fixa de exemplu următoarele nume de atribute :
id_auditoriul- numărul auditoriului.
Nr_mese, Nr_scaune, Nr_tabla, Nr_computere – cantitatea de imobil enumerat.
Culoare_mese, Culoare_scaune – culoarea meselor și a scaunelor.
Firma_Producatoare_mese, Firma_Producatoare _scaune – firma ce a produs imobilul dat.
17
Imobil
4. Schema tabelei
Continutul unei relatii (vazuta ca o tabela) poate varia in timp: se pot adauga sau sterge linii sau se
pot modifica unele dintre valorile din liniile existente. Ceea ce ramane constanta este structura relatiei:
numele relatiei, numarul si tipul atributelor sale. In terminologia relationala structura unei relatiei este
denumita si schema relatiei.
Schema unui tabel este numele relatiei urmat de lista atributelor sale si (eventual) de domeniul din
care acestea provin.
Exista mai multe modalitati prin care se poate specifica schema unei relatii. In exemplele urmatoare
prezentam cateva dintre acestea cu referire la tabelul Imobil:
Imobil(id_auditoriu, Nr_scaune, Nr_mese, Nr_tabla, Nr_computere, Culoare_mese, Culoare_scaune,
Firma_Producatoare_mese, Firma_Producatoare_scaune)
Imobil(id_auditoriu:19, Nr_scaune:22, Nr_mese:21, Nr_tabla:2, Nr_computere:19,
Culoare_mese:Cafenie, Culoare_scaune:Cafenie, Firma_Producatoare_mese:Mobex,
Firma_Producatoare_scaune:Plimob)
Imobil=id_auditoriu, Nr_scaune, Nr_mese, Nr_tabla, Nr_computere, Culoare_mese,
Culoare_scaune, Firma_Producatoare_mese, Firma_Producatoare_scaune
5. Cheia tabelei
O relatie fiind o multime (de tupluri) nu poate contine elemente duplicat – spre deosebire de exemplu
de un tabel Excel unde putem avea dubluri.
Rezulta ca tuplurile pot fi deosebite intre ele prin valorile aflate pe una sau mai multe coloane din
relatie.
Cheia tabelei este o multime minimala de atribute ale caror valori identifica in mod unic un tuplu al
relatiei respective.
Cheia unei relatii este o caracteristica a schemei acesteia si nu este determinata prin inspectarea
valorilor aflate la un moment dat in relatie.
In tabela Imobil cele trei linii existente pot fi identificate unic de valorile de pe 3 atribute (id_auditoriu,
Nr_scaune, Nr_mese) dar numai id_auditoriu este cheie:
id_auditoriu identifica (prin definitie) in mod unic un produs; rezulta ca multimea de atribute
{ id_auditoriu } este cheie (fiind si minimala prin natura sa}.
Multimea de atribute { id_auditoriu} identifica de asemenea unic fiecare tuplu al relatiei dar nu este
cheie nefiind minimala: prin inlaturarea lui id_auditoriu multimea ramane in continuare cheie.
Multimea de atribute { Nr_scaune } nu este cheie: este posibil ca in tabela Imobil sa avem mai multe
linii cu Nr_scaune. Asa cum am mentionat cheia se determina din semnificatia atributelor relatiei si
nu din valorile la un moment dat.
Din acelasi motiv nici una dintre celelalte multimi de atribute ale relatiei Imobil nu este cheie: fie nu
este minimala (in cazul in care il include pe id_auditoriu) fie nu identifica unic tuplurile relatiei (pot
exista valori duble)
In literatura de specialitate si in sistemele de gestiune a bazelor de date exista trei alte concepte
legate de cheie si care vor fi prezentate in paragrafele urmatoare ale acestui capitol:
Cheie primara;
Cheie straina;
Supercheie.
18
2.4. Proiectarea logică a bazei de date
Baza de date trebuie pentru :
A duce evidența imobilului ;
A facilita administrarea imobilului ;
A facilita procesul de reînoire a auditoarelor .
Domeniul de aplicare a acestei baze de date are o arie largă, deoarece cu ajutorul ei , dacă modificăm
denumirea atribuitelor, se poate de administra la fel imobilul, lucrurile altor întreprinderi.
Prima fază în proiectarea unei baze de date trebuie să fie analiza obiectivului urmărit. Iar atunci cînd
proiectăm o bază de date trebuie să urmărim o serie de pași.
1. Determinarea scopului bazei de date.
Acest lucru va ajuta să stabilesc ce fel de date voi stoca în baza mea de date pe care o voi crea.
Baza de date creată de mine va avea scopul de a duce evidența imobilului din colegiu.
19
8. Popularea bazei de date cum am spus mai sus se face prin intermediul limbajului de manipulare
Insert, introducîndu-se datele necesare conform tabelelor și respectiv cîmpurilor declarate.
9. Imbunătățirea bazei de date.
Analiza bazei de date pentru a găsi eventuale erori. Inițial creez tabele și adaug cîteva
înregistrări de probă. După care văd daca pot obține din tabelele respective rezultate necesare și în
continuare fac modificări dacă este nevoie de ele.
Desigur pentru a parcurge aceste etape mai bine să folosim un maculator pentru că sunt necesare
multe modificări pentru a ajunge la o formă a bazei de date acceptabilă.
Trebuie să ne asigurăm că datele sunt stocate în mod corespunzător în baza de date și că putem
obține toate informațiile și situațiile finale dorite. Este mult mai deficil să facem modificări după ce au fost
introduse toate datele.
10. Inventarierea atributelor.
Sunt următoarele atribute :
1. Numărul de mese, numărul de scaune, numărul de table, numărul de calculatoare, culoarea meselor și
scaunelor pentru a ști cu exactitate cît imobil este în auditoare și ce fel de imobil ;
2. Firma producătoare de mese și scaune, denumirea directorilor de firme ce produc aceste mese și
scaune pentru a ști de unde vine acest imobil.
3. Desigur pentru a dacă merge vorba despre auditorii, atunci trebuie să fie și informații despre ele :
suprafața, etajul, înălțimea auditoriului, numărul de ferestre.
4. Fiecare auditoriu are un răspunzător, aici am introdus și datele sale, pentru a ști ce reprezintă
persoana dată. Deci am introdus: numele, prenumele, vărsta, specialitatea, anul angajării și desigur
cabinetul de care răspunde.
5. La fel am mai introdus numărul de telefon, țara în care se află și strada sediului firmei producătoare
de mese și scaune, acestea vor ajuta în cazul în care va trebui să fie apelată o firmă cutare.
20
2.5. Normalizarea bazei de date
Tabelul Imobilul este tabelul inițial pentru baza de date, astfel se va stabili apariția de anomalii și
redudanțe, aplicînd procesul de normalizare Forma normală 1. Pentru a respecta condițiile FN1 se vor
elimina atributele calculabile și cele repetitive. Deci se vor crea tabelele : Imobilul, Auditoriul,
Raspunzatorul, Firma_producatoare_scaune, Firma_producatoare_mese.
Tabel nenormalizat
Normalizarea tabelului
1. Tabelul Imobilul
2. Tabelul Auditoriul
3. Tabelul Raspunzatorul
21
4. Tabelul Firma_producatoare_scaune
5. Tabelul Firma_producatoare_mese
22
2.6. Schema bazei de date
Schema conceptuală reprezintă o descriere concisă a datelor utilizatorului, incluzând descrierea detaliată a
tipurilor de date, a relaţiilor şi restricţiilor acestora.
Elementele subliniate din schema dată reprezintă cheia primară, iar săgețile leagă
cheile exterioare.
În cazul în care în modelul de date este reprezentată o relaţie cu atribute (relaţie barată), ea trebuie să
fie descompusă pentru a identifica o entitate.
Un atribut cu valori multiple conţine mai multe valori pentru o singură entitate. În cazul când
modelul de date conceptual este reprezentat un atribut cu valori multiple, el trebuie descompus pentru a
identifica o entitate.
O relaţie este redundantă dacă aceeaşi informaţie poate fi obţinută prin intermediul altor relaţii.
Relaţiile redundante nu sunt necesare, acestea trebuie eliminate, fapt care se realizează după ce se analizează
semnificaţia fiecărei relaţii dintre entităţi. In final rezultă o simplificare a modelulului de date conceptual.
Obiectivul acestei etape constă în desenarea unei diagrame Entitate-Relaţie (ER) care să fie o
reprezentare fizică a modelului conceptual al beneficiarului.
23
2.7. Rafinarea proiectării
În baza de date Imobil nu a fost nevoie de rafinare, deoarece de la bun început m-am străduit să fac o
bază de date cît mai logic și corect. În primul rînd am făcut o schiță aparte a bazei de date, iar apoi în final
nu a fost necesitatea de a mai adauga ceva aparte.
Din momentul în care am tabelele, câmpurile și relațiile de care am nevoie, trebuie să creez și să
populez tabelele cu date eșantion și să încerc să lucrez cu informațiile: creând interogări, adăugând
înregistrări noi și așa mai departe. Acest lucru ajută la evidențierea problemelor potențiale — de exemplu,
este posibil să am nevoie să adăugați o coloană pe care am uitat să o inserez în timpul fazei de proiectare,
sau este posibil să am un tabel care să trebuiască separat în două tabele pentru a elimina duplicarea.
Văd dacă se poate utiliza baza de date pentru a obține răspunsurile dorite. Creez schițe neprelucrate
ale formularelor și rapoartelor, și văd dacă vă arată datele pe care le așteptați. Caut dubluri inutile de date și,
dacă le găsesc, modific proiectarea pentru a le elimina.
Pe măsură ce testez baza de date inițială, probabil veți descoperi că se pot face îmbunătățiri. Câteva
lucruri care trebuie verificate:
Ați uitat vreo coloană? Dacă da, apar informațiile în tabelele existente? Dacă informațiile sunt despre
altceva, este posibil să fie nevoie să creați un alt tabel. Creați o coloană pentru fiecare element
informațional care trebuie urmărit. Dacă informațiile nu se poate calcula de pe o altă coloană, probabil
aveți nevoie de o coloană nouă pentru asta.
Sunt inutile unele coloane, pentru că se pot calcula din câmpuri deja existente? Dacă un element
informațional se poate calcula dintr-o altă coloana deja existentă — ca, de exemplu, prețul redus
calculat din prețul de vânzare — este mai bine, în general, să se procedeze așa și să se evite crearea
unei coloane noi.
Introduceți în mod repetat informații dublate în unul din tabele? Dacă da, probabil că trebuie împărțit
tabelul în două tabele între care să existe o relație de tipul unu-la-mai-mulți.
Aveți tabele cu multe câmpuri, un număr limitat de înregistrări și multe câmpuri goale în înregistrările
individuale? Dacă da, gândiți-vă la reproiectarea tabelului astfel încât să aibă mai puține câmpuri și mai
multe înregistrări.
A fost împărțit fiecare element informațional în cele mai mici părți utile? Dacă trebuie efectuate
operații de raportare, sortare, căutare sau calculare pentru un element informațional, puneți acel
element în propria sa coloană.
Conține fiecare coloană date despre subiectul tabelului? Dacă o coloană nu conține informații despre
subiectul tabelului, aceasta aparține unui alt tabel.
Sunt toate relațiile dintre tabele reprezentate prin câmpuri comune sau printr-un al treilea tabel?
Relațiile unu-la-unu și unu-la-mai-mulți necesită coloane comune. Relațiile mai-mulți-la-mai-mulți
necesită un al treilea tabel.
24
3. Alegerea SGBD
Alegerea SGBD-ului este o etapă opțională şi presupune alegerea unui SGBD adecvat pentru
aplicația realizată. Această alegere poate fi făcută în orice moment anterior proiectării logice, cu condiția să
fie disponibile suficiente informații referitoare la cerințele sistemului, cum ar fi performanța sau
constrângerile de securitate şi integritate.
25
4. Proiectarea fizică
Proiectarea fizică reprezintă procesul de descriere a implementării bazei de date pe mediile
secundare de stocare. Sunt descrise structurile de stocare şi metodele de acces utilizate pentru a obţine un
acces eficient la date.
Proiectul fizic al bazei de date efectuează şi o rafinare a modelului logic; acesta transpune modelul
logic într-un sistem relaţional de gestiune a bazelor de date. În această fază este obligatorie examinarea
modului în care utilizatorul accesează baza de date. Se recomandă separarea modelului logic de modelul
fizic astfel încât modificările să poată fi documentate în conformitate cu modelul fizic pentru a corespunde
constrângerilor. În acest fel, modelul logic rămâne independent de tehnologie, ţinând cont doar de cerinţele
specifice domeniului pe care îl modelează.
Acest pas din cadrul procesului de proiectare implică determinarea următoarelor categorii de informaţii:
- datele folosite în mod curent;
- coloanele ce urmează a fi indexate pentru a obţine un acces mai rapid la date;
- spaţiul necesar precum şi cel prevăzut pentru creşterea dimensiunilor bazei de date;
- dacă denormalizarea bazei de date va duce la creşterea performanţelor acesteia;
- cereri de funcţionalitate:
- procesarea secvenţială a tuplurilor;
- tuplurile ce îndeplinesc o anumită condiţie impusă prin intermediul unei valori;
- tuplurile inserate sau eliminate;
- obiective de performanţă:
- evitarea pierderii inutile de spaţiu;
- primirea într-un timp cât mai scurt a răspunsului.
O bază de date relaţională constă din două părţi importante:
- dicţionarul de date care descrie datele;
- fişierele de date ce conţin datele fizice.
Fleming von Halle, în lucrarea sa “Handbook of Relational Database Design”, propune paşii necesari creării
modelului fizic, aşa cum se poate observa din figura 6.19:
D – date; P – proces
O structură de stocare reprezintă o implementare a tabelelor şi coloanelor în cadrul unui sistem specific de
gestiune a bazelor de date. Opţiunile tipice de implementare presupun luarea unor decizii referitoare la:
- transformarea tabelelor în fişiere;
- spaţiul liber;
- transferul tabelelor în bazele de date;
- blocări;
26
- ordinea coloanelor.
Aceste consideraţii pot diferi considerabil de la un sistem de gestiune a bazelor de date la altul.
Pasul Analizarea evenimentelor existente în baza de date este împărţit în şapte subpaşi, după cum urmează:
- revizuirea evenimentelor înlănţuite prin modelul logic;
- alcătuirea unei liste de priorităţi a evenimentelor pentru a înţelege importanţa acestora;
- identificarea regulilor care se aplică celor mai importante evenimente;
- identificarea criteriilor de căutare pe baza cărora se accesează tabelul, în cazul fiecărui eveniment sau
tabel accesat;
- identificarea cerinţelor de sortare pe baza cărora se accesează tabelul, în cazul fiecărui eveniment sau
tabel accesat;
- identificarea coloanelor destinaţie pe baza cărora se accesează tabelul, în cazul fiecărui eveniment sau
tabel accesat;
- estimarea numărului de rânduri căutate raportate la numărul total de rânduri din tabel pe baza cărora se
accesează tabelul, în cazul fiecărui eveniment sau tabel accesat;
O cale de acces reprezintă o procedură logică pe baza căreia un sistem de gestiune a bazelor de date poate
selecta anumite rânduri, poate obţine coloanele cerute, prelucrând acele coloane şi rânduri în maniera
corespunzătoare.
Opţiunile de reglare invizibilă sunt acele opţiuni care sunt transparente utilizatorilor şi programatorilor. În
cele mai multe sisteme de gestiune a bazelor de date opţiunile invizibile pe care le poate regla proiectantul se
referă la scanări, ordinea rândurilor în tabele, indexarea coloanelor.
O structură vizibilă de date este acea structură palpabilă utilizatorilor sau programatorilor. Reglarea unei
structuri vizibile de date constă din modificarea structurii datelor astfel încât acestea s-ar putea să nu mai
corespundă modelului logic. Cele mai obişnuite modalităţi de reglare a structurilor vizibile de date sunt:
- stocarea coloanelor ce reprezintă copii exacte ale altor coloane;
- stocarea coloanelor cu ajutorul cărora se efectuează calcule pe baza unei formule;
- stocarea coloanelor ce se obţin prin deducţie (cu ajutorul unei reguli).
27
5. Tranzacțiile principale ale sistemului
Atunci când se proiectează o bază de date, se cunosc în mare parte şi ce tipuri de aplicaţii se vor
executa. Un aspect important în proiectarea bazelor de date este specificarea caracteristicilor funcţionale ale
acestor aplicaţii cât mai devreme în cursul procesului de proiectare, astfel încât schema bazei de date să
includă toate informaţiile necesare cu privire la aceste aplicaţii. În plus, cunoaşterea importanţei relative a
diferitelor tranzacţii executate de aplicaţiile bazei de date, precum şi a frecvenţei de invocare a acestora,
permite luarea unor decizii în etapa de proiectare fizică a bazei de date.
Una din tehnicile cele mai obisnuite de specificare a tranzactiilor la nivel conceptual si independent
de sistemul de de gestiune este de identifica intrarile si iesirile lor su comportarea functional.Tranzactiile
sunt grupate in trei categorii:tranzactii de interogare,tranzactii de actualizare si tranzactii mixte,care executa
atat interogari cat si actualizari.
Pentru dezvoltarea ulterioara ulterioara in bune conditii a proiectului unui sitem de baze de date,atat
proiectarea schemei conceptual
După implementarea sistemului de baze de date vor mai fi identificate şi implementate noi tranzacţii.
Totuşi, cele mai importante tranzacţii sunt cel mai adesea cunoscute înainte de implementarea sistemului.
Dacă operaţiile de acces la baza de date ale unei tranzacţii sunt numai operaţii de citire, acea tranzacţie se
numeşte tranzacţie de citire (read-only transaction) şi controlul concurenţei unor astfel de tranzacţii este
mult mai simplu.
28
6. Protecția bazei de date
Prin securitatea bazelor de date se intelege protejarea bazelor de date impotriva folosirii neautorizate
a lor si in special a modificarilor si distrugerilor nedorite de date si a citirilor nepermise . Pentru realizarea
securitatii datelor din baza de date se utilizeaza controale tehnice si administrative.
Securitatea este in general asociata cu urmatoarele situatii:
-acces fraudulos la date,
-pierderea confidentialitatii (secretului) datelor,
-pierderea caracterului privat al datelor,
-pierderea integritatii datelor,
-pierderea disponibilitatii datelor
Notiunea de securitate a bazei de date este de obicei asociata cu accesul rauvoitor, pe cand
integritatea se refera la evitarea pierdelor accidentale de consistenta. Adevarul este insa undeva la mijloc.
Pentru protectia bazei de date se pot lua masuri de asigurare a securitatii la mai multe nivele:
-la nivel fizic - locurile in care se afla calculatoarele trebuie protejate de accesul persoanelor
neautorizate;
-la nivel uman - este recomandabil sa se acorde autorizatiile de acces cu multa grija si sa se tina
evidente stricte ale persoanelor autorizate
-la nivel sistem de operare - slabiciunile protectiei la nivel de sistem de operare trebuie eliminate sau
compensate de alte masuri
-la nivel SGBD - sistemul ofera anumite facilitati care sprijina protectia datelor
Este mai dificilă protejarea datelor împotriva accesului răuvoitor, intenţionat.
Nu exista protectie absolut sigura ci doar protectii si masuri de securitate mai eficiente sau mai putin
eficiente.
Protejarea datelor prin codificare (criptare). Deoarece s-ar putea ajunge la date si prin alte
mijloace decat prin intermediul SGBD-ului (de exemplu prin citirea directa a mediului magnetic) se poate
face o protectie prin pastrarea codificata a datelor pe mediul magnetic. Decodificarea datelor se poate face
numai dupa identificarea utilizatorului i.
Acordarea de privilegii folosind comanda GRANT
29
7. Elaborarea proiectului
Elaborarea proiectului constă în executarea următorilor paşi:
Proiectarea BD;
Crearea BD;
Culegerea textului MC Word
Inițial înainte de a efectua baza mea de date am proiectat-o pe foaie și am elaborat un scop anume a
acestei baze, după care au fost selectate datele necesare spre creare.
După aceasta a urmat crearea bazei de date în mediul Microsoft SQL Server Management Studio,
conform condițiilor și datelor effectuate în timpul proiectării. Desigur pe parcursul creării acestei baze de
date au mai fost adăugate unele idei și date.
În final în Microsoft Word am editat un proiect în care sunt enumerați pașii după care a fost creată
baza mea de date. Aici eu povestesc și explic prin ce metode și pași a trecut acesta baza pentru a deveni
astfel. Desigur tot aici am și explicat toate cele trei feluri de proiectare a unei baze de date.
30
8. Descrierea datelor de ieșire
Datele de ieșire constituie rezultate ale operațiilor cu valori din tabele, câmpuri aparte, vederi, tabele
întregi, etc.
31
9. Crearea bazei de date
Crearea bazei de date în mediul SQL se va face prin intermediul comenzii New Database, după
care vom creea în baza dată o interogare nouă cu ajutorul la New Query. Adică tot acest lucru se face prin
instrucțiunile de tranzacție SQL.
32
10.Interogarea bazei de date.
11.
33
Baza de date normalizată
create database Auditoriul – crearea bazei de date cu denumirea „Auditoriul”
use Auditoriul – alegem cu ce bază de date să lucrez
go – se pornește procesul de creare a bazei de date
--Create Imobilul table Crearea tabelului cu denumirea
------------------------- „Imobilul” în care se vor
Create Table Imobilul introduce datele: numărul de mese
( (tipul de date int), numărul de
id_auditoriu char(50) NOT NULL, scaune (tipul de date int), numărul
Nr_mese int NOT NULL, de table (tipul de date int),
numărul de computere (tipul de
Nr_scaune int NOT NULL, date int), culoarea meselor (tipul
Nr_tabla int NOT NULL, de date char), culoarea scaunelor
Nr_computere int NOT NULL, (tipul de date char), firma
Culoare_mese char(50) NULL, producătoare de mese (tipul de
Culoare_scaune char(50) NULL, date char) și firma producătoare de
Firma_Producatoare_mese char(100) NULL, scaune (tipul de date char). NOT
NULL– înregistrările nu pot
Firma_Producatoare_scaune char(100) NULL conține valori nule.
);
--Create Auditoriu1 table
------------------------- Crearea tabelului cu denumirea
Create Table Auditoriul „Auditoriul” în care se vor introduce
( datele:numărul auditoriului (tipul de
id_auditoriu char(50) NOT NULL, date char), suprafața auditoriului în
Suprafata_auditoriu_mp int NOT NULL, metri pătrați (tipul de date int), etajul
(tipul de date int), numărul de ferestre
Etajul int NOT NULL, (tipul de date int), înălțimea auditoriului
Nr_ferestre int NOT NULL, (tipul de date int). NOT NULL–
Inaltimea_m int NOT NULL înregistrările nu pot conține valori nule.
);
--Create Raspunzator table
------------------------- Crearea tabelului cu denumirea
Create Table Raspunzatorul „Raspunzatorul” în care se vor
( introduce datele: numele raspunzătorului
Nume_raspunzator char(50) NOT NULL, (tipul de date char), prenumele
răspunzătorului (tipul de date char),
Prenume_raspunzator char(50) NOT NULL, virsta răspunzătorului (tipul de date int),
Virsta_raspunzator int NOT NULL, specialitatea răspunzătorului (tipul de
Specialitate char(50) NOT NULL, date char), anul angajării a
Anul_angajarii int NOT NULL, răspunzătorului (tipul de date int) și
id_auditoriu char(50) NOT NULL, cabinetul de care va răspunde
); răspunzătorul (tipul de date char). NOT
NULL– înregistrările nu pot conține
--Create Firma_producatoare_scaune table valori nule.
-------------------------
Create Table Firma_producatoare_scaune
(
Denumire char(100) NOT NULL,
Nume_prenume_director char(100) NULL,
34
Crearea tabelului cu denumirea
„Firma_producatoare_scaune” în care se
vor introduce datele: denumire (tipul de date
Telefon_contact int NOT NULL,
char), numele și prenumele directorului (tipul
Sediul_strada_oras char(50) NOT NULL, de date char), telefon de contact (tipul de
Tara char(50) NOT NULL date int), sediul(tipul de date charși țara(tipul
); de date char). NOT NULL– înregistrările nu
--Create Firma_producatoare_mese table pot conține valori nule.
-------------------------
Crearea tabelului cu denumirea
Create Table Firma_producatoare_mese
„Firma_producatoare_mese” în care se vor
( introduce datele: denumire (tipul de date
Denumire char(100) NOT NULL, char), numele și prenumele directorului (tipul
Nume_prenume_director char(100) NOT NULL, de date char), telefon de contact (tipul de
Telefon_contact int NOT NULL, date int), sediul(tipul de date charși țara(tipul
Sediul_strada_oras char(50) NOT NULL, de date char). NOT NULL– înregistrările nu
pot conține valori nule.
Tara char(50) NOT NULL
);
-----------------------------------
--Define primary keys
-----------------------------------
ALTER TABLE Auditoriul WITH NOCHECK ADD CONSTRAINT PK_Auditoriul
PRIMARY KEY CLUSTERED (Nr_auditoriul);
-----------------------------------
--Define foreign keys
-----------------------------------
ALTER TABLE Auditoriul ADD
CONSTRAINT FK_Auditoriu FOREIGN KEY (Nr_auditoriul) REFERENCES
Auditoriul (Nr_auditoriul);
-----------------------------------
--Populate Laborator1 table
-----------------------------------
INSERT INTO Imobilul(Nr_mese, Nr_scaune, Nr_tabla,Nr_computere, Culoare_mese,
Culoare_scaune, Firma_Producatoare_mese,Firma_Producatoare_scaune)
VALUES ('14','16','1','14','Neagra','Neagra','Mobex','Mobex');
-----------------------------------
--Populate Laborator2 table
-----------------------------------
INSERT INTO Imobilul(Nr_mese, Nr_scaune, Nr_tabla,Nr_computere, Culoare_mese,
Culoare_scaune, Firma_Producatoare_mese,Firma_Producatoare_scaune)
35
VALUES ('19','21','2','19','Cafenie','Cafenie','Mobex','Plimob');
-----------------------------------
--Populate Laborator3 table
-----------------------------------
INSERT INTO Imobilul(Nr_mese, Nr_scaune, Nr_tabla,Nr_computere, Culoare_mese,
Culoare_scaune, Firma_Producatoare_mese,Firma_Producatoare_scaune)
VALUES ('20','10','1','20','Albastra','Albastra','Sortilemn','GP Sofa');
-----------------------------------
--Populate Laborator4 table Prin
----------------------------------- intermediul
instrucțiuni-
INSERT INTO Imobilul(Nr_mese, Nr_scaune, Nr_tabla,Nr_computere, Culoare_mese,
lor Insert și
Culoare_scaune, Firma_Producatoare_mese,Firma_Producatoare_scaune) Values se
VALUES ('23','25','1','23','Maro','Maro','S.C. Agache S.R.L.','S.C. Agache S.R.L.');
introduc
--Populate Laborator5 table datele(
----------------------------------- numărul de
INSERT INTO Imobilul(Nr_mese, Nr_scaune, Nr_tabla,Nr_computere, Culoare_mese, mese,
scaune, table
Culoare_scaune, Firma_Producatoare_mese,Firma_Producatoare_scaune)
și
VALUES ('24','26','2','24','Maro','Maro','S.C. Artgranit S.R.L.','S.C. Artgranit S.R.L.');
computere)
--Populate Laborator6 table în tabelul
----------------------------------- „Imobilul”.
INSERT INTO Imobilul(Nr_mese, Nr_scaune, Nr_tabla,Nr_computere, Culoare_mese,
Culoare_scaune, Firma_Producatoare_mese,Firma_Producatoare_scaune)
VALUES ('14','16','1','14','Neagra','Neagra','S.C. Bed & Sofa S.R.L.','S.C. Anteco S.A.');
--Populate Laborator7 table
-----------------------------------
INSERT INTO Imobilul(Nr_mese, Nr_scaune, Nr_tabla,Nr_computere, Culoare_mese,
Culoare_scaune, Firma_Producatoare_mese,Firma_Producatoare_scaune)
VALUES ('10','12','1','10','Alba','Alba','S.C. Amis Impex S.A.','S.C. Adorianis Trans
S.R.L.');
--Populate Laborator8 table
-----------------------------------
INSERT INTO Imobilul(Nr_mese, Nr_scaune, Nr_tabla,Nr_computere, Culoare_mese, Prin
intermediul
Culoare_scaune, Firma_Producatoare_mese,Firma_Producatoare_scaune) instrucțiuni-
VALUES ('13','15','2','13','Gri','Gri','IKEA','IKEA'); lor Insert și
--Populate Laborator9 table Values se
----------------------------------- introduc
INSERT INTO Imobilul(Nr_mese, Nr_scaune, Nr_tabla,Nr_computere, Culoare_mese, datele(
Culoare_scaune, Firma_Producatoare_mese,Firma_Producatoare_scaune) numărul de
mese,
VALUES ('14','17','2','14','Albastra','Albastra','IKEA','IKEA'); scaune,
--Populate Laborator10 table table și
----------------------------------- computere)
INSERT INTO Imobilul(Nr_mese, Nr_scaune, Nr_tabla,Nr_computere, Culoare_mese, în tabelul
Culoare_scaune, Firma_Producatoare_mese,Firma_Producatoare_scaune) „Imobilul”.
VALUES ('20','22','3','20','Neagra','Neagra','Ada Fabrica de Mobila','Aramis Invest');
-----------------------------------
36
--Populate Auditoriu1 table
-----------------------------------
INSERT INTO Auditoriul(Nr_auditoriul, Suprafata_auditoriu_mp,Etajul ,Nr_ferestre,
Inaltimea_mp)
VALUES ('18','30','1','2','3');
INSERT INTO Auditoriul(Nr_auditoriul, Suprafata_auditoriu_mp,Etajul ,Nr_ferestre,
Inaltimea_mp)
VALUES ('19','22','1','3','3');
INSERT INTO Auditoriul(Nr_auditoriul, Suprafata_auditoriu_mp,Etajul ,Nr_ferestre,
Inaltimea_mp)
VALUES ('20','29','1','2','3');
INSERT INTO Auditoriul(Nr_auditoriul, Suprafata_auditoriu_mp,Etajul ,Nr_ferestre,
Prin
Inaltimea_mp) intermediul
VALUES ('24','19','1','2','3'); instrucțiuni-
lor Insert și
INSERT INTO Auditoriul(Nr_auditoriul, Suprafata_auditoriu_mp,Etajul ,Nr_ferestre,
Values se
Inaltimea_mp) introduc
VALUES ('25','30','1','2','3'); datele
INSERT INTO Auditoriul(Nr_auditoriul, Suprafata_auditoriu_mp,Etajul ,Nr_ferestre,
(numărul
Inaltimea_mp) auditoriului,
VALUES ('25 A','25','1','4','3'); suprafața sa
în metri
INSERT INTO Auditoriul(Nr_auditoriul, Suprafata_auditoriu_mp,Etajul ,Nr_ferestre,
pătrați, etajul,
Inaltimea_mp) numărul de
VALUES ('30','27','2','2','5'); ferestre și
INSERT INTO Auditoriul(Nr_auditoriul, Suprafata_auditoriu_mp,Etajul ,Nr_ferestre,
înalțimea
Inaltimea_mp) auditoriului
VALUES ('31','25','2','2','5'); ) în tabelul
„Auditoriul”.
INSERT INTO Auditoriul(Nr_auditoriul, Suprafata_auditoriu_mp,Etajul ,Nr_ferestre,
Inaltimea_mp)
VALUES ('34','30','2','2','5');
INSERT INTO Auditoriul(Nr_auditoriul, Suprafata_auditoriu_mp,Etajul ,Nr_ferestre,
Inaltimea_mp)
VALUES ('34 A','30','2','4','5');
-----------------------------------
--Populate Raspunzatorul table
-----------------------------------
INSERT INTO Raspunzatorul(Nume_raspunzator,
Prenume_raspunzator,Virsta_raspunzator,Specialitate, Anul_angajarii,
Cabinet_raspunzator)
VALUES ('Alexa','Gheorghe','18','Informatica','2010', '18');
INSERT INTO Raspunzatorul(Nume_raspunzator,
Prenume_raspunzator,Virsta_raspunzator,Specialitate, Anul_angajarii,
Cabinet_raspunzator)
VALUES ('Richard','Eduard','20','Administrarea WEB','2016','19');
INSERT INTO Raspunzatorul(Nume_raspunzator,
Prenume_raspunzator,Virsta_raspunzator,Specialitate, Anul_angajarii,
Cabinet_raspunzator)
37
VALUES ('Filipoc','Boris','21','Turism','2014','20');
INSERT INTO Raspunzatorul(Nume_raspunzator,
Prenume_raspunzator,Virsta_raspunzator,Specialitate, Anul_angajarii,
Cabinet_raspunzator)
VALUES ('Margin','Andrei','19','Bazele de date','2013','24');
INSERT INTO Raspunzatorul(Nume_raspunzator,
Prenume_raspunzator,Virsta_raspunzator,Specialitate, Anul_angajarii,
Cabinet_raspunzator) Prin intermediul
instrucțiunilor
VALUES ('Verdes','Ion','18','Informatica','2013','25'); Insert și Values se
INSERT INTO Raspunzatorul(Nume_raspunzator, introduc
Prenume_raspunzator,Virsta_raspunzator,Specialitate, Anul_angajarii, datele
Cabinet_raspunzator) (numele
VALUES ('Belic','Victor','28','Informatica','2012','25 A'); răspunzătorului,
INSERT INTO Raspunzatorul(Nume_raspunzator, prenumele
răspunzătorului,
Prenume_raspunzator,Virsta_raspunzator,Specialitate, Anul_angajarii, virsta
Cabinet_raspunzator) răspunzătorului,
VALUES ('Bitca','Vasile','25','Matematica','2011','30'); specialitatea, anul
INSERT INTO Raspunzatorul(Nume_raspunzator, angajării și
Prenume_raspunzator,Virsta_raspunzator,Specialitate, Anul_angajarii, cabinetul de care
Cabinet_raspunzator) răspunde) în
tabelul
VALUES ('Goncear','Ana','27','Informatica','2013','31'); „Raspunzatorul”.
INSERT INTO Raspunzatorul(Nume_raspunzator,
Prenume_raspunzator,Virsta_raspunzator,Specialitate, Anul_angajarii,
Cabinet_raspunzator)
VALUES ('Chetrean','Boris','18','Turism','2015','34');
INSERT INTO Raspunzatorul(Nume_raspunzator,
Prenume_raspunzator,Virsta_raspunzator,Specialitate, Anul_angajarii,
Cabinet_raspunzator)
VALUES ('Dobrovolschi','Angela','19','Informatica','2009','34 A');
-----------------------------------
--Populate Firma_producatoare_scaune table
-----------------------------------
INSERT INTO Firma_producatoare_scaune(Denumire, Nume_prenume_director,
Telefon_contact, Sediul_strada_oras, Tara)
VALUES('Mobex', 'Cojocaru Ana', '022907621',
'Nicolae Costin 70, Chisinau', 'Republica Moldova');
INSERT INTO Firma_producatoare_scaune(Denumire, Nume_prenume_director,
Telefon_contact, Sediul_strada_oras, Tara) Prin intermediul
VALUES('Plimob', 'Galusca Ion', '079678909', instrucțiunilor
'Stefan Neaga 45, Telenesti', 'Republica Moldova'); Insert și Values se
INSERT INTO Firma_producatoare_scaune(Denumire, Nume_prenume_director,
introduc
Telefon_contact, Sediul_strada_oras, Tara) datele
(denumire de
VALUES('GP Sofa', 'Ginga Vasile', '022345678',
firma, numele și
'Alexandru cel Bun, Orhei', 'Republica Moldova'); prenumele
INSERT INTO Firma_producatoare_scaune(Denumire, Nume_prenume_director,
directorului de
Telefon_contact, Sediul_strada_oras, Tara) firma, telefonul de
contact, sediul,
38
țara) în tabelul
„Firma_producat
-oare_scaune”.
VALUES('S.C. Agache S.R.L.', 'Gutu Eduard', '069540798',
'Stefan cel Mare, Chisinau', 'Republica Moldova');
INSERT INTO Firma_producatoare_scaune(Denumire, Nume_prenume_director,
Telefon_contact, Sediul_strada_oras, Tara)
VALUES('S.C. Artgranit S.R.L.', 'Stati Andrei', '061666999', 'Vasile Lupu 89, Balti',
'Republica Moldova');
INSERT INTO Firma_producatoare_scaune(Denumire, Nume_prenume_director,
Telefon_contact, Sediul_strada_oras, Tara)
VALUES('S.C. Anteco S.A.', 'Cirlig Boris', '077903021', 'Ion Creanga 36, Chisinau',
'Republica Moldova');
INSERT INTO Firma_producatoare_scaune(Denumire, Nume_prenume_director,
Telefon_contact, Sediul_strada_oras, Tara)
VALUES('S.C. Adorianis Trans S.R.L.', 'Indigo Aliona', '090121345', 'Calea Orheiului 1,
Chisinau', 'Republica Moldova');
INSERT INTO Firma_producatoare_scaune(Denumire, Nume_prenume_director,
Telefon_contact, Sediul_strada_oras, Tara)
VALUES('IKEA', 'Ginga Elena', '022345465', 'Sarmizegetusa 12, Chisinau', 'Republica
Moldova');
INSERT INTO Firma_producatoare_scaune(Denumire, Nume_prenume_director,
Telefon_contact, Sediul_strada_oras, Tara)
VALUES('Aramis Invest', 'Voronin Vladimir', '060000000', 'Grenoble 56, Chisinau',
'Republica Moldova');
-----------------------------------
--Populate Firma_producatoare_mese table
-----------------------------------
INSERT INTO Firma_producatoare_mese(Denumire, Nume_prenume_director,
Telefon_contact, Sediul_strada_oras, Tara)
VALUES('Mobex', 'Chetrean Veronica', '023456789',
'Valea pietei 23, Orhei', 'Republica Moldova');
INSERT INTO Firma_producatoare_mese(Denumire, Nume_prenume_director,
Telefon_contact, Sediul_strada_oras, Tara)
VALUES('Sortilemn', 'Untura Ion', '079899065',
'Valea dorului 56, Balti', 'Republica Moldova'); Prin intermediul
INSERT INTO Firma_producatoare_mese(Denumire, Nume_prenume_director, instrucțiunilor
Telefon_contact, Sediul_strada_oras, Tara) Insert și Values se
VALUES('S.C. Agache S.R.L.', 'Gutu Eduard', '069540798', introduc
datele
'Stefan cel Mare, Chisinau', 'Republica Moldova'); (denumire de
INSERT INTO Firma_producatoare_mese(Denumire, Nume_prenume_director, firma, numele și
Telefon_contact, Sediul_strada_oras, Tara) prenumele
VALUES('S.C. Artgranit S.R.L.', 'Stati Andrei', '061666999', directorului de
'Vasile Lupu 89, Balti', 'Republica Moldova'); firma, telefonul de
INSERT INTO Firma_producatoare_mese(Denumire, Nume_prenume_director, contact, sediul,
țara) în tabelul
Telefon_contact, Sediul_strada_oras, Tara) „Firma_producat
VALUES('S.C. Bed & Sofa S.R.L.', 'Andreiciuc Andrei', -oare_scaune”.
'090899097', 'Gheorghe Asachi 39, Chisinau', 'Republica Moldova');
39
INSERT INTO Firma_producatoare_mese(Denumire, Nume_prenume_director,
Telefon_contact, Sediul_strada_oras, Tara)
VALUES('S.C. Amis Impex S.A.', 'Istrati Valerii', '063456789', 'Hincesti 21, Chisinau',
'Republica Moldova');
INSERT INTO Firma_producatoare_mese(Denumire, Nume_prenume_director,
Telefon_contact, Sediul_strada_oras, Tara)
VALUES('IKEA', 'Ginga Elena', '022345465', 'Sarmizegetusa 12, Chisinau', 'Republica
Moldova');
INSERT INTO Firma_producatoare_mese(Denumire, Nume_prenume_director,
Telefon_contact, Sediul_strada_oras, Tara)
VALUES('Ada Fabrica de Mobila', 'Petrov Vladimir', '079765421', 'Valea Trandafirilor
80, Chisinau', 'Republica Moldova');
Prin intermediul comenzii select*from afișăm la ecran datele
select*from Imobilul introduse anterior din tabelul „Imobilul”.
40
Concluzie
Scopul propus pentru această lucrare individuală a fost de a elabora o bază de date
destinată ducerii evidenței imobilului din auditoare.
Elaborarea programului a necesitat diverse modalități pentru crearea bazei cerute în
condiție. Bazele desigur sunt noi pentru mine și mi-a creat uneori unele probleme și erori în
procesul de producere. Dar în același timp mi-a provocat și un interes în elaborarea lor, ceea ce m-a
făcut să mă descurc cu mare plăcere. Pentru a verifica corectitudinea rezultatelor returnate de
calculator am propus valori de testare, iar soluţiile afişate au fost corespunzătoare şi satisfăcătoare.
De data aceasta am întîlnit dificultăţi în îndeplinirea sarcinei, acestea caracterizîndu-se
prin erori,dar în final le-am rezolvat cu mare plăcere şi am învăţat mai bine aceste modalități și
proceduri de rezolvare, ceea ce mă bucură că am putut să mă descurc și cu această etapă.
În cursul formării acestei baze de date în mediul Microsoft SQL Server Management
Studio am acumulat o gamă de informație și cunoștințe. Această lucrarea individuală a fost una
destul de ușoară și clară. Am apelat la toate felurile de izvoarea, la manual, internet și profesor, iar
în final am reușit să rezolv. Mulţumită acestor operații și limbajuri de definire și manipulare a
datelor, personal am aflat mai mult şi am făcut cunoştinţă cu o treaptă mai complexă a programării.
În cadrul lecţiilor este posibilă studierea doar a principiilor generale ale metodicei de
elaborare a bazelor de date şi anumitor aspecte ale lor,însă lucrarea individuală îmi oferă
posibilitatea de a evolua în rolul de elaborator şi organizator al proiectului şi nu în ultimul rînd mă
ajută să-mi reamintesc procedura de lucru în Microsoft Word. Nu în ultimul rînd prin aceste lucrări
individuale cunosc treptat ce înseamnă lucrul de programator.
Desigur mi-a făcut mare plăcere faptul că muncind mult asupra bazei în final mi s-a afişat
tabele efectuate prin intermediul comenzilor Insert și Values, ce m-a motivat şi mi-a dat mai multă
voinţă spre a munci mai departe. Dar aceste programe le-am rezolvat și datorită lecţiilor din timpul
studiului.
În final am făcut o explicaţie la toate acţiunile făcute în această sarcină,pentru a întipări şi
a memora mai bine procedurile şi algoritmul. Sper ca pe viitor să mă descurc mai ușor cu aceste
lucrări și să acumulez din ce în ce mai multă informație.
41