Vous êtes sur la page 1sur 12

CRITERII SGBD ORACLE

Sistemul de gestiune Oracle 10g/11g - ofera o infrastructura software completa bazata pe tehnologia
"g" - Grid computing - care realizeaza o mai usoara administrare a resurselor si aplicatiilor.

SGBD ORACLE a fost definit ca: un ansamblu complex de programe care asigura interfata intre o baza
de date si utilizatorii acesteia.

-sistem de gestiune a bazelor de date complet relational, extins cu facilitati din tehnologia orientata
obiect(OO).

-principalele criterii care trebuie indeplinite de SGBD ORACLE pentru a fi considerat un SGBD
relational, sunt urmatoarele:

1. Implementarea MODELULUI DE DATE RELATIONAL sub toate cele 3 aspecte: STRUCTURA


RELATIONALA A DATELOR; OPERATORII MODELULUI RELATIONAL; RESTRICTII DE INTEGRITATE

|SQL| PL/SQL | FORMS | RAP|

a. Structura relationala a datelor


-reprezinta un ansamblu de relatii, pin care se reprezinta atat datele cat si legaturile dintre
date.
-structura datelor in SGBD ORACLE se face cu ajutorul notiunilor: DOMENIU,
TABELA(RELATIE), TUPLU, ATRIBUT, CHEI, SCHEMA RELATIONALA

NORMALIZARE; ATRIBUT MULTICOMPUS/MULTIVALOARE/ ATRIBUT CALCULAT/SIMPLU

b. Operatorii modelului relational


Definesc operatiile care se pot efectua asupra relatiilor, in scopul realizarii
functiilor de prelucrare asupra bazei de date: consultare si inserare date, modificare si
stergere date.
c. Restrictiile de integritate
Permit definirea starilor coerente ale bazei de date

A) Structurarea datelor in SGBD Oracle se face cu ajutorul notiunilor:


Domeniu=tabela= (relatie)???, Tuplu=inregistrare=o linie din tabel,
Atribut, chei, schema relatiei

Domeniu, relatie, atribut si schema unei relatii


R1!Schema unei relatii –

Relatia se defineste prin schema relatiei – multimea atributelor prin care se descrie o relatie,
impreuna cu domeniile asociate acestora si numele atributelor. Relatia ca variabila, se modifica
in cursul existentei sale, prin inserarea sau stergerea tuplurilor, sau prin modificarea
(actualizarea) valorilor atributelor tuplurilor.

R2!Domeniu=Tabela - un ansamblu de valorii, caracterizat prin nume


R3!Relatia - un subansamblu al produsului cartezian al mai multor domenii,
subansamblu caracterizat printr-un nume si care contine tupluri cu semnificatie
ex. PERSOANA{<"Maria","F",30>,<"Vasile","M",35>}
R4!Atributul - reprezinta coloana unei tabele de date, caracterizata printr-un nume.
Numele coloanei (atributului) exprima de obicei semnificatia valorilor din cadrul coloanei
respective. = campul unui tabel
Atribut calculat (dedus) - un atribut a carui valoare nu este cunoscuta direct, ci
calculata pe baza valorilor altor atribute
Atribut simplu - atribut care nu este nici compus si nici calculat - adica valorile sale
sunt atomice
Atribut repetitiv (multivaloare) - reprezinta un atribut care, la un moment dat, are
mai multe valori care apar sub forma unei liste de valori

R5!CHEIA UNEI RELATII „R” reprezinta ansamblul minimal de ATRIBUTE prin care se poate
identifica in mod unic orice tuplu din R.

Orice relatie are cel putin o cheie


O cheie poate fi constituita: fie dintr-un singur atribut, fie din totalitatea atributelor
din schema relatiei respective.
Cand cheia este constituita dintr-un singur atribut, ea poarta numele de cheie simpla,
iar atunci cand este formata din mai multe atribute este denumita cheie compusa.

CHEIE SIMPLA vs CHEIE COMPUSA(CANDIDATI CHEIE -> CHEIE PRIMARA VS CHEI ALTERNATE)

