Laborator01

19
Universitatea Politehnica București 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ă

Transcript of Laborator01

  • 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

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

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

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

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

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

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

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

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

    22.02.2015 Laborator 1 10

  • Modelarea Algebrei Relaionale folosind Oracle Database

    22.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:

    Proiecia () este operaia care afieaz selectiv anumite coloane din una sau mai multe tabele (submulime vertical);

    Selecia sau restricia () este o operaie care preia i afieaz toate rndurile, din una sau mai multe tabele, sau numai rnduri care ndeplinesc una sau mai multe condiii(submulime orizontal);

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

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

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

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

    22.02.2015 Laborator 1 15

  • Structura unui baze de date

    22.02.2015 Laborator 1 16

  • Structura unui baze de date

    22.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 poate 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

    22.02.2015 Laborator 1 18

  • Limbajul SQL are urmtoarele 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

    22.02.2015 Laborator 1 19