sábado, 14 de marzo de 2015

II MODELOS DE DATOS





Antes de entrar a la descripción del modelo relacional, objetivo central de la

asignatura, debemos definir lo que es un modelo de dato en general.

La calidad del análisis y diseño de un sistema de información que

pretendemos mecanizar dependerá de los modelos de datos que utilicemos

para cada una de las fases de desarrollo. Además, disponer de herramientas

software basadas en modelos de datos adecuados a nuestra tarea nos hará

más fácil y rentable el diseño y el mantenimiento.

Podemos decir que, en líneas generales, el diseño de un sistema de

información, en lo que atañe a las bases de datos, tiene tres fases:

Diseño conceptual: en la que se formalizan las estructuras que

se observan en el mundo real produciendo lo que se denomina

Esquema Conceptual.

Diseño Lógico: en la que se estructura el conjunto de

información de la fase anterior teniendo en cuenta el SGBD que

se vaya a utilizar. En esta fase obtendremos el Esquema Lógico.

Diseño Físico: en la que se estructuran los datos en términos de

almacenamiento en los dispositivos del ordenador. Es lo que se

conoce como Esquema Interno.

Para definir esas representaciones, es decir, los distintos esquemas,

utilizaremos uno o varios modelo de datos, un formalismo o un lenguaje que

nos permite representar una realidad con una mayor o menor riqueza de

detalle.

Podemos considerar que los Modelos de Datos se utilizan, entre otras

aplicaciones, para:

Como herramienta de especificación, para definir tipos de datos y

la organización de los datos de una BD específica.

Como soporte para el desarrollo de una metodología de diseño

de BD.

Como formalismo para el desarrollo de familias de lenguaje de

muy alto nivel, para la resolución de requerimientos y

manipulación de datos.

Como modelo soporte de la arquitectura de los SGBD.

Como vehículo para investigar el comportamiento de diversas

alternativas en la organización de los datos.



En una primera aproximación, un modelo de datos es un conjunto de

conceptos y unas reglas de composición de esos conceptos que, combinados

de alguna forma, son capaces de representar un sistema de información,

tanto en su parte estática como dinámica.

Pero, hablando de bases de datos, ¿qué es antes: el modelo de datos o el

SGBD? En realidad, el concepto de modelo de datos es totalmente

independiente de las técnicas de BD. Es una herramienta que permite

describir un determinado concepto o sistema. Los SGBD se apoyan en un

determinado modelo de datos para poder estructurar la información a

almacenar y gestionarla rentablemente. Esto implica unas ciertas reglas que

el diseñador de la BD debe seguir para “informar” al SGBD de cómo se van a

introducir los datos y que límites, restricciones o evolución pueden o deben

tener esos datos.

No olvidemos, pues, que el modelo de datos es una “forma de hablar”, un

lenguaje de representación que podemos utilizar independientemente de que

se vaya a utilizar un ordenador o no, y que nos sirve para definir las

propiedades esenciales de un sistema de información y, al mismo tiempo,

poder comunicarnos con otras personas para explicarles esas propiedades.

El siguiente punto pretende ser el marco de partida para introducir los

modelos de datos, herramientas que se utilizan para describir, mejor o peor,

una realidad concreta. El concepto a desarrollar es el Sistema de información,

la realidad que queremos modelar y convertir (seguramente) en un sistema de

información mecanizado por ordenador.

II1. Sistemas de información

Uno de los pilares de cualquier organización es la información que necesita para su funcionamiento. Asimismo, el tratamiento de dicha información es una

de sus ocupaciones básicas. Podemos decir que la Organización dispone en

un primer momento de una cantidad de datos desordenados e inconexos

sobre el entorno en el que se desarrolla y la actividad o actividades a las que

se dedica. Es primordial, pues, ordenar e interrelacionar esos datos y obtener

conclusiones de ellos, es decir, obtener información elaborada que permita

tomar decisiones o conocer el estado de la Organización.

El tratamiento de la información (sea manual o electrónico) tiene como

objetivo proporcionar esa información elaborada, de tal forma que sea

correcta, se obtenga en el momento y lugar adecuado, para la persona

autorizada y con el mínimo coste.

