viernes 29 de abril de 2011

Modelo de datos, esquema e instancias

Los modelos datos son el principal instrumento para ofrecer cierto nivel de abstracción de los datos, ocultando detalles de almacenamiento que la mayoría de los usuarios no necesitan conocer.

Un modelo de base de datos es un conjunto de conceptos que pueden servir para describir la estructura de una base de datos. En ocasiones se utiliza la palabra modelo para denotar una descripción o esquema de una base de datos en particular, por ejemplo “el modelo de datos de comercialización”.

Con estructura de una base de datos o diseño de una base de datos nos referimos a los tipos de datos, las relaciones y restricciones que deben cumplirse para esos datos.

mdedatos

Categoría de los modelos de datos.

Una clasificación posible de los modelos de datos se realiza de acuerdo al nivel de abstracción que ofrecen para describir la estructura de la base de datos. Existen en este sentido tres categorías:

  • Conceptuales.
  • Lógicos.
  • Físicos.

Los conceptuales disponen de conceptos muy cercanos a la forma en que la mayoría de los usuarios percibe los datos, mientras que los físicos proporcionan conceptos que describen los detalles de como se almacenan los datos en la computadora. Entre dos extremos están los Lógicos , cuyos conceptos pueden ser entendidos por los usuarios finales sin estar demasiado alejados de la forma en que los datos se organizan dentro de la computadora.

Un ejemplo conocido de modelo conceptual es el MER (Modelo Entidad Relación).

Los modelos lógicos, entre los que se encuentra el modelo relacional son los más utilizados en los DBMS comerciales.

Esquema e instancias

En cualquier modelo de datos es importante distinguir entre la descripción de la base de datos y la base de datos propiamente dicha. La descripción se conoce como esquema de la base de datos (o metadatos). Este esquema se especifica durante el diseño, por lo que también le llamaremos diseño de la base de datos.

En la mayoría de los modelos de datos se utilizan ciertas convenciones para representar los esquemas en forma de diagramas.

En la siguiente figura se muestra un diagrama esquemático de la base de datos vista anteriormente; el diagrama presenta la estructura de todos los tipos de registros pero no los ejemplares o instancias reales de los registros. A cada uno de los objetos del esquema –como CLIENTES o PRODUCTOS- se llama elemento del esquema.

CLIENTES

CódCliente Nombre Dirección

PRODUCTOS

CódProd Descripción PrecioProd

FACTURAS

NúmFactura Fecha CódCliente Total

LINEAS_FACT

NúmFactura CódProd CantidadLlevada ImporteLínea

Los diagramas solo ilustran algunos aspectos del diseño, como los nombres de los tipos de registros y de los elementos de información, y algunas clases de restricciones como veremos más adelante.

Los datos reales de la base de datos pueden cambiar con mucha frecuencia; por ejemplo, la base de datos de ejemplo cambiará cada vez que agreguemos un nuevo cliente. Los datos que la base de datos contiene en un determinado momento se denominan estado de la base de datos (o conjunto de instancias). En un estado dado de la base de datos, cada elemento del esquema tiene su propio conjunto actual de instancias; por ejemplo, el elemento CLIENTES contendrá como instancias el conjunto de entidades clientes individuales (registros). Es posible construir muchos estados de la base de datos que correspondan a un diseño determinado. Cada vez que insertamos o eliminamos un registro, o que modificamos el valor de un elemento de información, transformamos un estado de la base de datos en otro.

Cuando definimos una nueva base de datos, solo especificamos su diseño al DBMS.

En ese momento, el estado correspondiente a la base de datos es el “estado vacío”, sin datos. Cuando cargamos estos por primera vez, la base de datos pasa al “estado inicial”. De ahí en adelante, cada vez que se aplique una operación de actualización a la base de datos sean estado validos, en el sentido de que satisfagan la estructura y las restricciones especificadas en el diseño. El DBMS almacena el diseño en su catalogo, de modo que el software pueda consultarlo siempre que lo necesite

Respaldo y Recuperación

Todo DBMS debe contar con recursos para recuperarse de fallos de hardware o software. Para ello está el subsistema de respaldo y recuperaciones del DBMS.

Por ejemplo, si el sistema falla mientras se esta ejecutando un complejo programa de actualización, el subsistema de recuperación se encargara de asegurarse de que la base de datos se restaure al estado en el que estaba antes de que comenzara la ejecución del programa. Como alternativa, el subsistema de recuperación puede asegurarse de que el programa reanude su ejecución en el punto en que fue interrumpido, de modo que su afecto completo se registre en la base de datos.

