Documente Academic
Documente Profesional
Documente Cultură
Baze de date, sisteme de baze de date, etapele realizarii unei baze de date
Baza de date
= un ansamblu structurat de date coerente, fr redundan inutil, astfel nct acestea pot
fi prelucrate eficient de mai muli utilizatori ntr-un mod concurent
= o colecie de date persistente, care sunt folosite de ctre sistemele de aplicaii ale
unei anumite ntreprinderi
Sistem de baze de date = consta din:
1.BD propriu-zis (n care se memoreaz datele)
2.SGBD (gestionarea i prelucrarea complex a datelor)
3. dicionarul BD (metabaza de date: informaii despre date, structura acestora, statistici, documentaie)
4.mijloace hardware (comune sau specializate);
5.reglementri administrative destinate bunei funcionri a sistemului
6.personalul implicat:
administratori de date i baze de date,
proiectani (designeri) de baze de date,
programatori de aplicaii,
utilizatori finali.
Administratorul de date:
= un manager care stabileste
1)care sunt datele ce trebuie stocate
2)regulile de intretinere si de tratare a acestor date
Administratorul bazei de date:
= o persoan sau un grup de persoane ce rspund de ansamblul activitilor legate de BD
este responsabil cu implementarea deciziilor DA i cu controlul general al sistemului, la nivel tehnic =>
are 4 mari categorii de atribuii:
de proiectare,
administrative,
operative,
de coordonare.
Proiectanii de BD: (i) cei care abordeaz nivelul logic:
proiecteaz conceptual baza de date (independent de programele de aplicatii si limbajele de
programare) (ii) cei care abordeaz nivelul fizic:
aleg modul de implementare fizica a modelului conceptual
Programatorii de aplicaii:
scriu programele aplicaie ce confer funcionalitatea cerut de utilizatorii finali
utilizeaza limbaje de programare de nivel inalt (C++, Java, PL/SQL etc.).
Utilizatorii finali:
acceseaz interactiv baza de date
pot fi:
arhitectura fiier-server
procesarea este distribuit n reea (de obicei LAN)
arhitectura cuprinde fiierele cerute de aplicaii i SGBD-ul
aplicaiile i funciile SGBD sunt executate pe fiecare staie de lucru, solicitnd atunci cnd este nevoie
fiiere de pe serverul de fiiere;
arhitectura client-server exist
un proces client, care necesit resurse i
un proces server, care ofer resurse.
5) implementarea sistemului de BD.
se combina ultimele 3 criterii : numarul de utilizatori, modul de stocare a BD i SGBD i modul de
functionare a sistemului de baze de date:
I.sisteme client-server centralizate de tip monouser
II.sisteme client-server centralizate de tip multiuser
III.sisteme client-server distribuite de tip multiuser.
I.Sisteme client-server centralizate de tip monouser
BD i SGBD sunt stocate pe acelasi server care raspunde cererilor unui singur client care acceseaza BD
BD i SGBD sunt stocate pe acelasi server care raspunde cererilor mai multor clienti care acceseaza
BD
aplicatiile client sunt executate pe statii diferite (=> cu puteri de calcul inferioare serverului), conectate
printr-o retea de comunicatie cu calculatorul pe care ruleaza serverul.
III.Sisteme client-server distribuite de tip multiuser
O BD distribuita = = o colectie de date care, din punct de vedere logic, apartin aceluiasi sistem dar
care, din punct de vedere fizic, pot sa fie memorate pe mai multe statii de calcul conectate printr-o retea
de comunicatie
SGBD distribuit = = sistemul software care gestioneaza o astfel de BD
Caracteristici:
cresterea capacitatii destocare i prelucrare
cresterea complexitatii
Principala cerinta (partial indeplinita): transparenta = capacitatea unui sistem distribuit de a ascunde
detaliile de implementare, astfel nct utilizatorii sa poata accesa datele pe baza unui model de nivel
nalt, fara a fi necesara cunoasterea exacta a modului de amplasare, replicare sau comunicare a datelor.
BD i SGBD sunt distribuite pe mai multe statii conectate printr-o retea de comunicatie
aplicatiile client sunt executate pe statii diferite , conectate printr-o retea de comunicatie cu
calculatoarele (interconectate) pe care ruleaza serverul.
4. Sisteme de gestiune a bazelor de date (definitie, arhitectura, obiective)
Sistem de gestiune a bazelor de date (SGBD Data Base Management System)
= un produs software care asigur interaciunea cu o BD, permind definirea, consultarea i actualizarea
datelor din BD
Structura unui SGBD:
complexa; dinamica; minimum 5 clase de module:
1.programe de gestiune a bazei de date (PGBD): realizeaz accesul fizic la date ca urmare a unei
comenzi;
2.module pentru tratarea LDD permit traducerea unor informaii despre date n obiecte ce pot fi apoi
exploatate n manier procedural / neprocedural;
3.module pentru tratarea LMD (interpretativ, compilativ, generare de programe) permit utilizatorilor
inserarea, tergerea, reactualizarea sau consultarea informaiei dintr-o baz de date;
4.module utilitare asigur ntreinerea, prelucrarea, exploatarea corect i uoar a bazei de date;
5.module de control
permit controlul programelor de aplicaie,
asigurarea confidenialitii i integritii datelor,
rezolvarea unor probleme de concuren, r
ecuperarea informaiei n cazul unor avarii sau defeciuni hardware sau software etc.
Cele 4 niveluri de abstractizare i de percepie a datelor intr-o BD:
LOW
Intern
Conceptual
Logic
Extern
HIGH
=> arhitectura pe 3 niveluri a BD si existenta unor corespondente intre acestea.
Nivelul extern (modelul extern, subschema, vizualizarea)
reprezint viziunea utilizatorului final asupra datelor
permite asigurarea unui nivel de securitate a datelor: un utilizator va accesa doar datele descrise n
schema sa extern Nivelul logic (una din schemele logice posibile ale datelor)
reprezint viziunea programatorului de aplicaie asupra datelor; Nivelul conceptual (schema
conceptual a datelor: articol, nregistrare, zon)
este nivelul central
reprezint viziunea programatorilor de sistem asupra datelor
corespunde structurii semantice a datelor fr implementarea pe calculator
Nivelul intern (schema fizic a datelor: bit, octet, adres)
permite descrierea datelor unei BD sub forma n care sunt stocate n memoria calculatorului
sunt definite fiierele care conin aceste date, articolele din fiiere, cile de acces la aceste articole etc.
Observatie
La nivel conceptual sau intern:
schemele respective descriu in mod unic o baz de date
La nivel extern:
schemele reprezint o descriere a unei pri a bazei de date ce corespunde viziunii unui program sau
unui utilizator =>Pentru o BD particular exist: 1! schem intern, 1! schem conceptual mai multe
scheme externe.
OBIECTIVE:
SGBD (gestionarea i prelucrarea complex a datelor)
5. Structura fizica a unei BD Oracle (fiiere de date,fiiere de reluare, fiiere de control)
octei de pe disc, = dimensiunea sa: este definit n momentul crerii BD, poate fi modificat ulterior,
este un multiplu al dimensiunii blocurilor fizice de la nivelul SO; Structura blocului de date Oracle:
un antet (header),
un spaiu liber (free space),
un spaiu pentru date (data space).
Blocuri de date (cont.)
Antetul conine
informaii generale referitoare la bloc
un catalog al tabelelor (table directory):
un catalog al liniilor (row directory):
Spaiul liber al blocului de date este alocat pentru inserarea de noi linii
sau actualizarea liniilor care necesit spaiu suplimentar.
Alegerea blocului n care va fi inserat o linie nou depinde de spaiul
liber al acestuia i de valorile parametrilor PCTFREE i PCTUSED.
ntr-un bloc, se pot introduce date atta timp ct dimensiunea spaiului
liber este mai mare dect limita fixat de parametrul PCTFREE.
Sistemul Oracle va considera acest bloc indisponibil pentru inserarea de
noi linii, pn cnd procentajul spaiului utilizat coboar sub valoarea
dat de PCTUSED.
b) c) Extensia i segmentul
Extensia = unitate logica de alocare a spaiului BD,
= compus dintr-o mulime contigu de blocuri de date (din acelai fiier
de date);
Segmentul = unitate logica formata din una sau mai multe extensii;
Iniial, segmentul are o singur extensie (initial extent).
b) c) Extensia i segmentul (cont.) O extensie
este alocat atunci cnd este creat sau extins un segment,
este dezalocat (in general) cnd segmentul este suprimat sau trunchiat;
Eliberarea unei extensii implic tergerea datelor existente n blocurile
de date alocate acesteia (ele vor fi reutilizate pentru extensiile nou create);
b) c) Extensia i segmentul
Segmentul = corespunde unui singur obiect fizic stocat =
folosete blocuri de date care se gsesc n acelai spaiu tabel; Tipuri de segmente din BD Oracle :
segmente de date (data segment),
segmente index (index segment),
segmente temporare (temporary segment),
segmente de revenire (undo segment) etc.
b) c) Extensia i segmentul (cont.) Segmentele de date
sunt definite atunci cnd este folosit comanda de creare a unui tabel sau a unei grupri
un singur segment de date este folosit pentru stocarea tuturor datelor dintr-un tabel nepartiionat care nu
face parte din nicio grupare, dintr-o partiie a unui tabel partiionat sau dintr-o grupare de tabele
Segmentele index
sunt folosite pentru a stoca datele unui index
fiecare index nepartiionat este coninut ntr-un singur segment. n cazul indecilor partiionai, fiecrei
partiii i se asociaz cte un segment index Segmentele temporare
sunt utilizate de sistem pentru analiza i execuia comenzilor SQL care necesit un spaiu temporar de
stocare
sistemul aloc n mod automat segmente temporare atunci cnd este necesar i le suprim dup
execuia comenzii SQL
segmentele temporare sunt alocate n majoritatea cazurilor de sortare (atunci cnd operaia respectiv
nu se poate face n memorie sau dac folosirea indecilor nu presupune o soluie mai eficient).
b) c) Extensia i segmentul (cont.) Segmentele de revenire
BD conine unul sau mai multe segmente de revenire, folosite pentru:
anularea aciunii tranzaciilor
asigurarea consistenei la citire,
efectuarea operaiile de recuperare a bazei de date;
nu pot fi accesate de ctre utilizatorii sau administratorii bazei de date
doar de ctre sistem.
d) Spatiul tabel = unitate logica de stocare formata din 1,2, segmente
grupeaza logic o mulime de obiecte:
fiecare obiect al BD are specificat un spaiu tabel n care trebuie s fie creat ->
datele care alctuiesc obiectul sunt apoi stocate n fiierele de date alocate spaiului tabel respectiv ->
un fiier de date poate fi alocat unui singur spaiu tabel;
fiecarui utilizator i se poate aloca explicit un spaiu tabel, n care vor fi stocate toate obiectele create de
el
alocarea se efectueaza automat
folosirea mai multor spaii tabel -> flexibilitate n utilizarea BD
BD = {spaii tabel} Tipuri de spatiu tabel in BD Oracle:
spaiul tabel SYSTEM,
spaii tabel non-SYSTEM.
e) Schema = mulimea obiectelor bazei de date, aflate n posesia unui utilizator (fiecare utilizator deine
o singur schem).
numele schemei este acelai cu numele utilizatorului
nu exist o coresponden biunivoc intre spaiile tabel i schemele de obiecte
obiectele aceleiai scheme pot fi n spaii tabel diferite
un spaiu tabel poate conine obiecte din mai multe scheme
pentru referirea unui obiect din schema altui utilizator, trebuie specificat att numele obiectului, ct i
schema din care face parte, prin folosirea notaiei schema.obiect
7. Structura unei BD Oracle: dictionarul datelor
Dictionarul datelor (catalogul de sistem)
= conine date despre date (metabaza de date) i.e. informaii despre baza de date:
definiiile tuturor obiectelor din schemele bazei
cantitatea de spaiu alocat pentru obiectele schemelor
cantitatea de spaiu utilizat de acestea la momentul curent
valorile implicite ale coloanelor
constrngerile de integritate
numele utilizatorilor Oracle
privilegiile i role-urile acordate fiecrui utilizator
SGA fix = o zona special a SGA folosit pentru stocarea informaiilor despre starea bazei de date i a
instanei
informaiile sunt accesate de ctre procesele background,
nu poate conine date ale utilizatorilor.
PGA = Program Global Area = zona globala program = = zon de memorie care conine date i
informaii de control relative la un singur proces Oracle
poate fi folosit de un singur proces,
este alocat la crearea procesului,
este dezalocat la terminarea acestuia,
este format - in general din:
o zon privat SQL (conine date - de ex., informaii de legtur i structuri de memorie necesare rulrii
comenzilor)
o zon de memorie alocat sesiunii,
zone de lucru SQL.
10. Modelarea semantic a informaiei (modelul i diagrama entitate-relatie E/R)
Modelul entitate-relatie (modelul E/R)
= una dintre cele mai cunoscute i utilizate abordri ale modelrii semantice (= una din primele etape n
proiectarea BD, etapa numita proiectarea schemei conceptuale)
Metodologia E/R: considerata:
cea mai buna metodologie pentru proiectarea BD
una dintre cele mai bune metodologii pentru dezvoltarea
ModelulE/R
= model de date conceptual de nivel nalt, independent de platforma hardwareutilizat i de tipul
SGBD-ului
constituit din concepte care descriu
structura BD i
tranzaciile de regsire sau reactualizare asociate
mparte elementele unui sistem real n dou categorii:
entiti
relaii (legturi, asocieri, nu concept matematic) ntre aceste entiti;
entitiile i legturile au anumite caracteristici, numite atribute.
Diagramele E/R
= reprezentare grafic a modelului E/R
= o tehnic de reprezentare grafica a structurii logice a BD;
Conventii de reprezentare in diagrama E/R1:
1.entitile sunt reprezentate prin dreptunghiuri;
2.relaiile dintre entiti sunt reprezentate prin arce neorientate;
3.cardinalitatea minim este indicat n paranteze, iar cardinalitatea maxim se scrie fr paranteze;
4.atributele care reprezint chei primare trebuie subliniate sau marcate prin simbolul #, plasat la
sfritul numelui acestor atribute; atributele obligatorii/optionale sunt precedate de */o;
5.nu este necesar s fie specificate, n cadrul diagramei, toate atributele.
Algoritm de proiectare a diagramei E/R
1.reprezentarea entitilor din cadrul sistemului analizat;
accesarea BD:
Modelul relaional
1! element: relaia
=> orice interogare asupra BD este tot o relaie;
independena modelului conceptual de implementarea
fizic
=> s-au introdus o serie de limbaje neprocedurale de
prelucrare a datelor .
sistemul suport operatorii relaionali de proiecie, selecie i compunere natural, fr limitri impuse
din considerente interne;
SGBDcomplet relaional:
este minimal relaional i
sistemul suport restriciile de integritate de baz
sistemul suport toate operaiile de baz ale algebrei relaionale.
Principalele caracteristiciale modelului relaional:
1.nu exist tupluri identice,
2.ordinea liniilor i a coloanelor este arbitrar,
3.fiecare coloan definete un domeniu distinct i nu se poate repeta n cadrul aceleiai relaii,
4.articolele unui domeniu sunt omogene,
5.toate valorile unui domeniu corespunztoare tuturor cazurilor nu mai pot fi descompuse n alte valori
(sunt atomice).
13. Regulile de integritate
Reguli de integritate:
a entitilor;
a relaiior
de integritate referenial);
In plus: restricii contextuale(
de integritate impuse de situaia real modelat prinbaza de
date).
Regulile de integritate
(caracteristica de asigurare a integritii)
= aseriuni pe care datele coninute n BD trebuie s le satisfac
Clasificare:
regulile de integritate structurale (inerente modelrii datelor),
minimale pt un SGBDR (definite n raport cu noiunea de cheie a unei relaii):
de cheie,
de entitate,
de referinta;
extinse
regulile de funcionare (de comportament: specifice unei aplicaii particulare).
Cheiecandidat a relatiei R =
= o multime de atribute ale R ale cror valori nu sunt susceptibile de modificari si care pot identifica
unic orice tuplu din R;
Cheieprimara a relatiei R =
= o mulime minimal K de atribute ale R ale cror valori identific unic orice tuplu din R
t1, t2tupluri ale lui R t1(K t2(K) i
t1(K t2(K)
nu poate fi reactualizat ,
reprezentare grafica: atributele componente: subliniate sau urmate de semnul # ;
heie primar;
cheia primara = identifica linii in tabel (tupluri in relatie)
indexul = localizeaz linii in tabel (inregistrari in fisier)
In diagrama conceptuala:
A.Transformarea entitilor
tabeleindependente.
cheia primar nu conine chei externe
cnp;
tabeledependente.
cheia primar a entitilor dependente conine cheia primar a entitii de care depinde (cheie extern)
plus unul sau mai multe atribute adiionale
cheia primara: 2 atribute;
codP (care reprezint cheia primar a entitii de care depinde: PERSONAL_FMI) plus
cod_minor_intr;
subtabele
cheia extern se refer la superentitate si coincide cu cheia primar a acesteia
cheia primara: codPeste si cheia primar a entitii PERSONAL_FMI.
B.Transformarea relatiilorRelaiile 1:1 i 1:n
e tip 1:n
PICTORI_ picteaza_PICTURI
i.e.: cod_pictor
cod_pictor
reprezint
entitate independent
Cheie primar
nu conine chei externe
subtabel
dependent
o cheie extern
subentitate
entitate dependenta
atribut multiplu
asociativ
relaie m:n
relaie de tip 3
dou
dou sau mai multe chei externe i
(opional) coloane adiionale
definirea datelor care vor reprezenta domeniul de valabilitate al unei operaii de control al concurenei
etc
Operatorul PROJECT
= o operaie unar care elimin anumite atribute ale unei relaii R, producnd o submulime pe
vertical a acesteia
Suprimarea unor atribute poate avea ca efect apariia unor tupluri duplicate, care trebuie eliminate
A1, ..., Am(R),
PROJECT(R, A1, ..., Am),
R[A1, ..., Am],
unde A1, A2, ..., Amsunt parametrii proieciei relativ la relaia R
A1, A2, ..., Amsunt atributele din Rcare nu au fost elimiate prin proiectie (care apar in relatia-rezultat
R).
Exemplu:
S se obin numele si prenumele salariatilor din FMI
Proiecie n algebra relaional:
Rezultat = PROJECT (PERSONAL_FMI, nume, prenume)
Proiecie fr dubluri n SQL:
SELECTDISTINCT nume, prenume
FROMpersonal_fmi;
Operatorul SELECT
= o operaie unar care elimin anumite tupluri ale unei relaii R, producnd o submulime pe
orizontala a acesteia
Relatia R rezultata din relatia R se obine prin extragerea tuplurilor din Rcare satisfac o condiie
specificat
Condiia este o formul logic ce poate cuprinde nume de atribute, constante, operatori logici, operatori
aritmetici de comparare;
SELECT (R, condiie),
R [condiie],
RESTRICT (R, condiie)
Exemplu:
S se obin toate informatiile despre cursurile optionale din FMI
Selectie n algebra relaional:
Rezultat = SELECT (CURS, tip=optional)
Selectie n SQL:
SELECT*
FROMcurs
WHEREtip=optional;
Operatorul UNION
= fie Ssi Tdoua relatii de aceeasi aritate; reuniunea lor, R, este tot o relatie, care consta din multimea
tuplurilor aparinnd fie lui S, fie lui T, fie ambelor relaii
UNION (S, T)
OR (S, T)
APPEND (S, T)
Exemplu:
S se obin lista completa a numelor si prenumelor cadrelor didactice si studentilor din FMI
Reuniune n algebra relaional:
S = PROJECT (CADRU_DIDACTIC, nume, prenume)
T = PROJECT (STUDENT, nume, prenume)
Rezultat = UNION (S,T)
Reuniune n SQL:
SELECTnume, prenume
FROMcadru_didactic
UNION
SELECTnume, prenume
FROMstudent;
Operatorul DIFFERENCE
= fie Ssi Tdoua relatii de aceeasi aritate; diferenta lor, R, este tot o relatie, care consta din multimea
tuplurilor care aparin lui S, dar nu aparin lui T
= fie Ssi Tdoua relatii de aceeasi aritate; intersectia lor, R, este tot o relatie, care consta din multimea
tuplurilor care aparin atat lui Scat si lui T
T) S )
SQL!)
xP(x
x P(x)
=> operatorul DIVISION poate fi exprimat n SQLprin succesiunea a doi operatori NOT EXISTS.
Exemplu:
S se obin codurile studentilor care urmeaza cel putin un curs facultativ
Diviziune n algebra relaional:
S= PROJECT ( URMEAZA, codS, codC)
T= PROJECT ( SELECT ( CURS, tip=facultativ), codC)
Rezultat = DIVISION (S,T).
Diviziune n SQL:
SELECTUNIQUEcodS
FROMurmeaza x
WHERENOTEXISTS
(SELECT*
FROMcurs c
WHEREcurs.tip = facultativ
ANDNOTEXISTS
(SELECT*
FROM urmeaza b
WHEREc.codC = b.codC
ANDb.codS = x.codS));
Operatorul JOIN
= operator de compunerecare permite regsirea informaiei din mai multe relaii corelate
= operaie binar asupra a 2 relatii, S, T, care are ca rezultat o nou relaie, R, n care fiecare tuplu este o
combinaie a unui tuplu din Scu un tuplu din T
ervatii
1.Condiia necesar aplicrii operatorului JOIN:
tuplurile care se combin s fie similare
2.Operatorul combina alti 3 operatori:
produsul cartezian,
selecia,
proiecia;
n general:
se construiete un produs cartezian,
se elimin tupluri prin selecie,
se elimin atribute prin proiecie;
3.Exist mai multe variante ale operatorului JOIN:
NATURAL JOIN,
-JOIN
SEMI-JOIN,
OUTER JOIN (LEFT, RIGHT, FULL).
Operatorul NATURAL JOIN
= combin tupluri din dou relaii Si T, cu condiia ca atributele comune s aib valori identice
Notatii
JOIN(S, T)
RS
1.se calculeaz produsul cartezian S T,
2.pentru fiecareatribut comun Acare definete o coloan n Si o coloan n T:
se selecteaz din S T tuplurile ale cror valori coincid n coloanele S.Ai T.A(atributul S.Areprezint
numele coloanei din S T corespunztoare coloanei Adin S),
3.pentru fiecare astfel de atribut Ase proiecteaz coloana T.A, iar coloana S.Ase va numi A;
NATURAL JOIN = operator derivat:
JOIN (S, T) = i1,...,im(S.A1 = T.A
S.Ak= T.Ak)(S T),
unde A1, ..., Ak= atributele comune lui Si T,
i1, ..., im= lista componentelor din S T(pstrnd ordinea iniial) din care au fost eliminate
componentele S.A1, ..., S.Ak
S se obin informaii complete despre studentii FMI si liceele pe care le-au absolvit, respectiv.
NATURAL JOIN n algebra relaional:
JOIN(R, S, conditie)
-JOIN= operator derivat: produs cartezian si selectie
JOIN (S, T, conditie) = conditie (S T)
Exemplu:
S se obin informaii despre studentii FMI (cod, nume, prenume, data i locul nasterii) i despre
cadrele didactice (cod, nume, prenume, grad didactic, doctorat) cu condiia ca numele de familie ale
cadrelor didactice i studentilor sa nu coincida
Operatorul -JOINn algebra relaional:
S = PROJECT (STUDENT, codS, nume, prenume, data_nastere, loc_nastere)
T = PROJECT (CADRU_DIDACTIC, codCD, nume, prenume, gradD, doctorat)
Rezultat = JOIN (S; T, STUDENT.nume <> CADRU_DIDACTIC.nume)
Operatorul -JOINn SQL:
SELECTcodS, nume, prenume, data_nastere, loc_nastere, codCD, nume, prenume, gradD, doctorat
FROMstudent s, cadru_didactic c
WHEREs.nume <> c.nume;
Operatorul SEMI-JOIN
de semi-compunere=
= genereaz o relaie care conine toate tuplurile din Sce sunt corelate cu cel puin unul dintre tuplurile
din T
1.Operatorul este utilizat cnd nu sunt necesare toate atributele compunerii (sunt conservate atributele
unei singure relaii participante la compunere),
2.Operatorul este asimetric;
SEMIJOIN(S, T)
SEMIJOIN(S, T, condiie).
SEMI-JOIN= operator derivat:
SEMIJOIN (S, T) = M(JOIN (S, T))
SEMIJOIN (S, T, condiie) = M(JOIN (S, T, condiie)),
unde M= mulimea atributelor relaiei S.
Exemplu:
S se obin informaii (nume, localitate) despre liceele ai caror absolventi de alta nationalitate decat cea
romana au devenit studenti ai FMI
produs cartezian,
compunere;
Cele mai utilizate metode :
cond2(R) = cond2(cond1(R))
join-ului sau produsului cartezian folosind comutarea
seleciei cu join-ul
Regula de optimizare 2.Produsele carteziene se nlocuiesc cu join-uri, ori de cte ori este posibil
cardinal f mare)
d legtura dintre produs cartezian, joini selecie.
Regula de optimizare 3.Dac sunt mai multe join-uri atunci cel care se execut primul este cel mai
restrictiv
joineste mai restrictiv dect altul dac produce o relaie mai mic
care joineste mai restrictiv:
a1a2
Determinantul unei dependene funcionale =
= atributul care, prin valorile sale, determin valorile celuilalt atribut
(i.e.: atributul aflat, n ambele reprezentri, n stnga sgeii);
a1 se numeste determinantsi atributul a2se numeste determinatal unei dependente
functionale
a1exist cel mult o valoare a atributului a2
X+
{A1, A2, ... , An}+.
Algoritm de calcul pentru inchiderea X+a unui set de atribute X in raport cu un set de depenedente
functionale S
1.Se initializeaza X+cu multimea de atribute X = {A1, A2, ... , An} implicate in dependentele
functionale din multimea S
4.Se reiau Pasul 2 si Pasul 3 pana cand nu se mai pot adauga noi atribute la X
5.Multimea X+astfel obtinuta constituie inchiderea multimii de atribute X in raport cu S;
pentru R;
Definitii(tipuri de dependente)
(1)O dependen funcional X Yse numete dependen funcional total(FT)
X
Xa. . X
Y
(2)O dependen funcional X Yse numete dependen funcional partiala
X
Xa. . X
Y
(3) Fie D mulimea dependenelor unei relaii i
p1, p2, ..., pr, r
D
a mulimii Deste derivabil din D
aplicarea proprietilor p1, p2, ..., pr, se numeste acoperire a lui Din raport cu proprietile p1, p2, ..., pr
(4)mulimea D
acoperire minimalpentru D
D
D
Definitii (multime de axiome)
Fie D o multime de dependente functionale si D* inchiderea sa:
(1)O mulime de axiome se numeste complet
D, toate dependenele din D*
(2) O mulime de axiome se numeste nchis
D , face parte D*.
Axiomele lui Armstrong
Fie X, Y, Z, Wmulimi de atribute ale unei entitati:
Ax. 1reflexivitate:
XX
Ax. 2creterea determinantului:
dac XYi X inclus Z, atunci ZY
dac XYi W inclus Z, atunci X U ZY U W
dac XYatunci X U ZY U Z
Ax. 3tranzitivitate:
dac XYi YZ, atunci XZ.
Teorema (J.D. Ullman)
Axiomele Ax.1Ax.3 reprezint o mulime nchis i complet de axiome
Corolar
nchiderea unei multimi de dependente Dconsta din mulimea dependenelor deduse din D prin aplicarea
axiomelor lui Armstrong.
Reguli de inferenta pentru dependente funct.
Fie X, Y, Z, Wmulimi de atribute ale unei entitati:
Reg. 1descompunere:
dac XY si Z inclus Y, atunci XZ
Reg. 2reuniune:
dac XY si XZ , atunci XYZ
Reg. 3semitranzitivitatea:
dac XY si YZW , atunci XZW
Definitii(dependente echivalente)
Normalizarea BD
un proces de ameliorare progresiv a schemei conceptuale,
prin care un set de relaii care ncalc anumite principii de proiectare este nlocuit cu un alt set de relaii
adecvat, coerent i bine structurat;
acest proces trebuie s satisfac urmtoarele cerine:
conservarea datelor
conservarea dependenelordintre date,
descompunere minimala relaiilor iniiale
Normalizarea BD(cont.)
exista 2 metode de modelare a BD fara anomalii si fara pierdere de informatii:
(1)top-down
(2)bottom-up
Definitie formala (metoda top-down)
= procesul prin care relatia universala care modeleaza o situatie reala si respecta restrictiile
contextuale incalcand astfel regulile de integritate este inlocuita cu un set de reguli din ce in ce mai
adecvate, coerente si bine structurate;
se realizeaz plecnd de la o relaie universal ce conine toate atributele sistemului de modelat;
se desfoar n mai muli pai;
fiecare pas (cu excepia aducerii BD la FN1) presupune:
identificarea dependenelor funcionale,
verificarea ndeplinirii unor anumite proprieti denumite generic forme normale.
Orice form normal se obine aplicnd o schem de descompunere
Exist dou tipuri de descompuneri:
I.Descompuneri care conserv dependenele
relatia Reste descompusa ntr-o mulime de proiecii R1, R2, ..., Rka.. dependenele relatiei initiale
Rsunt echivalente (au nchideri pseudo-tranzitive identice) cu reuniunea dependenelor noilor relatii R1,
R2, ..., Rk
II.Descompuneri fr pierderi de informaie(L-join)
relatia Reste descompusa ntr-o mulime de proiecii R1, R2, ..., Rka.. pentru orice realizare a lui Reste
adevrat relaia:
R= JOIN(B1(R), B2(R), ...,Bj(R))
Regula Casey-Delobel
descrie conditia ca o descompunere utilizat n procesul normalizrii sa se efectueze fr pierdere de
informaie:
dac este satisfcut o anumit dependen funcional, atunci exist o descompunere fr pierderi;
Fie: R(A) o schem relaional,
, , o partiie a multimii de atribute Aa.i.
determin funcional pe iar contine restul atributelor in A;
atunci:
R(A
R
R))
A.
O relaie R este n FN1 dac fiecrui atribut care o compune i corespunde o valoare indivizibil
(atomic).
Soluie (normalizare)
FN1
fie atomice
noile relaii
modificat
relaia
iniial
FN2
multe atribute;
relaia
iniial
(b)A U B = R;
O dependenta multivaloare ABdintr-o relatie Rse numeste netriviala
niciuna dintre cele 2 conditii de mai sus nu are loc;
Forma normala 5(FN5)
descompunerea fara pierdere de informatie (la descompunerea nonaditiva)
cazul FN4) si este rezolvata prin FN5
Dependenta ladescompunerea fara pierdere de informatie (dependenta la descompunerea
nonaditiva)= (Lossless-join dependency)
= o proprietate a operatiei de descompunere care impiedica aparitia de linii nelegitime atunci cand are
loc o operatie de compunere naturala a mai multor relatii
*(R1, R2, , Rk)
O relatie Reste in FN5ddaca
relatia Rnu prezinta nicio dependenta la compunere
Concluzii
Normalizarea
= o tehnica de obtinere a unei multimi de relatii inzestrate cu anumite proprietati, in conformitate cu
constrangerile specifice, impuse de situatia concreta modelata prin baza de date,
= o metoda formala prin care se pot identifica relatiile cu ajutorul campurilor de cheie i se pot
descoperi diversele tipuri de dependente care exista intre atributele lor,
= un proces care transforma o relatie trecand-o dintr-o FNin alta;
la fiecare pas, se incearca eliminarea acelor caracteristici ale relatiei care o fac vulnerabila la anomaliile
de actualizare
trecerea intr-o FNsuperioara face a relatia mai invulnerabila dar i mai restrictiva ca format:
Concluzii(cont.):
FN1 FN2
elimin redundanele datorate dependenei netotale a atributelor care nu particip la o cheie, fa de
cheile lui R
se suprim dependenele funcionale care nu sunt totale;
FN2 FN3
elimin redundanele datorate dependenei tranzitive
se suprim dependenele funcionale tranzitive;
se conserva si datele si dependentele;
FN3 BCNF
elimin redundanele datorate dependenei funcionale
se suprim dependenele n care partea stng nu este o supercheie
se conserva doar datele.
BCNF FN4
elimin redundanele datorate multidependenei
se suprim toate multidependenele care nu sunt i dependene funcionale
se conserva doar datele;
FN4 FN5
elimin redundanele datorate dependenei la compunere
se suprim toate dependenele la compunere care nu sunt implicate de o cheie;
BCNF, FN4 iFN5
toate FN se bazeaza pe regula orice determinant este o cheie,
pentru fiecare FN determinantul se definete in raport cu un alt tip de dependenta:
BNCF)
(FN4)
(FN5).
21. Denormalizarea relaiilor
Deormalizarea
Fie R = {R1, R2, ..., Rp} o mulime de relaii
Denormalizarea R nseamn nlocuirea Rcu
R= JOIN(R1, R2, ..., Rp),
astfel nc
Rdup atributele lui Riva produce din nou relaia Ri
Observatii
mai mic dect gradul de normalizare a cel puin uneia dintre relaiile iniiale;
mrirea redundanei (relaia Rse afl la un nivel de normalizare mai sczut dect relaiile R1, R2, ...,
Rpcompoente)
join-uri care trebuie efectuate pentru rezolvarea unei interogri, prin realizarea
unora dintre acestea n avans (ca parte din proiectarea bazei de date).
Problemele denormalizarii
1.Reaparitia anomaliilor pe care diversele forme normale reusisera sa le elimine;
2.Urmari negative ale denormalizarii asupra fisierelor stocate: un design fizic poate fi bun pentru
anumite aplicaii, dar prost pentru altele(in tabelul obtinut prin denormalizare -joinliniile par adiacente
dar in memorie inregistrarile nu sunt! --> interogarile care vizeaza inregistrari numai in unul dintre
tabelele participante la join vor fi mai lente);
3.Lipsa unui criteriu formal pt stabilirea nivelului la care denormalizarea trebuie sa se opreasca;
4.Lipsa unor reguli formale pentru stabilirea situaiilor n care este indicat denormalizarea relaiilor.
Cazuri in care denormalizarea este indicata:
Oracle SQL
SQL= asigur comunicarea cu serverulOracle
=>reduce timpul necesar crerii i ntreinerii aplicaiilor de bazede date,
Oracle SQL =include extensii ale limbajuluiSQL standard ANSI/ISO
Instrumentele i aplicaiile Oracle =furnizeaz instruciuni suplimentare.
Utilitarele permit
executarea instruciunilor limbajului SQL standard asupra unei baze de date Oracle,
executarea instruciunilor saufunciilor suplimentare disponibile.
23. Clasificarea comenzilor SQL (LDD, etc.)
Instruciunile SQLse mpart n mai multe categorii, nfuncie de tipul aciunii pe care o realizeaz:
a.limbajul de definirea datelor(LDD);
b.limbajul de prelucrarea datelor(LMD);
c.limbajul de control al tranzaciilor(LCT);
d.limbajul de control al datelor(LCD);
e.comenzispeciale:
i.instruciunile pentru controlul sesiunii,
ii.instructiuni pentru controlul sistemului,
iii.instruciunile SQL ncapsulate.
(a)Limbajul de definirea datelor(LDD):(LDD contine comenzi pt. definirea structurii obiectelor unei
scheme):
specific fiecrui SGBD
funciile principale sunt aceleai
conceptual, LDD realizeaz:
definirea entitilor i a atributelor acestora prin: nume, form de memorare, lungime
precizarea relaiilor dintre date i strategiile de acces la ele
stabilirea criteriilor difereniate de confidenialitate
stabilirea criteriilor de validare automat a datelor utilizate.
(b)Limbajul de prelucrarea datelor(LMD):(LMD contine comenzipt. interogarea si prelucrarea datelor
din obiectele unei scheme);
permite formalizarea operaiilor care trebuie executate asupra unei baze de date sub forma unor
comenzi
o comand are urmtoarea structur:
operaia (deschidere/nchidere, calcul aritmetic/logic, editare, extragere, adugare, tergere, cutare,
reactualizare etc.),
criterii de selecie,
mod de acces (secvenial, indexat etc.),
format de editare;
2 tipuri de LMD:
procedurale (specific modul n care se obine rezultatul unei comenzi LMD)
neprocedurale(descriu doar datele ce vor fi obinute i nu modalitatea de obinere a acestora).
(c) Limbajulde control al tranzactiilor(LCT):
contine comenzipt. gestionarea modificrilo refectuate de ctre comenzile LMD i grupeaz aceste
comenzi n uniti logice, numite tranzacii:
?salvarea modificrilor unei tranzacii (COMMIT);
?anularea modificrilor dintr-o tranzacie fie n ntregime, fie ncepnd de la un punct intermediar
(ROLLBACK);
?definirea unui punct intermediar pn la care tranzacia poate fi anulat(SAVEPOINT);
?stabilirea de proprieti ale tranzaciei (SET TRANSACTION TO).
(d) Limbajulde control al datelor(LCD):
contine comenzi pt. gestionarea accesului la date (asigurarea confidenialitii i integritii datelor,
salvarea informaiei n cazul unor defeciuni, obinerea unor performane, rezolvarea unor probleme
de concuren):
?acordarea de privilegii i role-uri (GRANT);
?revocarea privilegiilor i role-urilor acordate (REVOKE).
(e) Comenzispeciale:
i.Instruciunile pentru controlul sesiunii
ii.Instruciunile pentru controlul sistemului
iii.Instruciunile SQL ncapsulate.
i.Instruciunile pentru controlul sesiunii
permit gestionarea proprietilor sesiunii unui utilizator; ex.
?ALTER SESSION:permite modificarea sesiunii curente, astfel nct aceasta s ndeplineasc funciuni
specializate,
?SET ROLE:determin activarea sau dezactivarea role-urilor pentru sesiunea curent;
ii.Instruciunile pentru controlul sistemului
?ALTER SYSTEM permite controlul sistemului, modificand, n mod dinamic, proprietile instanei
serverului Oracle (schimbarea anumitor setri: numrul minim de servere partajate,restricionarea sau
suprimarea unei sesiuni, golirea zonei shared pooldin SGA, suspendarea tuturor operaiilor I/Oetc.).
iii.InstruciunileSQLncapsulate
= sunt reprezentare de comenzi LDD, LMD i LCT care pot fi ncorporate nprograme scrise n limbaje
procedurale, urmnd s fie utilizate prin intermediul precompilatoarelor Oracle
permit:
?definirea, alocarea i eliberarea cursoarelor (DECLARE CURSOR, OPEN, CLOSE),
?specificarea unei bazede date i conectarea la sistemul Oracle (DECLARE DATABASE, CONNECT),
?declararea de variabile (DECLARE STATEMENT),
?iniializarea de descriptori (DESCRIBE),
?specificarea modului ncare urmeaz s fie tratate erorile i avertismentele (WHENEVER),
?analizarea i executarea instruciunilor SQL (PREPARE, EXECUTE, EXECUTE IMMEDIATE),
?regsirea informaiilor din baza de date (FETCH).
24. Procesarea comenzilor i interogarilor SQL
Instruciunile SQLse mpart n mai multe categorii, nfuncie de tipul aciunii pe care o realizeaz:
a.limbajul de definirea datelor(LDD);
b.limbajul de prelucrarea datelor(LMD);
c.limbajul de control al tranzaciilor(LCT);
d.limbajul de control al datelor(LCD);
e.comenzispeciale:
i.instruciunile pentru controlul sesiunii,
ii.instructiuni pentru controlul sistemului,
?ALTER SESSION:permite modificarea sesiunii curente, astfel nct aceasta s ndeplineasc funciuni
specializate,
?SET ROLE:determin activarea sau dezactivarea role-urilor pentru sesiunea curent;
ii.Instruciunile pentru controlul sistemului
?ALTER SYSTEM permite controlul sistemului, modificand, n mod dinamic, proprietile instanei
serverului Oracle (schimbarea anumitor setri: numrul minim de servere partajate,restricionarea sau
suprimarea unei sesiuni, golirea zonei shared pooldin SGA, suspendarea tuturor operaiilor I/Oetc.).
iii.InstruciunileSQLncapsulate
= sunt reprezentare de comenzi LDD, LMD i LCT care pot fi ncorporate nprograme scrise n limbaje
procedurale, urmnd s fie utilizate prin intermediul precompilatoarelor Oracle
permit:
?definirea, alocarea i eliberarea cursoarelor (DECLARE CURSOR, OPEN, CLOSE),
?specificarea unei bazede date i conectarea la sistemul Oracle (DECLARE DATABASE, CONNECT),
?declararea de variabile (DECLARE STATEMENT),
?iniializarea de descriptori (DESCRIBE),
?specificarea modului ncare urmeaz s fie tratate erorile i avertismentele (WHENEVER),
?analizarea i executarea instruciunilor SQL (PREPARE, EXECUTE, EXECUTE IMMEDIATE),
?regsirea informaiilor din baza de date (FETCH).
25. Optimizarea comenzilor SQL
Optimizarea comenzilor SQL
?constituie o etapa important n procesarea oricrei instruciuni LMD
?exist mai multe posibiliti de a executa o astfel de instruciune(datorate, de exemplu, ordiniincare
sunt accesate tabelele sau indecii)
?se realizeaza
i.cu ajutorul unui modul software al sistemului Oracle numit optimizor,
ii.prin directivele (hint) date de catre proiectantul aplicatiei sub forma de comentarii atasate
instructiunilor SQL.
Sistemul Oracle dispune de:
?optimizori pe baz de cost (utilizati preponderent n versiunile cele mai recente ale lui Oracle Server)
?optimizori pe baz de reguli (nu au fost actualizati n noile versiuni dar au ramas disponibil pentru
compatibilitate).
ii Proiectantul unei aplicaii deine mai multe informaii despre datele specifice acesteia=>
?el poate stabili ci mai eficiente pentru execuia instruciunilor SQL=>
?el include n textul comenzii SQL respective, sub form de comentarii, niste directive (hint) de
executie.
LONG RAW
RAW.
b) Tipurile de date predefinite pentru stocarea valorilor numerice sunt :
NUMBER,
BINARY_FLOAT
BINARY_DOUBLE
c) Tipurile de date predefinite pentru stocarea datelor calendaristice i a momentelor de timp sunt :
DATE,
TIMESTAMP
INTERVAL
d)Tipurile de date predefinite pentru stocarea obiectelor mari LOB (large object) sunt :
CLOB
NCLOB
BLOB
BFILE
e) Tipurile de date predefinite pentru reprezentarea adreselor liniilor n tabele sunt :
ROWID
UROWID
2.Tipuri de date SQL
2.2. Tipuri de date ANSI, DB2 i SQL/DS acceptate n sistemul Oracle
Sistemul Oracle recunoate numele tipurilor de date specifice ANSI sau IBM, le converteste cf. unor
conventii prestabilite si le utilizeaza pentru crearea tabelelor i clusterelor.
Tipurile de date definite de utilizator
Utilizatorul poate defini noi tipuri de date pe baza:
oricaruia dintre tipurile de date predefinite,
altor tipuri de date definite de utilizator,
se obtin urmatoarele tipuri de date obiect care modeleaza structura i comportamentul datelor in
aplicatii:
A.tipurile obiect,abstractizri ale entitilor din lumea real, necesare n programele de aplicaie,
un tip obiect = o schem obiect cu trei tipuri de componente:
nume,
atribute,
metode.
B.tipurile referin (REF), conin adrese logice ale liniilor obiect,
C.vectorii (varying array sau varray), modeleaza o mulime ordonat de elemente avnd acelai tip;
fiecare element are un index, care reprezint numrul corespunztor poziiei elementului n vector;
D.tablourile imbricate (nested table) = modeleaz o mulime neordonat de elemente al caror tip de date
poate fi:
un tip predefinit,
un tip definit de utilizator;
Literali
3.1. Literali de tip caracter
Limbajele predicative
= limbaje bazate pe calculul cu predicate
Exemple:
QUEL= limbaj predicativ orientat pe tupluri
poate fi utilizat independent sau inclus n limbajul C.
Limbajul este caracterizat de:
declararea unei variabile tuplu pentru fiecare relaie (prin RANGE)
absena cuantificatorilor n expresii;
?: este reprezentatimplicit prin declaraia RANGE, iar cuantificatorul universal este simulat cu
ajutorul.
?: este simulat cu ajutorul funciei COUNT
utilizarea unor operatori speciali pe mulimi.
QBE(Query By Example)
= un limbaj predicativ orientat spre domenii
prezentat de M.M. Zloof n 1977 i comercializat de IBMdup 1980, pentru a-i ajuta utilizatorii
neiniiai
extrem de accesibil => limbaj furnizat (n diferite forme) de majoritatea SGBD-urilor, inclusiv
Microsoft Access.
reprezint un mod de tratare virtual pentru accesarea informaiilor dintr-o BD, prin utilizarea
abloanelor de interogare
limbajul dispune de primitive de programare grafic a cererilor de date:
?utilizatorii completeaz o mulime de cmpuri predefinite intr-un ecran special.
?SGBD-ul construiete n fundal instruciunea SQL.
nu exist un standard oficial pentru aceast clas de limbaje
funcionalitatea este, n general, foarte asemntoare
limbajele sunt mai intuitive dect SQL
----------------------------------------SQL(Structured Query Language) =
= limbaj neprocedural pentru interogarea i prelucrarea informaiilor din BD
= limbaj declarativ:
utilizatorul trebuie doar s descrie CE si NU CUM trebuie obinut
compilatorul limbajului SQLgenereaz automat o procedur care acceseaz BD i execut comanda
?SQLpermite:
definirea, prelucrarea i interogarea datelor,
controlul accesului la date
la nivel logic si
la nivel de multime
?Comenzile SQLpot fi integrate n programe scrise n alte limbaje, de exemplu Cobol, C, C++, Javaetc.
Clasificarea instruciunile SQL:
limbajul de definire a datelor (LDD);
limbajul de prelucrare a datelor (LMD);
limbajul de control al datelor (LCD).
instruciuni pentru controlul sesiunii;
instruciuni pentru controlul sistemului;
instruciuni SQLncapsulate
MDX(Multidimensional Expressions) =
= limbaj multidimensional specializat
Interogarile MDX=
= interogari care se bazeaza pe cuburi OLAP
intorc ca rezultate date agregate, aflate la intersecia oricror niveluri de agregare din oricare ierarhii,
din oricare dimensiuni;
?Cubul(UDMUnified Dimensional Model) =
= o structur special, logica nu fizica si care va fi interogat n cadrul unui sistem multidimensional
poate rspunde rapid la interogri care cer o anumit agregare a datelor aflate la intersecia oricror
niveluri din oricare ierarhii din oricate dimensiuni;
?Scopulunei interogri MDX:
obinerea unei mulimi de date, numit mulime de celule(cellset) sau cub-rezultat (i.e.: o submulime
a cubului original).