Baze de date
Calculul relational pe domeniiCalculul relational pe domenii Calculul relational pe domenii permite exprimarea cererilor tot sub forma unor expresii care se construiesc analog expresiilor calculului relational pe tupluri, cu anumite deosebiri: in loc de variabile tuplu se folosesc variabile de domeniu ce pot sa ia drept valori elemente componente ale tuplurilor; un atom este de forma: R(x1,x2,,xk), unde R este o relatie de aritate k si x1,x2,,xk sunt constante sau variabile de domeniu sau de forma xqy, unde x si y sunt constante sau variabile de domeniu si q este un operator relational aritmetic; semnificatia atomilor este analoaga cu cea din calculul relational pe tupluri; in calculul relational pe domenii se folosesc operatorii , ca in calculul relational pe tupluri, iar pentru cuantificatorii ( x) si ( x), x este o variabila de domeniu; caliatea ocurentelor se defineste in acelasi mod.
SELECT NUMEMAG FROM MAGAZINE M WHERE (SELECT MARFA FROM MAGAZINE WHERE NUMEMAG=M.NUMEMAG) CONTAINS (SELECT MARFA FROM COMENZI WHERE NUME= Ionescu Iosif Daca dupa FROM apare o lista de relatii R1,R2,,Rn, se considera toate combinatiile de tupluri t1,t2,,tn, cu ti din Ri. pentru toate acesle combinatii care indeplinesc conditiile care urmeaza dupa WHERE se include, la iesire, lista componentelor specificate dupa SeLECT. Aparitia unei stelute dupa SELECT indica selectarea tuturor atributelor ce apar in tuplurile implicate ulterior si lipsa lui WHERE indica o conditie mereu adevarata (sunt selectate toate tuplurile relatiilor impplicate). Cererea: listeaza numele magazinelor, marfurile si preturile tuturor magazinelor care vand cel putin o marfa comandata de Ionescu Iosif se poate obtine si prin urmatoarea succesiune de expresii: SELECT NUMEMAG,MAGAZINE,MARFA,PRET FROM MAGAZINE,COMENZI WHERE NUME = Ionescu Iosif AND MAGAZINE.MARFA=COMENZI.MARFA Cele cinci operatii de baza din algebra relationala pot fi exprimate astfel: 1. Reuniunea relatiilor R si S: (SELECT* FROM R) UNION (SELECT* FROM S) 2. Diferenta relatiilor R si S: (SELECT* FROM R) MINUS (SELECT* FROM S) 3. produsul cartezian: SELECT*FROM R,S 4. Proiectia: SELECT UNIQUE A1,A2,,Ak FROM R 5. Selectia: SELECT* FROM R WHERE F Se poate atribui un nume R relatieirezultate ca o cerere precedand acesta cerere cu o comanda: ASSIGN TO R: selectie Definirea unei relatii se face cu instructiunea CREATE TABLE, in care se specifica numele tabelului care se creeaza, numele si tipurile de date ale atributelor sale, campurile care sunt componente ale cheii primare si ale unor chei straine impreuna cu corespondentele lor. Au forma generala: CREATE TABLE tabel (definire_camp [,definire_camp] [,PRIMARY KEY (campuri)] [,FOREIGN KEY (camp) REFERENCES tabel [,FOREIGN KEY (camp) REFERENCES tabel]]) unde definire_camp este de forma: camp tip_date [NOT NULL] si tip_date poate fi: INTEGER pentru intreg pe un cuvant; SMALLINT pentru un intreg pe un semicuvant; DECIMAL(p,q) pentru numar zecimal cu precizie de p cifre si avand punctul zecimal la q cifre la dreapta; FLOAT (p) pentru numar real cu p cifre binare de precizie; CHARACTER (n) pentru cuvinte de n octeti; VARCHAR (n) pentru cuvinte de cel mult n octeti; GRAPHIC (n) pentru cuvinte cu n caractere de cate 16 biti; VARGRAPHIC (n) pentru cuvinte de cel mult n caracterede cate 16 biti; DATE pentru exprimarea datei; TIME pentru exprimarea orei; TIMESTAMP pentru
exprimarea in microsecunde a unei combinatii de data
O expresie a calculului relational pe domenii este
de forma: , unde y este o formula pentru care singurele variabile pe
domeniu libere sunt x1,x2,…,xk. Ca si in cazul calculului relational pe
tupluri, se defineste o expresie sigura a calculului relational
pe domenii ca o expresie care se poate stabili daca formula
continuta in ea este adevarata sau nu numai pentru valori
ale variabilelor domeniu intr-o multime finita asociata,
numita domeniul expresiei.
|