martes 26 de abril de 2011

Características del enfoque de bases de datos

Hay varias características que distinguen el enfoque de base de datos del enfoque tradicional de programación con archivos.

En el procesamiento de archivos tradicional, cada usuario define e implementa los archivos requeridos para una aplicación específica. Por ejemplo, un usuario, la oficina de contabilidad, podría mantener un archivo de clientes; se escribirían programas para trabajar con estos clientes y un segundo usuario, la oficina de ventas, mantendría otro archivo de clientes con sus programas específicos. Aunque ambos usuario están interesados en datos relativos a los clientes, cada uno mantiene archivos separados –y programas para manipular dichos archivos porque requieren datos que no pueden obtener de los archivos del otro. Esta redundancia al definir y almacenar los datos implica espacio desperdiciado y esfuerzos redundantes para mantener actualizados los datos comunes.

En el enfoque de bases de datos se mantiene un único almacén de datos que se define una sola vez y al cual tienen acceso muchos usuarios.

Las principales características del enfoque de base de datos, es comparación con el procesamiento de archivos, son las siguientes:

  • Naturaleza auto descriptiva de los sistemas de base de datos.

Una característica fundamental del enfoque de bases de datos es que el sistema no sólo contiene la base de datos propiamente dicha, sino también una definición o descripción completa de la misma. Esta definición se almacena en el catalogo del sistema, que contiene información y diversas restricciones que se aplican a los datos. A la información almacenada en el catálogo se le denomina METADATOS, y estos describen la estructura de la base de datos.

El catalogo es utilizado por el software del DBMS y, ocasionalmente por los usuarios de la base de datos que necesitan información sobre la estructura de esta ultima. El software del DBMS no esta escrito para una aplicación de base de datos especifica, así que tiene que consultar el catalogo para conocer la estructura de los archivos de una base de datos en particular, como el tipo y formato de los datos los tendrá acceso.

En nuestro ejemplo, el DBMS almacena en el catalogo las definiciones de los cuatro archivos mencionados. Siempre que se recibe una solicitud para tener acceso, por ejemplo, al Nombre de un registro CLIENTE, el software del DBMS consultará el catalogo para determinar la estructura del archivo CLIENTES y la posición y el tamaño del elemento Nombre dentro de un registro de CLIENTES. En cambio, en una aplicación de procesamiento de archivos tradicional, la estructura del archivo y, en algunos casos, la ubicación exacta de Nombre dentro de un registro CLIENTES ya está codificadas en todos los programas que tienen acceso a este elemento de la información.

  • Separación entre los programas y los datos. Abstracción de los datos.

En el procesamiento de archivos tradicional, la estructura de los archivos de datos viene integrada en los programas de acceso, así que cualquier modificación de la estructura de un archivo puede requerir la modificación de todos los programas que tienen acceso a dicho archivo.

En cambio, los programas de acceso del DBMS se escriben en modo que sean independientes de los archivos específicos. La estructura de los archivos de datos se almacena en el catalogo del DBMS separada de los programas de acceso. Llamamos a esta propiedad independencia con respecto a los programas y datos.

La característica que hace posible esta independencia se denomina abstracción de los datos.

Un DBMS ofrece a los usuarios una representación conceptual de los datos que no incluye muchos de los detalles de cómo se almacenan. En términos informales, un modelo de datos es un tipo de abstracción de los datos con que se obtiene esta representación conceptual. En el modelo de datos intervienen conceptos lógicos, como serian los objetos, sus propiedades y sus interrelaciones, que la mayoría de los usuarios pueden entender más fácilmente que los conceptos de almacenamiento en la computadora. Por tanto, el modelo de datos oculta los detalles de almacenamiento que no interesan a la mayoría de los usuarios de base de datos.
En el enfoque de base de datos, la estructura y organización detalladas de todos los archivos se guardan en el catalogo. Los usuarios de la base de datos hacen referencia a la representación conceptual de los archivos, y el DBMS extrae del catalogo los detalles de almacenamiento de estos cuando los necesita. Hay muchos modelos de datos que sirven para ofrecer a los usuarios esta abstracción de los datos.

 

  • Compartimiento de datos y procesamiento de transacciones multiusuario.