Intr-o relatie pot exista mai multe combinatii de atribute cu proprietate de identificare unica a
tuplurilor
In acest caz se poate spune ca relatia are mai multi candidati cheie (sau mai mutle chei
candidate)
In aceasta situatie, administraotrul bazei de date va alege dintre cheile candidate una care sa
serveasca in mod efectiv la identificarea tuplurilor si care va primi numele de cheie primara, iar
restul cheilor candidate vor purta numele de chei alternate.

CREATE TABLE Furnizori (CodFz Number(3), DenFz Varchar2(20), Localitate Varchar2(10)

CREATE TABLE a(b c(x); - creeaza tabela


CONSTRAINT pk_a PRIMARY KEY (a);

B)operatorii relationali implementati in SGBD Oracle, provin din Algebra relationala. Acestia sunt:
- reuniunea, diferenta si intersectia(tabele identice)
- selectia si proiectia
- jonctiunea

!! Toti operatorii relationali, sunt implementati in limbajul SQL prin clauze specifice din comanda
SELECT din limbajul SQL*PLUS.

a. 6 OPERATII DE BAZA

b. 2 OPERATII DERIVATE
R6.1 ! REUNIUNEA: Notatii uzuale: OR(R1,R2); APPEND(R1,R2); pt Oracle-> UNION(R1,R2);

UNION & UNION ALL – operatori pentru multimi in Oracle

UNION - implementeaza operatia de reuniune a doua tabele care sunt compatibile.

UNION ALL – realizeaza de asemenea reuniunea a doua tabele, dar fara eliminarea dublurilor.

Pentru a realiza operatiunea de UNION, tabelele implicate trebuie sa fie compatibile (acelasi numar
de coloane iar coloanele sa corespunda acelorasi domenii)

OPERATORUL UNION – returneaza rezultatele a doua interogari, mai putin inregistrarile duplicate.

In SQBD Oracle optiunea UNION permite combinarea a doua sau mai multe tabele.

Sintaxa generala a operatorilor UNION/UNION ALL:

SELECT Denumire FROM tabela1; SELECT Nume FROM tabela1

UNION UNION ALL

SELECT Denumire FROM tabela1; SELECT Nume FROM tabela2;

Aceste interogari au ca efect returnarea tuturor valorilor campului Denumire din cele 2
tabele – fara a elimina duplicatele.

R6.2! DIFERENTA: def- Reprezinta o operatia a AR definita pe doua relatii: R1 si R2 ambele cu o


aceeasi schema, operatie care consta din construirea unei noi relatii R3, cu schema identica cu a
operanzilor (R1 si R2) si avand drept extensie tuplurile din R1 care nu se regasesc si in R2.
Operatorul MINUS returneaza inregistrarile din prima interogare care nu fac parte din a
doua interogare.
Operatorul MINUS implementeaza operatie de diferenta din Algebra relationala.

Notatiile uzuale sunt: R1-R2; REMOVE(R1,R2); pt Oracle -> MINUS(R1,R2);

Aceste operatii returneaza doar randurile ce se afla in prima tabela dar nu si in a doua.

Se poate defini ca o INTERSECTIE cu propozitia NOT.

Se considera acest operator ca opusul operatorului INTERSECT.

Ex:
SELECT * FROM tabela1
MINUS
SELECT * FROM tabela2
Sa se afiseze codurile produselor care nu au fost contractate:
SELECT CodP FROM produse
MINUS
SELECT DISTINCT CodP FROM produse_contractate
R6.3! INTERSECTIA:

Notatiile uzuale AND(R1,R2); Pt Oracle -> INTERSECT(R1,R2);

Reprezinta o operatie definita pe doua relatii: R1 si R2 ambele cu o aceeasi schema, operatie care
consta in construirea unei noi relatii R3, cu schema identica cu a operanzilor R1 si R2, si avand drept
extensie tuplurile comune din R1 si R2.
Returneaza numai liniile gasite de ambele interogari. Combina doua tabele si pastreaza doar
valorile comune.
De ex: se poate considera o propozitie logica de tip AND (sa se extraga toate inregistrarile
din prima tabela care sunt comune cu inregistrarile din a doua tabela)
SELECT * FROM tabela1
INTERSECT
SELECT * FROM tabela2

R6.4! SELECTIA

Reprezinta o operatie a AR definita asupra relatiei R, operatie care consta in construirea unei relatii
S, a carei schema este identica cu cea a relatiei R, dar a carei extensie este constituita din acele
tupluri din R care satisfac o conditie mentionata explicit in cadrul operatiei.

Intrucat cel mai adesea nu toate tuplurile din R stisfac aceasta conditie, SELECTIA inseamna
efectuarea unor "taieturi orizontale" asupra relatiei R, adica: eliminarea de tupluri:
Conditia din cadrul operatiei este de forma: atribut -> operator de comparatie -> valoare

SELECT * FROM tab1;

SELECT * FROM tab1  Eliminarea de tupluri

WHERE pop>350;

R6.5! PROIECTIA

Reprezinta o operatie a AR definita asupra relatiei R, operatie care consta din construirea unei noi
relatii P, in care se regasesc numai acele atribute din R specificate explicit in cadrul operatiei.

Suprimarea unor atribute din R ins efect unor „taieturi verticale” asupra lui R, care pot avea ca efect
aparitia unor tupluri duplicate, ce se cer a fi eliminate!

Prin op. De PROIECTIE se trece de la o relatie de „grad n” la o relatie de „grad p” mai mic decat cel
initial (p<n).

SELECT CODP, DENP FROM PRODUSE

WHERE CODP = ‘P1’;

SELECT REZERVARI.CODCL FROM REZERVARI,CLIENTI

WHERE REXERVARI.CODCL=CLIENTI.CODCL;

SELECT DISTINCT CODP, DENP FROM Produse


WHERE CODP>100;

Tabela dual: ex. 2+2


SELECT 2+2 FROM DUAL;
SYSDATE (data curenta)
SELECT SYSDATE FROM DUAL;

R6.6! JONCTIUNEA

Exemplu Interogarea „Să se găsească numele angajaţilor şi oraşele în care aceştia lucrează” se poate
rescrie sub forma

select Nume, Prenume, Oras

from Angajati a inner join Departament d

on a.Dept = d.Dept

In cazul unei joncţiuni, liniile dintr-un tabel ce nu au linii corespondente în celălalt tabel vor fi
eliminate din rezultat. Pentru a forţa apariţia unor astfel de linii în rezultat se poate apela la
joncţiunea externă, cu cele trei variante: • left join – furnizează acelaşi rezultat ca şi inner join, dar
include şi liniile tabelului ce apare în stânga joncţiunii pentru care nu există linii corespondente în
tabelul din dreapta; • right join – păstrează liniile tabelului din dreapta ce nu au corespondent în
tabelul din stânga; • full join – furnizează acelaşi rezultat ca şi inner join, suplimentat cu liniile
excluse din ambele tabele.

C)RESTRICTIILE DE INTEGRITATE se implemeteaza prin comenzile LDD din SQL. Aceste restrictii sunt:

 unicitatea cheii(UNIQUE, PRIMARY KEY);


 referentiala(REFERENCES,FOREIGN KEY);
 entitati(NOT NULL);
 de comportament(CHECK).

