Documente online.
Zona de administrare documente. Fisierele tale
Am uitat parola x Creaza cont nou
 HomeExploreaza
upload
Upload




Implementarea operatorilor relationali in SGBD-ul Visual Fox Pro

Informatica


Implementarea operatorilor relationali in SGBD-ul Visual Fox Pro

Modelul relational ofera doua tipuri de operatori pe relatii si anume algebra relationala si calculul relational. La randul sau calculul relational este de doua tipuri: calcul relational orientat pe tuplu si calcul relational orientat pe domeniu.



Algebra relationala a fost introdusa de E. F. Codd ca o colectie de operatii pe relatii, fiecare operatie avand drept operanzi una sau mai multe relatii si producand ca rezultat o alta relatie.

In general operatiile algebrei relationale pot fi grupate in operatii traditionale pe multimi (reuniunea, intersectia, diferenta, produsul cartezian) si operatii relationale speciale (selectia, proiectia, jonctiunea)

Algebra relationala

Reuniunea - reprezinta o operatie a algebrei relationale 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 R1 si R2 si avand drept extensie tuplurile din R1 si R2, luate impreuna o singura data.

Notatiile uzuale pentru reuniune sunt:

R1 R2

OR(R1,R2)

APPEND(R1,R2)

UNION(R1,R2)

Reprezentarea grafica a reuniunii este:

R3

R1 R2

Exemplu:Presupunem ca posedam o baza de date ce o numim Fructe care contine doua tabele F1 si F2. In tabela F1 avem campul Verzi si in tabela F2 avem campul Albastre


kk

In urma executarii unui UNION vom obtine un VIEW fructele existente in ambele tabele, mai putin inregistrarile duplicate:

OPEN DATABASE Fructe ;

CREATE SQL VIEW Legume AS ;
SELECT Verzi FROM Fructe!F1 ;
UNION
SELECT Albastre FROM Fructe!F2 ;

Vom Obtine: Gutui, Lamai, Struguri, Pepeni, Mere, Ananas, Banane, Smochine

Diferenta -reprezinta o operatie din algebra relationala definita prin doua relatii R1 si R2, ambele cu o aceeasi schema, operatia constand din construirea unei noi relatii R3, cu schema identica cu a operanzilor si cu extensia formata din acele tupluri ale relatiei R1 care nu se regasesc si in R. Notatiile uzuale pentru operatia de diferenta sunt:

R1-R2

REMOVE(R1,R2)

MINUS(R1,R2)

Reprezentarea grafica a acestei operatii este:

R3

R1 R2

Exemplu de utilizare:

OPEN DATABASE Fructe ;
CREATE SQL VIEW Legume AS ;
SELECT Verzi FROM Fructe!F1 ;
MINUS
SELECT Albastre FROM Fructe!F2 ;

Obtinem un VIEW cu: Gutui, Struguri, Pepeni. Vom obtine elementele ce exista in Verzi si nu exista in Albastre

Produs cartezian - reprezinta o operatie a algebrei relationale definita pe doua relatii R1 si R2, operatie care consta din construirea unei noi relatii R3, a carei schema se obtine prin concatenarea schemelor relatiilor R1 si R2 si a carei extensie cuprinde toate combinatiile tuplurilor din R1 cu cele din R2.

Notatiile uzuale pentru desemnarea operatiei sunt:

R1 R2

PRODUCT(R1,R2)

TIMES(R1,R2)

Reprezentarea grafica a produsului cartezian este:

R3


R1 R2

Exemplu de utilizare:

OPEN DATABASE Fructe ;
CREATE SQL VIEW Legume AS ;
SELECT Verzi ;
FROM Fructe!F1, Fructe!F2 ;

Obtinem un VIEW cu produsul cartezian al inregistrarilor din cele doua tabele

Proiectia reprezinta o operatie din algebra liniara definita asupra unei relatii 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 inseamna efectuarea unor taieturi verticale asupra lui R, care pot avea ca efect aparitia unor tupluri duplicate ce se cer a fi eliminate. Se poate realiza prin comanda COPY STRUCTURE cu sintaxa

COPY STRUCTURE TO TableName
[FIELDS FieldList]

[[WITH] CDX | [WITH] PRODUCTION] (permite crearea de indexi)
[DATABASE cDatabaseName [NAME cTableName]]

Notatiile uzuale pentru operatia de proiectie sunt:

PAj ,Aj,.,A m

R(A j ,A j,.,A m)

PROJECT(R,Aj,A j,.,A m)

Reprezentarea grafica a proiectiei este:

P

R

