Sunteți pe pagina 1din 92

Introducere in

Baze de date

Modele de date
O problema fundamentala a unui SGBD este

modul in care datele sunt organizate in vederea


stocarii si exploatarii lor de catre aplicatii.

Din punct de vedere istoric, in anii 60 au existat

doua modele de organizare a datelor care au fost


apoi abandonate din cauza problemelor pe care
le generau:

Modelul ierarhic
Modelul retea

MODELUL IERARHIC

folosit de IBM in sistemul IMS (care inca este unul


dintre produsele furnizate de aceasta firma), in care
organizarea este sub forma arborescenta

nodurile contin date si legaturi (pointeri) catre

nodurile fiu

http://www-306.ibm.com/software/data/ims/

MODELUL RETEA
inregistrarile sunt structurate sub forma unui graf

orientat, fiecare nod putand avea mai multe


inregistrari tata si mai multi fii.

au existat mai multe sisteme de gestiune si limbaje


de programare dezvoltate pe baza acestui model
(de exemplu limbajul COBOL).

DEZAVANTAJE
Dezavantajul principal al acestor doua modele este

ca accesul la o inregistrare necesita navigarea prin


arbore sau graf pentru a o localiza.

Din acest motiv apar o serie de probleme mai ales

legate timpul necesar scrierii de noi programme si a


detectarii anomaliilor care pot sa apara in
proiectarea bazei de date.

Modelul de date relational


