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
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
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
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

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