Exemplude utilizare:

-daca de exemplu avem aceleasi doua atribute (Verzi si Albastre) intr-un singur tabel TAB in baza de date Scump ;

executam secventa de instructiuni:

OPEN DATABASE scump ;
CREATE SQL VIEW Legume AS ;
SELECT Verzi FROM scump!TAB ;

Vom obtine doar marfurile din Verzi.

Selectia -reprezinta o operatie din algebra relationala definita asupra unei relatii R, operatie care consta din construirea unei relatii S, a carei scschema este identica cu cea a relatiei R si 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 satisfac, aceasta conditie, selectia inseamna efectuarea unor taieturi orizontale asupra relatiei R, adica eliminarea de tupluri.

Notatiile folosite in mod uzual in cadrul operatiei de selectie sunt:

sconditie(R)

R[conditie]

RESTRICT(R,conditie)

Reprezentarea grafica a operatiei de selectie este:

S


R

Exemplu de utilizare:

-daca avem inclus in baza de date data, pe langa numele fructelor si cantitatile disponibile in unitati specifice (inregistrate intr-o coloana separata CANTiTATE)

-se executa secventa de instructiuni:

OPEN DATABASE Fructe ;
CREATE SQL VIEW Legume AS ;
SELECT verzi FROM Fructe!F1
WHERE cantitare > 20

Vom obtine tuplurile din Verzi care exista in cantitati disponibile >20 unitati specifice

Jonctiunea (Joinul) - reprezinta o operatie din algebra relationala definita pe doua relatii R1 si R2, operatie care consta din construirea unei noi relatii R3, prin concatenarea unor tupluri din R1 cu tupluri din R2. Se concateneaza acele tupluri din R1 si R2 care satisfac o anumita conditie, specificata explicit in cadrul operatiei. Extensia relatiei R3 va contine deci combinatiile acelor tupluri care satisfac conditia de concatenare.

Notatiile uzuale pentru desemnarea operatiei de jonctiune sunt:

R1 conditie R2

JOIN(R1,R2, conditie)

Reprezentarea grafica a acestei operatii este:

R3

R1 R2

Conditia de concatenare este de forma:

Atribut din R1  operator de comparatie atribut din R2

In functie de operatorul de comparatie din cadrul operatiei de concatenare, joinul este de mai multe feluri:

Equijoinul reprezinta jonctiunea dirijata de o conditie de forma:

Atribut din R1 = Atribut din R2

Operatia de jonctiune se poate exprima cu ajutorul operatiilor de produs cartezian si selectie:

JOIN(R1,R2,conditie)=RESTRICT(PRODUCT(R1,R2),conditie)

Jonctiunea naturala este o operatie definita pe doua relatii R1 si R2, prin care este construita o noua relatie R3, a carei schema este obtinuta prin reuniunea atributelor din relatiile R1 si R2 si a carei extensie contine tuplurile obtinute prin concatenarea tuplurilor din R1 cu tuplurile din R2 care prezinta aceleasi valori pentru atributele cu aceleasi nume

Jonctiunea externa este operatia prin care din doua relatii R1 si R2se obtine o noua relatie R3, prin jonctionarea relatiilor R1 si R2 la care se adauga tuplurile din R1 si R2 care nu au participat la join

Notatiile uzuale:

EXT-JOIN(R1,R2)

Semijonctiunea reprezinta o operatie definita pe doua relatii R1 si R2, operatie care consta din construirea unei noi relatii R3, a carei xtensie contine tuplurile din R1 care participa la jonctiunea celor doua relatii.

Notatiile uzuale:

SEMIJOIN(R1,R2)

SELECT fieldname FROM tablename

INNER JOIN tablename2 ON

Jonctiunea si selectia se pot realiza folosind comanda SELECT-SQL cu sintaxa urmatoare:

SELECT [ALL | DISTINCT] [TOP nExpr [PERCENT]] -permite selectarea īnregistrarilor din rezultat (selectie)