Ofera cadrul specificarii unor structuri de date particulare, constrangeri
aplicate asupra seturilor de date asociate structurilor si instrumente
pentru manipularea datelor:
Istoric (Codd (1970), bazat pe teoria matematica a relatiilor introduce
relatiile ca structuri de date si algebra/calcul relational pentru
specificarea interogarilor

Relatiile = STRUCTURI de DATE, incorporeaza constrangeri


de integritate, permit interogari si capabilitati de actualizare
Argumente
Concept unic de modelare a datelor : relatia = tabele 2D, permite
utilizarea de limbaje de manipulare a datelor , simple, puternice
Larg raspandit : IBM, Informix, Microsoft, Oracle, Sybase
Modele recente competitoare : OO, XML, sintetice ( OO-relational,
BD-XML)

Modelul de date relational


Datele sunt stocate doar ca valori; nu exista pointeri

sau navigare prin date;

Face posibila dezvoltarea de limbaje de cereri de nivel

inalt in care utilizatorul specifica ce date doreste si nu


cum se ajunge la rezultat, modul in care este calculat
acesta fiind in sarcina sistemului de gestiune (exemplu
de astfel de limbaj: SQL)

Furnizeaza o baza solida pentru problemele de

corectitudine a datelor (redundanta, anomalii, etc)

Permite tratarea problemelor de independenta a datelor


Este extensibil, putand fi utilizat si pentru modelarea si

manipularea de date complexe

Terminologie, definitii
Relatia constructia de baza, ea se constituie in:

Instanta relatiei TABELA

Schema relatiei antetul coloanelor tabelei

Numele relatiei , domenii pentru campuri (atribute)

Fie domeniile D1, D2, . Dn , o relatie r este un subset

al produsului D1 x D2 x x Dn si este reprezentata de


un set de n-tuple (A1, A2, , An) , unde Ai Di

Domeniul Ai notat dom(Ai).

Gradul relatiei R este determinat de numarul de


atribute din R.

Schema relatiei = numele relatiei + (numele fiecarui


camp: domeniul fiecarui camp)

Baza de date si atribute


Baza de date set de relatii
Stocarea informatiei ca o singura relatie ar conduce

la :

Redundanta informatiei

Necesitatea utilizarii de valori de atribute de tip


null

Informatia este organizata - impartita, fiecare relatie

detine doar o parte

Teoria normalizarii proiectarea schemelor

relationale optimale

Baza de date si atribute


Atribute
1. Fiecare atribut al unei relatii poseda un nume (un
atribut este un domeniu cu nume)
2. Valorile atributelor sunt atomice (indivizibile,
nonmultivaloare,noncompozite) =>setul valorilor
permise pentru atribut domeniul atributului,
domeniul este atomic daca membrii sunt atomici
3. Valoarea speciala null e membra a fiecarui
domeniu
4. Domeniile sunt restrictive in modelul relational , in
OO sunt permise liste, clase.. In XML structuri
ierarhice

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

timp: se pot adauga sau sterge linii sau se pot modifica


unele dintre valorile din liniile existente.

Ceea ce ramane constant, este structura relatiei: numele

relatiei, numarul si tipul atributelor salle


Atributele unei relatii formeaza un set , nu o lista

Instanta relatiei
Instanta unei relatii reprezinta valorile curente ale

datelor pentru o relatie,sunt specificate prin tabela

Un element t al relatiei r este o tupla (reprezentat

printr-o linie in tabela relatiei)

Ordinea tuplelor (randurilor, inregistrarilor ) nu e

relevanta

Ordinea coloanelor nu e relevanta, cardinalitatea unei

relatii = numarul de linii din instanta curenta

Chei

Cheie a unei relatii - un subset al atributelor relatiei ce satisface


proprietatile :

identificare unica pentru fiecare tupla a relatiei prin valorile atributelor


ce compun cheia , neredondanta astfel incat subsetul atributelor este
minimal

Cheia unei relatii este o caracteristica a schemei acesteia si nu este


determinata prin inspectarea valorilor aflate la un moment dat in relatie.

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.

In literatura de specialitate si in sistemele de gestiune a bazelor de date


exista trei alte concepte legate de cheie
Cheie primara (eng. Primary key)
Cheie straina (eng. Foreign key)
Supercheie (eng. Superkey)

Chei
Super - cheie este reprezentat de un set ce contine

unul sau mai multe atribute ale caror valori determina


unic fiecare entitate din set (cheie compozita creata
de un grup de atribute).
In orice relatie exista cu certitudine o cheie, gasirea unei chei = determinarea
setului minimal de atribute ce ofera identificare unica

Cheie candidat - este o super cheie minimala (pentru

aceeasi entitate pot exista mai multe atribute cu rol de


cheie|)
Pentru orice relatie se desemneaza dupa anumite criterii o cheie privilegiata din
setul cheilor candidat ca si cheie primara (distinctia este doar operationala)

Cheia primara este cea utilizata din setul de chei

candidate pentru identificarea unica a tuplelor relatiei

Cheie straina
In modelul relational legaturile se realizeaza prin

mecanismul de propagare a cheilor => cheia straina

O schema relationala poate poseda un atribut ce

corespunde unei chei primare a unei alte relatii, atribut


numit cheie straina astfel incat :

pentru fiecare valoare a lui FK( cheie straina) din


relatia R2 (referita) exista o valoare identica a cheii K
din relatia R1 ( de referinta)

=> cheia straina este rezultatul propagarii unei chei


primare

Integritate referentiala - toate valorile unei chei straine

trebuie sa se regasesca printre valorile cheii


corespunzatoare din relatia referita

VALORI NULE
Uneori, unele elemente ale unei relatii (celule ale

tabelei) nu au nici o valoare concreta. Se spune ca


in acel loc exista o valoare nula.

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

moment ulterior aceste valori nule vor fi inlocuite


cu valori nenule care specifica informatia
respectiva

CORECTITUDINEA DATELOR
In cadrul teoriei bazelor de date relationale, o relatie

contine date corecte daca acestea verifica setul de


dependente functionale (sau de alt tip) atasat relatiei
respective

Sistemele de gestiune a bazelor de date existente ,

pun la dispozitie mecanisme de verificare numite


constrangeri de integritate.

Constrangerile de integritate se definesc fie la crearea

tabelei , fie ulterior.

SGBD-ul va rejecta orice operatie care violeaza vreuna


dintre constrangerile definite pe tabela respectiva.

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

atomic si din domeniul de date dom(A).

Constrangeri de chei
Elementele unui set sunt distincte = > tuplele

relatiei sunt distincte => doua tuple nu poseda


acelasi set de valori pentru atributele lor :
t1[SK] t2[SK]

Constrangeri

Constrangeri de integritate a entitatilor

Datele incorecte nu pot fi stocate in baza de date

valorile cheii primare nu pot fi nule

Atributele ce nu contin valori NULL pot fi specificate

prin intermediul constrangerii NOT NULL

Constrangeri de integritate referentiala

Specificate intre doua relatii, utilizate pentru a


mentine consistenta intre tuplele relatiilor

Constrangerea integritatii referentiale o tupla dintr-o


relatie ce refera o tupla din alta relatie ( sau din
aceeasi) trebuie sa refere o tupla existenta

Cheia straina asigura integritatea referentiala

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

Specifica faptul ca pe coloana respectiva nu pot sa

apara valori nule.

Orice incercare de a adauga o linie care contine

valori nule pe acea coloana sau de a modifica o


valoare nenula intr-una nula va fi respinsa de
sistem.

PRIMARY KEY
O relatie poate avea mai multe chei
In momentul creerii tabelei corespunzatoare relatiei intr-un

sistem de gestiune a bazelor de date, una dintre ele poate fi


aleasa ca si cheie primara (principala) a tabelei respective.

O tabela nu poate avea decat o singura cheie primara,

formata din una sau mai multe atribute (coloane) ale


acesteia.

SGBD-ul creaza automat structuri de cautare rapida (index)

pentru cheia primara a tabelei.

O caracteristica a cheii primare a unei tabele este (in

majoritatea SGBD-urilor) cerinta ca pe coloanele


componente nu pot sa apara valori nule

UNIQUE
Pe coloanele unei chei definita cu UNIQUE pot sa

apara valori nule, unicitatea fiind verificata doar


pentru valorile nenule de pe coloanele cheii
respective.

FOREIGN KEY Cheie straina


Studenti(IdS, NumeStud, CodFacultate, IdTutor, Medie)
Facultati (CodFacult, NumeFacultate, Adresa)

Coloana CodFacultate din tabela Studenti nu este cheie in aceasta


tabela (pot exista mai multi studenti cu aceeasi valoare pe aceasta
coloana, fiind studenti ai aceleiasi facultati) ,dar in mod normal
,contine valori care pot fi doar dintre cele existente pe cheia primara
CodFacult din tabela Facultati.

O constrangere activa de acest tip (numita si constrangere


referentiala) va avea ca efect respingerea inserarilor/modificarilor in
tabelaStudenti care ar face ca pe coloana CodFacultate sa apara o
valoare care nu este deja in tabela Facultati

FOREIGN KEY Cheie straina


Studenti(IdS, NumeStud, CodFacultate, IdTutor, Medie)
Facultati(CodFacult, NumeFacultate, Adresa)

Rezulta implicit ca in momentul incarcarii cu date este necesar sa fie


completata intai tabela Facultati si apoi tabela Studenti, altfel operatia
de incarcare cu date va esua din cauza violarii acestei constrangeri.

In cazul multor SGBD-uri se poate specifica in constrangere si


stergerea automata a inregistrarilor fiu in cazul stergerii inregistrarii
tata: la stergerea liniei corespunzatoare unei facultati se vor sterge
automat si liniile din tabela Studenti continand studentii acelei
facultati.

CHECK
Acest tip de constrangere specifica faptul

ca valorile unei linii din tabela trebuie sa


verifice o conditie (expresie logica).

Sisteme total relationale

Principii de integritate pentru un SGBD relational

Integritatea domeniului SGBD verifica sintactic si


semantic orice valoare din BD sau operatie folosind
definitia domeniului

Integritatea entitatii relatiei - refera conditiile impuse


cheilor primare de a avea valori unice si nenule

Integritatea referintei : daca A e cheie primara in relatia


R1 si B este componenta unei chei primare multiatribut
in relatia R, B fiind definita pe acelasi domeniu ca si A,
multimea valorilor lui B in R2 trebuie inclusa in
multimea valorilor lui A in R1

Un sistem SGBD este total relational daca

asigura principiile enuntate + furnizeaza un LMD echivalent


algebrei relationale

Algebra si calcul relational

Partea esentiala a unui LMD este cea prin care se formuleaza


interogarile limbajul de interogare

Limbaje de interogare formale (tip Query- QBE) limbaje


specializate pentru interogari, prin intermediul carora utilizatorul
solicita informatie din BD

Limbaje de interogare pentru modelul relational (bazat pe


formalisme) : algebra relationala, calcul relational pe tuple, calcul
relational de domeniu, etc.
ALGEBRA Relationala colectie de operatori specializati aplicati
asupra relatiilor , fiecare query descrie procedura pas cu pas
pentru a calcula raspunsul, specificare operationala (procedural)

Calculul relational query descrie raspunsul solicitat (multimea


tuplelor rezultat ) prin specificarea unui predicat ce trebuie
satisfacut, fara a specifica modul de calcul (declarativ) (Ex. QBE
calcul relational al domeniilor)

Algebra si calcul relational

Propuse ca referential pentru orice limbaj de


interogare relational = Limbajul este relational
COMPLET, limbajele reale cuprind mult mai multe
facilitati (inserare, stergere, modificare, calcule,
tiparire de relatii ,atribuire la var., agregare)

servesc ca referinta pentru crearea de limbaje


derivate ( LMD, LDD) integrate SGBD

Cele doua formalisme sunt echivalente ca putere de


expresie

Elemente de algebra relationala

Interogarile sunt create folosind o colectie de operatori

fiecare operator accepta instante de relatii ca argumente si


returneaza tot o instanta de relatie ca rezultat

operatorii pot fi compusi pentru a forma interogari complexe

Expresia algebrica este asimilata unui plan pentru


evaluarea interogarii
Sistemele relationale utilizeaza algebra relationala
pentru a reprezenta aceste planuri de evaluare

Elemente de algebra relationala

Operatori (unari/binari) utilizati pentru construirea interogarilor

Operatorii pe multimi

Operatorii pe multimi :reuniunea, intersectia, diferenta,


produs cartezian

Operatori relationali speciali

Operatori ce elimina parti dintr-o relatie : selectia, proiectia

Operatii ce combina tuple din doua relatii : produs


cartezian , Join, reuniunea, diferenta

Operatori aditionali

Definitii formale

E - expresia de baza in algebra relationala poate fi : o relatie din


BD

Fie E1 and E2 expresii relationale ,urmatoarele reprezinta


expresii algebrice relationale

E1 E2, reuniunea

E1 E2 diferenta

E1 x E2 produs cartezian

s(E1),

selectia - S este o lista de atribute din E1

p (E1),

proiectia - P predicat peste atributele din E1

x (E1),

redenumirea - x noul nume pentru E 1

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}

