El documento presenta una introducción a los metadatos, describiendo su función de proveer información sobre datos para facilitar su catalogación y búsqueda. Explica que existen diversos tipos de metadatos según la información y función que proveen, como descriptivos, estructurales y administrativos. También presenta ejemplos de herramientas y estándares que usan metadatos, como Dublin Core, y vistas internas en PostgreSQL que proveen metainformación sobre la base de datos.
1. “Año de la Inversión para el
Desarrollo Rural y la Seguridad
Alimentaria”
Universidad Nacional de San Martín.
Facultad de Ingeniería de Sistemas e Informática.
Curso : Administración de Base de Datos
Tema : Diccionario de Datos
Docente : Ing. Andy Rucoba Reátegui
Alumnos : AREVALO CHINGUEL, José
BARTRA DAVILA, Heidy
HIDALGO TUANAMA, Sandino
NAPANGA PAREDES, Erick
PINEDO VARGAS, Jewell
TORRES FLORES, Carlos
Ciclo : V (2013-II).
Tarapoto - Perú
2013
2. INTRODUCCIÓN A METADATOS
Cuando Internet empezó a crecer y la cantidad de información disponible aumentó
desmesuradamente, surgió el problema de clasificarla e identificarla de manera
eficiente. Partiendo de ese problema, se comenzaron a usar los metadatos, es decir,
información relativa a los propios datos que facilitan su catalogación y además
proporcionan información semántica asociada.
Los metadatos son datos altamente estructurados que describen información,
describen el contenido, la calidad, la condición y otras características de los
datos.
Es "Información sobre información" o "datos sobre los datos".
TIPOS DE METADATOS
Existen diversos tipos de metadatos, cada uno con su propio formato para describirlos.
Según la información que proporcionen, existen metadatos sobre: el contenido,
aspectos formales, derechos de autor y el contexto.
Según la función que proporcionan, se pueden clasificar en:
Descriptivos
Describen e identifican recursos de información.
Permite a los usuarios la búsqueda y recuperación
de la información.
DUBLIN CORE o
Etiquetas META de HTML
Estructurales
Facilitan la navegación y la presentación de los
recursos. Proporcionan información sobre la
estructura interna de los documentos, así como la
relación entre ellos.
XML y RDF o
SGML
Administrativos
Facilitan la gestión de conjuntos de recursos.
Incluye la gestión de derechos y sobre control de
acceso y uso.
MOA2
3. Hay varias iniciativas para tratar de normalizar y estandarizar los metadatos sobre los
recursos electrónicos. Quizá el más conocido sea el DublinCore, creado inicialmente
para catalogar y compartir información sobre libros entre bibliotecas estadounidenses,
pero que ahora se usa casi en la totalidad de las páginas web existentes en Internet.
Existen otros muchos estándares con diferentes niveles de estructuración y de detalle
optimizados para el sistema por el fueron creados.
Los metadatos pueden almacenarse en una base de datos, normalmente diseñada
para tal efecto, o incrustados en la cabecera del propio documento sobre el que
añaden información. En el contenido web, por ejemplo, la metainformación sobre una
página web suele ir incluida en el propio documento HTML, mientras que otros
contenidos como la sindicación de noticias o metadatos sobre archivos multimedia se
proporcionan como documentos aparte.
USOS DE LOS METADATOS
Las aplicaciones son muy amplias. Principalmente se usan para la recuperación de
información y para describir y catalogar documentos. Otros usos incluyen la definición
de derechos de propiedad intelectual, valoración y evaluación de contenidos, etc. Los
principales clientes suelen ser los robots y agentes de los motores de búsqueda.
DICCIONARIO DE DATOS
Un diccionario de datos es un conjunto de metadatos que contiene las características
lógicas y puntuales de los datos que se van a utilizar en el sistema que se programa,
incluyendo nombre, descripción, alias, contenido y organización.
Identifica los procesos donde se emplean los datos y los sitios donde se necesita el
acceso inmediato a la información, se desarrolla durante el análisis de flujo de datos y
auxilia a los analistas que participan en la determinación de los requerimientos del
sistema, su contenido también se emplea durante el diseño.
En un diccionario de datos se encuentra la lista de todos los elementos que forman
parte del flujo de datos de todo el sistema. Los elementos más importantes son flujos
de datos, almacenes de datos y procesos. El diccionario de datos guarda los detalles y
descripción de todos estos elementos.
4. HERRAMIENTAS QUE HACEN USO EL DICCIONARIO DE DATOS
• NetDynamics
• PowerBuilder
• PROGRESS
• Visual Basic
• Bases de Datos Compatibles
• CA-Clipper, CA-OpenIngres
• DB2 for MVS, DB2 for OS/390
• DB2 UDB, dBASE
• FoxPro, HiRDB
• Informix, InterBase
• Microsoft Access, Microsoft SQL Server
• Oracle, Paradox
• Rdb, red BrickWarehouse
• SAS, SQL Anywhere
• SQLBase, Sybase
• Teradata
• Sistemas Operativos Compatibles
• Windows NT
• Windows 95
• Windows 98
• Erwin
• Entre otros.
5. Requerimientos Técnicos:
Mínimo 10 MB de espacio de disco duro, 16 MB RAM (32 MB RAM
recomendado para modelos largos.)
NORMA ISO 10027
Esta Norma Internacional describe el marco para una serie de normas internacionales
que especifican un organismo especializado Sistema de información, denominado
Recursos de Información
Diccionario System (IRDS). Un IRDS se utiliza para controlar y documentar los
recursos de información de una empresa.
Esta Norma Internacional define los niveles de datos pertinentes a un IRDS. Se define
las interfaces que son IRDS prescrita por otras normas internacionales en las IRDS la
familia de normas. También define los tipos de contenido de los datos que se
prescriben por otras Normas Internacionales de la familia.
DEFINICIONES
Las definiciones en esta cláusula son esas definiciones IRDS utilizados en este
marco. Estas definiciones se hacen referencia en otras
Normas Internacionales de los que se utilizan. Además
Normas Internacionales pueden definir la terminología adicional.
Cuando cada término se señala en esta cláusula se introdujo en una tarde cláusula de
esta Norma Internacional, se imprime en negrita
LOS EFECTOS DE ESTA NORMA LOS SIGUIENTES APLICAN TÉRMINOS.
Control de acceso: Una capacidad de restritt la uso de los servicios de datos
el acceso a los usuarios que han sido previamente autorizado.
Nivel de aplicación: El nivel de datos en los que se registran las instancias de
datos de la aplicación.
Par nivel de aplicación: El término utilizado para describir tanto el nivel de
aplicación y su esquema en el Nivel IRD.
Esquema de aplicación: Un conjunto de definiciones que el control de lo que
puede existir en cualquier momento en una aplicación.
Auditoría: Un proceso de la comprobación de quecambios realizados
previamente a una colección de datos han sidorealizado correctamente y por
un usuario apropiadamente autorizado a unamomento oportuno.
6. Cliente: Un usuario que solicita los servicios prestados en una interfaz de un
servidor.
Restricción: Declaración de uno o más válidas estados de una parte de una
base de datos, basado en las condiciones que los valores en la base de datos
deben satisfacer en cualquier momento.
Datos Contenedor: Un área conceptual de almacenamiento en el que se
registran instancias de datos de bronceado
VISTAS Y TABLAS DE SISTEMA INTERNAS EN POSTGRESQL
Además podemos obtener información sobre cómo está funcionando PostgreSQL
internamente a través de las vistas y tablas de sistema en la base de datos. En
sucesivos artículos iremos viendo qué tipo de información contienen y como interpretar
estas vista/tablas de sistema.
Para que muchas de estas vistas/tablas funcionen debemos tener activados estos
parámetros en nuestro sistema, track_counts, track_functions, track_activities, bien en
el fichero postgresql.conf o definidos con SET / ALTER DATABASE en la sesión o
base de datos de la que queremos obtener información.
Existen muchas vistas y tablas internas pero las que se usan más comúnmente para
obtener información de PostgreSQL son las siguientes:
pg_roles:
Información sobre todos los roles y usuarios definidos en la
base de datos.
pg_database
Información sobre todas las bases de datos definidas en nuestro
sistema.
pg_locks:
Información sobre los bloqueos activos en nuestras bases de
datos. Vista complicada de entender pero muy valiosa en ciertas
situaciones.
pg_stat_activity:
Información sobre todos los procesos clientes conectados a la
base de datos.
pg_stat_database:
Información global de uso de todas las bases de datos.
7. pg_stat_user_tables:
Información de uso de todas las tablas de usuario en una base
de datos.
pg_stat_user_indexes:
Información de uso de todos los índices de usuarios en una base
de datos.
pg_stat_user_functions:
Información sobre estadísticas de uso de las funciones en uso.
pg_statio_user_tables:
Información de acceso a disco y memoria cache de todas las
tablas de usuario en una base de datos.
pg_statio_user_indexes:
Información de acceso a disco y memoria cache de todos los
índices de usuario en una base de datos.
pg_stat_bgwriter:
Información global sobre el proceso "backgroundwriter".
Catálogo del sistema PostgreSQL. Cada base de datos tiene estas mismas tablas,
salvo por la primera que es única, que almacenan cada una de las partes que
componen la base de datos.
Nombre del catálogo Descripción
pg_database Bases de datos
pg_class Clases o tablas
pg_attribute Atributos o campos de la clase o tabla
pg_index Índices secundarios
pg_proc Procedimientos (en C y en SQL)
pg_type Tipos de datos (del sistema y definidos por el usuario)
pg_operator Operadores (del sistema y definidos por el usuario)
pg_aggregate Agregados y funciones agregadas
pg_am Métodos de acceso
pg_amop Operadores de métodos de acceso
pg_amproc Funciones de soporte para métodos de acceso
pg_opclass Clases de operadores de métodos de acceso
Tabla que contiene todas las bases de datos que existen en el sistema. Vale la pena
8. consultarla en aplicaciones que impliquen explorar diversos aspectos.
Table = pg_database
Field Type Length Description
datname name 32 Nombre de la base
datdba int4 4 Uid del databaseadmin
datpath text var El path para llegar hasta la base
Tabla que contiene todas las tablas en la base de datos actual.
Table = pg_class
Field Type Length Description
Relname name 32 Nombre de la tabla
Reltype oid 4 El Objecto Id de la tabla
relowner oid 4 El UID (postgres) del dueño de la tabla
Relam oid 4
relpages int4 4 Número de páginas ocupadas por la tabla
reltuples int4 4 Número de tuplas en la tabla
Relhasindex bool 1 Verdadero si tiene al menos un índice
relisshared bool 1
Relkind char 1
Relnatts int2 2 Número de atributos
relchecks int2 2
reltriggers int2 2 Número de triggers asociados
relhasrules bool 1 Verdadero si tiene reglas asociadas
Relacl aclitem[] var
Tabla que contiene los atributos de los atributos de todas las tablas en la base actual.
Table = pg_attribute
Field Type Length Description
attrelid oid 4 OID del atributo
attname name 32 Nombre del atributo
atttypid oid 4 Oid del tipo definido para el atributo
attdisbursion float4 4
attlen int2 2 Longitud en bytes del atributo
attnum int2 2
attnelems int4 4
attcacheoff int4 4
atttypmod int2 2
9. attbyval bool 1
attisset bool 1
attalign char 1
attnotnull bool 1
atthasdef bool 1
Para saber que bases de datos hay en el sistema:
SELECT * FROM pg_database;
Para saber que tablas tengo en la base de datos actual:
SELECT * FROM pg_class;
Lo mismo, pero sólo las definidas por el usuario, excluyendo las del sistema:
SELECT * FROM pg_class WHERE relname !~~ 'pg%';
Si sólo queremos saber cuántos registros tiene una tabla, basta con preguntar:
SELECT relname,reltuples FROM pg_class WHERE relname=mitabla';
Donde mitabla es el nombre de la tabla de la cual nos interesa saber el número de
registros.
A continuación, presentamos una forma de extraer información de las tablas de la
base de datos. pg_database tiene las bases de datos, pg_class tiene las tablas,
y pg_attribute tiene los campos. Si lo que queremos saber es el número de
registros en una tabla determinada, basta con preguntar lo siguiente, conociendo la
tabla, adicionalmente se obtienen los campos. Para, además, saber los tipos de los
campos, habría que hacer unquery a pg_type con los oids de los campos. ¿Puede
construir la consulta para hacerlo?
SELECT relname,reltuples,attname,attnum
FROM pg_class,pg_attribute
WHERE pg_class.relname='mitabla'
AND pg_attribute.attrelid=pg_class.oid
AND attnum> 0
ORDER BY attnum;
Si lo que queremos es saber todo de todas las tablas de la base que no sean del
sistema, sino del usuario, por supuesto ordenadas por oid, se hace lo siguiente, pero
con el problema de que incluye los índices:
SELECT pg_class.oid,relname,reltuples,attname
FROM pg_class,pg_attribute
WHERE pg_class.relname !~~ '%pg%'
AND pg_attribute.attrelid=pg_class.oid
AND attnum> 0
ORDER BY pg_class.oid;
10. En el caso de que uno quiera saber cuáles son los campos de todas las tablas que se
tienen en una base de datos, esta consulta lo soluciona.
SELECT
pg_class.relname,pg_attribute.attname,pg_class.reltuples,pg_type.typna
me
FROM pg_attribute
WHERE attrelid = pg_class.oid
AND attnum> 0
AND atttypid=pg_type.oid
AND pg_class.oid IN
(SELECT oid FROM pg_class WHERE relname !~~ 'pg%')
AND pg_type.oid IN (SELECT oid FROM pg_type);