Sei sulla pagina 1di 22

Baze de date

BAZA DE DATE RELAIONAL


Chiar dac F.E. Codd, ca matematician, a construit un

model riguros, cu concepte matematice, baza de date relaional este perceput de utilizatorii si ca o colecie de tabele (tablouri bidimensionale de date, numite i relaii), noiune care nu necesit definiii suplimentare. Sunt aici patru concepte care trebuie reinute i nelese:

tabelele coloanele tabelului rndurile tabelului cmpurile din tabel, de pe o anumit coloan i linie.

Exemplu
Tabela CLIENI --------------------------------------------------

NrS

NUME

STARE

ORAS

|------------------------------------------------| | | | S1 S2 S3 Ionescu Popescu Teodorescu 20 10 30 LONDRA PARIS PARIS | | |

-------------------------------------------------Tabela PIESE --------------------------------------------------------| NrP NUMEP CULOARE GREUTATE ORAS |

|-------------------------------------------------------| | | | | P1 P2 P3 P4 NIT PIRON SURUB SURUB ROSU VERDE ALBASTRU ROSU 12 17 17 14 LONDRA PARIS ROME LONDON | | | |

---------------------------------------------------------

Exemplu
Tabela CUMPARATURI
------------------| NrS NrP QTY |

|-----------------| | S1 P1 300 |

| S1
rnd--------->| S1 | S2 | S2 | S3

P2
P3 P1 P2 P3

200
400 300

|
| |

400 --|----cmp 200 |

-------------------

Modelul relaional
Modelul relaional al bazei de date imit procesele unei

ramuri a algebrei, cunoscute sub numele de "Algebr relaional". Aceste procese implic:

o colecie de obiecte cunoscute sub numele de RELAII o mulime de operatori care acioneaz asupra relaiilor pentru a produce noi relaii.

O relaie, n cazul discret, poate fi privit i neleas ca o

Tabela. Modificarea datelor se realizeaz prin operaii relaionale aplicate asupra tabelelor. Spre exemplu, restricia unei relaii, a unui tabel, va fi un nou tabel n care se pstreaz doar anumite linii. Iar proiecia unei relaii - unui tabel - va fi un nou tabel n care se pstreaz doar anumite coloane.

Operatorii relaionali
Operatorii relaionali (n cadrul bazelor de date relaionale) sunt definii n tabelul urmtor:
Operatorul Relaional Restricia Proiecia Produsul "Join" Reuniunea Intersecia Diferena Descrierea este o operaie care preia i afieaz datele din relaie.Este posibil s se afieze toate rndurile sau doar rndurile care ndeplinesc o anume condiie (sau mai multe condiii). Aceasta este de multe ori numit "submulime orizontal" este operaia care afieaz anumite coloane din relaie, fiind numit de aceea i "submulime vertical". este rezultatul obinut cnd rndurile a dou mulimi de date sunt concatenate conform condiiilor specificate. este rezultatul obinut cnd rndurile a dou mulimi de date sunt concatenate conform condiiilor specificate. afieaz toate rndurile care apar n una, n cealalt, sau n ambele relaii. afieaz toate rndurile care apar n ambele relaii. afieaz rndurile care apar numai n prima relaie fr s apar n cea de a doua (n SQL se utilizeaz chiar semnul - operatorul minus).

Proprieti ale bazelor de date relaionale


O baz de date relaional apare ca o colecie de relaii (tabele) Exist o mulime de operatori pentru transformarea i combinarea relaiilor:

selecia, proiecia, produsul, join-ul, reuniunea, intersecia, diferena

Nu apar pointeri; conexiunile sunt fcute numai pe baza datelor. Exist o independen total a datelor. Limbajul utilizat pentru interogarea bazei de date este non-procedural i similar limbii engleze. Utilizatorul nu specific calea de acces i nu are nevoie s tie cum este aranjat fizic informaia. Comenzile pentru selecia sau refacerea datelor, ct i acelea pentru realizarea schimbrilor n baza de date sunt incluse ntr-un singur limbaj, standardizat acum ca SQL.

Proprietile relaiilor tabelare


Fiecare tabel, individual, are urmtoarele proprieti: Nu exist rnduri duplicate Nu exist nume de coloane identice (duplicate) Ordinea rndurilor este neimportant Ordinea coloanelor este neimportant Valorile (cmpurile) sunt atomice (nedecompozabile).

SQL
este limbajul utilizat pentru a accesa o baz de

date relaional; poate fi utilizat atunci cnd accesul la baza de date este necesar, de fiecare instrument de gestiune a bazelor de date (Access, Oracle, SQL-Server, MySQL,...); este un limbaj simplu, ne-procedural, cu comenzi intuitive n limba englez; este un limbaj standard pentru bazele de date.

Trsturi caracteristice ale limbajului SQL


SQL, ca i majoritatea limbajelor de programare, folosete cuvinte din limba englez. In mod special cuvintele select, insert, delete ca elemente ale setului de comenzi. SQL este un limbaj neprocedural: specific care sunt informaiile dorite, nu cum se obin acestea. Cu alte cuvinte, SQL nu cere s fie specificat metoda de acces la date. Execuia comenzilor SQL asupra nregistrrilor nu se poate face dect secvenial, asupra cte unei singure nregistrri. Setul de nregistrri fiind vzut ca set de linii ale unui tabel. SQL poate fi folosit de un ir de utilizatori, incluznd administratorul bazei de date, programatorii de aplicaii, personalul de management i multe alte tipuri de utilizatori. SQL include comenzi pentru o varietate de sarcini, incluznd:

