Sunteți pe pagina 1din 18

INFORMATICĂ*I* IF.01.

Introducere în baze de date

Capitolul IF.01. Introducere în baze de date


Cuvinte-cheie:
Bază de date, server de baze de date, sistem de gestiune
de baze de date, DBMS, Oracle Database Express
Edition, Microsoft SQL Server, MySQL, DB2, tabel,
câmp, schemă, cheie primară, cheie străină, integritate
referențială

IA.01.1. Introducere

Calculatoarele au fost folosite încă din anii '50 pentru stocarea şi procesarea cantităţilor mari de
date. Pentru gestionarea informaţiilor specifice unei activităţi se face de regulă apel la sisteme
informatice. Produsele software din componenţa acestora localizează şi prelucrează datele
conţinute într-un ansamblu de fişiere aflate pe diferite suporturi fizice.
O bază de date este constituită dintr-un ansamblu de informații memorate într-un set de tabele
interconectate.
Deşi orice întreprindere face apel la baze de date pentru păstrarea şi gestionarea informaţiilor,
câteva dintre aplicaţiile acestora sunt deosebit de spectaculoase:
o bazele de date ale liniilor aeriene care sunt accesate simultan din sute de agenţii pentru a
realiza rezervări şi vânzări de locuri pentru date şi zboruri diferite;
o bazele de date ale băncilor care permit realizarea a mii de tranzacţii zilnic;
o bazele de date ale supermagazinelor care sunt accesate atât de la casele de marcaj cât şi de la
echipamentele de inventariere;
o bazele de date ale bibliotecilor care păstrază milioane de titluri şi permit localizarea unei
lucrări folosind diferite criterii (cuvinte cheie, titlu, autori, domeniu).
Pentru realizarea unei aplicaţii care foloseşte baze de date se utilizează o aplicație specializată
denumită sistem de gestiune de baze de date (DBMS – Database Management System). O astfel
de aplicație permite realizarea unor funcții specifice bazelor de date: crearea unei baze de date,
adăugarea de informații, extragerea informațiilor, modificarea și ștergerea acestora.
Pentru realizarea interfeței utilizator a aplicației se poate face apel la un limbaj de programare
general (C++, Java, Visual Basic etc.) sau se pot folosi instrumente de dezvoltare adaptate, integrate
sistemului de gestiune de baze de date folosit.
Cele mai utilizate sisteme de baze de date sunt astăzi ORACLE, produs de Oracle Co., Microsoft
SQL Server MySQL (dezvoltat tot de Oracle Co.) și DB2, dezvoltat de IBM.
Oracle Database Express Edition (prescurtat Oracle XE) este o versiune gratuită a serverului
Oracle destinată instruirii dar și creării unor baze de date de dimensiuni mici sau medii. Ca și
versiunea normală, Oracle XE integrează aplicaţia destinată dezvoltării unei interfeţe sub forma
unui ansamblu de pagini .html denumit Oracle Application Express, ca alternativă la dezvoltarea
interfeței utilizator folosind limbajele menționate.

-4-
INFORMATICĂ*I* IF.01. Introducere în baze de date

În cadrul cursului se va folosi de altfel în special această aplicație, spre final prezentându-se însă
succint și soluția MySQL. Pentru realizarea aplicațiilor se vor folosi Oracle Application Express,
respectiv limbajele Java sau PHP. Aplicaţiile astfel construite prezintă trei avantaje majore:
o software-ul necesar este gratuit;
o aplicaţia astfel realizată poate fi folosită pe diferite platforme: Windows, Linux, Unix,
Solaris etc.
o decuplează partea aplicaţiei destinată stocării datelor (server de b.d.) de partea care le
accesează (interfaţa).

-5-
INFORMATICĂ*I* IF.01. Introducere în baze de date

IA.01.2 Noțiuni fundamentale


Într-o bază de date relaţională datele sunt păstrate în fişiere de date. Un fişier de date conţine
articole având fiecare aceeaşi structură, definită la crearea sa.

Fişier Articol 2 Articol 3 ....


Articol 1

Structura articolelor unui fişier de date dintr-o bază de date este fixă și este definită la crearea sa,
prin precizarea câmpurilor pe care le va conţine.
Un câmp conține o informație elementară și se caracterizează prin nume, tipul informaţiei conţinute,
lungime şi numărul de zecimale (pentru câmpuri numerice).
Datorită faptului că, în domeniul bazelor de date formatul articolului este fix, fișierele sunt
reprezentate tabelar şi în locul denumirii generale de fișier de date se foloseștea denumirea de tabel.

Articole

Un sistem de gestiune de baze de date Oracle XE operează cu o singură bază de date.


