Creeaza.com - informatii profesionale despre


Simplitatea lucrurilor complicate - Referate profesionale unice
Acasa » scoala » informatica » sql
Interogarea datelor din TOR

Interogarea datelor din TOR


Interogarea datelor din TOR

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:

  • element_tabela; poate fi o declarare de coloana, o restrictie, o clauza de integritate referentiala, la fel ca in cazul unei tabele de baza, dar diferenta este data de clauzele suplimentare si anume:

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:

  • utilizatorul nu o incarca decat o singura data pornind de la rezultatul unei interogari complexe sau foarte lungi, dar o utilizeaza de atatea ori cat este nevoie in sesiunea respectiva, ceea ce duce la cresterea performantelor;
  • nu se mai produce un blocaj (vizavi de ceilalti utilizatori) al tabelelor de baza pe care este construita interogarea complexa.




Politica de confidentialitate


creeaza logo.com Copyright © 2024 - Toate drepturile rezervate.
Toate documentele au caracter informativ cu scop educational.