Arquitectura del diccionario de datos

Existen dos categorías generales dentro las vistas del diccionario:

  • Estáticas:  vistas  USER/ALL/DBA .
  • Dinámicas:  vistas V$ y GV$

 Vistas estáticas

 

Estas vistas se llaman estáticas por que su contenido solo cambia con ciertos eventos transaccionales, como la creación de una tabla o el conceder un privilegio.

Hay tres niveles de vistas estáticas:

 USER

ALL

DBA

Las vistas USER contienen información sobre el propio usuario. Por  ejemplo, la vista USER_TABLES almacena la información de las tablas del usuario. No se necesitan privilegios especiales para consultar esta tabla.

El siguiente nivel son las vistas estáticas ALL. Estas vistas contienen toda la información a las que el propio usuario tiene acceso. Por ejemplo, ALL_TABLES muestra todas las tablas de la base de datos sobre las que el usuario puede hacer select, las suyas y las de otros usuarios.

Las siguientes son las DBA vistas estáticas. Las vistas DBA contienen metadatos  describiendo todos los objetos de la base de datos (sin importar el propietario de los objetos o de los privilegios). Para acceder la las vistas DBA se tiene que tener el role DBA o el grant SELECT_CATALOG_ROLE.

Las vistas estáticas están basadas en las tablas internas de oracle como USER$, TAB$ y IND$.

Las tablas del diccionario de datos (como USER$, TAB$ y IND$) se crean durante la ejecución del comando CREATE DATABASE. Como parte de la creación de la base de datos se ejecuta el script sql.bsq, que se encarga de construir las tablas de diccionario de datos interno. El sql.bsq archivo se encuentra localizado en $ORACLE_HOME/rdbms/admin.

Las vistas estáticas se crean cuando se ejecuta el script catalog.sql (normalmente este script se ejecuta inmediatamente después de ejecutar satisfactoriamente el comando CREATE DATABASE. Este archivo esta localízalo en directorio en $ORACLE_HOME/rdbms/admin.

Este tipo de vistas se crean a partir de las tablas estáticas.

Vistas dinámicas

Estas visitas están constantemente actualizadas por Oracle y reflejan la situación actual de la instancia y de la base de datos. Estas visitas son esenciales para el diagnostico de problemas de rendimiento.

 Las vistas V$ y GV$ se basan indirectamente en las tablas X$, las cuales son estructuras internas de memoria que se instancias cuando se levanta la instancia de Oracle. Algunas de las vistas V$ están disponibles desde el primer momento que se levanta la instancia de oracle. Por ejemplo, la V$PARAMETER se rellena antes de que la instancia se monte. Otras vistas contienen información derivada de la vista del controlfile (cómo V$CONTROLFILE) y por tanto necesitan que la instancia este montada para tener información.

Estas vistas se crean con el $ORACLE_HOME/rdbms/admin/catalog.sql

Si se trabaja con Oracle Real Application Clusters existen las vistas globales GV$. Estas vistas dan información global de todas las instancias de un cluster, y contienen una columna INST_ID para determinar las instancias dentro de ambiente  cluster.