Administratorul aplicației crează pentru utilizatorii conturi ale utilizatorilor cărora le atribuie
drepturile necesare operării în interiorul bazei Oracle XE. Un astfel de utilizator devine astfel
proprietarul unui subdomeniu inclus în baza Oracle XE denumit de către autorii aplicaţiei "schemă"
(engl. schema). După înregistrarea contului, beneficiarul acestuia poate realiza infrastructura pe care
se va baza aplicaţia sa începând, desigur, cu tabelele care vor conține datele aplicației sale.
Domeniile diferitilor utilizatori sunt în principiu complet separate, un utilizator având însă
posibilitatea de a da şi altor utilizatori drepturi de acces la componente ale domeniului său.
Dimensiunea bazei de date administrate de Oracle XE este limitată la 4 GO (4 gigaocteţi).
Un utilizator poate accesa SGBD Oracle XE de pe calculatorul pe care acesta este instalat sau prin
reţea (reţea locală sau Internet).

-6-
INFORMATICĂ*I* IF.01. Introducere în baze de date

IA.01.3 Instalarea Oracle XE pe un calculator funcționând sub Windows


Pentru instalare se inițiază o sesiune de lucru folosind un cont de utilizator care are drepturi
de administrare şi se descarcă kitul de instalare pentru Oracle Database XE, versiunea pentru
Windows, de la adresa:
http://www.oracle.com/technetwork/products/express-edition/overview/index.html
Dacă pe calculator a mai fost instalat Oracle XE sau orice altă versiune, aceasta trebuie
dezinstaltă în prealabil şi trebuie ștearsă variabila de mediu ORACLE_HOME, dacă aceasta există.
Pentru aceasta se va accesa intrarea System în Control Panel:

Pentru demararea instalării selectaţi OracleXE.exe (dublu clic).


Instalarea decurge apoi în mai multi paşi, astfel:

o În fereastra Licence Agreement se selectează I accept şi apoi Next;


o In fereastra Choose Destination Location se indică unde se va instala aplicaţia Locaţia implicită este
C:.
-7-
INFORMATICĂ*I* IF.01. Introducere în baze de date

o Daca se afișează o fereastră prin care se solicită introducerea adreselor porturilor care vor fi
folosite înseamnă că unul dintre porturile implicite:
o 1521 alocat implicit serverului Oracle XE şi
o 8080 alocat implicit serverului HTTP prin care se realizează conectarea la
Oracle XE folosind interfaţa grafică şi protocolul HTTP
este folosit de o altă aplicaţie. De exemplu portul 8080 ar putea fi folosit de exemplu de serverul
Apache Tomcat.
o În fereastra Specify Database Passwords se introduce parola pentru conturile SYSTEM şi
SYS. Acestea vor putea fi folosite de către administratorul Oracle XE pentru a realiza
activităţi specifice: creare/ştergere de utilizatori, salvări de siguranţă ş.a. Este bine să fie
păstrată undeva pentru că fără ea aplicația Oracle XE va fi inutilizabilă!

- O ultimă feresatră afişează o recapitulare a opţiunilor introduse. Se apasă Install pentru a


se realiza instalarea.

-8-
INFORMATICĂ*I* IF.01. Introducere în baze de date

IA.01.4 Pornirea aplicației Oracle XE


După instalare sau după repornirea calculatorului, câteva procese legate de Oracle XE vor
fi automat pornite și vor figura deja în lista de procese din Windows. Dacă pornirea automată a
acestora a fost oprită (Control Panel ->Administrative Tools->Services), acestea pot fi pornit
manual folosind comanda (Start -> Programs ->Oracle database 11g Express Edition -> Start
Database).

Tot aceeaşi cale va fi folosită pentru a afişa în browser-ul implicit fereastra ORACLE
Database XE 11.2:

-9-
INFORMATICĂ*I* IF.01. Introducere în baze de date

(Start -> Programs ->Oracle database 11g Express Edition -> Get Started)
Această fereastră va fi punctul de plecare în crearea aplicațiilor folosind Oracle
Application Express.

IA.01.5 Crearea unui cont de utilizator


În urma instalării aplicației Oracle XE există trei utilizatori ai serverului, respectiv SYS şi
SYSTEM cu drept de administrare şi HR (parola hr), utilizator obişnuit. Utilizatorul HR a fost creat
pentru a se putea testa aplicaţiile incluse în documentaţia aplicației Oracle XE.
Pentru crearea unui nou utilizator se recomandă conectarea folosind contul SYSYEM.
Contul SYS dă acces la fişiere interne ale serverului a căror modificare este interzisă.
Pentru inițierea unei sesiuni în mod command care va permite crearea utilizatorului dorit se
va selecta în Windows Start / Oracle Database 11g Express Edition / Run SQL Command Line :

- 10 -
INFORMATICĂ*I* IF.01. Introducere în baze de date

