Baze de Date

22
Baze de date

description

Baze de date relationale

Transcript of Baze de Date

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

  • ExempluTabela CLIENI -------------------------------------------------- | 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 | ---------------------------------------------------------

  • ExempluTabela CUMPARATURI ------------------- | NrS NrP QTY | |-----------------| | S1 P1 300 | | S1 P2 200 | rnd--------->| S1 P3 400 | | S2 P1 300 | | S2 P2 400 --|----cmp | S3 P3 200 | -------------------

  • Modelul relaionalModelul 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 relaionaliOperatorii relaionali (n cadrul bazelor de date relaionale) sunt definii n tabelul urmtor:

    Operatorul RelaionalDescriereaRestriciaeste 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"Proieciaeste operaia care afieaz anumite coloane din relaie, fiind numit de aceea i "submulime vertical".Produsuleste rezultatul obinut cnd rndurile a dou mulimi de date sunt concatenate conform condiiilor specificate."Join"este rezultatul obinut cnd rndurile a dou mulimi de date sunt concatenate conform condiiilor specificate.Reuniuneaafieaz toate rndurile care apar n una, n cealalt, sau n ambele relaii.Interseciaafieaz toate rndurile care apar n ambele relaii.Diferenaafieaz 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 relaionaleO 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, diferenaNu 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 tabelareFiecare 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).

  • SQLeste 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 SQLSQL, 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 SQLComenzile 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).

  • 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

  • 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 ntr-un 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 bazDeclaraia 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.

  • ExempleSELECT * 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;

  • Sa nu ne stresam foarte tareUtilizam serverul de baze date MySQLInterfata phpmyadmin

  • Crearea unei tabele

  • Inserarea unei inregistrari

  • Afisarea inregistrarilor

  • Conectarea la baza de dateconect.php

  • 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

  • Si surprizaExemplul