7.2 Las Bases De Datos Y La Administración De Datos

La tecnología de bases de datos puede reducir muchos de los problemas que origina la organización tradicional de archivos. Una definición más rigurosa de base de datos es un conjunto de datos organizados para satisfacer eficientemente a muchas aplicaciones centralizando los datos y minimizando su redundancia. En vez de que los datos se almacenan en archivos separados para cada aplicación, se guardan físicamente para que aparezcan a los usuarios como si estuvieran almacenados en un solo lugar. Una sola base de datos abastece a múltiples aplicaciones. Por ejemplo, en vez de que una corporación guarde los datos de empleados en sistemas separados de información y en diferentes archivos para personal, nomina y prestaciones, podría crear una sola base de datos común de recursos humanos. La figura 7-4 ilustra el concepto de base de datos.

Photobucket

SISTEMAS DE ADMINISTRACIÓN DE BASES DE DATOS

Un sistema de administración de bases de datos (DBMS, por sus siglas en ingles) es simplemente el software que permite que una organización centralice sus datos, los administre eficientemente y de acceso a los datos almacenados a los programas de aplicaciones. El DBMS actúa como una interfaz entre los programas de aplicaciones y los archivos físicos de datos. Cuando el programa de aplicaciones solicita un elemento de datos como el sueldo bruto, el DBMS encuentra este elemento en la base de datos y lo presenta al programa de aplicaciones. Un DBMS elimina la mayoría de instrucciones de definición de datos que se encuentran en los programas tradicionales.

El DBMS libera al programador o al usuario final de la tarea de comprender donde y domo se almacenan realmente los datos separando las vista lógica y física de datos. La vista lógica presenta los datos como los deberían percibir los usuarios finales o los especialistas de la empresa, en tanto que la vista física muestra como están organizados y estructurados realmente los datos en un medio de almacenamiento físico. Solo hay una vista física de los datos, pero haber varias vistas lógicas diferentes. El software de administración de bases de datos hace disponibles las bases de datos físicas para diferentes vistas lógicas presentadas por varios programas de aplicaciones. Por ejemplo, un programa de prestaciones de retiro del empleado puede usar una vista lógica de la base de datos de recursos humanos ilustrada en la figura 7-4, que solo requiere los datos del nombre, dirección, numero de seguridad social, plan de pensión y prestaciones de retiro del empleado.
Un sistema de administración de bases de datos tiene tres componentes:

1. Un lenguaje de definición de datos
2. Un lenguaje de manipulación de datos
3. Un diccionario de datos

El lenguaje de definición de datos es el lenguaje formal que emplean los programadores para especificar el contenido y estructura de la base de datos. Este lenguaje define cada elemento de datos como aparece en la base de datos antes de que el elemento de datos se traduzca en los formatos requeridos por los programas de aplicaciones.

La mayoría de los DBMS tiene un lenguaje especializado llamado lenguaje de manipulación de datos el cual se utiliza en conjunto con algunos lenguajes convencionales de programación de aplicaciones para manipular datos en la bases de datos. Este lenguaje contiene comandos que permiten que los usuarios finales y los especialistas en programación extraigan datos de la base de datos para satisfacer requerimientos de información y desarrollar aplicaciones. El lenguaje más prominente de manipulación de datos es el Lenguaje de Consultas Estructurado o SQL. Los usuarios finales y los especialistas en sistema de información pueden usar el SQL como un lenguaje de consultas interactivo para acceder a datos desde las bases de datos, y los comandos de SQL se pueden incrustar en programas de aplicaciones escritos en lenguajes convencionales de programación.