Si un sistema es un conjunto de “cosas” que, ordenadamente relacionadas

entre sí, contribuyen a cumplir unos determinados objetivos, un sistema de

información es un conjunto de elementos (en este caso datos),

ordenadamente relacionados entre sí siguiendo unas ciertas reglas, que

aporta al sistema objeto (la organización a la que sirve y que le marca las

directrices de funcionamiento) la información necesaria para el cumplimiento

de sus fines, para lo cual tendrá que recoger, procesar y almacenar los datos,

facilitando la recuperación, elaboración y presentación de los mismos.

Dicho de otra forma, un sistema (y un sistema de información en particular) es

un conjunto de componentes conectados de forma organizada. Dependiendo

de cómo estén conectados el sistema se comporta o contribuye a sus fines de

una manera concreta; si cambiamos esas interrelaciones, su comportamiento

cambiará, al igual que si eliminamos o agregamos componentes.

Esos componentes del sistema de información, datos en nuestro caso, se

representarán mediante papeles que se archivan o cualquier otro tipo de almacén de información (¿una base de datos?). Así, si deseamos controlar el

inventario de un almacén, el sistema físico que queremos representar es el

local donde se almacenan y se retiran ciertas mercancías.

En realidad, el encargado podría pasarse todos los días por el lugar y

comprobar si se ve el suelo del almacén, y decidir entonces que es necesario

reponer existencias. Otra forma de organizar el almacén es construir un

sistema de información en el que las entradas y salidas no sean bienes

materiales sino notas de pedido, albaranes, etc., es decir, papeles que van de

un archivador a otro. Sería la representación mediante la circulación de

información del sistema físico almacén. En la Figura 2.1 podemos ver este

ejemplo del almacén visto desde el punto de vista físico y desde el punto de

vista del sistema de información.




Figura 2.1. Diferencias entre un sistema físico y un sistema de información.



Una decisión a posteriori sería la de mecanizar este sistema de información o

no. Es perfectamente posible que se dé el caso en el que la incorporación de

un ordenador no reporte ningún beneficio en cuanto a eficiencia y

rendimiento, e incluso que fuera perjudicial para una buena gestión.

Un sistema de información mecanizado (SIM) será aquel soportado por un

ordenador. Si nos circunscribimos a este supuesto, podemos particularizar los

componentes básicos de un sistema de información:

- contenido: los datos y su descripción.

- equipo físico: el ordenador soporte de la información.

- equipo lógico: sistema de gestión de bases de datos, sistema de

comunicaciones, etc.

- administrador: la persona o equipo de personas responsables de

asegurar la calidad y disponibilidad de los datos.

- usuarios.

Resumiendo, los SIM están compuestos de máquinas, programas que se

ejecutan en esas máquinas, un responsable o responsables de su buen

funcionamiento experto en temas de análisis, diseño e implementación de

sistemas informáticos y, por supuesto, los usuarios finales que son los que

indican cuales son las necesidades de la organización.

Los sistemas de información soportados por un ordenador han sufrido una

rápida evolución. Desde el punto de vista de su funcionalidad podemos hacer

una somera distinción de estos:

- SIM de procesos de transacción.

- SIM de ayuda a la toma de decisiones.



Los primeros tienen como objetivo el tratamiento de los datos necesarios para

llevar a cabo las tareas rutinarias de la organización: nóminas, contabilidad,

etc.; eran sistemas de información para la gestión.

Pero el desarrollo técnico en el campo de los ordenadores ha permitido exigir

cada vez más prestaciones a los sistemas de información, que pasan a

proporcionar una información más elaborada de ayuda a la toma de

decisiones: son los sistemas de información para la ayuda a la toma de

decisiones. Pensemos en una sistema de información de diseño asistido por

ordenador (CAD); la máquina será la encargada de simular el comportamiento

de un determinado objeto (el diseño de un avión, por ejemplo) en distintas

condiciones ambientales, información ésta que nos dará una base para

decidir si es factible su fabricación o si, por el contrario, no debemos seguir

adelante con el proyecto. Los almacenes de datos (más conocidos como Data

Warehouses y las aplicaciones OLAP constituyen hoy en día el núcleo de

estos sistemas de apoyo a la toma de decisiones). Estos sistemas son la