În fereastra afișată se tastează comanda connect și se realizează o conexiune folosind


contul system, ca în figură. Apoi se crează noul cont (personal) cu parola tot personal.
În final se tastează comanda grant, care permite atribuirea unor drepturi specifice noului
utilizator.

Pentru încheierea sesiunii de lucru se va tasta comanda exit :


SQL> exit

Un utilizator al aplicației Oracle XE este identificat prin nume (Username:), parolă


(Password:) şi are un ansamblu de drepturi, conferite la crearea sa. Pentru unele dintre exemplele
care vor urma, utilizatorul creat se numeşte personal (creat anterior) şi are toate drepturile uzuale
dar nu are drepturi de administrare a serverului (nu poate de exemplu opri serverul Oracle XE și nu
poate creea noi utilizatori).
Demersul logic după crearea unui utilizator este conectarea la serverul Oracle XE folosind
numele și parola acestuia și crearea unui ansamblu de tabele destinate memorării unor informații.
Deoarece continuarea lucrului folosind modul linie de comandă utilizat anterior este puțin
productivă, va trebui instalată o aplicație complementară, Oracle SQL Developper. Aceasta se
descarcă de la adresa:
http://www.oracle.com/technetwork/developer-tools/sql-developer/
Dacă pe calculator nu există kitul pentru dezvoltarea aplicațiilor Java (JDK, Java
Development Kit), se va alege și instala varianta care include JDK.
După instalare și lansare în execuție se va selecta în arborele afișat la pornirea aplicației
Connections / New Connection… (clic cu butonul drept al mouse-ului).

- 11 -
INFORMATICĂ*I* IF.01. Introducere în baze de date

Câmpurile din fereastra afișată vor fi apoi completate ca în imaginea următoare:

După completarea cîmpurilor se va apăsa butonul Test și dacă rezultatul este pozitiv se va
apăsa butonul Connect.
Rezultat:

- 12 -
INFORMATICĂ*I* IF.01. Introducere în baze de date

Observație: Accesul la contul de administrator (system) nu necesită crearea unei conexiuni.


Pentru a realiza o conexiune ca administrator se va selecta intrarea Auto-Generated Local
Connections:

Conectarea ca administrator este necesară de exemplu pentru a suprima, bloca, debloca sau
adăuga conturi. De exemplu, după instalarea serverului, utilizatorul HR existent deja în sistem este
implicit blocat (Locked). pentru a putea folosi contul HR acesta trebuie deblocat. Ca urmare se
selectează utilizatorul folosind contul system, (din Other Users, ca în figură) şi apoi, în fereastra cu
proprietăţi se impune Unlocked.

- 13 -
INFORMATICĂ*I* IF.01. Introducere în baze de date

IA.01.6 Crearea unui ansamblu de tabele


Pentru păstrarea informaţiilor, modelul relaţional presupune folosirea unui ansamblu de
tabele, fiecare conţinând informaţii de o anumită natură. Între tabele există legături realizate prin
perechi de valori ale unor câmpuri. Exemplu fundamental :

Tabel cu numele angajaţilor + tabel cu numele copiilor acestora.

În tabelul ANGAJATI fiecărui angajat i se înregistrează numele, prenumele şi un


identificator unic, ID_angajat. Identificatorul serveşte la regăsirea unui angajat, dar şi la
diferenţierea eventualilor angajaţi care au acelaşi nume şi acelaşi prenume.

În tabelul COPII se păstrează numele şi prenumele copiilor. Pe lângă cele două câmpuri
necesare păstrării acestor informaţii principale mai sunt două câmpuri: ID_copil care asociază
fiecărui copil un număr unic şi ID_ang. Câmpul ID_ang asociază fiecărui copil un articol din
tabelul de angajaţi. Folosind această structură se pot afişa mai multe rapoarte:

- 14 -
INFORMATICĂ*I* IF.01. Introducere în baze de date

o lista copiilor,
o lista copiilor unui angajat,
o lista angajaţilor care au copii,
o numărul de copii pe care îi are fiecare angajat şi probabil şi altele.

Cheia primară, cheie străină


În tabele ANGAJATI şi COPII există câte un câmp care are valori distincte pentru toate
articolele: ID_angajat şi ID_copil. Când un tabel posedă un câmp care are rolul de a diferenţia
articolele, câmpul va fi declarat ca fiind cheie primară iar serverul de baze de date va verifica
unicitatea valorilor adăugate. Concret, la fiecare adăugare a unui nou articol serverul de baze de
date va verifica dacă valoarea cheii din noul articol nu apare într-o înregistrare deja prezentă. Dacă
aceeaşi valoare mai apare, adăugarea este refuzată. Un tabel poate avea o singură cheie primară.