Se presupune ca atributele relatiilor r(R) si s(S) sunt disjuncte.


(R S = ).

Daca nu este indeplinita aceasta cerinta , se va utiliza redenumirea.

Produsul cartezian operatie de combinare a tuplelor celor doua


relatii
Schema rezultat : se preia in relatia rezultat cate un camp
pentru fiecare camp din cele doua relatii sursa

Notatie: p(r),

Selectia

p(r) = {t | t r si p(t)}

unde p este predicatul de selectie


predicatul reprezinta termeni conectati prin operatorii : (and), (or),
(not)
Fiecare termen poate fi : <atribut>op <atribut> or <constanta>
logici)
Relatia r

iar op poate fi : =, , >, . <. ( de comparatie sau


A

12

23 10

A=B ^ D > 5 (r)

23 10

Selectia printr-un predicat P a unei relatii r , e o relatie ce contine


acele tuple din relatia r cu proprietatea ca satisfac predicatul P.
Operatorul produce o noua relatie avand drept rezultat un subset de
tuple ce respecta conditia aferenta predicatului

Proiectia

Notatie: unde A1, A2 An sunt atribute , iar r e relatia

Rezultatul e definit ca o relatie de k<=n coloane, obtinuta prin


eliminarea relatiilor nelistate in lista de proiectie
Proiectia este o relatie r de grad n , ce se obtine astfel :
se elimina din relatie tuplele ce nu sunt specificate in lista de
proiectie, ramanand doar coloanele corespunzatoare
atributelor, se ordoneaza atributele ramase in ordinea listei de
proiectie

Relatia r

10

20

30

40

A,C (r)

Proiectia este o selectie verticala cu eliminarea tuplelor duplicat

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

Permite referirea unui rezultat ca expresie relationala algebrica.

Permite referirea unei relatii prin mai multe nume

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

expresie a operatiilor de baza, DAR simplifica interogarile

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

are aceeasi valoare ca si tr in r

are aceeasi valoare ca si ts in s

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.

Se calculeaza produsul cartezian rxs

2.

se selecteaza tuplele din rxs pentru care


valoarea corespunzatoare atributului din r este
egala cu valoarea corespunzatoare a atributului
din s

3.

Se efectueaza o proiectie a rezultatului pentru


elimina coloana dublata

Astfel ,relatia de cuplare este echivalentul aplicarii a


doi operatori : produsul cartezian al relatiilor

Intersectia (Set-Intersection)
Notatie: r s
Definitie : r s = { t | t r si t s }

Ipoteza:

r, s au aceeasi aritate

atributele r si s sunt compatibile

Nota: r s = r (r s)

Relatiile r, s:

B
1
2
1

2
3
s

rs

Impartirea
Notatie:

rs

Potrivita interogarilor ce contin fraza for all.


fie r si s relatiile in schemele R si S
R = (A1, , Am , B1, , Bn )
S = (B1, , Bn)

Rezultatul operatiei r s este o relatie, iar schema

R S = (A1, , Am)

rs={t | t

R-S

(r) u s ( tu r ) }

unde tu semnifica concatenarea tuplelor t si u atfel incat

este generata o singura tupla

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

Impartirea - exprimare prin operatori de baza

fie q = r s
q este relatia ce satisface q x s r

Definitie prin operatorul de proiectie


fie r(R) si s(S) relatii astfel incat S R
r s = R-S (r ) R-S ( ( R-S (r ) x s ) R-S,S(r ))
unde

R-S,S (r) reordoneaza atributele relatiei r

R-S ( R-S (r ) x s ) R-S,S(r) ) ofera tuplele t