CHAR(2)
VARCHAR(2)
NUMBER(2)
NUMBER(3,2) - 3 pozitii, ultimele 2 numere zecimale
DATE(8)

Constrangeri:
NOT NULL
UNIQUE
PRIMARY KEY
FOREIGN KEY
CHECK

CREATE TABLE Imobiliare


{
CodImobil VarChar(4),
DenImobil VarChar2(12),
TipImobil VarChar2(12),
Zona VarChar2(12),
SUprafata Number(3),
An_constr Number(4),
CONSTRAINT pk_codimobil PRIMARY KEY (CodImobil)
};

CLEAR Screen;

-- <- comentariu

PROMPT cuvinte de prompt (echv. Console.WriteLine())

DESCRIBE numeTabela

M REL : 1. STRUCTURA; 2. OPERATORII; 3. RESTRICTII.

R7! – RESTRICTII DE INTEGRITATE MINIMALE:

 RESTRICTIA DE UNICITATE A CHEII


 RESTRICTIA REFERENTIALA
 REST ENTITATII

(R8!)ALTE RESTRICTII DE INTEGRITATE:

 DEPENDENTELE INTRE DATE;


 RESTRICTIILE DE COMPORTAMENT

D.F.P (partiala); D.F.C. (completa)

Restrictii de integritate minimale: sunt obligatoriu de definit si de respectat atunci cand se lucreaza
cu modelul relational;

