M2 - Bases de dades / Continguts UF3: Diccionari de dades
De wikiserver
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;