FROM [FORCE] permite selectarea tabelelor si bazei de date din care se preiau datele
[DatabaseName!]Table [[AS] Local_Alias]
[[INNER | LEFT [OUTER] | RIGHT [OUTER] | FULL [OUTER] JOIN- specific
a tipul de jonctiune(interna,semijomctiune,externa)


[ON JoinCondition .] -
specifica conditia pentru join

[INTO Destination] -specifica locul de depunere a rezultatului operatiei,īn acest caz DBF TABLE nume tabel

[WHERE JoinCondition [AND JoinCondition ...] -permite selectarea doar a anumitor īnregistrari

[AND | OR FilterCondition [AND | OR FilterCondition ...]]] -

tableman.fieldname=tablename.fieldname

Intersectia -reprezinta o operatie a algebrei relationale definita pe doua relatii R1 si R2, ambele cu aceeasi schema, operatie care consta din construirea unei noi relatii R3, cu schema identica cu a operanzilor si cu extensia formata din tuplurile comune lui R1 si R2.

Notatiile uzuale pentru desemnarea operatiei de intersectie sunt:

R1 R2

INTERSECT(R1,R2)

AND(R1,R2)

R3

R1 R2

Operatia de intersectie se poate exprima prin intermediul operatiei de diferenta:

R1 R2=R1-(R1-R2)

R1 R2=R2-(R2-R1)

Diviziunea -reprezinta o operatie a algebrei relationale definita asupra unei relatii R cu schema: R(A1:D1,.,Ap:Dk, Ap+1:D1,.,An:Dm ), operatie care consta din construirea, cu ajutorul unei relatii r(Ap+1:D1,.,An:Dm ) a relatiei Q(A1:D1,.,Ap:Dk). Tuplurile relatiei r concatenate cu cele ale relatiei r permit obtinerea tuplurilor relatiei R.

Notatiile utilizate pentru desemnarea operatiei de diviziune sunt:

R r

DIVIZION(R,r)

Reprezentarea grafica a operatiei de diviziune este:

R3

R1 R2

Concatenarea -reprezinta o operatie aditionala din algebra relationala, care permite determinarea complementului unei relatii. Complementul unei relatii reprezinta ansamblul tuplurilor din produsul cartezian al domeniilor asociate atributelor relatiei, care nu figureaza in extensia relatiei considerate.

Notatiile uzuale pentru aceasta operatie sunt:

R

NOT(R)

COMP(R)

Splitarea(spargerea) -reprezinta o operatie aditionala din algebra relationala definita pe o relatie R, operatie care pe baza unei conditii definite asupra atributelor din R permite construirea a doua relatii R1 si R2, cu o aceeasi schema cu R. Extensia lui R1 contine tuplurile care verifica conditia, iar cea a lui R2 pe cele care nu verifica conditia.

Inchiderea tranzitiva -reprezinta o operatie aditionala din algebra relationala prin care se pot adauga tupluri la o relatie. Presupune executarea in mod repetat a secventei de operatii: jonctiune-proiectie-reuniune. Este o operatie definita asupra unei relatii R, a carei schema contine doua atribute A1 si A2 cu acelasi domeniu asociat, operatie care consta din adaugarea la relatia R a tuplurilor care se obtin succesiv prin tranzitivitate, in sensul ca daca exista in R tuplurile <a,b> si <b,c>, se va adauga <a,c>.

Notatiile uzuale :

t(R)

R+

CLOSE(R)

Calcul relational

Calculul relational orientat pe tuplu

operatori:

-conectivele (conectorii):

*conjunctia, notata uzual cu

*disjunctia, notata cu

*negatia, notata cu

-cuantificatori:

*cuantificatorul existential (

*cuantificatorul universal ("

In cadrul calculului relational orientat pe tuplu sunt utilizati urmatorii

Calculul relational orientat pe domeniu

Calculul relational orientat pe domeniu utilizeaza in constructiile sale aceeasi operatori ca si calculul relational orientat pe tuplu, dar variabilele care apar in aceste constructii sunt variabile domeniu, adica variabile definite asupra domeniilor.

Bibliografie:

1. "Baze de date", Ion LUNGU; editura ALL 1995

"Sisteme de Gestiune a Bazelor de Date. FoxPro", Gheorghe Popa

editura Cison 1996

2."SQL fara profesor in 14 zile", Jeff Perkins

3. Visual Studio 6.0, MSDN

Facultatea de Cibernetica, Statistica si Informatica Economica

Referat

Implementarea Operatorilor Relationali in Visual Fox

Student: Rednic Carmen-Isabela

An: II

Grupa: 1037

Seria D

ASE BUCURESTI, 2000


Document Info


Accesari: 2349
Apreciat: hand-up

Comenteaza documentul:

Nu esti inregistrat
Trebuie sa fii utilizator inregistrat pentru a putea comenta


Creaza cont nou

A fost util?

Daca documentul a fost util si crezi ca merita
sa adaugi un link catre el la tine in site


in pagina web a site-ului tau.




eCoduri.com - coduri postale, contabile, CAEN sau bancare

Politica de confidentialitate | Termenii si conditii de utilizare




Copyright © Contact (SCRIGROUP Int. 2024 )