Universitatea Politehnica Bucureti
Facultatea de Automatic i Calculatoare
Catedra de Calculatoare
Laborator 1 Introducere n Oracle
Autori
Conf. Dr. Ing. Alexandru Boicea
As. Drd. Ing. Ciprian-Octavian Truic
Baze de date i Sisteme de gestionare a bazelor de date
Baze de date relaionale
Oracle SGBD
Alte Produse Oracle
SQL*Plus
Modelarea Algebrei Relaionale folosind Oracle Database
Operatorii Algebrei Relaionale
Controlul asupra bazelor de date
Structura unui tabel
Structura unui baze de date
Limbajul SQL
Cuprins
18.02.2015 Laborator 1 2
O baz de date (BD, eng. database - DB) este un ansamblu structurat de date care permite stocarea informaiilor i prelucrarea eficient a acestora de mai muli utilizatori ntr-un mod concurent.
Un sistem de gestiune a bazelor de date (SGBD, eng. Data Base Management System - DBMS) este un produs software care asigur interaciunea cu o baz de date, permind definirea, consultarea i actualizarea datelor din baza de date. Toate cererile de acces la baza de date sunt tratate i controlate de ctre SGBD.
Baze de date i Sisteme de gestionare a bazelor de date
18.02.2015 Laborator 1 3
Conceptul de baze de date relaionale a fost introdus de E.F. Codd n anii 70 i modeleaz bazele de date sub form de tabele i relaii ntre acestea.
IBM a fost prima companie care a preluat i dezvoltat acest concept (SEQUEL - Structured English QUEry Language), punnd la punct limbajul SQL (SEQUEL2) n anul 1976, ulterior dezvoltnd DB2 i SQL/DS.
Oracle Corporation lansez n 1979 primul produs SQL, cunoscut ca limbajul standard de interogare a unei baze de dare, care a fost standardizat de Institutul Naional American de Standarde(ANSI), iar ulterior de Organizaia Internaional de Standarde(ISO).
Standardul curent de SQL este SQL:2011
Baze de date relaionale
18.02.2015 Laborator 1 4
Exist mai multe tipuri de SGBD-uri: Relaionale, cele mai cunoscute i utilizate fiind: Oracle, Microsoft SQL
Server, IBM DB2, MySQL, PostgreSQL
NoSQL: Orientate document(Document-oriented Database): MongoDB, Apache CouchDB
Graf(Graph Database): Neo4J
Cheie-valoare (Key-Value Database): Riak, Redis
Orientate obiect(Object database): Cach, ObjectDB
Orientate coloana(Column-oriented Database): Apache HBase, Cassandra
etc.
Baze de date i Sisteme de gestionare a bazelor de date
18.02.2015 Laborator 1 5
Oracle este cel mai utilizat SGBD-uri din lume (http://db-engines.com/en/ranking).
Primele versiuni de Oracle au fost dezvoltate pentru sistemul VAX/VMX, produs de firma Digital; ulterior au aprut versiuni pentru UNIX (rescris n C), Windows(ncepnd cu versiunea 8) i Linux.
ncepnd cu versiunea 8i pentru a dezvolta SGBD-ul s-a folosit limbajul de programare Java.
ncepnd cu versiunea 8i au permis dezvoltarea aplicaiilor care acceseaz baza de date prin intermediul Internetului.
Oracle SGBD
18.02.2015 Laborator 1 6
Pentru a interoga i prelucra informaia stocat ntr-o baz de date, n Oracle se pot folosi urmtoarele limbaje de programare: SQL : este un limbajul de programare dezvoltat special cu scopul de a
procesa informaia pstrat ntr-o baz de date (set-oriented language).
PL/SQL: este un limbaj procedural, construit ca extensie a limbajului SQL, care, pe lng interogrile SQL, folosete structuri de control (if...then, if...then...else, if...then...elsif...else, case ) i bucle (loop, while, for).
Produsele Oracle s-au impus pe pia datorit instrumentelor de dezvoltare oferite, siguranei n exploatarea bazelor de date, gestionarea unui volum mare de date i mai ales datorit nivelurilor de securitate.
Oracle SGBD
18.02.2015 Laborator 1 7
Pentru dezvoltarea de aplicaii complexe pot fi folosite i alte produse Oracle, cum ar fi:
Forms Builder pentru generarea de interfee utilizator
Reports Builder pentru generarea de rapoarte
Schema Builder pentru definirea de tabele i relaii ntre tabele
Procedure Builder pentru dezvoltarea i testarea procedurilor
SQL Developer IDE pentru dezvoltarea interogrilor SQL i programelor PL/SQL
Alte Produse Oracle
18.02.2015 Laborator 1 8
SQL*Plus este un interpretor n linie de comand (CLI command line interpreter) care este utilizat pentru scrierea i lansarea ctre motorul bazei de date Oracle a interogrilor SQL i programelor PL/SQL;
Acesta poate fi folosit pentru manipularea datelor i crearea obiectelor ntr-o baz de date;
De asemenea, se poate folosi pentru dezvoltarea i testarea interogrilor i procedurilor nainte de a fi integrate n aplicaii i pentru crearea rapid de rapoarte complexe.
SQL*Plus
18.02.2015 Laborator 1 9
Inspirat din Algebra Relaional, modelul bazelor de date relaionale poate fi considerat drept o colecie de tabele bidimensionale, definite de urmtoarele concepte:
O entitate din algebra relaional devine un tabel ntr-o baz de date;
Un tabel este format din coloane i rnduri, iar cmpul este o valoare care se afl la intersecia dintre o coloan i un rnd;
O relaie(asociere) este o legtur ntre dou sau mai multe entiti. Existena unei relaii este subordonat existenei
entitilor pe care le leag;
Un atribut este o proprietate descriptiv a unei entiti sau a unei relaii. Pentru o enitate tipul atributului devine coloan, reprezentat printr-un nume, iar valoarea efectiv a acestuia, pentru o nregistrare, devine un cmp n tabel.
Modelarea Algebrei Relaionale folosind Oracle Database
18.02.2015 Laborator 1 10
Modelarea Algebrei Relaionale folosind Oracle Database
18.02.2015 Laborator 1 11
Modificarea datelor este realizat prin operaiile relaionale efectuate pe tabele, iar operatorii acioneaz asupra tabelelor pentru a produce noi relaii.
Operatorii relaionali pot fi definii astfel:
Proiecie () este operaia care afieaz selectiv anumite coloane din una sau mai multe tabele (submulime vertical);
Selecie sau restricia () este o operaie care preia i afieaz roate rndurile din una sau mai multe tabele sau doar rnduri care ndeplinesc una sau mai multe condiii(submulime orizontal);
Produs (x) este rezultatul obinut prin concatenarea rndurilor a dou mulimi de date conform condiiilor specificate;
Reniunea (U) este rezultatul obinut prin afiarea rndurilor comune i neconume dintre dou sau mai multe tabele;
Intersecia () este rezultatul obinut prin afiarea rndurilor comune dintre dou sau mai multe tabele.
Operatorii Algebrei Relaionale
18.02.2015 Laborator 1 12
Diferena (-) este rezultatul obinut prin afiarea rndurilor care aparin numai unei singure tabele conform condiiilor specificate;
Joinul sau compunerea ()este rezultatul obinut prin concatenarea coloanelor din una sau mai multe tabele conform condiiilor specificare;
Compunere natural (natural join ) combin rndurile din dou relaii, cu condiia ca atributele comune s aib valori identice;
Semi-compunere (semi-join ) selecteaz rndurile ce aparin unei singure relaii, care sunt corelate cu rndurile din cea de a doua relaie;
-compunere (-join) combin rndurile din dou relaii (nu neaparat corelate), cu condiia ca valorile atributelor specificate s satisfac o anumit condiie;
Compunere extern (outer join) combin rndurile din dou tabele, astfel nct condiiile de corelare s fie satisfcute. Rndurile din orice relaie care nu satisfac aceste condiii sunt completate cu valori null.
Operatorii Algebrei Relaionale
18.02.2015 Laborator 1 13
Controlul asupra bazelor de date este gestionat de SGBD i resptect anumite reguli: O baz de date relaional apare ca o colecie de tabele definite de ctre
utilizator;
Utilizatorii nu controleaz felul cum este organizat fizic informaia;
Controlul fiierelor de date este gestionat exclusiv de catre sistem;
Utilizatorul poate defini anumiti parametri de sistem pentru optimizarea aplicaiilor sau pentru diferite setri;
Accesul la baza de date este gestionat exclusiv de sistem prin executarea de comenzi specifice;
Rularea aplicaiilor, att pe server ct i pe maina client , este gestionat exclusiv de catre sistem.
Controlul asupra bazelor de date
18.02.2015 Laborator 1 14
Structura unui tabel trebuie s respecte anumite reguli: S nu existe duplicare de rnduri i coloane;
Rndurile i coloanele pot s nu respecte o anumit ordine;
Tipul coloanelor trebuie definit n concordan cu tipurile de date;
Relaiile ntre tabele se fac pe coloane de acelai tip;
Valorile sunt atomice.
Structura unui tabel
18.02.2015 Laborator 1 15
Structura unui baze de date
18.02.2015 Laborator 1 16
Structura unui baze de date
18.02.2015 Laborator 1 17
O/S block reprezint cea mai mic unitate fizic de organizare a datelor ntr-o baz de date
Data files sunt fiierele de date organizate fizic n limita spaiului alocat. Fiierele de date stocheaz fizic datele n baza de date;
Data block reprezint cea mai mic unitatre logic de intrare/ieirea i poate conine unul sau mai multe blocuri fizice;
Extent reprezint o extensie logic a bazei de date reprezentat printr-un numr continuu de blocuri;
Segment reprezint spaiul logic ntr-un tablespace, acesta pot fi de mai multe tipuri(segmente de index, segmente temporare, segmente de rollback).
Tablespace este spaiul logic n caer se creeaz obiectele (tabele, view-uri). O baz de date poate avea mai multe tablespace-uri, iar un tablespace poate avea alocat fizic mai multe fiiere de date(data-files).
SQL este un limbaj orientat pe seturi (set-oriented language);
ntr-un limbaj procedural sau orientat obiect, un programator proceseaz informaia rnd cu rnd, ns folosind SQL, un dezvoltator poate s proceseze grupuri de rnduri.
Limbajul SQL
18.02.2015 Laborator 1 18
Limbajul SQL are urmtoarele 16 comenzi, grupate n 4 categorii:
Data Manipulation Language (DML): SELECT, INSERT, UPDATE, DELETE, MERGE
Data Definition Language (DDL): CREATE, ALTER, DROP, RENAME, TRUNCATE, COMMENT
Data Control Language (DCL): GRANT, REVOKE
Transaction Control Language (TCL): COMMIT, ROLLBACK, SAVEPOINT
Limbajul SQL
18.02.2015 Laborator 1 19