Tema: Arquitectura del SGBDR Oracle versió 8

Galería d'imatges


Processos en memòria
Accés dels processos als discs
Taules i relacions. Valors per defecte
Exemple de vista (view)
Relació entre fitxers físics i espais de taules (tablespaces)
Relació entre taules, índexs i espais de taules
Ampliació d'un Tablespace
Creació d'un nou espai de taules
Espais de taula dinàmics
Organització física de les dades en 'clusters'
Relació entre Segments, Extensions i Data Blocks (estructures físiques)
Organització interna d'un índex: arbres B (B-tree)
Comparació de l'accés mitjançant clau índex  amb l'accés amb clau calculada ('hashing')
Seguretat: drets i funcions (roles) d'usuaris i d'aplicacions



 
 
 

Processos en memòria



Els diferents processos d'usuari i els processos interns d'Oracle accedeixen a la mateixa àrea comú de memòria, la SGA.
Índex
 

Accés dels processos als discs



Els fitxers de dades, de recuperació de dades (Redo Log), i de control del sistema són accedits per uns processos interns a mida que els processos d'usuari van actualitzan les dades en el disc. Tot el procés és transparent per l'usuari.
Índex
 
 

Taules i relacions. Valors per defecte.



Dues taules relacionades per dos camps comúns. La taula EMP té en la interrelació una cardinalitat = n, i el camp de relació DEPTNO s'anomena 'Foreign key' (clau forànea). El mateix camp en la taula DEPT (cardinalitat = 1) té el nom de 'Parent key' (clau pare). La taula EMP té definit en el camp DEPTNO un valor per defecte de 20. En insertar una fila que no té cap valor en DEPTNO, automàticament Oracle li asigna el valor 20.
Índex
 
 

Exemple de vista


La vista STAFF (creada amb una instrucció SQL) mostra només un subconjunt de les columnes de la taula EMP. Un cop l'administrador ha creat una vista, l'usuari la utilitza com si sigués una taula. De fet, podem executar sentències SQL d'accés a la vista: SELECT EMPNO, ENAME FROM STAFF
Índex
 
 

Relació entre fitxers físics i espais de taules (tablespace)


Un tablespace pot contenir un  o més d'un fitxer físic. En la figura tenim dos espais de taula: el del sistema i el dels usuaris.
Índex
 
 

Relació entre Taules, índexs i Espais de taules (Tablespaces)


Una taula és un objecte lògic de la BD, i pot ocupar físicament espai en un o més d'un fitxer del disc. Inversament, un fitxer físic pot contenir més d'una taula, una única taula o bé part d'una taula. El conjunt de fitxers físics destinats a contenir taules forma un nou objecte lògic anomenat espai de taules (Tablespace).
Índex
 
 

Ampliació d'un Tablespace


En aquest exemple afegim dos nous fitxers físics (ja creats i inicialitzats) a un tablespace existent, concretament al del sistema (conté taules internes d'Oracle) mitjançant instruccions SQL/DML.
Índex
 
 

Creació d'un nou espai de taules


Podem crear un nou tablespace usant SQL. El nou tablespace ha de contenir al menys un fitxer físic (DATA3.ORA en la figura). En l'exemple ls BD té dos espais de taules: el del sistema i el dels usuaris.
Índex
 
 

Espais de taula dinàmics


També podem asignar espai dinàmicament a un fitxer d'un espai de taules de forma que, quan estigui ple, el sistema automàticament assigni mès espai de disc. En l'exemple, el fitxer creix en increments de 20 Mb amb un límit d'espai total de 1000 Mb.
Índex
 
 

Organització física de les dades en 'clusters'


Per defecte les dades de cada taula estàn en zones separades del fitxer físic. Quan les taules estàn relacionades, la majoría d'accesos a les dades d'un d'elles implicarà accedir també a l'altre taula, ocasionant un baix rendiment del sistema doncs els capçals del disc està 'saltant' contínuament d'una zona a un altre (part dreta de la figura) i un desperdici d'espai. Organitzant les taules relacionades en una única zona del disc (anomenada cluster) optimitzem els accessos a disc (part esquerra de la figura).
Índex
 
 

Relació entre Segments, Extensions i Data Blocks (estructures físiques)


En la figura tenim un segment que conté a dos extensions. Cada extensió està estructurada en Data Blocks de 2 Kb. Cada Data Block té una estructura interna que veiem en la següent figura:
 
 

Hi ha una capçalera de bloc que descriu els seus paràmetres(adreça i tipus de segment), després el directori de taules que conté la llista de taules que tenen dades en aquest bloc, a continuació l'espai lliure i per últim l'espai ocupat per dades. L'administrador quan crea una taula o un segment pot utilitzar els paràmetres PCTFREE i PCTUSED. El primer serveix  per a configurar el percentatge mínim d'espai lliure per a posibles modificacions de dades existents en el bloc. Per exemple en una instrucció SQL de creació de taula CREATE TABLE especifiquem PCTFREE 20 per indicar que un 20% de cada Data Block quedarà lliure i disponible per actualizacions de dades, com mostra la figura:


 

D'altre banda el paràmetre PCTUSED configura el percentatge màxim de cada bloc que es pot ocupar amb dades:


 

Si omplim la zona de dades per sobre del límit especificat, no podrem afegir més dades. L'espai lliure quedarà reservat per actualitzacions de dades ja existents.
Índex
 

Organització interna d'un índex: arbres B (B-tree)


Els índexs en Oracle segueixen una organització anomenada B-tree o arbres binaris. Per exemple, per localitzar un nom segons un índex com ara Clark, el sistema consulta un node de dades arrel amb punters que el bifurquen segons si Clark < King o Clark >= King. En el següent node repetim l'operació comparant Clark<Blake, Blake<=Clark<James o Clark>James, saltant al següent node. Finalment l'últim node (anomenats fulles de l'arbre) ens dòna l'adreça del bloc on es guarden les dades d'en Clark.
Índex
 

Comparació de l'accés mitjançant clau índex  amb l'accés amb clau calculada ('hashing')


Un altre posibilitat per accelerar l'accés als registres d'una taula és el de clau calculada (hashing) en el qual un algorisme matemàtic convenientment triat transforma cada clau (dada d'entrada) en una adreça interna de la BD. Si està ben dissenyat, la clau calculada podrà accedir a les dades amb una sola lectura a disc, menre que l'arbre-B necesitarà més accesssos.
Índex
 
 

Seguretat: drets i funcions (roles) d'usuaris i d'aplicacions


Per facilitar la tasca d'assignació de privilegis l'administrador pot crear un objecte de la BD anomenat rol d'aplicació, entitat amb un nom (com ara ACCTS_PAY Role) asociada amb una aplicació (ACCTS_PAY: 'actualitzar pagaments') i una llista de permisos d'accés als recursos de la BD. A banda podem crear rols d'usuari: objectes amb una llista de privilegis que poden incloure un o més d'un rol d'aplicació. Per exemple, el rol MANAGER (director) inclou els drets continguts en els rols d'aplicació ACCTS_PAY i ACCTS_REC, mentre que el rol PAY_CLERK només conté els privilegis de ACCTS_PAY. Finalment a cada usuari li podem asociar un rol d'usuari mab la qual cosa heredarà els privilegis del rol.
Índex