El tercer elemento de un DBMS es un diccionario de datos que es un archivo automatizado o manual, el cual almacena as definiciones de los elementos de datos y sus características como uso, presentación física, propiedad (quien es el responsable de mantener los datos en la organización), autorización y seguridad. Muchos diccionarios de datos pueden producir listas e informes de datos como agrupaciones, ubicaciones de programas, etcétera. La figura 7-5 ilustra un informe de muestra de un diccionario de datos que presenta el tamaño, formato, significado y usos de un elemento de datos en una base de datos de recursos humanos. Un elemento de datos representa un campo. Además de enlistar el nombre estándar (MONTO-PAGO-BASE), el diccionario enlista los nombres que hacen referencia a este elemento en sistemas específicos e identifica los individuos, funciones de negocios, programas e informes que utilizan este elemento de datos.
Al crear un inventario de datos contenidos en la base de datos, el diccionario de datos funciona como una importante herramienta de administración de datos. Por ejemplo, los usuarios de negocios podrían consultar el diccionario para encontrar exactamente que piezas de datos se conservan para la función de ventas o de marketing o incluso determinar toda la información mantenida por toda la empresa. El diccionario podría proporcionar a los usuarios de negocios el nombre, formato y especificaciones requeridas para tener acceso a datos para informes. El personal técnico podría utilizar el diccionario para determinar qué elementos de datos y archivos de deben cambiar si se modifica un programa.

La mayoría de diccionarios de datos son totalmente pasivos; simplemente dan informes. Los tipos más avanzados son activos; los programas relacionados pueden utilizar automáticamente los cambios en el diccionario. Por ejemplo, para cambiar códigos postales de cinco a nueve dígitos, bastaría hacer el cambio en el diccionario sin tener que modificar todos los programas de aplicaciones que utilicen códigos postales.
En un entorno ideal de base de datos, los datos se definen una vez solamente y se usan para todas las aplicaciones cuyos datos residen en la base de datos, eliminando así la redundancia e inconsistencia de los datos. Los programas de aplicaciones, que se escriben utilizando una combinación del lenguaje de manipulación de datos del DBMS y un lenguaje convencional de programación, solicitan a la base de datos. El DBMS encuentra y transmite los elementos de datos solicitados por los programas de aplicaciones. El programador no tiene que especificar en detalle quien donde se deben encontrar los datos.
Un DBMS puede reducir la dependencia de datos del programa junto con el desarrollo de programas y los costos de mantenimiento. Se puede incrementar el acceso y la disponibilidad de información porque los usuarios y los programadores pueden realizar consultas de datos ad hoc en la base de datos. El DBMS permite que la organización centralice la organización, uso y seguridad de los datos. La Ventana a la administración ilustra algunos de estos beneficios.

Photobucket

Tipos De Bases De Datos

El DBMS contemporáneo utiliza diferentes modelos de bases de datos para dar seguimiento a entidades, atributos y relaciones. Cada modelo tiene ciertas ventajas de procesamiento y ciertas ventajas de negocios.

DBMS Relacional

Actualmente, el tipo más popular de DBMS para PCs, así como para computadoras más grandes y mainframes es el DBMS relacional. El modelo de datos relacional representa todos los datos de la base de datos como tablas sencillas en dos dimensiones, llamadas relaciones. Las tablas se parecen mucho a unos archivos planos, pero se puede extraer y combinar fácilmente la información en más de un archivo. A veces, las tablas se conocen como archivos.

La figura 7-6 muestra una tabla de proveedores, una tabla de partes y una tabla de pedidos. En cada tabla las filas son registros únicos y las columnas son campos. Otro termino para una fila o registro en una relación es tupla (registro). En ocasiones el usuario necesita información de varias relaciones para producir un informe. He aquí la fortaleza del modelo relacional: puede relacionar datos de cualquier archivo o tabla con los datos de otro archivo o tabla siempre y cuando ambos compartan un elemento de datos común.
Para demostrarlo, supongamos que se quiere encontrar en la base de datos relacional de la figura 7-6 los nombre y direcciones de los proveedores que podrían proporcionarnos la parte numero 137 o la parte numero 152. Se necesitaría información de las dos tablas: de la tabla de proveedores y la tabla de partes. Nótese que estos dos archivos tienen un elemento de datos combinado: Numero _Proveedor. En la base de datos relacional, las tres operaciones básicas que se muestra en la figura 7-7 se utilizan para desarrollar conjuntos de de datos útiles: seleccionar, proyectar y unir. La operación seleccionar crea un subconjunto que consta de todos los registros en el archivo que cumplieron los criterios establecidos. Seleccionar crea, en otras palabras, un subconjunto de filas que cumplen con ciertos criterios. En nuestro ejemplo queremos seleccionar registros (filas) de la tabla de partes donde el número de la parte equivale a 137 o a 152. La operación unir combina tablas relacionales para dar a el usuario mas información de la que está disponible en las tablas individuales. En nuestro ejemplo de desea unir la tabla de partes ahora abreviada (solo se presentaran las partes numeradas 137 o 152) y la tabla de proveedores en una sola tabla de resultados nueva.