parte central de la asignatura optativa Bases de Datos Multidimensionales.

II1.1. Desarrollo de un sistema de información

mecanizado.

Para construir un sistema de información se parte de una definición de los

posibles usuarios, sus necesidades y las fuentes de información, pasando a

dar respuesta a un conjunto de temas entre los que destacan los relativos a la

organización de los datos, que determinan en gran medida el rendimiento,

flexibilidad y fiabilidad de todo el sistema. Así, cualquier sistema de

información pretende, por medio de una abstracción del mundo real,

representar con un conjunto de datos estructurado toda la información

necesaria para el cumplimiento de los objetivos de una organización, para lo

que se deben seguir distintas fases apoyadas en métodos y reglas.

En primer lugar, habrá que aislar la parcela del mundo real objeto de estudio,

identificando objetos con sus propiedades, las relaciones entre ellos, así

como su semántica asociada.

A continuación y por medio de un proceso de abstracción, intentaremos

obtener una imagen (representación) de esta parcela del mundo real. Es lo

que se llama modelado, proponer un esquema bajo un determinado sistema

de representación que simule el comportamiento de la parte de la realidad en

estudio. Obtendremos así las estructuras que alberguen nuestros datos y los

procesos (operaciones) que las han de afectar para obtener la información

elaborada final.

Por último, habrá que organizar el conjunto de información definido en la

etapa anterior para almacenarla en un soporte informático, lo que exige el

conocimiento de técnicas cada vez más sofisticadas entre las que se

encuentran las técnicas de bases de datos.

En definitiva, siguiendo el ciclo de vida clásico del software podemos

diferenciar tres fases a la hora de desarrollar un sistema de información, en

nuestro caso mecanizado, a saber:

- Análisis: investigación y modelado

- Diseño: lógico y físico

- Implementación: programas, carga de datos, pruebas.



En la fase de análisis se realizan labores de recogida de requerimientos, y se

obtiene un modelo no influido por un sistema mecanizado concreto (modelo

conceptual), que representa, lo más fielmente posible, el conjunto de datos en

estudio y las interrelaciones que hubiere entre ellos, así como los procesos

que los afectan. En definitiva vamos a describir, mediante un formalismo

adecuado, nuestro sistema físico.

En la etapa de diseño trasladamos las ideas obtenidas en la fase anterior a un

modelo comprensible por el ordenador, el diseño lógico y el físico, que

representan sucesivos acercamientos al nivel más bajo de detalles de

almacenamiento.

Con la implementación introducimos en la máquina el resultado del diseño y

los datos necesarios para la inmediata explotación de los mismos, tras las

correspondientes pruebas de fiabilidad y rendimiento. En la Figura 2.2.

podemos ver un resumen del proceso de diseño de una base de datos desde

el punto de vista del ciclo de vida de evolución del software.

Figura 2.2. Diseño de una base de datos desde el punto de vista del ciclo de

vida de evolución del software

II2. Conceptos y definiciones

Propiedades de un sistema de información

En un sistema de información encontraremos propiedades estáticas,

dinámicas y restricciones de integridad.

􀂃 Las propiedades estáticas se refieren a los datos en si, qué información

es la que se maneja en el sistema, qué valores puede contener el

sistema, y cómo dependen unos de otros. Son propiedades que no

varían en el tiempo.

􀂃 Las dinámicas hacen referencia a la evolución de esos datos en el

tiempo, a las operaciones que se les aplican, más concretamente

transacciones (secuencias indivisibles de operaciones simples).

􀂃 Las restricciones de integridad son reglas utilizadas para definir las

propiedades estáticas y dinámicas. Dicho de otro modo, es el

mecanismo por el que establecemos cuales son los valores válidos de

los objetos de nuestro sistema en cada instante.




La mayoría de ellas se podrán expresar adecuadamente con los conceptos

que maneja el modelo de datos. Al estructurar la información de una cierta

manera y al especificar las transacciones ejecutables estamos estableciendo

ya unas reglas que cumplirá el sistema. No obstante, hay propiedades

imposibles de expresar con los mecanismos anteriores que necesitan una

