Structura logica a bazei de date
Structura logica a unei baze de date Oracle include obiecte schema, bloc de date, extent, segment si tablespace.
 
Scheme ?i obiecte schem?
 
O schem?e o colec?ie de obiecte baz? de date. O schem? este proprietatea unui utilizator ?i are acela?i nume ca al utilizatorului. Obiectele schem? sunt structurile logice care fac referire direct? la datele din baza de date. Obiectele schem? includ structuri ca tabele, vederi sau indec?i. (Nu exist? nici o leg?tur? între tablespace ?i schem?. Obiecte din aceea?i schem? pot fi diferite tablespace-uri ?i un tablespace poate ?ine obiecte din scheme diferite.)

Unele dintre cele mai obi?nuite obiecte schem? sunt definite în urm?toarea sec?iune.
 
 

Tabele

Tabelele sunt unitatea de baz? pentru memorarea datelor într-o baz? de date. Tabelele bazei de date p?streaz? toat? informa?ia accesibil? de utilizator. Fiecare tabel are linii ?i coloane. Oracle memoreaz? fiecare linie a tabelului în buc??i de linie ce reprezint? coloanele (pân? la 256). De exemplu, un tabel cu angaja?i poate con?ine o coloan? ce reprezint? num?rul angajatului, ?i fiecare linie din acea coloan? reprezint? câte un num?r de angajat.

 
 

Vederi

Vederile sunt prezent?ri particularizate ale datelor din diferite tabele sau vederi. O vedere poate fi considerat? ?i o întrebare memorat?. Vederile nu con?in date, ci ?i le procur? din tabelele pe care se bazeaz?, care se ?i numesc tabele de baz? ale vederilor.
Ca ?i tabelele, vederile pot fi interogate, actualizate, se pot face inser?ri, ?tergeri,cu anumite restric?ii. Toate opera?iile efectuate asupra vederilor afecteaz? de fapt tabelele de baz? ale vederilor.
Vederile asigur? un nivel adi?ional de securitate prin restric?ionarea accesului la un set predeterminat de linii ?i coloane ale tabelului. De asemenea, ele ascund complexitatea datelor ?i stocheaz? interog?ri complexe.
Indec?i

Indec?ii sunt structuri op?ionale asociate cu tabelele. Ei au fost crea?i pentru a m?ri performan?a furniz?rii datelor. Un index Oracle asigur? o cale de acces c?tre datele din tabele.

La procesarea unei interog?ri, Oracle poate folosi unii sau to?i indec?ii disponibili pentru a localiza eficient liniile solicitate. Indec?ii sunt folositori când aplica?iile cer un tabel doar cu anumite linii sau linie.

Indec?ii sunt crea?i pe baza uneia sau mai multor coloane din tabel. Dup? ce a fost creat, un index este automat men?inut ?i utilizat de c?tre Oracle. Schimb?rile din tabele (ad?ugarea de linii noi, actualizarea liniilor, ?tergerea liniilor) sunt automat încorporate în to?i indec?ii relevan?i cu transparen?a complet? c?tre utilizator.

Clustere

Clusterele sunt grupuri de unul sau mai multe tabele fizic memorate împreun? deoarece împart coloane comune ?i sunt adesea folosite împreun?. Deoarece liniile cu leg?turi între ele sunt memorate împreun? fizic se îmbun?t??e?te timpul de acces la disc.

Ca ?i indec?ii, clusterele nu afecteaz? design-ul aplica?iilor. Data stocat? într-un tabel cluster-izat e accesat? de SQL în acela?i mod ca una dintr-un tabel neclusterizat.

Blocuri de date, extent-uri ?i segmente

Structurile logice de memorare, incluzând ?i blocurile de date, extent-urile ?i segmentele permit ca Oracle s? aib? control în am?nunt asupra spa?iului de pe disc.

Blocuri de date Oracle