Photobucket

La operación proyectar crea un subconjunto de columnas en una tabla, permitiendo que el usuario cree nuevas tablas (también llamadas vistas) que contienen solamente la información requerida. En nuestro ejemplo, se desea extraer de la nueva tabla de resultados solamente las columnas siguientes: Numero_ Parte, Numero_ Proveedor, Nombre _Proveedor y Dirección _Proveedor (véase la figura 7-7).

Los principales sistemas mainframe de administración de bases de datos relacionados incluyen la DB2 de IBM y Oracle de Oracle Corporation. DB2, Oracle y Microsoft SQL Server se utilizan como DBMS para computadoras de rango medio. Microsoft Access es un sistema de administración de datos relacionados para PC y Oracle Lite es un DBMS para dispositivos de computación portátiles.

DBMS Jerárquico Y De Red

Todavía se pueden encontrar sistemas antiguos basados en un modelo de datos jerárquico o de red. El DBMS jerárquico presenta datos a los usuarios en una estructura de tipo árbol. Dentro de cada registro, los elementos de datos están organizados en piezas de registro llamados segmentos. Para el usuario, cada registro semeja un organigrama con un segmento de nivel superior llamado raíz. Un segmento superior se conecta lógicamente con un segmento inferior en una relación padre-hijo. Un segmento padre puede tener más de un hijo, pero un hijo solo pude tener un padre.

La figura 7-8 presenta una estructura jerárquica que se puede usar para una base de datos de recursos humanos. El segmento raíz es Empleado, que contiene información básica del empleado como nombre, dirección y número de identificación. Inmediatamente debajo están tres segmentos hijos: Compensación (que contiene datos de salario y promoción), Asignaciones de trabajo (que contiene datos para puestos de trabajo y departamentos) y Prestaciones (que contiene datos sobre beneficiarios y opciones de beneficios). El segmento Compensación tiene dos hijos debajo: Evaluaciones de desempeño (que contiene datos sobre las evaluaciones en el desempeño de trabajo de los empleados). Debajo del segmento Prestaciones están los segmentos hijos de Pensión, Seguro de vida y Cuidado de salud, que contiene datos sobre estos planes de beneficios.

