Baze de date

22
Baze de date

description

Baze de date. BAZA DE DATE RELAŢIONALĂ. - PowerPoint PPT Presentation

Transcript of Baze de date

Page 1: Baze de date

Baze de date

Page 2: Baze de date

BAZA DE DATE RELAŢIONALĂ

Chiar dacă F.E. Codd, ca matematician, a construit un model riguros, cu concepte matematice, baza de date relaţională este percepută de utilizatorii săi ca o colecţie de tabele (tablouri bidimensionale de date, numite şi relaţii), noţiune care nu necesită definiţii suplimentare.

Sunt aici patru concepte care trebuie reţinute şi înţelese: tabelele coloanele tabelului rândurile tabelului câmpurile din tabel, de pe o anumită coloană şi linie.

Page 3: Baze de date

ExempluTabela CLIENŢI

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

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

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

Page 4: Baze de date

Exemplu

Tabela CUMPARATURI

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

| NrS NrP QTY |

|-----------------|

| S1 P1 300 |

| S1 P2 200 |

rând--------->| S1 P3 400 |

| S2 P1 300 |

| S2 P2 400 --|----câmp

| S3 P3 200 |

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

Page 5: Baze de date

Modelul relaţional

Modelul relaţional al bazei de date imită procesele unei ramuri a algebrei, cunoscute sub numele de "Algebră relaţională". Aceste procese implică: o colecţie de obiecte cunoscute sub numele de RELAŢII o mulţime de operatori care acţionează asupra relaţiilor

pentru a produce noi relaţii. O relaţie, în cazul discret, poate fi privită şi înţeleasă ca o

Tabela. Modificarea datelor se realizează prin operaţii relaţionale aplicate asupra tabelelor. Spre exemplu, restricţia unei relaţii, a unui tabel, va fi un nou tabel în care se păstrează doar anumite linii. Iar proiecţia unei relaţii - unui tabel - va fi un nou tabel în care se păstrează doar anumite coloane.

Page 6: Baze de date

Operatorii relaţionaliOperatorii relaţionali (în cadrul bazelor de date relaţionale) sunt definiţi în tabelul următor:

Operatorul Relaţional Descrierea

Restricţiaeste o operaţie care preia şi afişează datele din relaţie.Este posibil să se afişeze toate

rândurile sau doar rândurile care îndeplinesc o anume condiţie (sau mai multe condiţii). Aceasta este de multe ori numită "submulţime orizontală"

Proiecţia este operaţia care afişează anumite coloane din relaţie, fiind numită de aceea şi "submulţime verticală".

Produsul este rezultatul obţinut când rândurile a două mulţimi de date sunt concatenate conform condiţiilor specificate.

"Join" este rezultatul obţinut când rândurile a două mulţimi de date sunt concatenate conform condiţiilor specificate.

Reuniunea afişează toate rândurile care apar în una, în cealaltă, sau în ambele relaţii.

Intersecţia afişează toate rândurile care apar în ambele relaţii.

Diferenţa afişează rândurile care apar numai în prima relaţie fără să apară în cea de a doua (în SQL se utilizează chiar semnul - operatorul minus).

Page 7: Baze de date

Proprietăţi ale bazelor de date relaţionale O bază de date relaţională apare ca o colecţie de relaţii (tabele) Există o mulţime de operatori pentru transformarea şi combinarea relaţiilor:

selecţia, proiecţia, produsul, join-ul, reuniunea, intersecţia, diferenţa

Nu apar pointeri; conexiunile sunt făcute 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 informaţia. Comenzile pentru selecţia sau refacerea datelor, cât şi acelea pentru realizarea

schimbărilor în baza de date sunt incluse într-un singur limbaj, standardizat acum ca SQL.

Page 8: Baze de date

Proprietăţile relaţiilor tabelare

Fiecare tabelă, individual, are următoarele proprietăţi:

Nu există rânduri duplicate Nu există nume de coloane identice

(duplicate) Ordinea rândurilor este neimportantă Ordinea coloanelor este neimportantă Valorile (câmpurile) sunt atomice

(nedecompozabile).

Page 9: Baze de date

SQL

este limbajul utilizat pentru a accesa o bază de date relaţională;

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 engleză;

este un limbaj standard pentru bazele de date.

Page 10: Baze de date

Trăsături caracteristice ale limbajului SQL SQL, ca şi majoritatea limbajelor de programare, foloseşte 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 informaţiile dorite, nu cum se obţin acestea. Cu alte cuvinte, SQL nu cere să fie specificată metoda de acces la date.

Execuţia comenzilor SQL asupra înregistrărilor nu se poate face decât secvenţial, asupra câte unei singure înregistrări. Setul de înregistrări fiind văzut ca set de linii ale unui tabel.

SQL poate fi folosit de un şir de utilizatori, incluzând administratorul bazei de date, programatorii de aplicaţii, personalul de management şi multe alte tipuri de utilizatori.

SQL include comenzi pentru o varietate de sarcini, incluzând: selecţia unor date inserarea, extragerea şi ştergerea rândurilor 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 consistenţei bazei de date

Page 11: Baze 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 rânduri, pentru a schimba (actualiza) rândurile existente, pentru a şterge rândurile nedorite din baza de date respectivă, şi, în fine, SELECT - comanda cea mai utilizată, folosită pentru a căuta, a selecta înregistrări din tabel sau dintr-o combinaţie de tabele ale bazei de date.

Comenzile de control (grupul DCL), la dispoziţia administratorului(DBA): GRANT, REVOKE

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

Page 12: Baze de date

ExempluCREATE 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

Page 13: Baze de date

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

subsecvenţelor sunt numerotate. O singură declaraţie poate fi considerată curentă, cât timp ea este într-

un buffer şi poate fi rulată într-un anumit număr de moduri : plasând un punct şi virgulă(;) la sfârşitul ultimei clauze. plasând un punct şi virgulă urmat de semnul / (slash) pe ultima linie în

buffer. plasând un slash (/) la prompterul SQL. scriind comanda SQL R[UN] la prompterul SQL.

Page 14: Baze de date

Blocul de interogare de bază

Declaraţia SELECT regăseşte informaţia din baza de date, putând îngloba şi unul sau mai mulţi operatori din algebra relaţională.

In cele mai simple forme trebuie să conţină: O clauză SELECT, care listează coloanele

pentru afişare astfel încât este esenţiala o Proiecţie.

O clauză FROM care specifică tabela implicată.

Page 15: Baze de date

Exemple

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

Page 16: Baze de date

Sa nu ne stresam foarte tare

Utilizam serverul de baze date MySQL

Interfata phpmyadmin

Page 17: Baze de date

Crearea unei tabele

Page 18: Baze de date

Inserarea unei inregistrari

Page 19: Baze de date

Afisarea inregistrarilor

Page 20: Baze de date

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!");?>

Page 21: Baze de date

Afisarea inregistrarilorSELECT [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 studentiSELECT nume FROM studentiSELECT nume, data_n FROM studenti ORDER BY nume ASC

Page 22: Baze de date

Si surpriza

Exemplul