Alte restrictii de integritate: nu definesc o categorie obligatoriu de respectat, dar exista cazuri cand
aplicarea lor este impetuos necesara pentru rafinarea si coerenta modelului.

(R9!)1. RESTRICTIA DE UNICITAE A CHEII: Intr-o relatie nu pot exista doua tupluri cu o aceeasi
valoare pentru atributele cheie. t1(k) =/ t2(k).

Repr restrictia de integritate care impune ca intr-o relatie, R care are cheia K, oricare ar fi tuplurile t1,
t2 sa fie satisfacuta inegalitatea: 𝑡1 (𝐾) ≠ 𝑡2 (𝐾)

(R10!)2. RESTRICTIA REFERENTIALA(INTEGRITATEA REFERIRII): O asociere nu poate exista decat intre


parteneri cunoscuti, adica parteneri deja definiti.

Reprezinta restrictia de integritate care impune ca intr-o relatie R1, care refera o relatie R2, valorile
cheii externe sa figureze printre valorile cheii primare din relatie R2 sau sa fie valori "null"
(nedefinite)
Semnificatia restrictiei: o asociere nu poate exista decat intre parteneri cunoscuti,
adica parteneri deja definiti. Atunci cand intr-o anumita situatie, asocierea nu este aplicabila, unul
dintre parteneri va fi desemnat prin valoarea "null", cu semnificatia de "partener inexistent"

(R11!)3. RESTRICTIA ENTITATII(INTEGRITATEA ENTITATII): unicitatea cheii impune ca la incarcarea


unui tuplu, valoarea cheii sa fie cunoscuta, pentru a se putea verifica faptul ca aceasta valoare nu
exista deja incarcata(tuplul nu figureaza deja in baza de date).

Reprezinta restrictia de integritate care impune ca intr-o relatie, atributele cheii primare sa fie
nenule.

Cheie primara: CONSTRAINT pk_codfz PRIMARY KEY (CodFz);

Cheie externa: CONSTRAINT fk_codfz FOREIGN KEY (CodFz) REFERENCES Furnizori (CodFz);

CREATE TABLE Tranzactii

