Interogari pe o singura tabela
Cea de a doua extensie care se intalneste in MDOR consta in manipularea identificatorilor de obiect (IDO). In cadrul MDOR identitatea obiectelor este rezolvata prin utilizarea pointerilor in tabele si are drept scop ameliorarea mecanismului de regasire a datelor formulat printr-un limbaj de interogare, in exemplul care urmeaza exista posibilitatea utilizarii unui singur pointer sau a unui ansamblu de pointer.
Interogarile monotabela pe o TOR care contine un pointer (atribut de tip REF) nu mai necesita JOIN. in acest caz JOIN-ul este implicit, fiind realizat prin precizarea drumului conform sintaxei:
alias.pointer.atribut
Exemplu: Departamentul informatica are mai multe posturi de lucru dotate cu PC-uri. Calculatoarele sunt legate in retea si pot fi fie client, fie server. Fiecare post de lucru este caracterizat printr-un numar de serie si un tip de post (Windows,Unix sau Terminal X). Datele au fost structurate in tabela Posturi, astfel:
Tabela POSTURI
Serie |
Tip |
@server |
P1 |
Win 95 | |
P2 |
Win 98 | |
P3 |
Win NT |
NULL |
P4 |
Win 95 | |
P10 |
Win Vista |
A. Ce serie are serverul clientului p1 ?
SELECT p.server.serie, p.server.tip
FR0M posturi p
WHERE p.serie = 'p1';
Rezultatul interogarii este:
SERVER.SERIE SERVER.TIP
......
p3 WinNT
B. Care sunt seriile si tipurile corespunzatoare posturilor legate la serverul WinNT ?
SELECT p.serie, p.tip
FROM posturi p
WHERE p.server.tip ='WinNT';
Rezultatul interogarii este:
SERIE TIP
..
p1 Win 98
p2 Win 95
p10 Win 95
p7 Win 95
C. Care sunt seriile si tipul posturilor client ale serverului p5 ?
SELECT p.serie'Client', p.tip
FROM posturi p
WHERE p.server.serie = 'p5';
Rezultatul interogarii este:
Client Tip
...
p4 TX
p9 TX
p10 TX
p11 TX
D. Folosirea functiilor in cereri
SELECT e.nume, e.prenume, varsta(e)
FROM salariat e
WHERE varsta(e)<55
Interogari pe mai multe tabele.
Fie tabelele Post_Lucru (serie, tip, @sala) si Laboratoare (simbol, denumire, operator). Sa se afiseze printr-o interogare SQL3 simbolul laboratorului si numele operatorului pentru laboratoarele care au posturi de tip WinNT.
SELECT p.sala.simbol, p.sala.operator
FROM post_lucru p
WHERE p.tip ='WinNT';
View-uri si tabele temporare
Un view nu trebuie confundat cu o tabela temporara. Pe un view nu se pot crea indecsi sau restrictii. Un view nu are viata in baza de date atata timp cat nu este apelat; tabela temporara in schimb este persistenta.
O tabela temporara declarata la nivel global poale servi la transmiterea de date intre utilizatori, lucru pe care view-ul nu il poate face. Tabelele temporare nu pot avea indecsi, restrictii, view-uri. Ele sunt doar tabele de lucru.
In varianta SQL3 administratorul bazei de date cedeaza din privilegiile lui. In SQL-92 administratorul bazei de date crea toate obiectele schemei; utilizatorul nu putea decat sa utilizeze ceea ce ii era pus la dispozitie.
In SQL3 utilizatorul poate crea view-uri sau tabele temporare. SQL3 vine cu o noua delimitare a privilegiilor administratorului bazei de date si cele ale utilizatorului.
SQL3 (SQL/PSM) utilizeaza tabele temporare pentru a conserva rezultate intermediare si pentru a evita sa le regaseasca si sa le recalculeze in permanenta.
Comanda pentru crearea tabelelor temporare are urmatoarea sintaxa:
CREATE [GLOBAL ! LOCAL]
TEMP [ORARY] TABLE nume_tabela (lista elemente_tabela)
ON COMMIT [PRESERVE ! DELETE] ROWS;
Semnificatia clauzelor este urmatoarea:
Optiunea GLOBAL semnifica faptul ca o copie a tabelei este disponibila pentru toate modulele aplicatiei unde este apelata. In general, GLOBAL TEMPORARY TABLE se utilizeaza pentru a transmite date partajate intre sesiuni.
Optiunea LOCAL semnifica faptul ca o copie a tabelei este disponibila pentru fiecare modul de program in care apare tabela temporara. Daca mai multi utilizatori acceseaza aceeasi tabela temporara, fiecare dintre ei dispune de o copie a acesteia, initial vida, care apoi este completata adecvat. Nu insistam asupra acestui mecanism. Conceptul de modul in SQL este expus pe larg in lucrarea 'Understanding SQL's Stored Procedures" (Jim Melton, 1998); desigur programele, procedurile, functiile, sub-programele sau blocurile de cod depind de limbajul procedural utilizat. Retinem doar ca o tabela temporara locala poate fi creata in mod dinamic de catre utilizator, are durata de viata a sesiunii si nu este vizibila decat creatorului ei.
Optiunea PRESERVE mentine informatiile (liniile) intre doua utilizari ale tabelei. Liniile vor fi sterse la sfarsitul sesiunii.
Optiunea DELETE semnifica faptul ca liniile vor fi sterse de fiecare data cand se executa o instructiune COMMIT. In ambele cazuri tabela va fi vidata la sfarsitul sesiunii.
Tabela temporara locala are doua avantaje:
Politica de confidentialitate |
.com | Copyright ©
2024 - Toate drepturile rezervate. Toate documentele au caracter informativ cu scop educational. |
Personaje din literatura |
Baltagul – caracterizarea personajelor |
Caracterizare Alexandru Lapusneanul |
Caracterizarea lui Gavilescu |
Caracterizarea personajelor negative din basmul |
Tehnica si mecanica |
Cuplaje - definitii. notatii. exemple. repere istorice. |
Actionare macara |
Reprezentarea si cotarea filetelor |
Geografie |
Turismul pe terra |
Vulcanii Și mediul |
Padurile pe terra si industrializarea lemnului |
Termeni si conditii |
Contact |
Creeaza si tu |