M2 - Bases de dades / Continguts UF3: Diccionari de dades

De wikiserver
Dreceres ràpides: navegació, cerca

QUE ÉS EL DD?

  • El DD està format per un conjunto de taules i vistes associades a aquestes, on s'emmagatzema tota la informació sobre els objectes que composen la BD, així com la estructura lògica i física de la mateixa.
  • El DD inclou dos tipus d'objectes: taules base i vistes:
  • Las taules base es creen automàticament quan es crea una BD i són les que realment contenen la informació del DD.
  • Les vistes es creen al executar-se l'script catalog.sql; i permeten accedir a la informació de las taules del DD (que està codificada).
  • El DD conté informació sobre: la definició de tots els objectes de la BD (taules, vistes, índexs, sinònims, seqüències, procediments, funciones, paquets, triggers, etc), l'espai ocupat per a cada objecte, condicions d'integritat, usuaris, privilegis, rols, així com auditoria del sistema.
  • Mantenen informació sobre les ESTRUCTURES INTERNES DE LA BDO.
  • Només el sistema pot escriure i llegir en aquestes taules.
  • Els usuaris poden consultar la informació continguda en el DD a través d'algunes vistes creades per aquest propòsit.
  • El DD es modifica cada vegada que executem una sentència DDL.
  • Hi ha tres tipus de vistes estàtiques que formen part del DD. Els noms d'aquestes vistes contenen uns prefixes que ens informen sobre els propietaris dels objectes consultats:
  • USER_  : Objectes que pertanyen al propi usuari.
  • ALL_: Tots els objectes accessibles per l'usuari.
  • DBA_: Tots els objectes existents (només pels DBA)
  • La vista DICTIONARY conté una llista de totes les vistes del DD. I en la vista DICT_COLUMNS trobem el detall de les columnes de cadascuna d'elles.
  • El DD també té les anomenades taules dinàmiques, les vistes de les quals tenen el prefix V$ (como V$SESSION). Es creen al arrancar instància (àrea de memòria i processos que usem per a connectar-nos i accedir a la BD) i resideixen en memòria. Quan tanquem la BD (i per tant la instància), desapareixen.
  • Podem consultar aquestes taules amb SELECTS. Es recomana primer fer un DESCRIBE per saber quines columnes volem seleccionar. Heu de tenir present que moltes d'aquestes vistes contenen moltes columnes i seleccionar-les totes indiscriminadament ens impedirà de veure-ho correctament per pantalla.


Algunes vistes amb el prefixe DBA:

DBA_TABLESPACES: Tablespaces de la BD. 
DBA_DATA_FILES: Ficheros que componen los datafiles.
DBA_SEGMENTS: Segmentos que hay en los tablespaces. 
DBA_EXTENTS Extensiones que componen los segmentos. 
DBA_USERS Usuarios de la BD. 
DBA_OBJECTS: Información de objetos en general.
DBA_TS_QUOTAS: Límites de recursos en cuanto a espacio máximo en tablespaces
DBA_PROFILES: Perfiles y sus límites de recursos asociados.
DBA_TAB_PRIVS: Permisos sobre tablas asignados a roles o usuarios.
DBA_SYS_PRIVS: Privilegios asignados a roles o usuarios.
DBA_ROLE_PRIVS: Roles asignados a roles o usuarios.
DBA_ROLES: Roles.

Algunas vistes amb el prefix USER_ (es poden veure en ALL_VIEWS):

USER_OBJECTS: Lista de todos los objetos pertenecientes al usuario (tablas, vistas, paquetes, índices, triggers, sinónimos...). 
USER_TABLES: Lista de todas las tablas del usuario. 
USER_VIEWS: Vistas del usuario. 
USER_USERS: Diversos datos sobre el usuario. 
USER_UPDATABLE_COLUMNS: Columnas que pueden ser modificadas. 
USER_JOBS: Tareas pertenecientes al usuario. 
USER_TRIGGERS: Disparadores (triggers) del usuario. 
USER_SYNONYMS: Sinónimos pertenecientes al usuario. 
USER_INDEXES: Índices pertenecientes al usuario. 
USER_CONSTRAINTS: Restricciones pertenecientes al usuario. 
USER_TAB_PRIVS: Permisos sobre objetos con el usuario involucrado. 
Si pone _COL_ en vez de _TAB_ se refiere a las columnas. Se puede distinguir entre: 
USER_TAB_PRIVS_MADE: Permisos sobre los objetos del usuario. 
USER_TAB_PRIVS_RECD: Permisos recibidos por el usuario. 
USER_TAB_COLUMNS: Descripciones de las columnas del usuario. 
USER_TAB_COMMENTS
USER_COL_COMMENTS 

EXEMPLES:

describe v$database (informació sobre la base de dades)
desc v$datafile (informació dels fitxers de dades de la BD)
desc dba_tablespaces (informació dels tablespaces)
desc dba_users (usuaris de la BD)
1. Comprovar els fitxers que composen la BD
select name from v$datafile;
select name from v$tempfile;
select member from v$logfile;
select name from v$controlfile;
2. Identificar la estructura lògica dels tablespaces:
Select tablespace_name from dba_tablespaces;
Select tablespace_name, file_name from dba_data_files order by tablespace_name, file_name;
3. Consultar informació sobre la base de dades (v$database):
select name, created, log_mode, checkpoint_change#, open_mode, platform_name, current_scn from v$database;