Mientras que las estructuras jerárquicas denotan relaciones de uno para muchos, el DBMS de red describe los datos lógicamente como relaciones de muchos a muchos. En otras palabras, los padres pueden tener varios hijos y los hijos pueden tener más de un padre. Una relación típica de muchos a muchos para un DBMS de red es la relación estudiante-curso (véase la figura 7-9). En una universidad hay muchos cursos y muchos estudiantes. Un estudiante toma varios cursos y un curso tiene muchos estudiantes.
Los DBMS jerárquicos y de red se consideran obsoletos y ya no se usan para construir nuevas aplicaciones de bases de datos. Son mucho menos flexibles que el DBMS relacional y no soportan consultas ad hoc en lenguaje común. Todos los pasos para tener acceso a datos se deben especificar previamente y no se pueden cambiar sin hacer un considerable esfuerzo de programación. Por ejemplo, si se preguntara a la base de datos de recursos humanos ilustrada en la figura 7-8 por los nombres de los empleados que ostentan el puesto de asistente administrativo, se describiría que no hay manera de encontrar la respuesta en un tiempo razonable. Esta ruta a través de los datos no se especifico previamente.
El DBMS relacional, en contraste, tiene mucha más flexibilidad en proporcionar datos para consultas ad hoc, combinando información de fuentes diferentes y proporcionando capacidad de agregar nuevos datos y registros sin perturbar los programas ni las aplicaciones existentes. Sin embargo, estos sistemas se pueden reducir si requieren muchos accesos a los datos almacenados en el disco para ejecutar los comandos seleccionar, unir y proyectar. Seleccionar un número de parte de entre millones, registro a la vez, puede tomar mucho tiempo. Desde luego, la base de datos se puede afinar para agilizar consultas pre especificadas.
Aun se puede encontrar el DBMS jerárquico en grandes sistemas herederos que requieren un procesamiento intensivo de transacciones de alto volumen. Un sistema heredado es un sistema que ha existido durante largo tiempo y que continúan en uso para evitar el alto costo de reemplazarlo. Bancos, compañías de seguros y otros usuarios de alto volumen siguen utilizando el DBMS jerárquicos confiables como el IMS (Sistema de Administración de la Información) de IBM, desarrollado en 1969. Conforme los productos relacionales se hagan más robustos, las empresas tendrán que cambiar por completo los DBMS jerárquicos, pero todavía transcurrirá mucho tiempo para que esto ocurra.

Photobucket

Photobucket



Bases De Datos Orientados A Objetos


Los sistemas convencionales de administración de bases de datos se diseñaron para datos homogéneos que se pueden estructurar en campos y registros de datos predefinidos organizados en filas o tablas. Pero muchas aplicaciones actuales y a futuro requerirán bases de datos que podrán almacenar y recuperar no solo números y caracteres estructurados sino también dibujos, imágenes, fotografías, voz y video de movimiento total. Los DBMS convencionales no cuentan con la capacidad necesaria para manejar aplicaciones basadas en gráficos o multimedia. Por ejemplo, los datos de diseño en una base de datos de diseño asistido por computadora (CAD) consisten en relaciones complejas entre varios tipos de datos. Manipular estos tipos de datos en un sistema relacional requiere una programación extensiva para traducir estas complejas estructuras de datos en tablas y filas. Sin embargo, un DBMS orientado a objetos almacena los datos y procedimientos como objetos que se pueden recuperar y compartir automáticamente.

Los sistemas de administración de base de datos orientados a objetos (OODBMS) se están haciendo populares porque se pueden utilizar para administrar los diversos componentes multimedia o los subprogramas de Java utilizados en aplicacionesWeb, los cuales suelen integrar piezas de información de varias fuentes. Los OODBMS también son útiles para almacenar tipos de datos como los recursivos. (Un ejemplo serán las partes dentro de partes, como las que se encuentran en las aplicaciones de manufactura). Las aplicaciones de finanzas y transacciones suelen emplear OODBMS porque requieren modelos de datos que deben ser fáciles de cambiar para responder a las nuevas condiciones económicas.
Aunque las bases de datos orientadas a objetos pueden almacenar tipos de información más complejos que los DBMS relacionales, son relativamente lentas comparadas con los DBMS relacionales para procesar grandes cantidades de transacciones. Ya están disponibles los sistemas híbridos DBMS relacional-orientado a objetos, para proporcionar capacidades de DBMS orientado a objetos y relacional. Un enfoque hibrido se puede realizar de tres maneras diferentes: utilizando extensiones orientadas a objetos para el DBMS relacional existente, o utilizando un sistema hibrido de administración de bases de datos relacional-orientado a objetos.

Photobucket

Photobucket

CONSULTA DE BASES DE DATOS: ELEMENTOS DE SQL

