Title: Baze de date
1Baze de date
2BAZA DE DATE RELATIONALA
- Chiar daca F.E. Codd, ca matematician, a
construit un model riguros, cu concepte
matematice, baza de date relationala este
perceputa de utilizatorii sai ca o colectie de
tabele (tablouri bidimensionale de date, numite
si relatii), notiune care nu necesita definitii
suplimentare. - Sunt aici patru concepte care trebuie retinute si
întelese - tabelele
- coloanele tabelului
- rândurile tabelului
- câmpurile din tabel, de pe o anumita coloana si
linie.
3Exemplu
Tabela CLIENTI -------------------
-------------------------------
NrS NUME STARE ORAS
-------------------------------------------
----- S1 Ionescu
20 LONDRA S2
Popescu 10 PARIS
S3 Teodorescu 30 PARIS
-------------------------------------------
-------
Tabela PIESE -----------------------
----------------------------------
NrP NUMEP CULOARE GREUTATE ORAS
------------------------------------
------------------- P1 NIT
ROSU 12 LONDRA
P2 PIRON VERDE 17
PARIS P3 SURUB
ALBASTRU 17 ROME
P4 SURUB ROSU 14 LONDON
-------------------------------------
--------------------
4Exemplu
Tabela CUMPARATURI
------------------- NrS
NrP QTY
----------------- S1 P1
300 S1 P2 200
rând---------gt S1 P3 400
S2 P1 300
S2 P2 400 ------câmp
S3 P3 200
-------------------
5Modelul relational
- Modelul relational al bazei de date imita
procesele unei ramuri a algebrei, cunoscute sub
numele de "Algebra relationala". Aceste procese
implica - o colectie de obiecte cunoscute sub numele de
RELATII - o multime de operatori care actioneaza asupra
relatiilor pentru a produce noi relatii. - O relatie, în cazul discret, poate fi privita si
înteleasa ca o Tabela. Modificarea datelor se
realizeaza prin operatii relationale aplicate
asupra tabelelor. Spre exemplu, restrictia unei
relatii, a unui tabel, va fi un nou tabel în care
se pastreaza doar anumite linii. Iar proiectia
unei relatii - unui tabel - va fi un nou tabel în
care se pastreaza doar anumite coloane.
6Operatorii relationali
Operatorii relationali (în cadrul bazelor de date
relationale) sunt definiti în tabelul urmator
Operatorul Relational Descrierea
Restrictia este o operatie care preia si afiseaza datele din relatie.Este posibil sa se afiseze toate rândurile sau doar rândurile care îndeplinesc o anume conditie (sau mai multe conditii). Aceasta este de multe ori numita "submultime orizontala"
Proiectia este operatia care afiseaza anumite coloane din relatie, fiind numita de aceea si "submultime verticala".
Produsul este rezultatul obtinut când rândurile a doua multimi de date sunt concatenate conform conditiilor specificate.
"Join" este rezultatul obtinut când rândurile a doua multimi de date sunt concatenate conform conditiilor specificate.
Reuniunea afiseaza toate rândurile care apar în una, în cealalta, sau în ambele relatii.
Intersectia afiseaza toate rândurile care apar în ambele relatii.
Diferenta afiseaza rândurile care apar numai în prima relatie fara sa apara în cea de a doua (în SQL se utilizeaza chiar semnul - operatorul minus).
7Proprietati ale bazelor de date relationale
- O baza de date relationala apare ca o colectie de
relatii (tabele) - Exista o multime de operatori pentru
transformarea si combinarea relatiilor - selectia,
- proiectia,
- produsul,
- join-ul,
- reuniunea,
- intersectia,
- diferenta
- Nu apar pointeri conexiunile sunt facute numai
pe baza datelor. - Exista o independenta totala a datelor.
- Limbajul utilizat pentru interogarea bazei de
date este non-procedural si similar limbii
engleze. - Utilizatorul nu specifica calea de acces si nu
are nevoie sa stie cum este aranjata fizic
informatia. - Comenzile pentru selectia sau refacerea datelor,
cât si acelea pentru realizarea schimbarilor în
baza de date sunt incluse într-un singur limbaj,
standardizat acum ca SQL.
8Proprietatile relatiilor tabelare
- Fiecare tabela, individual, are urmatoarele
proprietati - Nu exista rânduri duplicate
- Nu exista nume de coloane identice (duplicate)
- Ordinea rândurilor este neimportanta
- Ordinea coloanelor este neimportanta
- Valorile (câmpurile) sunt atomice
(nedecompozabile).
9SQL
- este limbajul utilizat pentru a accesa o baza de
date relationala - poate fi utilizat atunci când 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 engleza - este un limbaj standard pentru bazele de date.
10Trasaturi caracteristice ale limbajului SQL
- SQL, ca si majoritatea limbajelor de programare,
foloseste cuvinte din limba engleza. In mod
special cuvintele select, insert, delete ca
elemente ale setului de comenzi. - SQL este un limbaj neprocedural specifica care
sunt informatiile dorite, nu cum se obtin
acestea. Cu alte cuvinte, SQL nu cere sa fie
specificata metoda de acces la date. - Executia comenzilor SQL asupra înregistrarilor nu
se poate face decât secvential, asupra câte unei
singure înregistrari. Setul de înregistrari fiind
vazut ca set de linii ale unui tabel. - SQL poate fi folosit de un sir de utilizatori,
incluzând administratorul bazei de date,
programatorii de aplicatii, personalul de
management si multe alte tipuri de utilizatori. - SQL include comenzi pentru o varietate de
sarcini, incluzând - selectia unor date
- inserarea, extragerea si stergerea rândurilor
dintr-un tabel - crearea, modificarea si stergerea obiectelor de
tip baza de date - controlul accesului la baza de date si la
obiectele de tip baza de date - verificarea - garantarea consistentei bazei de
date
11Setul de comenzi SQL
- Comenzile de definire a datelor (DDL) CREATE,
ALTER, DROP - aceste trei comenzi sunt utilizate dinamic pentru
a crea, utiliza si sterge orice structura de
date, în particular tabele. - Comenzile de manipulare a datelor (DML) INSERT,
UPDATE, DELETE si SELECT - utilizate pentru a introduce noi rânduri, pentru
a schimba (actualiza) rândurile existente, pentru
a sterge rândurile nedorite din baza de date
respectiva, si, în fine, SELECT - comanda cea mai
utilizata, folosita pentru a cauta, a selecta
înregistrari din tabel sau dintr-o combinatie de
tabele ale bazei de date. - Comenzile de control (grupul DCL), la dispozitia
administratorului(DBA) GRANT, REVOKE - utilizate pentru a da sau a lua drepturi de acces
(la comenzi DML, deci la operarea unor modificari
a bazei de date).
12Exemplu
CREATE TABLE CUSTOMER ( CustomerID Integer
PRIMARY KEY FirstName Character
(15),LastName Character (20) NOT
NULL,Title Character (5),Street
Character (25),City Character
(25),State Character (2),Phone
Character (15) ) INSERT INTO CUSTOMER
(CustomerID, FirstName, LastName) VALUES
(vcustid, 'Dana', 'Popescu') GRANT SELECT
INSERT ON CUSTOMER TO Ana, Victor
13Scrierea comenzilor SQL
- Comenzile SQL pot fi scrise pe una sau mai multe
linii. - Clauzele sunt uzual plasate pe linii separate.
- Poate fi folosita tabelarea.
- Cuvintele de comanda nu pot fi separate pe mai
multe linii. - Comenzile SQL pot fi scrise fie cu majuscule fie
cu minuscule (nu sunt 'case sensitive'). - O comanda SQL este introdusa la prompterul SQL,
iar liniile subsecventelor sunt numerotate. - O singura declaratie poate fi considerata
curenta, cât timp ea este într-un buffer si poate
fi rulata într-un anumit numar de moduri - plasând un punct si virgula() la sfârsitul
ultimei clauze. - plasând un punct si virgula urmat de semnul /
(slash) pe ultima linie în buffer. - plasând un slash (/) la prompterul SQL.
- scriind comanda SQL RUN la prompterul SQL.
14Blocul de interogare de baza
- Declaratia SELECT regaseste informatia din baza
de date, putând îngloba si unul sau mai multi
operatori din algebra relationala. - In cele mai simple forme trebuie sa contina
- O clauza SELECT, care listeaza coloanele pentru
afisare astfel încât este esentiala o Proiectie. - O clauza FROM care specifica tabela implicata.
15Exemple
- SELECT FROM EMP
- SELECT ENAME, SAL12, COMM FROM EMP
- SELECT ENAME, SAL12 ANNSAL, COMM FROM EMP
- SELECT EMPNOENAME EMPLOYEE FROM EMP
- SELECT DISTINCT DEPTNO FROM EMP
- SELECT ENAME, JOB, SAL12, DEPTNO FROM EMP ORDER
BY ENAME - SELECT ENAME, JOB, HIREDATE FROM EMP ORDER BY
HIREDATE DESC
16Sa nu ne stresam foarte tare
- Utilizam serverul de baze date MySQL
- Interfata phpmyadmin
17Crearea unei tabele
18Inserarea unei inregistrari
19Afisarea inregistrarilor
20Conectarea la baza de date
conect.php lt?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!") ?gt
21Afisarea 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
22Si surpriza