Baze de date
Limbajul ISBLLimbajul ISBL Limbajul ISBL este un limbaj de tip algebra relationala. Limbajul de cereri ISBL (Information System Base Language) a fost conceput de IBM din Peterlee, Anglia. In ISBL, majoritatea operatorilor algebrei relationale au corespondente cum ar fi: R S se reprezinta cu R+S R-S se reprezinta cu R-S R S se reprezinta ca R S sF(R) se reprezinta ca R:F pA1,,An(R) se reprezinta ca R%A1,,Sn R X S se reprezinta ca R S unde R si S pot fi expresii relationale si F este o formula booleana. Componentele relatilor sunt referite prin nume. Daca R si S au atribute diferite, atunci R S reprezinta produsul cartezian al celor doua relatii. O expresie relationala precedata de LIST permite tiparirea relatiei rezultate. Atribuirea numelui R pentru o expresie E se face prin R=E. Se poate amana evaluarea unei expresii dintr-o atribuire pana la referirea relatiei R din stanga egalitatii daca unele relatii ce apar in E sunt precedate de N! Care inseamna evaluare prin nume. Exemplu: daca pentru relatiile R(A,B) si S(C,D) scriem expresia urmatoare: RCS=(R S):B=C%A,D Se calculeaza compunerea relatiilor curente R si S si se obtine o noua relatie numita RCS. Pentru a obtine o formula pentru compunerea relatiilor R si S care poate fi aplicata din cand in cand, se poate scrie expresia: RCS=(N!R N!S):B=C%A,D
iar o expresie ulterioara de tipul LIST RCS sau T=RCS+U permite evaluarea expresiei numita RCS prin inlocuirea valorilor curente ale relatiilor R si S si apoi listarea relatiei obtinute sau, calculul reuniunii relatiei respective cu continutul actual al lui u si numirea noii relatii cu T. Operatorul N! este util pentru simplificarea scrierii unor cereri prin numirea unor subexpresii din expresiile mai complicate, cat si prin posibilitatea construirii unei vederi. Operatiile din ISBL au anumite particularitati. Reuniunea a doua relatii se poate face daca cele doua relatii au aceleasi atribute, rezultatul avand si el aceleasi atribute. Diferenta R-S este diferenta obisnuita numai daca cele doua relatii au aceleasi atribute dar, daca unele atribute ale lui R difera de cele ale lui S, atunci R-S reprezinta multimea acelor tupluri t din r pentru care nu exista tupluri in S care sa aiba aceleasi valori cu t pentru atributele comune celor doua relatii. Pentru relatiile R(A,B) si S(A,C), R-S reprezinta expresia din algebra relationala: R-(pA(S) pB(R) ISBL ofera posibilitatea redenumirii atributelor rezultate in proiectii prin includerea in lista ce urmeaza dupa % a unor expresii de forma A B, care inseamna: atributul a se include in proiectie, dar in relatia rezultata se redenumeste cu B. Redenumirea atributelor poate fi utilizata pentru definirea unor operatii prevazute in algebra relationala. Exemplu: reuniunea relatiilor R(A,B si S(A,C) cu rezultatul avand atributele A si B se poate face cu expresia: R+(S%A,C B) diferenta celor doua relatii cu rezulatul avand atributele A si C se obtine cu expresia: (R%A,B C)-S iar produsul cartezian al celor doua relatii cu rezultatul avand atributele A,B,C,D se poate face cu expresia: R (S%A D,C) Exemplu: Considerand o baza de date constituita din urmatoarele relatii: CUMPARATORI(NUME,ADRESA,CONT) COMENZI(NR COM,NUME,MARFA,CANTITATE) MAGAZINE(NUMEMAG,ADRESAMAG,MARFA,PRET) Unei cereri de tipul: listeaza cumparatorii care au contul negativ, i se poate raspunde in ISBL cu o comanda de forma: LISTCUMPARATORI:CONT<0%NUME Raspunsul la cererea: listeaza numele magazinelor, marfurile si preturile tuturor magazinelor care vand cel putin o marfa comandata de Ionescu Iosif se poate obtine prin urmatoarea succesiune de expresii: CM=N!COMENZI N!MAGAZINE LISTCM:NUME=”IonescuIosif”%NUMEMAG,MARF, PRET Unei cereri de tipul:listeaza toate magazinele care vand toate marfurile comandate de Ionescu Iosif i se poate obtine raspunsul prin urmatoarea succesiune de expresii: M=N!MAGAZINE%NUMEMAG B=N!MAGAZINE%MARFA C=N!COMENZI: NUME=”Ionescu Iosif”%MARFA NB=(N!M N!B)-(N!MAGAZINE%NUMEMAG,MARFA) NBC=N!NB (N!M N!C) LIST M-(NBC%NUMEMAG)
|