El Lenguaje de Consultas Estructurado (SQL) es el principal lenguaje de manipulación de datos para un DBMS relacional y una herramienta primordial de consulta, lectura y actualización de bases de datos relacionales. Hay versiones de SQL que pueden correr en casi cualquier sistema operativo y computadora, así que las computadoras pueden intercambiar datos pasándose los comandos de SQL entre sí. Los usuarios finales y los especialistas en sistemas de información pueden utilizar SQL como un lenguaje de consultas interactivo para acceder a los datos de una base de datos y también se pueden incrustar los comandos SQL en programas de aplicaciones escritos en COBOL, C y otros lenguajes de programación.

A continuación se describen los comandos de SQL más importantes. Por convención, ciertas palabras de especial significado, como SELECT y FROM, se deben usar en mayúsculas y las instrucciones de SQL se deben escribir en múltiples líneas. La mayoría de las instrucciones de SQL para recuperar datos contienen las tres clausulas siguientes:

SELECT Enlista las columnas de las tablas que el usuario desea ver en una tabla de resultados
FROM Identifica las tablas o vistas desde las cuales se han de seleccionar las columnas
WHERE Incluye las condiciones para seleccionar filas específicas (registros) dentro de una sola tabla y las condiciones para unir múltiples tablas

La Instrucción SELECT

Esta instrucción se utiliza para consultar datos de una tabla relacional para obtener información específica. El formato general para una instrucción SELECT que recupera columnas especificadas de todas las filas en las tablas es:

SELECT Nombre_Columna. Nombre_Columna,...
FROM Nombre_Tabla;

Las columnas que se han de obtener se enlistan después de la palabra clave SELECT, y la tabla que se va a utilizar se enlista después de la palabra clave FROM. Observe que los nombres de la columna y la tabla no contienen espacios y se deben escribir como una palabra o con un guion bajo (subraya) y que la instrucción termina con punto y coma. Repase la figura 7-6. Supongamos que se quiere ver Numero_Parte, Descripcion_Parte y Precio_Unidad de cada parte en la tabla PARTE. Se especificaría así:

SELECT Numero_Parte, Descripcion_Parte, Precio_Unidad
FROM PARTE;

La figura 7-10 ilustra los resultados de la proyección.

Selección Condicional

La clausula WHERE se utiliza para especificar que solo se despliegan ciertas filas de la tabla, con base en el criterio descrito en esa clausula WHERE. Supongamos, por ejemplo, que se desea ver los mismos datos pero solo de las partes de la tabla PARTE que tengan precios unitarios menores de 25.00 dólares. Se especificaría así:

SELECT Numero_Parte, Descripcion_Parte, Precio_Unidad
FROM PARTE
WHERE Precio_Unidad < 25.00; En la figura 7-11 aparecen los resultados de la consulta. Como Unir Dos Tablas???

Photobucket

Supongamos que se quiere obtener la información de los nombres, números de identificación y direcciones de proveedor de cada parteen la base de datos. Esto se puede hacer uniendo la tabla PARTE con la tabla PROVEEDOR y luego extrayendo la información requerida. La consulta se vería así:

SELECT PARTE. Numero_Parte, PROVEEDOR. Numero_Proveedor
PROVEEDOR. Nombre_Proveedor, PROVEEDOR. Direccion_Proveedor
FROM PARTE, PROVEEDOR
WHERE PARTE. Numero_Proveedor= PROVEEDOR. Numero_Proveedor;

Los resultados se verían como en la figura 7-12. Y si solo se deseara ver el nombre, la dirección y los números de proveedor de los proveedores de las partes números 137 o 152, la consulta seria asi:

SELECT PARTE. Numero_Parte, PROVEEDOR. Numero_Proveedor
PROVEEDOR.Nombre_Proveedor,PROVEEDOR. Direccion_Proveedor
FROM. PARTE, PROVEEDOR
WHERE PARTE. Numero_Proveedor= PROVEEDOR. Numero_Proveedor AND Numero_Parte= 137 OR Numero_Parte=152;

Los resultados se verían como el resultado de la operación unir descrita en la figura 7-7. Obsérvese que en la clausula WHERE, se pueden expresar varias condiciones.