definición adicional mediante un formalismo de especificación de aserciones.

De una forma hasta cierto punto coloquial, habitualmente se habla de

restricciones de integridad refiriéndose únicamente a las segundas, ya que las

primeras no necesitan de esa especificación aparte.

Resumiendo, en el proceso de análisis y diseño de un sistema de información

obtendremos finalmente un conjunto estructurado de datos, un conjunto de

operaciones a realizar sobre ellos, y una serie de afirmaciones adicionales

sobre las combinaciones de valores que son posibles dentro de nuestro

sistema. Para reflejar todo ello necesitamos un formalismo, un “lenguaje” que

nos permita estructurar esa información y definir esas operaciones para

satisfacer las demandas de los usuarios finales. Este formalismo es el modelo

de datos.




Figura 2.3. Ejemplo del proceso de diseño de una base de datos



Modelo de datos

Definimos un modelo de datos como la herramienta intelectual que nos permite estructurar los datos de forma que se capte la semántica de los

mismos. Éste nos ofrecerá un conjunto de conceptos y reglas que nos

permitirán representar, con mayor o menor fidelidad, un conjunto de datos

interrelacionados y operaciones sobre los mismos, a los que afectan unas

restricciones que han de cumplir en todo momento. Cuanta más información

sobre los datos podamos representar dentro del mismo, más expresivo será

el modelo de datos (y por la tanto más deseable).

Esquema

La aplicación de un cierto modelo de datos a una realidad nos dará como

resultado un esquema, una representación de esa realidad que podrá ser de

tipo gráfico o lingüístico y que describirá un conjunto de objetos e

interrelaciones entre ellos, un conjunto de operaciones (combinaciones de

insertar, borrar, modificar y consultar) a aplicar sobre los primeros, y todas las

restricciones semánticas que afecten al sistema.

Lenguajes de definición y manipulación de datos

Para aplicar un modelo de datos deberíamos disponer de un lenguaje de

definición de datos (LDD) y de un lenguaje de manipulación de datos (LMD).

Con el LDD describiríamos las estructuras en las que se almacenarían los

datos, y con el LMD las transacciones a efectuar para obtener información

elaborada a partir de esos datos. Podemos decir, pues, que un modelo de

datos se compone de dos partes estrechamente relacionadas: las

estructuras de datos4, que representan las propiedades estáticas del

modelo, y la especificación de transacciones, que hace lo propio con las

dinámicas.

No todos los modelos tienen en cuenta los dos tipos de propiedades,

centrándose bien en uno o en otro. De hecho, los más implantados de forma

comercial se basan casi exclusivamente en la parte estática, seguramente por

ser la menos costosa de solucionar.

¿Quién es el encargado de proporcionar los lenguajes antes mencionados y

de gestionar los datos estructurados en función de un determinado modelo de

datos? El sistema de gestión de bases de datos es la herramienta software

que soporte a un modelo de datos o, dicho de otro modo, todo SGBD debe

tener un modelo de datos subyacente que permita describir los datos de una

forma concreta.

Disponemos, pues, de un conjunto de reglas, aplicables mediante el LDD,

para la generación de esquemas. El esquema de una base de datos,

resultado de la utilización del LDD, es la definición de las estructuras de

acuerdo a cada modelo. Se usa para representar las propiedades estáticas

según el modelo que se utilice. En algunos modelos se distinguen dos

subconjuntos de este conjunto de reglas: uno para la definición de estructuras

en sí, y otro para la definición de restricciones de integridad estáticas.

Los LMD pueden ser navegacionales o de especificación. Los primeros se

basan en la utilización interna de punteros, por lo que los operadores

seleccionan un único objeto por la posición lógica que ocupa, es decir, se

recupera la información partiendo del valor actual del puntero (del objeto al

que está apuntando). En otras palabras, debemos recorrer la estructura

desde el lugar en el que nos encontremos hasta llegar a la información que

precisamos.

Los LMD de especificación, sin embargo, recuperan los datos en función de

qué es lo que estamos buscando, indicando explícitamente qué datos

precisamos y qué condiciones han de cumplir, pero dejando al SGBD la tarea

