Download 6 El catálogo del sistema

Document related concepts

Lenguaje de definición de datos wikipedia , lookup

Microsoft SQL Server wikipedia , lookup

Open Database Connectivity wikipedia , lookup

SQL wikipedia , lookup

FoxPro 2 wikipedia , lookup

Transcript
6 El catálogo del sistema
Un sistema de gestión de base de datos debe llevar la cuenta de gran cantidad de información referente
a la estructura de una base de datos con el fin de efectuar sus funciones de gestión de datos. En una
base de datos relacional, esta información está almacenada típicamente en el catálogo de sistema, una
colección de tablas del sistema que el DBMS mantiene para su propio uso. La información del catálogo
del sistema describe las tablas, las vistas, las columnas, los privilegios y otras características
estructurales de la base de datos.
Aunque el DBMS mantiene el catálogo de sistema principalmente para sus propios fines internos, las
tablas del sistema son generalmente accesibles a los usuarios de la base de datos también a través de
consultas SQL estándar. Una base de datos relacional es por tanto autodescriptiva; utilizando consultas
sobre las tablas del sistema, se puede pedir a la base de datos que describa su propia estructura. Los
«frontales» (front-ends) de bases de datos de propósito general, tales como las herramientas de consulta
y los escritores de informes, utilizan esta característica autodescriptiva para generar listas de tablas y
columnas para selección de usuario, simplificando el acceso a la base de datos.
Este capítulo describe los catálogos de sistema proporcionados por varios productos DBMS
populares, basados en SQL y la información que el catálogo contiene.
¿Qué es el catálogo de sistema?
El catálogo de sistema es una colección de tablas especiales en una base de datos que son propiedad,
están creadas y son mantenidas por el propio DBMS. Estas tablas del sistema contienen datos que
describen la estructura de la base de datos. Las tablas del catálogo de sistema son automáticamente
creadas al crear la base de datos. Generalmente se recogen todas juntas bajo un «id-usuario de
sistema» especial con un nombre como SYSTEM, SYSIBM, MASTER o DBA.
El DBMS se refiere constantemente a los datos del catálogo de sistema cuando procesa las sentencias
SQL. Por ejemplo, para procesar una sentencia SELECT de dos tablas, el DBMS debe:
•
•
•
•
•
verificar que las dos tablas designadas existen realmente
asegurar que el usuario tiene permiso para acceder a ellas
comprobar si existen las columnas referenciadas en la consulta
resolver los nombres de columna no cualificados a una de las tablas
determinar el tipo de datos de cada columna
Almacenando la información estructural en tablas del sistema, el DBMS puede utilizar sus propios
métodos y lógica de acceso para recuperar rápida y eficientemente la información que necesita en la
realización de esas tareas.
Si las tablas del sistema sólo fueran utilizadas internamente por el DBMS, serían de poco interés
para los usuarios de la base de datos. Sin embargo, el DBMS hace generalmente que las tablas del
sistema también estén disponibles para acceso a los usuarios. Las consultas de usuario respecto de los
catálogos del sistema están casi siempre permitidas en las bases de datos sobre minicomputadores y
computadores personales. Estas consultas son también soportadas en productos DBMS sobre
maxicomputadores, pero el administrador de la base de datos puede restringir el acceso al catálogo de
sistema como medida adicional de seguridad de la base de datos. Consultando los catálogos de sistema,
usted puede descubrir información acerca de la estructura de una base de datos, incluso si nunca la ha
utilizado antes.
El acceso de los usuarios al catálogo de sistema es de solo lectura. El DBMS impide a los
usuarios actualizar o modificar directamente las tablas del sistema, ya que tales modificaciones
destruirán la integridad a la base de datos. En su lugar, el propio DBMS tiene a su cargo insertar,
eliminar y actualizar filas de las tablas del sistema cuando modifica la estructura de una base de datos.
Las sentencias DDL tales como CREATE, ALTER, DROP, GRANT y REVOKE producen cambios en las
tablas del sistema como consecuencia de sus acciones.
1
Figura 16.1 Una herramienta de consulta amistosa.
El catálogo y sus herramientas de consulta
Uno de los beneficios más importantes del catálogo de sistema es que hace posible herramientas de
consulta de fácil actualización («amistosas»), tal como se muestra en la Figura 16.1. El objetivo de tal
herramienta es permitir a los usuarios un acceso simple y transparente a la base de datos sin tener que
aprender el lenguaje SQL. Típicamente, la herramienta conduce al usuario a través de una serie de
pasos como éstos:
1. El usuario proporciona un nombre y una contraseña para el acceso a la base de datos.
2. La herramienta de consulta visualiza una lista de las tablas disponibles.
3. El usuario elige una tabla, haciendo que la herramienta de consulta visualice una lista de las columnas
que contiene.
4. El usuario elige las columnas de interés, quizás aceptando sus nombres con pulsaciones de tecla
cuando éstos aparecen en la pantalla de un PC.
S. El usuario elige columnas de otras tablas o restringe los datos a ser recuperados con una condición de
búsqueda.
6. La herramienta de consulta recupera los datos solicitados y los visualiza en la pantalla de usuario.
Una herramienta de consulta de propósito general con la de la Figura 16.1 debe ser capaz de conocer
dinámicamente las tablas y columnas existentes en la base de datos. La herramienta realiza consultas
sobre el catálogo de sistema con este propósito.
El catálogo y el estándar ANSI/ISO
El estándar SQL ANSI/ISO actual no especifica la estructura y los contenidos de] catálogo de sistema.
De hecho, el estándar no requiere la existencia de un catálogo de sistema en absoluto. Sin embargo,
todos los productos DBMS basados en SQL más importantes proporcionan un catálogo de sistema de
2
una forma u otra. La estructura del catálogo y las tablas que contiene varían considerablemente de un
producto DBMS a otro.
Debido a la creciente importancia de las herramientas de base de datos de propósito general que
deben acceder al catálogo de sistema, el estándar SQL2 propuesto incluye una especificación de un
catálogo de sistema mínimo. La especificación está basada generalmente en las tablas de sistema DB2,
pero elimina los contenidos específicos de DB2. Si este intento de normalizar el catálogo del sistema va
a tener éxito o no sigue siendo una cuestión abierta.
Contenidos del catálogo
Cada tabla del catálogo de sistema contiene información referente a una sola clase de elemento
estructural de la base de datos. Aunque los detalles varían, casi todos los productos SQL comerciales
incluyen tablas del sistema que describen cada una de estas cinco entidades:
•
Tablas. El catálogo describe cada tabla de la base de datos, identificando su nombre, su propietario,
el número de columnas que contiene, su tamaño, etc.
•
Columnas. El catálogo describe cada columna de la base de datos, proporcionando el nombre de la
columna, la tabla a la que pertenece, su tipo de datos, su tamaño, si están permitidos los NULL.
•
Usuarios. El catálogo describe a cada usuario autorizado de la base de datos, incluyendo el nombre,
una forma cifrada de la contraseña del usuario y otros datos.
•
Vistas. El catálogo describe cada vista definida en la base de datos, incluyendo su nombre, el
nombre de su propietario, la consulta que define la vista, etc.
•
Privilegios. El catálogo describe cada grupo de privilegios concedidos en la base de datos,
incluyendo los nombres del donante y el donatario, los privilegios concedidos, el objetivo sobre el
cual se han concedido los privilegios, etc.
La Tabla 16.1 muestra los nombres de las tablas de sistema que proporcionan esta información en cada
uno de los principales productos DBMS basados en SQL.
Otras informaciones
El catálogo de sistema es un reflejo de las capacidades y características del DBMS que lo utiliza. Debido
a las muchas extensiones de SQL y a las características adicionales ofertadas por los productos DBMS
más populares, catálogos de sistema siempre contienen varias tablas propias del DBMS. He aquí algunos
ejemplos:
•
DB2 y Oracle soportan sinónimos (nombres alternativos para las tablas). Las definiciones de
sinónimos se almacenan en una tabla de sistema llamada SYSSYNONYMS.
•
SQL Server soporta múltiples bases de datos designadas. Tiene una tabla de sistema llamada
SYSDATABASES que identifica las bases de datos gestionadas por un mismo servidor.
•
Ingres soporta tablas que están distribuidas a través de varios volúmenes de discos. Su tabla de
sistema IIMULTI_LOCATIONS lleva la cuenta de las ubicaciones de las tablas multivolumen.
3
Resumen
El catálogo de sistema es una colección de tablas de sistema que describen la estructura de una base de
datos relacional:
•
El DBMS mantiene los datos en las tablas del sistema, actualizándolos cuando la estructura de la
base de datos cambia.
4
•
Un usuario puede consultar las tablas de] sistema para obtener información referente a tablas,
columnas y privilegios en la base de datos.
•
Herramientas de consulta frontales utilizan las tablas del sistema para ayudar a los usuario a manejar
la base de datos de una manera más amistosa.
•
Los nombres y la organización de las tablas del sistema difieren ampliamente de un producto DBMS
a otro; incluso los productos SQL de IBM tienen diferencias en sus catálogos de sistema.
CREATE VIEW Command
Creates a view file from the FoxPro environment.
Syntax
CREATE VIEW <file>
Remarks
CREATE VIEW builds a new view <file> containing information about the FoxPro environment. SET
VIEW restores the environment saved to a view file by CREATE VIEW. View files created with CREATE
VIEW are assigned a .VUE extension.
The information saved in a view file includes:
All tables/.DBFs, index, alternate and format files currently open in all work areas
All fields contained in the SET FIELDS list
All established relations between open tables/.DBFs
All filters in effect for open tables/.DBFs
The DEFAULT and PATH settings
The procedure file setting
The current help file
The current resource file
The SET SKIP status
The status bar state (ON or OFF)
View files are useful both in programs and while debugging. Only one command, SET VIEW TO <view
file>, needs to be executed to establish the entire environment needed to complete a task. This prevents
you from having to retype the command. While debugging, the environment settings can be saved in a
view file, testing can be performed, and the environment can be restored to continue program execution.
SET VIEW Command
Restores the FoxPro environment from a view file.
Syntax
SET VIEW TO <file> | ?
Remarks
TO <file> | ?
5
Issuing SET VIEW TO <file> restores the FoxPro environment to the state it was in when the view file
specified with <file> was created. View files are created with CREATE VIEW.
A Sample Data Base in FPW
6
CREATE VIEW DB1
7
CLOSE DATABASES
SET VIEW TO DB1
8