(CodT Varchar2(5),

DenT Varchar2(1)

CONSTRAINT nn_dent NOT NULL

CONSTRAINT ck_dent CHECK (UPPER(DenT)

IN ('Livrari',"Receptie')),

DataOra Date DEFAULT SYSDATE,

CodF Varchar2(5),

CodC Varchar2(5),

CONSTRAINT pk_CodT PRIMARY KEY (CodT),

CONSTRAINT fk_CodF FOREIGN KEY (CodF)

REFERENCES FURNIZORI (CodF)

ON DELETE CASCADE,

CONSTRAINT fk_CodC FOREIGN KEY (CodC)

REFERENCES CLIENTI (CodC) );

Prin specificarea optiunii ON DELETE CASCADE la nivelul coloanei "CodF" este permisa stergerea
liniilor "parinte" din tabela de baza "Furnizori" si se realizeaza stergerea automata a tuturor
tranzactiilor efectuate de furnizorul respectiv, inregistrate in tabela "Tranzactii"
2.Indeplineste functiile unui SGBD(descriere, manipulare, utilizare si administrare) – implementate
prin:

a. LDD (Limbajul de Descriere a Datelor)


SQL;

b.LMD (Limbajul de Manipulare a Datelor)


SQL, PL/SQL, Java;

c. Interfete si instrumente specializate.

Oracle Developer, Oracle Express, etc.

PL/SQL(Programming Language SQL) ->putem introduce blocuri de programe


a. Instructiunile Limbajului de Descriere a Datelor-utilizate pentru definirea structurii
corespunzatoare obiectelor unei scheme: tabele, vizualizari, indecsi, proceduri, functii
stocate, declansatori, pachete etc.
Instructiunile(LDD) permit:
-crearea, modificarea si suprimarea obiectelor unei scheme si a altor obiecte ale bazei de
date - incluziv baza de date insasi si utilizatorii acesteia (CREATE, ALTER, DROP)
-modificarea numelor obiectelor unei scheme(RENAME)
- stergerea datelor din obiectele unei scheme, fara suprimarea structurii obiectelor
(TRUNCATE)

b. Limbajul de Manipulare a Datelor permit:


-regasirea datelor(SELECT)
- adaugarea de noi inregistrari (INSERT)
- modificarea valorilor coloanelor din inregistrarile existente (UPDATE)
- adaugarea sau modificarea conditionata de inregistrari (MERGE)
- suprimarea de inregistrari (DELETE)

c. Interfetele sunt produse software care permit dezvoltarea aplicatiilor cu baze de date.

Instrumentele sunt componente destinate intretinerii si bunei funcitonari a unei baze de


date Oracle.

DELETE FROM Imobile;


INSERT INTO Imobile VALUES ('GD','Garsoniera','Decomandat','Cotroceni',50,2000);
INSERT INTO Imobile (CodImobil,DenImobil,Suprafata) VALUES ('A4D','Ap_4_camera',100);
SELECT * FROM Imobile;

TO_DATE ('data','format_data')
TO_DATE('05/11/2018','DD-MM-YYYY')

3.Indeplineste obiectivele unui SGBD:

-Independenta datelor; -Redundanta minima si controlata;


-Facilitati de utilizare; -Legaturile de date;

-Securitatea si integritatea datelor; -Performante globale;

-Partajarea datelor;

-Administrarea si controlul datelor.

Obiectivele sunt indeplinite prin toate componentele sistemului SGBD Oracle.

4.Implementeaza limbajul relational SQL(Structured Query Language) a) SQL*PLUS b) PL/SQL

In Oracle este implementata o varianta extinsa de SQL standard, numita SQL*PLUS (limbajul
relational de regasire).
Pentru a suplini lista facilitatilor procedurale din SQL, SGBD ORACLE prezinta un limbaj imperativ
propriu - numit PL/SQL (Programming Language SQL).

5. Functioneaza in arhitectura Client-Server cu procesele corespunzatoare:

La instalarea sistemului Oracle, exista definite componente pentru Server si componente pentru
arhitectura Client.

AVANTAJE ale arhitecturii Client-Server:

CLIENTUL: concentreaza cererile de regasire, transmite cererile server-ului, primeste


rezultatele si le prezinta (dar nu cunoaste localizarea datelor)
SERVERUL: lucreaza multitasking, asigura concurenta la date, asigura integritatea bazei de
date, prelucreaza cererile de regasire (realizeaza accesul), realizeaza optimizarea alocarii si a
accesului, asigura control complex pentru baze de date foarte mari.

6.Functioneaza in mediu distribuit, respectand cele 12 reguli ale lui CHRIS.J.Date, dar are si versiuni
de lucru pe statii individuale(work stations).

12 reguli conform carora se poate stabili daca un SGBD este dsitribuit sau nu.

Ca o sinteza a regulilor, se poate afirma ca distribuirea datelor nu trebuie sa afecteze in niciun fel
utilizatorii. (SGBD-ul va asigura o transparenta totala a distribuirii datelor).

R1. Autonomia locala

R2. Independenta fata de serverul central

R3.Continuitatea

R4. Transparenta localizarii

R5.Independenta fragmentarii

R6.Independenta replicarii

R7.Interogari distribuite
R8.Tranzactii distribuite

R9. Independenta fata de hardware

R10. Independenta fata de software

R11. Independenta fata de retea

R12. Independenta fata de SGBD

7.Detine instrumente CASE (Computer Aided Software Engineering) pentru activitatile de analiza si
proiectare a aplicatiilor cu baze de date: ORACLE DESIGNER.