de cómo obtiene esa información.

Sistema de Gestión de Bases de Datos

Un Sistema de Gestión de Bases de Datos (SGBD) es el software que

implementa las herramientas asociadas a un modelo de datos.

Estados de la BD

Diremos que para un esquema de BD existen muchas ocurrencias de base

de datos, cada una de las cuales tiene las mismas estructuras y obedece a

las mismas restricciones de integridad. La estructura de la base de datos es

siempre la misma o sufre alteraciones cada bastante tiempo pero las

operaciones de manipulación de datos son constantes y, por tanto, los datos

contenidos en la base de datos cambian continuamente. Tradicionalmente,

los términos ocurrencia del esquema y base de datos se suelen utilizar

indistintamente.

Un estado de la base de datos está definido en un instante de tiempo por la

descripción de la misma y la información almacenada; generalmente se

entiende que el resultado de una transacción o una simple operación atómica

(insertar, borrar, ...) generan un nuevo estado de la BD (se ha modificado, de

alguna forma, la BD con respecto al estado inmediatamente anterior).

Evidentemente, las operaciones que provocan la transición de un estado de

BD a otro nunca varían la estructura de la BD (el esquema).

II3. Representación de un sistema de

información

Resumiendo de forma intuitiva todo lo expuesto en las secciones anteriores,

todo modelo de datos utiliza los siguientes mecanismos de abstracción para

la construcción de las clases de objetos apropiadas:

Clasificación: definir un concepto como una clase de objetos

Agregación: definir una nueva clase de objetos a partir de otras clases

Generalización: definir subtipos de una clase

Igualmente, para expresar las restricciones aplicables a las clases de objetos

en particular, y al sistema en general, sean de tipo estático o dinámico se

utilizan las:

restricciones de dominio: definen el conjunto de valores (escalares o

complejos) agrupados en una clase de objetos.

restricciones de identificación: no hay dos objetos dentro de una clase de

objetos iguales.

restricciones de correspondencia entre clases: restricciones de

cardinalidad, de dependencia de identificador, de existencia y de cobertura

de las generalizaciones.

Características dinámicas del sistema del información: restricciones

dinámicas.

La parte dinámica de un sistema hace referencia a la variación del contenido

del sistema de información (o incluso su evolución como esquema) a través

del tiempo. Visto de una forma simplista, su comportamiento frente a

inserciones, borrados, modificaciones y consultas de los datos en él

almacenados.

Tal y como estudiaremos en el tema 3 dedicado al modelo relacional, éste es

en concreto, un modelo que como todos los denominados clásicos y algunos

de los semánticos, únicamente es capaz de representar la parte estática de

un sistema de información. Posteriores extensiones o nuevos modelos de

datos más potentes han incorporado herramientas para representar el

comportamiento en el tiempo de los datos, esto es, las restricciones

dinámicas del sistema.

Es evidente que siendo un tema importante este último, tradicionalmente se

ha dejado de lado por su dificultad de definición e implementación, y no va a

ser tratado en más profundidad en esta asignatura.

II4. Cualidades de los modelos de

datos

A la hora de evaluar un modelo de datos debemos fijarnos en los siguientes

puntos:

Expresividad: cuantos más mecanismos o conceptos de

representación tenga un modelo mayor será la cantidad de propiedades

del sistema de información que pueda captar, y menor el uso de

aserciones en forma de restricciones de integridad que no se pueden

reflejar directamente sobre el esquema.

Simplicidad: también es deseable que el modelo sea simple para que

los esquemas sean fáciles de entender por terceras personas. Debe

llegarse, pues, a un equilibrio entre la potencia del modelo mencionada

en el punto anterior y esa simplicidad deseable.

Minimalidad: cada concepto tiene un significado distinto de los demás

conceptos utilizados en el modelo de datos; no se puede expresar un

concepto en función de otros.

Formalidad: todos los conceptos del modelo tienen una interpretación

única, precisa y bien definida. Puesto que el esquema pretende ser una

especificación formal del sistema de información a representar, esta

cualidad permitiría el tratamiento matemático de sus conceptos.

Si el modelo utiliza un lenguaje de definición gráfico, también tendremos en