R-S (r ) astfel incat

pentru anumite tuple u s, tu r.

Asignare

asignare () permite exprimarea de interogari complexe.

Interogarea complexa se va scrie ca o secventa de


asignari , expresii ale caror valori sunt afisate ca rezultat
al interogarii .

Asignari intermediare la variabile temporare

Ex.: astfel operatia de impartire: r s devine


temp1 R-S (r )
temp2 R-S ((temp1 x s ) R-S,S (r ))
result = temp1 temp2

Algebra relationala extinsa


Proiectie generalizata
Functii agregat
Inner/Outer Join

Proiectie generalizata

Extinde proiectia prin specificarea de functii aritmetice acceptate

in lista de proiectie

F ,F ,..., F (E )
1

E expresie relationala algebrica


F1, F2, , Fn sunt expresii aritmetice pe constante si
atribute din schema E.

Ex :Fie relatia
credit_info(customer_name, limit, credit_balance)

sa sa afiseze cat poate cheltui fiecare persoana:

customer_name, limit credit_balance (credit_info)

Functii si operatii de agregare


Functii de agregare preiau o colectie de valori si returneaza o
valoare unica drept rezultat
avg: average value
min: minimum value
max: maximum value
sum: sum of values
count: number of values
Operatii de agregare in algebra relationala :

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

Extensia operatiei join pentru a elimina pierderea de info

Calculeaza join si adauga tuplele ce nu au corespondent in


cealalta relatie
loan_number branch_name

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

Right 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

Full Outer Join loan

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

Constructia Create table

Drop si Alter table

Structuri de interogare de baza

Strategia de evaluare

Clauza select

Clauza select

Clauza from

Clauza where

Operatia Rename

Operatii pe stringuri

Ordonarea afisarii tuplelor

Operatii Set

Functii agregat

Functii agregat

Functii agregat Group by

Functii agregat- Having

Valori Null

Imbricarea interogarilor

Operatorul IN

Comparatii pe seturi

Exemplu

Testare tuple duplicat

Exemplu

Relatii derivate

Clauza with

Modificari in baza de date

Inserarea

Actualizarea

Relatii Join

Relatii Join

Constrangeri de domeniu

Constrangeri de integritate

Clauza check

Asertiuni

Integritate referentiala

S-ar putea să vă placă și