Componenta Oracle Designer este cea carea asigura aceasta facilitate.

8.Se incadreaza in arhitectura multi-level(multi-tier) , realizand trecerea de la arhitectura pe trei


nivele (pe componente), spre arhitectura NC (Network Computing).

SSADM(met PSI) … UML(flux de documente)

9. Indeplineste cele 13 reguli ale lui Codd, privind cerintele ca un SGBD sa fie complet relational.
R1-R13 EDGAR F. CODD (cercetator la IBM) a formulat 13 reguli care exprima cerintele maximale
pentru ca un SGBD sa fie relational.

-Gestionarea datelor la nivel de relatie

-Reprezentarea logica a datelor

-Garantarea accesului la date

-Valoarea NULL (se permite declararea)

-Metadatele (stocarea datelor in dictionar)

-Limbajele utilizate

-Actualizarea tabelelor virtuale


-Actualizarile in baza de date
-Independenta fizica a datelor
-Independenta logica a datelor
-Restrictiile de integritate
-Distribuirea geografica a datelor
-Prelucrarea datelor la nivel de baza (scazut)

10. Indeplineste toate caracteristicile unui SGBD RELATIONAL:

*caracteristici globale(limbaje relationale, controlul integritatii semantice a datelor, coerenta datelor,


optimizarea cererilor de regasire, utilitare);

*caracteristici particulare(facilitati de descriere a datelor, facilitati de manipulare a datelor, facilitati


de utilizare si administrare a datelor).
11.Extensia sistemului Oracle, este implementata intr-o serie de facilitati, dedicate de contextul
informatic si de noile cerinte ale economiei informationale(digitale).

Cele mai importante facilitati Oracle:

 Lucrul distribuit in retea globala de calculatoare, facilitati de lucru orientate obiect, facilitati
multimedia, gestionarea bazei pentru Internet;
 Gestionare baze de date de mare volum(DataWarehouse);
 Implementare tehnologii pentru analize complexe ale datelor(OLAP, Data Mining)

Specialistii IBM au concluzionat:

1. Reguli de baza(fundamentale): R0, R1, R2…


2. Reguli structurale:

Arhitectura SGBD Oracle


Componentele care formeaza arhitectura de baza Oracle sunt dispuse intr-o configuratie
client/server.

Aceste componente sunt plasate pe calculatoare diferite intr-o retea, asigurand


functionalitati specifice:

 serverul asigura memorarea si manipularea datelor, precum si administrarea


bazei de date
 clientul asigura interfata cu utilizatorul si lanseaza aplicatia care acceseaza
datele din baza de date

SGBD-ul ORACLE este structurat pe trei nivele:

Interfete, nucleul si instrumentele de intretinere

Baza de date
Interfete de dezvoltare
Developer
Designer
Express
Nucleul Oracle
SQL*PLUS
PL/SQL
Java
Instrumente de intretinere
Administrator tools
Net products
Browsere editoare
1.Nucleul sistemului oracle
Contine componentele care implementeaza tipul relational in SGBD ORACLE
Limbajul relational de regasire - SQL
Limbajul procedural propriu - PL/SQL

2.Interfetele sistemului oracle


Sunt componentele care permit dezvoltarea aplicatiilor cu baze de date.
Developer suite este componenta destinata dezvoltatorilor (programatorilor) de
aplicatii; -Contine generatoare FORMS (meniuri si videoformate), REPORTS (rapoarte si grafice),
JDEVELOPER;
Designer este componenta destinata analistilor si proiectantilor de aplicatii; -Ofera
elemente de CASE pentru proiectarea aplicatiilor cu BD;

3.Instrumentele sistemului oracle


Sunt componente destinate intretinerii si bunei functionari a unei BD Oracle.
Administrator tools
Contine mai multe utilitare destinate administratorului BD (Pentru
deschidere/inchidere BD), autorizarea accesului, refacerea structurii initiale sau conversii de date
Net products
Lucrul distribuit in retea
Protocoale de comunicatie API(Application Programe Interface)
Acces la internet (mail)
Browsere
Editoarele sunt instrumente destinate cautarii si intretinerii bazei de date