lunes, 23 de agosto de 2010

¿En que consiste un diccionario de datos - Oracle?

El diccionario de datos es una parte fundamental de la base de datos Oracle. Está formado por tablas, vistas y packages a los que se puede acceder para obtener información. Las tablas se crean automáticamente durante la instalación y permiten saber:
  • Estructura lógica y física de la DB
  • Los usuarios de la DB
  • Restricciones de integridad sobre las tablas de la DB
  • Espacio asociado a cada objeto en la DB y la cantidad que se está utilizando por los distintos objetos creados por los usuarios de la DB
El usuario SYS es el dueño del DD y tiene todos los permisos sobre cualquier objeto de la DB (también los de cualquier usuario). Componentes de la DD:
  • Tablas base: Una serie de tablas a las que el servidor de datos accede cada vez que se procesa una instrucción DDL de SQL o en algunos comandos DML.
  • Vistas estáticas: Se crean durante la instalación del RDBMS y decodifican y resumen la información contenida en las tablas base. Durante la creación de estas vistas se generan sinónimos públicos para proveer el acceso a los usuarios del RDBMS. Estas vistas deben ser utilizadas para las labores de administración rutinarias que necesiten información específica sobre configuración y estado de la DB. Tienen el nombre de estáticas porque no mantienen información relacionada con las sesiones. Se dividen en 3 categorías:
    • Vistas con prefijo USER: Puede utilizarlas cualquier usuario de laDB y se refieren a objetos poseídos por dicho usuario.
      Ej: Usuario 
      dave ejecuta:
      SELECT * FROM USER_TABLES;
      Se desplegará toda la información de las tablas cuyo propietario sea
      dave.
    • Vistas con prefijo ALL: Evidente, las podrá usar cualquier usuario y además añaden la columna OWNER al resto de información. Con estas vistas se puede tener acceso a la información de los objetos que el usuario es dueño además de los objetos públicos y los que el usuario tiene acceso (por pertenecer a un grupo de seguridad o poseer ciertos privilegios).
    • Vistas con prefijo DBA: Dan información sobre todos los objetos de la DB. Usualmente también tienen la columna OWNER. Sólo las puede utilizar el administrador o usuarios con privilegio SELECT ANY TABLE o pertenezca a un rol que incluya el privilegio.
  • Vistas dinámicas (o performance views): Incluyen información sobre las condiciones actuales de operación del RDBMS. La mayor parte son creadas durante la instalación y algunas se crean específicamente para monitorear cierta actividad. Todas se identifican por el prefijo V$.
    EJ: La vista dinámica V$_SESSION incluye información sobre las sesiones actuales y la vista V$SYSSTAT provee información estadística sobre el
    RDBMS. Para obtener información general sobre las vistas del diccionario de datos se podría utilizar esta consulta:

    SELECT * FROM DICTIONARY WHERE table_name LIKE ´%indicador%´;
    Por ejemplo, para ver todas las vistas relacionadas con tablas podríamos ejecutar:

    SELECT * FROM DICTIONARY WHERE table_name LIKE ´%TABLE%´;

No hay comentarios:

Publicar un comentario