Documente Academic
Documente Profesional
Documente Cultură
Baze de date
Modele de date
O problema fundamentala a unui SGBD este
Modelul ierarhic
Modelul retea
MODELUL IERARHIC
nodurile fiu
http://www-306.ibm.com/software/data/ims/
MODELUL RETEA
inregistrarile sunt structurate sub forma unui graf
DEZAVANTAJE
Dezavantajul principal al acestor doua modele este
Terminologie, definitii
Relatia constructia de baza, ea se constituie in:
la :
Redundanta informatiei
relationale optimale
Schema relatiei
Schema relatiei
Fie A1, A2, , An atribute
R = (A1, A2, , An ) reprezinta schema relatiei
Schema stabileste structura relatiei, reprezinta definitia
relatiei
Integreaza si informatia referitoare la chei, constrangeri
Continutul unei relatii (vazuta ca o tabela) poate varia in
Instanta relatiei
Instanta unei relatii reprezinta valorile curente ale
relevanta
Chei
Observatie: Orice relatie are cel putin o cheie: deoarece intr-o relatie nu
pot exista doua elemente identice, rezulta ca multimea tuturor atributelor
relatiei este cheie sau contine cel putin o cheie.
Chei
Super - cheie este reprezentat de un set ce contine
Cheie straina
In modelul relational legaturile se realizeaza prin
VALORI NULE
Uneori, unele elemente ale unei relatii (celule ale
Definitie:
Valoare nula (eng. Null value) = o valoare diferita
de oricare alta si care modeleaza o informatie
necunoscuta sau o informatie inaplicabila.
Modelarea unei informatii necunoscute - la un
CORECTITUDINEA DATELOR
In cadrul teoriei bazelor de date relationale, o relatie
Constrangeri in BD relationale
De domeniu
De chei
De integritate a entitatilor
Integritate referentiala
Generale
Constrangeri
Constrangeri de domeniu
specifica faptul ca fiecare atribut A trebuie sa fie
Constrangeri de chei
Elementele unui set sunt distincte = > tuplele
Constrangeri
CONSTRANGERI
Constrangerile enuntate sunt constrangeri
FUNDAMENTALE , parte a modelului relational, sunt
suportate de cele mai multe SGBD
Alte tipuri de constrangeri pot fi specificate distinct
prin alte constructii de limbaj triggere, proceduri
stocate
NOT NULL
PRIMARY KEY
UNIQUE
FOREIGN KEY
CHECK
NOT NULL
Este o constrangere la nivelul unei coloane dintr-o
tabela
PRIMARY KEY
O relatie poate avea mai multe chei
In momentul creerii tabelei corespunzatoare relatiei intr-un
UNIQUE
Pe coloanele unei chei definita cu UNIQUE pot sa
CHECK
Acest tip de constrangere specifica faptul
Operatorii pe multimi
Operatori aditionali
Definitii formale
E1 E2, reuniunea
E1 E2 diferenta
E1 x E2 produs cartezian
s(E1),
p (E1),
x (E1),
Reuniunea
Notatie : r s
Definitie: r s = {t | t r sau t s}
r s este valid daca
1. r, s au aceeasi aritate (acelasi numar de atribute)
2. Domeniile de atribute sunt compatibile ( cea de a doua
coloana a lui r contine atribute de acelasi tip ca si a doua
coloana a lui s)
A B
Relatiile r , s:
1
r
3
s
r s:
Diferenta
Notatie r s
Definitie : r s = {t | t r and t s}
Diferenta se efectueaza intre relatii compatibile.
r si s poseda aceeasi aritate
Atributele domeniilor relatiilor r si s sunt compatibile
Relatiile r, s:
1
r
r s:
Produs Cartezian
Relatiile r, s:
10
10
20
10
a
a
b
b
Notatie r x s
r x s:
1
1
1
1
2
2
2
2
10
10
20
10
10
10
20
10
a
a
b
b
a
a
b
b
Definitie: r x s = {tq | t r si q s}
Notatie: p(r),
Selectia
p(r) = {t | t r si p(t)}
12
23 10
23 10
Proiectia
Relatia r
10
20
30
40
A,C (r)
Compunerea operatiilor
Expresii bazate pe operatori multiplii
Ex.: A=C(r x s)
rxs
1
1
1
1
2
2
2
2
10
10
20
10
10
10
20
10
a
a
b
b
a
a
b
b
A=C(r x s)
1
2
2
10
10
20
a
a
b
Redenumirea
Ex.
x (E)
returneaza expresia E sub numele X
Daca expresia E are aritatea n, atunci
x ( A ,A ,...,A ) (E )
1 2
va returna rezultatul expresiei
E nsub numele X, si cu atributele A1 ,
A2 , ., An .
Operatii aditionale
Operatii aditionale nu complementeaza puterea de
Cuplare (join)
Intersectia
Impartirea
Asignarea
Join
Notatie: r s , operatorul e utilizat pentru a combina tuple din
doua relatii diferite pe baza unor informatii comune
fie r si s relatii in schemele R si S .
r s este o relatie pe schema R S , obtinuta astfel:
Se considera fiecare pereche de tuple tr din r si ts din s.
daca tr si ts poseda aceeasi valoare pentru fiecare din atribute in R
S, se va adauga tupla t la rezultat astfel:
t
Ex.:
R = (A, B, C, D)
S = (E, B, D)
Schema rezultat = (A, B, C, D, E)
relatia rezultata ca urmare a operatiei join r
astfel:
r.A, r.B, r.C, r.D, s.E ( r.B = s.B r.D = s.D (r x s))
s poate fi definita
Natural Join
Relatiile r, s:
1
2
4
1
2
a
a
b
a
b
s
A
1
1
1
1
2
a
a
a
a
b
s
Cuplarea a doua relatii se obtine astfel :
1
3
1
2
3
1.
2.
3.
Intersectia (Set-Intersection)
Notatie: r s
Definitie : r s = { t | t r si t s }
Ipoteza:
r, s au aceeasi aritate
Nota: r s = r (r s)
Relatiile r, s:
B
1
2
1
2
3
s
rs
Impartirea
Notatie:
rs
R S = (A1, , Am)
rs={t | t
R-S
(r) u s ( tu r ) }
Exemplu
Relatiile r, s:
r s:
a
a
a
a
a
a
a
a
a
a
b
a
b
a
b
b
1
1
1
1
3
1
1
1
a
b
1
1
a
a
fie q = r s
q este relatia ce satisface q x s r
Asignare
Proiectie generalizata
in lista de proiectie
F ,F ,..., F (E )
1
Ex :Fie relatia
credit_info(customer_name, limit, credit_balance)
G1 ,G2 ,,Gn
F ( A ),F ( A ,,F ( A ) (E )
1
E expresie relationala
G1, G2 , Gn lista de atribute ce pot fi grupate
Fi functie agregat
Ai nume atribut
Exemplu
Relatia r:
g sum(c) (r)
10
sum(c )
27
Outer Join
L-170
L-230
L-260
Relatia loan
amount
Downtown
Redwood
Perryridge
3000
4000
1700
customer_name loan_number
Relatia borrower
Join loan
borrower
Jones
Smith
Hayes
L-170
L-230
L-155
loan_number
branch_name
L-170
L-230
Downtown
Redwood
amount customer_name
3000
4000
Jones
Smith
Outer Join
Left Outer Join loan
borrower
loan_number
branch_name
L-170
L-230
L-260
Downtown
Redwood
Perryridge
amount customer_name
3000
4000
1700
Jones
Smith
null
borrower
loan_number
branch_name
L-170
L-230
L-155
Downtown
Redwood
null
amount customer_name
3000
4000
null
Jones
Smith
Hayes
borrower
loan_number
branch_name
L-170
L-230
L-260
L-155
Downtown
Redwood
Perryridge
null
amount customer_name
3000
4000
1700
null
Jones
Smith
null
Hayes
SQL
SQL istoric
Componente SQL
Strategia de evaluare
Clauza select
Clauza select
Clauza from
Clauza where
Operatia Rename
Operatii pe stringuri
Operatii Set
Functii agregat
Functii agregat
Valori Null
Imbricarea interogarilor
Operatorul IN
Comparatii pe seturi
Exemplu
Exemplu
Relatii derivate
Clauza with
Inserarea
Actualizarea
Relatii Join
Relatii Join
Constrangeri de domeniu
Constrangeri de integritate
Clauza check
Asertiuni
Integritate referentiala