Documente Academic
Documente Profesional
Documente Cultură
Cursul # 6
Cursul # 6
Cursul 6
Modelul relaţional: Elemente de teoria
naivă a mulţimilor. Modelului conceptual
versus model logic. Algebra relaţională
1
Cuprins
1. Elemente de teoria naivă a mulţimilor din
modelul relaţional
2. Transformarea modelului conceptual în
model logic
3. Operaţiile algebrei relaţionale
Elemente de teoria naivă a mulţimilor
3 din modelul relaţional
Domeniu = mulţimea valorilor cu care se operează într-un atribut.
Exemple.
R: S:
A, C R
A B C ?RUS, R-S, , , σB=b(R),
RxS A B C
a b c
d a f b g a
c b d d a f
Rolul
13 operaţiilor auxiliare
1. (TNM) Intersecţia: R S, INTERSECT(R,S) – ansamblul tuplelor
din R şi S
R S = R-(R-S)
R S = S-(S-R)
→ nu este operaţie de bază, se exprimă prin -
2. Cât – R cu schema R(A1, A2, … , An) şi sub-relaţia S cu S(Ap+1, … ,
An) este Q(A1, … , Ap) – tuple de aritate p astfel încât, concatenate
cu S dau tuplu din R. Notaţie R S sau DIVISION (R,S) → tuple de
aritate p astfel ca să conţină primele p componente din R cu
condiţia ca ultimele să fie din S.
T R, V (TxS ) R, Q T V
1,2,..., p 1,2,..., p
Q = {( a1, a2, … , ap) | (ap+1, … , an) S, (a1, … , an) R}
Exprimarea cu diferenţa şi proiecţia:
ii. Join Natural: θ este operatorul = echijoin. Join natural: asocierea pe baza
atributelor cu acelaşi nume. Realizare:
RxS
Se proiectează coloanele comune, R.A şi S.A şi se notează atributele comune cu A
15
Notaţie JOIN(R,S)
Exemplu: Informaţii despre angajaţi şi departamente
Rezultat = JOIN (SALARIAT, DEPARTAMENT)
iii. Semijoin. Proiecţia JOIN(R,S) pe atributele lui R(A 1, A2, … , An) al JOIN.
Antisimetria.
Exemplu:
PERSOANA_FIZICA (nume, adresa, nr_CI) care investesc în agrement.
OB_INVEST(denumire, adresa, valoarea)
R=(SELECT(OB_INVEST, denumire=’cabana’ OR
denumire=’casa_vacanta’)
S= PROJECT(JOIN(PERS_FIZICA,R), nume,nr_CI)
iv. OuterJoin (Join extern): JOIN + tupluri care n-au corespondent completate cu NULL.
Outer stânga / dreapta – nesimetrică
Exemplu: Investitori inclusiv în activităţi agrement
R=(SELECT(OB_INVEST, denumire=’cabana’ OR denumire=’casa vacanta’)
Rezultat=OUTER(PERSOANA_FIZICA, R)
Expresiile algebrei relaţionale
16
Expresiile algebrei relaţionale = relaţii legate de operaţii
relaţionale
Reprezentare grafică = arborele expresiei = arborele algebric.
Rezultatul evaluării expresiei → evaluarea (rezultatul)
relaţiei. Relaţii echivalente – acelaşi rezultat.
Exemplu:
VIN (NV, PODGORIE, PRODUCŢIE, ALCOOL)
CONSUMATOR (NC, NUME, ADRESA)
ABUZ (NC, NV, CANTITATE)
unde
NV – codul vinului
PRODUCTIE – anul producţiei
NC – codul consumatorului (CNP sau număr de carte de
identitate)
Cerere: Numele consumatorului & adresa - care a băut mai
PROJ(NUME, ADRESA)
17
JOIN(CONSUMATOR, NC)
PROJ(NC) CONSUMATOR(…)
SELECT(ABUZ, SELECT(VIN,PODGORIE =”MURFATLAR” &
CANTITATE>10) PRODUCTIE=2010)
Exemple
18
Exemple
19
Exemple
20
21 Tematică laborator
Database Programming with SQL
Section 2 – SELECT and WHERE
• 2-1 Columns, Characters, and Rows
• 2-2 Limit Rows Selected
• 2-3 Comparison Operators
Section 3 - WHERE, ORDER BY, and Intro to
Functions
• 3-1Logical Comparisons and Precedence Rules
• 3-2 Sorting Rows
• 3-3 Introduction to Functions
22 Tematică laborator
Database Programming with SQL
Section 4 - Single Row Functions Part I
• 4-1 Case and Character Manipulation
• 4-2 Number Functions
• 4-3 Date Functions