În fişierul COPII mai există însă un câmp, ID_ang. Acesta primeşte valori din coloana
ID_angajat din tabelul corespondent ANGAJAŢI. Primeşte deci valori ale cheii primare dintr-un
tabel corespondent. Din acest motiv el poartă numele de cheie străină, deoarece valorile sunt ale
unei chei primare, dar din alt tabel.

Într-un tabel al unei baze de date unele valori pot lipsi. De exemplu în tabelul pentru
angajaţi am putea avea un câmp destinat memorării adresei de e-mail. Dar nu toţi angajaţii au o
adresă de e-mail. La declararea caracteristicilor unui câmp se poate preciza dacă se acceptă valori
nule (lipsa valorii) sau dimpotrivă. Evident că valorile din câmpurile declarate chei primare sau
străine nu pot lipsi.

Integritatea referenţială
Un server de date are pe lângă rolul de a păstra date şi rolul de a menţine coerenţa acestora.
Dacă în exemplul dat angajatul Ionescu Valer (ID_angajat=2) ar pleca din firmă, deci linia
corespunzătoare din fişerul ANGAJAŢI ar fi ştearsă, ce se întâmplă cu înregistrările din tabelul
COPII pentru care ID_ang=2 ? Dacă serverul de baze de date verifică validitatea referinţelor va
trebui să suprime în mod automat şi liniile corespunzătoare din tabelul COPII. În termeni specifici
domeniului bazelor de date relaţionale spunem că serverul verifică şi asigură integritatea
referenţială a bazei de date. Deşi verificarea integrităţii referenţiale complică semnificativ
realizarea unui server de baze de date, toate aplicaţiile majore suportă această caracteristică.

- 15 -
INFORMATICĂ*I* IF.01. Introducere în baze de date

a. Crearea tabelului ANGAJATI

- 16 -
INFORMATICĂ*I* IF.01. Introducere în baze de date

După adăugarea tabelului Angajati, interfața expusă la adăugarea unui nou tabel este schimbată.
Continuarea definirii câmpurilor tabelelor se va iniția selectând opțiunea corespunzătoare din lista
Actions:

Tot folosind lista Actions pot fi adăugate cheile (cheia privată și cea străină):

- 17 -
INFORMATICĂ*I* IF.01. Introducere în baze de date

Observație: Comportamentul serverului la ștergerea articolului corespondent din tabelul Angajați se


poate impune din fereastra de editare a tabelului Copii.

- 18 -
INFORMATICĂ*I* IF.01. Introducere în baze de date

În exemplul dat s-a ales varianta CASCADE, ceea ce va impune ștergerea din tabelul Copii a
articolelor corespunzătoare unui articol șters dein tabelul Angajați. Practic, dacă un angajat
părăsește instituția, copii săi vor fi automat șterși din tabelul Copii.

Alte variante ar fi fost RESTRICT (ștergerea angajatului nu este posibilă decât după ștergerea
copiilor acestuia din tabelul Copii) sau SET NULL (la ștergerea angajatului, în articolele
corespondente din tabelul Copii câmpul ID_PARINTE primește valoarea null.

IA.01.7 Adăugarea datelor în tabele

- 19 -
INFORMATICĂ*I* IF.01. Introducere în baze de date

Rezultate:

IA.01.8 Aplicații
1. Porniți Oracle SQL Developer, conectați-vă ca administrator (system) și modificați
starea contului HR (blocat / deblocat).

2. Creați un cont nou de numit biblio avînd parola tot biblio.

3. Creați în schema biblio următoarele tabele :


 Tabelul autori :
autori
cod_aut number (4, 0)
nume varchar2 (30)
prenume varchar2 (30)

cheie primara : cod_aut

Obs. cele trei câmpuri nu pot fi nule, deci fiecare linie din tabel va conţine în aceste câmpuri
informaţii.

 Tabelul edituri :

- 20 -
INFORMATICĂ*I* IF.01. Introducere în baze de date

edituri
cod_edit number (4, 0)
nume varchar2 (100)

cheie primara : cod_edit

 Tabelul carti:

carti
cod_carte number (4, 0)
titlu varchar2 (100)
cod_edit number (4, 0)
an_apar number (4, 0)
cheie primară : cod_carte
cheie străină : cod_edit

4. Adăugați în tabelele create următoarele înregistrări:

autori carti: edituri:


1 || Marcel Proust 1 || In cautarea timpului pierdut || 1 1 || Univers
|| 1987
2 || Steinbeck John 2 || Iarna vrajbei noastre || 2 || 2 ||
1993 Orizonturi
3 || Steinhardt Nicolae 3 || Jurnalul fericirii || 3 || 1991 3 || Dacia
4 || Puskin Alexandr 4 || Dama de pica || 1 || 1972

- 21 -

S-ar putea să vă placă și