cuenta:

Compleción gráfica: un modelo es gráficamente completo si todos sus

conceptos poseen representación gráfica.

Facilidad de lectura: que los símbolos gráficos sean fácilmente

distinguibles unos de otros.

II5. Clasificación de modelos de datos

A medida que han ido evolucionando el software y el hardware, las

posibilidades y las demandas de los usuarios han ido creciendo;

paralelamente, los modelos de datos fueron enriqueciéndose y salvando

carencias de sus predecesores. Cronológicamente, podemos clasificarlos de

la siguiente forma:

- Primitivos: basados en sistemas de ficheros convencionales

- Clásicos

- Jerárquico (el más conocido, IMS: IBM)

- Red (CODASYL)

- Relacional (desarrollado por E. Codd)

- Semánticos5

- EER (Entidad-Relación Extendido: Chen)

- RM/T (Relational Model/Tasmania: Codd)

- Semántico General

- Orientado a Objetos

- Modelo Funcional

Se dice que tanto primitivos como clásicos están basados en registros,

mientras que los semánticos se apoyan en la filosofía Orientada a Objetos.

Los modelos de datos primitivos se usaron durante la década de los 70,

cuando aun no se utilizaban las técnicas de bases de datos. Los objetos se

representaban como registros organizados en ficheros, y las relaciones

mediante referencias explícitas a otros registros en algún campo del mismo.

Los lenguajes de manipulación dependen por entero de la organización física

de los datos, y las operaciones básicas son la lectura y la escritura.

Para garantizar, o al menos mejorar, la independencia de los aplicaciones

frente a los datos aparecen los primeros SGBD, basados en lo que ahora

llamamos modelos de datos clásicos. Los primeros en aparecer fueron el

jerárquico y el red de CODASYL, cuyos nombres muestran cual es la

estructura de datos subyacente en los modelos. Los objetos siguen siendo

representados por registros pero las relaciones entre objetos se expresan,

con ciertas limitaciones implícitas del modelo, mediante la estructura en que

se basan. Los lenguajes de manipulación de datos son navegacionales.

Sin embargo, y dentro todavía de esta generación, la aparición del Modelo

Relacional provocó la representación de los objetos como relaciones (tablas

en su denominación informal), cuyas tuplas (filas en su denominación

informal) identifican a ocurrencias del objeto patrón, y la vuelta a las

referencias explícitas (unos atributos que relacionan un objeto con un

segundo por comparación de valores iguales en uno y otro) para expresar las

interrelaciones. La estructura de datos más simple y la aparición de lenguajes

de especificación totalmente declarativos ha hecho de este modelo el más

ampliamente utilizado en los SGBD comerciales actuales.

Uno de los grandes problemas que plantean los SGBD comerciales actuales,

en general, es que no soportan modelos con la suficiente expresividad como

para dejar libre al diseñador de sistemas de información de molestas tareas

de administración de datos a bajo nivel. Es práctica habitual utilizar en la

confección del EC modelos de datos con un fuerte potencial semántico para

traducirlo después a modelos que si tienen un software comercial disponible,

pero muy probablemente más pobres semánticamente.

Por eso, la aparición de los modelos de datos semánticos está justificada por

la pretensión de aumentar la capacidad expresiva de los modelos clásicos

incorporando conceptos y mecanismos de abstracción no contemplados en

los anteriores. Se utilizan preferentemente para la confección del Esquema

Conceptual, y como modelo subyacente de algunos SGBD aun en

experimentación. Son los más potentes pero no tienen un reflejo comercial en

algún producto de amplia difusión; la representación del EC ha de traducirse a un Esquema Lógico, en general a un modelo clásico, para poder ser

explotado eficientemente en algún SGBD.

Así y todo, parece que el EER está teniendo alguna penetración sobre todo

en herramientas de análisis y diseño de Sistemas de Información, en forma de

módulo de ciertas herramientas CASE que se puede traducir de forma

automática al Modelo Relacional.

Otros modelos de datos, que denominaremos de propósito particular, se

desarrollaron sobre aplicaciones concretas: cartografía, CAD/CAM, hipertexto,

etc.


No hay comentarios:

Publicar un comentario