La cel mai fin nivel de granularitate, datele în Oracle sunt stocate în blocuri de date. Un bloc de date corespunde unui anumit num?r de bytes de spa?iu fizic pe disc. Dimensiunea standard a blocului e specificat? de parametrul de ini?ializare DB_BLOCK_SIZE. În plus, se mai pot specifica pân? la cinci alte dimensiuni de bloc. O baz? de date folose?te ?i aloc? spa?iu liber în blocuri de date Oracle.

Extent-uri

Urm?torul nivel al spa?iului bazei de date logice este un extent. Aceasta reprezint? un num?r specificat de blocuri de date continue, ob?inute la o singur? alocare, folosite pentru a stoca un anumit tip de informa?ie.

Segmente

Deasupra extent-urilor, nivelul logic de stocare al bazei de date este segmentul. Acesta este un set de extent-uri alocate pentru o anumit? structur? logic?. Urm?torul tabel descrie diferite tipuri de segmente.


 
Segment
Descriere
Segment de date
Fiecare tabel neclusterizat posed? un segment de date. Toate datele tabelului sunt memorate în extent-urile segmentului de date. 
Pentru un tabel parti?ionat, fiecare parti?ie are un segment de date.
Fiecare cluster are un segment de date. Datele fiec?rui tabel din cluster sunt memorate în segmentul de date al cluster-ului.
Segment de index
Fiecare index are un segment de index ce memoreaz? toate datele sale.
Pentru un index parti?ionat, fiecare parti?ie are un segment de index.
Segment temporar
Segmentele temporare sunt create de Oracle când o declara?ie SQL necesit? un spa?iu de lucru temporar pentru a-?i îndeplini sarcina. Când execu?ia sa se încheie, extent-urile din segmentul temporar sunt returnate sistemului pentru a fi utilizate în viitor.
Segmentul de restaurare
Informa?ia dintr-un segment de restaurare e folosit? în procesul de recuperare al bazei de date:
-pentru generarea informa?iei din baza de date consistent? la citire.
-pentru a derula înapoi tranzac?iile neterminate.

Oracle aloc? dinamic spa?iu atunci când extenturile unui segment devin pline. Cu alte cuvinte, când extent-urile unui segment sunt pline, Oracle aloc? alt extent pentru acel segment. Din cauz? c? extent-urile sunt alocate dup? necesitate, extent-urile unui segment pot sau nu pot fi continue pe disc.

Tabele (tablespaces)

O baz? de date e împ?r?it? în unit??i logice de stocare, numite tabele (tablespaces), care grupeaz? structurile înrudite logic. De exemplu, tabelele, în mod uzual, grupeaz? toate obiectele aplica?ie pentru a simplifica unele opera?ii administrative.

Baze de date, tablespaces (tabele) ?i fi?iere de date

Rela?ia dintre baze de date, tablespace-uri ?i fi?iere de date e ilustrat? în figura 1.1 

Fig 1.1 Rela?ii dintre baze de date,tablespace-uri ?i fi?iere de date

Aceast? figur? arat? urm?toarele:

-fiecare baz? de date e împ?r?it? logic într-unul sau mai multe tabele (tablespaces)

-unul sau mai multe fi?iere de date sunt create explicit pentru fiecare tabel pentru a stoca fizic datele tuturor structurilor logice dintr-un tabel.

-dimensiunea tuturor fi?ierelor de date dintr-un tabel este capacitatea total? de memorare a tabelului (tabelul SYSTEM are 2 Mbi?i capacitate, iar tabelele USER au câte 4 Mb)

-capacitatea de stocare a tuturor tabelelor unei baze de date este capacitatea total? de stocare a bazei de date (6 Mb).

Tabele Online ?i Offline
Un tabel poate fi online (accesibil) sau offline (inaccesibil). Un tabel este în general online, astfel încât utilizatorii s? poat? accesa informa?ia din el. în unele cazuri, tabelele sunt offline pentru a face o por?iune a bazei de date nedisponibil?,restul r?mânând disponibil. Acest lucru face ca sarcinile administrative s? fie mai u?oare.