Todo DBMS multiusuario debe permitir a varios usuarios tener acceso simultaneo a la base de datos. Esto es indispensable para que los datos de múltiples aplicaciones se integren y mantengan en una sola base de datos. El DBMS debe incluir un software de control de concurrencia para asegurar que, cuando varios usuarios intenten actualizar los mismos datos, lo hagan de manera controlada para que el resultado de las actualizaciones sea correcto. Un ejemplo seria el caso de varios encargados de reservaciones que trataran de asignar un asiento en un vuelo comercial; el DBMS debe garantizar que solo un empleado tenga acceso a un asiento determinado en un momento dado para asignarlo al pasajero. En general, se dice que estas son aplicaciones del DBMS multiusuario es asegurar que las transacciones se realicen de manera correcta sin interferencias.

  • Control de redundancias.

En la creación tradicional de programas con procesamiento de archivos, cada grupo de usuarios mantiene sus propios archivos para manejar sus aplicaciones de procesamiento de datos. Por ejemplo, la oficina de contabilidad y la de ventas que mencionábamos antes. Una buena parte de los datos se almacenaría dos veces, una vez en los archivos de cada grupo de usuarios.

Esta redundancia en el almacenamiento de los mismos datos provoca varios problemas.

  1. Es necesario realizar una misma actualización lógica como introducir datos de un nuevo cliente varias veces: una vez en cada archivo en el que se registren los datos de los clientes. Esto implica una duplicación del trabajo.
  2. Se desperdicia espacio de almacenamiento al guardar los mismos datos en varios lugares, y este problema puede ser grave si las bases de datos son grandes.
  3. Es posible que los archivos que representan los mismos datos se vuelvan inconsistentes, quizá porque una actualización se haya aplicado a ciertos archivos pero no a otros. Incluso si la actualización digamos, inserción de un nuevo cliente se aplica a todos los archivos apropiados, persiste la posibilidad de que los datos relacionados con el cliente sean inconsistentes porque cada grupo de usuarios aplica las actualizaciones de manera independiente. Por ejemplo, un grupo de usuarios podría introducir como dirección de un cliente el valor erróneo “Charrúa 1510”, mientras que los demás grupos de usuarios introducirían el valor correcto “Charrúa 1511”. Con el enfoque de base de datos, las visiones de los diferentes grupos de usuarios se integran durante el diseño de la base de datos. Para conservar la consistencia, debe crearse un diseño que almacene cada dato lógico como el nombre o la dirección de un cliente en un solo lugar de la base de datos. Esto evita la inconsistencia y ahorra espacio almacenamiento. En algunos casos, puede convenir la redundancia controlada: allí el DBMS deberá ser capaz de controlar la que en todos los lugares aparezca la misma información.
  • Representación de vínculos complejos entre los datos.

  • Una base de datos puede contener numerosos conjuntos de datos estén relacionados entre si de muchas maneras. Es nuestro ejemplo, el registro de “Adriana Martínez” en el archivo CLIENTES se relaciona con 2 registros del archivo FACTURAS. De manera similar, cada registro del archivo LINEAS_FACT se relaciona con un registro del archivo FACTURAS, y con un registro del archivo PRODUCTOS. Por otro lado, cada registro del archivo PRODUCTOS se relaciona con muchos del archivo LINEAS_FACT.

    Es preciso que el DBMS pueda representar diversos vínculos de los datos, y también obtener y actualizar con rapidez y eficiencia datos que estén mutuamente relacionados.

    Cumplimiento de las restricciones
    La mayor parte de las aplicaciones de base de datos tienen ciertas restricciones que deben cumplir los datos. El DBMS debe ofrecer recursos para definir tales restricciones y hacer que se cumplan.
    La forma más simple de restricción sobre los datos consiste en especificar un tipo de datos para cada elemento Nombre dentro de CLIENTES debe ser una cadena de no más de 30 caracteres alfabéticos.

    Otro tipo de restricción que encontramos a menudo, mas complejo, implica especificar que un registro de un archivo debe relacionarse con registros de otros archivos. Por ejemplo, podemos especificar que “todo registro de LINEAS_FACT debe estar relacionado con un registro de FACTURAS”. A este tipo de restricción le llamamos restricción de integridad referencial.
    Otro tipo de restricción especifica que los valores de los elementos de información sean únicos, por ejemplo “cada registro de CLIENTES debe tener un valor único de “CodCliente” y le llamaremos restricción de unidad (de clave).

    Estas restricciones se derivan de la semántica (o significado) de los datos y el minimundo que representa. Es responsabilidad de los diseñadores de la base de datos identificar las restricciones durante el diseño. Algunas restricciones se pueden especificar en el DBMS, el cual hará automáticamente o en el momento en que se introducen los datos.

    sábado 16 de abril de 2011

    DBMS: Sistemas de Administración de Base de Datos.

    En inglés, DBMS, Database Management System, es un conjunto de programas que permite a los usuarios crear y mantener una base de datos. Por tanto, el DBMS es un sistema de software de proposito general que facilita el proceso de definir, construir y manipular bases de datos para diversas aplicaciones.

    Para definir una base de datos hay que especificar los tipos de datos, las estructuras y las restricciones de los datos que se almacenarán en ella.

    Construir una base de datos es el proceso de guardar los propios datos en algún medio de almacenamiento controlado por el DBMS.

    En la manipulación de una base de datos intervienen funciones como consultar la base de datos para obtener datos específicos, actualizar la base de datos para reflejar cambios en el minimundo, y generar reportes a partir de los datos.

    No hace falta un software de DBMS de proposito general para implementar una base de datos computarizada. Podríamos escribir nuestro propio conjunto de programas para crear y mantener la base de datos, con lo cual estaríamos creando de hecho nuestro propio software de DBMS de propósito específico. En todo caso, ya sea que utilicemos un DBMS de propósito general o no, casi siempre requeriremos un software de gran capacidad para manipular la base de datos, además de la base de datos misma.

    Al conjunto formado por la base de datos y el software lo llamaremos sistema de base de datos.

    bd

    EJEMPLO 

    Consideremos un ejemplo sencillo y conocido: una base de datos SISTEMA FACTURACION Y COMPRAS para mantener información acerca de clientes, productos y facturas de un comercio.

    La siguiente figura ilustra la estructura de la base de datos y algunos datos de muestra para ella.

    CLIENTES

    CódCLiente

    Nombre

    Dirección

     

    1

    Adriana Martinez

    18 de Julio 1333

     

    2

    Marcos Lopez

    Av. Rivera 1515

     

    PRODUCTOS

    CódProd

    Descripción

    PrecioProd

     

    1

    Silla de playa 2 posiciones

    175

     

    2

    Carpa Iglú 2 personas

    550

     

    3

    Sombrilla

    200

     

    FACTURAS

    NúmFactura

    Fecha

    CódCliente

    Total

     

    5

    01/01/04

    1

    350

     

    4

    01/02/03

    1

    725

     

    LINEAS_FACT

    NúmFactura

    CódProd

    CantidadLlevada

    ImporteLinea

     

    5

    1

    2

    350

     

    4

    2

    1

    550

     

    4

    1

    1

    175

    La base de datos está organizada en cuatro archivos, cada uno de los cuales almacena registros de datos del mismo tipo. El archivo CLIENTES contiene datos de todos los clientes del comercio; el archivo PRODUCTOS contiene datos de todos los productos comercializados; el archivo FACTURAS contiene datos de las facturas emitidas a los clientes, y el archivo LINEAS_FACT contiene datos de las líneas de factura (cada factura tiene muchas líneas, correspondientes a los productos comprados por el cliente dentro de esa factura).

    Para definir esta base de datos, debemos especificar la estructura de los registros de cada archivo indicando los diferentes tipos de elementos de informacion que se almacenaran en cada registro. En la figura anterior, cada registro de CLIENTES incluye datos que representan el CódCliente(código), el Nombre y la Dirección de cada cliente; cada registro de PRODUCTOS contiene datos que representan el CódProducto(código), Descripción y PrecioProd (precio) del producto, y así sucesivamente. También hay que especificar un tipo de datos para cada elemento de información de un registro. Por ejemplo, podemos especificar que Nombre de CLIENTES es una cadena de caracteres alfabeticos, NumFactura de FACTURAS es un entero, y Fecha de FACTURAS es una fecha.

    Para construir la base de datos SISTEMA FACTURACION Y COMPRAS, almacenamos datos que representan cada cliente, producto, factura, y linea de factura como un registro en el archivo apropiado.

    Cabe señalar que los registros en los diversos archivos pueden estar relacionados entre si. Por ejemplo, el registro de “Adriana Martínez” en el archivo CLIENTES se relaciona con dos registros del archivo FACTURAS, que especifican las dos facturas que se le emitieron a “Adriana Martínez”. De manera similar, cada registro del archivo LINEAS_FACT se relaciona con un registro de FACTURAS: corresponde a una línea de esa factura. Las bases de datos contarán con muchos tipos de registros, con muchos vínculos entre ellos.

    La manipulación de la base de datos consiste en las consultas y la actualización.

    Ejemplos de consultas son “preparar una lista con todas las compras agrupadas por fecha de Adriana Martínez”, ”Obtener una lista con todos los clientes que no han realizado compra alguna”. Ejemplos de actualizaciones son “Cambiar el precio del producto Sombrilla a $300”, “Ingresar una nueva factura para Adriana Martínez, para la fecha de hoy”, o “Eliminar un cliente”. Estas consultas y actualizaciones  informales se deben especificar con precisión en el lenguaje de base de datos para que puedan ser procesadas.

    viernes 15 de abril de 2011

    Bases de datos (Teoría)

    34774-base-de-datos Una base de datos (BD) es un conjunto de datos relacionados entre sí. Por datos entendemos hechos conocidos que pueden registrarse y que tienen un significado implícito. Por ejemplo, consideremos los nombres, números telefónicos y direcciones de las personas que conocemos. Tal vez hayamos registrado estos datos en una libreta de direcciones indexada, o quizás lo hayamos hecho en una computadora, utilizando software del estilo de Excel. Se trata de un conjunto de datos relacionados entre sí, de modo que constituyen una base de datos.

    La definición anterior es muy general; por ejemplo, podemos considerar el conjunto de palabras que conforman este texto como datos relacionados entre sí, de modo que son una base de datos. Pero la acepción común del término base de datos suele ser más restringida.

    Una base de datos suele tener las siguientes propiedades implícitas:

    • Representa algún aspecto del mundo real, en ocasiones llamado minimundo o universo. Las modificaciones del minimundo se reflejan en la base de datos.
    • Es un conjunto de datos lógicamente coherente, con cierto significado inherente. Una colección aleatoria de datos no puede considerarse propiamente una base de datos.
    • Toda base de datos se diseña, construye y puebla con datos para un propósito específico. Está dirigida a un grupo de usuarios y tiene ciertas aplicaciones preconcebidas que interesan a dichos usuarios-

    En otras palabras, una base de datos tiene una fuente de la cual se derivan los datos, cierto grado de interacción con los acontecimientos del mundo real, y un público que está activamente interesado en el contenido de la base de datos.

    Las bases de datos pueden ser de cualquier tamaño y tener diversos grados de complejidad.

    archivos1

    La generación y el mantenimiento de las bases de datos pueden ser manuales o automáticos. El catálogo de tarjetas de una biblioteca es un ejemplo de base de datos computarizadas se pueden crear y mantener manualmente. Las bases de datos computarizadas se pueden crear y mantener con un grupo  de programas de aplicación escritos específicamente para esta tarea, o bien mediante un sistema de administración de base de datos.

    Presentación

    Arrancando con De todo un poco de la Informática.
    Hola mi nombre es Diego Gonzalez, soy de la ciudad de Paysandú, República Oriental del Uruguay, UruguayFlag_000
    Uruguay, la tierra de Forlán….
    Uruguay, la tierra de Benedetti…
    Uruguay, la tierra de Zitarrosa…
    Uruguay, la tierra de Los Olimareños…
    Uruguay, la tierra de los soñadores…
    Uruguay, la tierra de la educación…. de las mejores en el mundo
    Uruguay, la tierra del territorio chiquito pero la de los hombre con grandes sueños…
    Aquí estoy arrancando con este blog, “De todo un poco de la Informática”, y el ¿por que? “De todo un poco de la Informática” por los motivos que me han llevado a estudiar y a dedicarme a esta profesión la cual es muy amplia y que por supuesto no me se todo pero creo conocer algunas basadas en mis estudios y experiencias laborales, por eso el comienzo del blog para compartir con el que se está iniciando, para el que ya tiene algún conocimiento en la materia y para aquellos fans o seguidores de las herramientas del tratamiento de la información.
    Tengo 23 años, y hace un largo tiempo vengo estudiando diferentes orientaciones sobre las tecnologías de la información, como por ejemplo, Bachillerato en Mantenimiento informático, Carrera de Analista Programador, curso CCNA de Cisco, y actualmente curso sobre programación en Genexus y hace tres años trabajo en una cadena de supermercados de mi ciudad realizando diferentes tareas de mantenimiento trabajando en el área de redes, mantenimiento de equipos, cámaras ip, programación y soporte a usuarios.

    Bueno la idea de este blog es comenzar a documentar alguna info sobre informática, teorías y prácticas de diferentes temas algunos resumen que en una de esas les puede servir para los que arrancan en el área de la programación o en general sobre las tecnologías de la información.