selecia unor date inserarea, extragerea i tergerea rndurilor dintr -un tabel crearea, modificarea i tergerea obiectelor de tip baz de date controlul accesului la baza de date i la obiectele de tip baz de date verificarea - garantarea consistenei bazei de date

Setul de comenzi SQL


Comenzile de definire a datelor (DDL): CREATE, ALTER,

DROP

aceste trei comenzi sunt utilizate dinamic pentru a crea, utiliza i terge orice structur de date, n particular tabele.

Comenzile de manipulare a datelor (DML): INSERT, UPDATE,

DELETE i SELECT

utilizate pentru a introduce noi rnduri, pentru a schimba (actualiza) rndurile existente, pentru a terge rndurile nedorite din baza de date respectiv, i, n fine, SELECT comanda cea mai utilizat, folosit pentru a cuta, a selecta nregistrri din tabel sau dintr-o combinaie de tabele ale bazei de date.

Comenzile de control (grupul DCL), la dispoziia

administratorului(DBA): GRANT, REVOKE

utilizate pentru a da sau a lua drepturi de acces (la comenzi DML, deci la operarea unor modificri a bazei de date).

Exemplu
CREATE TABLE CUSTOMER ( CustomerID FirstName LastName Title Street City State Phone Integer Character Character Character Character Character Character Character PRIMARY KEY (15), (20) NOT NULL, (5), (25), (25), (2), (15) );

INSERT INTO CUSTOMER (CustomerID, FirstName, LastName) VALUES (:vcustid, 'Dana', 'Popescu'); GRANT SELECT INSERT

ON CUSTOMER
TO Ana, Victor

Scrierea comenzilor SQL


Comenzile SQL pot fi scrise pe una sau mai multe linii. Clauzele sunt uzual plasate pe linii separate. Poate fi folosit tabelarea. Cuvintele de comand nu pot fi separate pe mai multe linii. Comenzile SQL pot fi scrise fie cu majuscule fie cu minuscule (nu sunt 'case sensitive'). O comand SQL este introdus la prompterul SQL, iar liniile subsecvenelor sunt numerotate. O singur declaraie poate fi considerat curent, ct timp ea este ntrun buffer i poate fi rulat ntr-un anumit numr de moduri :

plasnd un punct i virgul(;) la sfritul ultimei clauze. plasnd un punct i virgul urmat de semnul / ( slash) pe ultima linie n buffer. plasnd un slash (/) la prompterul SQL. scriind comanda SQL R[UN] la prompterul SQL.

Blocul de interogare de baz


Declaraia SELECT regsete informaia din

baza de date, putnd ngloba i unul sau mai muli operatori din algebra relaional. In cele mai simple forme trebuie s conin: O clauz SELECT, care listeaz coloanele pentru afiare astfel nct este eseniala o Proiecie. O clauz FROM care specific tabela implicat.

Exemple

SELECT SELECT SELECT SELECT SELECT SELECT SELECT

* FROM EMP; ENAME, SAL*12, COMM FROM EMP; ENAME, SAL*12 ANNSAL, COMM FROM EMP; EMPNO||ENAME EMPLOYEE FROM EMP; DISTINCT DEPTNO FROM EMP; ENAME, JOB, SAL*12, DEPTNO FROM EMP ORDER BY ENAME; ENAME, JOB, HIREDATE FROM EMP ORDER BY HIREDATE DESC;

Sa nu ne stresam foarte tare


Utilizam serverul de baze date MySQL Interfata phpmyadmin

Crearea unei tabele

Inserarea unei inregistrari

Afisarea inregistrarilor

Conectarea la baza de date


conect.php <?php $host = "localhost"; $user = "root"; $passw = "; $db = studentil"; $link= mysql_connect($hoste,$user,$passw) or die("Nu raspunde serverul MySQL!"); mysql_select_db($dbe,$link) or die("Nu gasesc baza de date!"); ?>

Afisarea inregistrarilor
SELECT [ALL | DISTINCT | DISTINCTROW ] [HIGH_PRIORITY] [STRAIGHT_JOIN] [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT] [SQL_CACHE | SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS] select_expr [, select_expr ...] [ FROM table_references [ WHERE where_condition] [ GROUP BY {col_name | expr | position} [ASC | DESC], ... [WITH ROLLUP]] [HAVING where_condition] [ORDER BY {col_name | expr | position} [ASC | DESC], ...] [LIMIT {[offset,] row_count | row_count OFFSET offset}] [PROCEDURE procedure_name(argument_list)] [INTO OUTFILE 'file_name' export_options | INTO DUMPFILE 'file_name' | INTO var_name [, var_name]] [FOR UPDATE | LOCK IN SHARE MODE]]
SELECT * FROM studenti SELECT nume FROM studenti SELECT nume, data_n FROM studenti ORDER BY nume ASC

Si surpriza
Exemplul

Potrebbero piacerti anche