Introducere in Baze de Date

18
INFORMATICĂ*I* IF.01. Introducere în baze de date - 4 - 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.

description

Baze de Date pentru Incepator

Transcript of Introducere in Baze de Date

Page 1: Introducere in Baze de Date

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

- 4 -

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.

Page 2: Introducere in Baze de Date

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

- 5 -

Î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).

Page 3: Introducere in Baze de Date

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

- 6 -

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.

Articol 1 Articol 2 Articol 3 . . . .

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.

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).

Fişier

Articole

Page 4: Introducere in Baze de Date

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

- 7 -

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:.

Page 5: Introducere in Baze de Date

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

- 8 -

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.

Page 6: Introducere in Baze de Date

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

- 9 -

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:

Page 7: Introducere in Baze de Date

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

- 10 -

(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 :

Page 8: Introducere in Baze de Date

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

- 11 -

Î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).

Page 9: Introducere in Baze de Date

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

- 12 -

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:

Page 10: Introducere in Baze de Date

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

- 13 -

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.

Page 11: Introducere in Baze de Date

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

- 14 -

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:

Page 12: Introducere in Baze de Date

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

- 15 -

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ă.

Page 13: Introducere in Baze de Date

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

- 16 -

a. Crearea tabelului ANGAJATI

Page 14: Introducere in Baze de Date

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

- 17 -

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ă):

Page 15: Introducere in Baze de Date

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

- 18 -

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

poate impune din fereastra de editare a tabelului Copii.

Page 16: Introducere in Baze de Date

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

- 19 -

Î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

Page 17: Introducere in Baze de Date

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

- 20 -

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 :

Page 18: Introducere in Baze de Date

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

- 21 -

edituri

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

cheie primara : cod_edit

Tabelul carti:

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

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

autori carti: edituri:

1 || Marcel Proust 1 || In cautarea timpului pierdut || 1 || 1987

1 || Univers

2 || Steinbeck John 2 || Iarna vrajbei noastre || 2 || 1993

2 || Orizonturi

3 || Steinhardt Nicolae 3 || Jurnalul fericirii || 3 || 1991 3 || Dacia 4 || Puskin Alexandr 4 || Dama de pica || 1 || 1972