Unidad III. – El Modelo Relacional





Modelo de Datos Relacional.
 
Sea una empresa o entidad de cualquier tipo, estas desean almacenar datos que reflejan información sobre sus actividades. 

Hay que empezar acotando que parcela del mundo exterior nos interesa representar en los datos.  Estará formada por los objetos y acontecimientos cuyo conocimiento nos permita una mejor gestión de nuestras actividades.

El diseñador o analista de datos debe aprehender, comprender y conceptualizar este mundo, transformándolos en un conjunto de ideas y definiciones, que formen una imagen fiel del comportamiento del mundo real.  A esta imagen del mundo exterior la llamaremos modelo conceptual.  Para construir un buen modelo, el analista debe utilizar una gran dosis de procesos mentales de abstracción, análisis y síntesis.  Necesitará además de la colaboración de personal  directivo.

Una vez definido el modelo conceptual, el analista lo transforma en una descripción de datos, atributos y tablas, incluyendo las posibles interrelaciones entre estos elementos y su significado.  A esta descripción la llamaremos esquema conceptual de datos.  A la operación de transformar el modelo conceptual en un esquema conceptual la llamaremos diseño lógico de datos (por ello, al esquema conceptual también lo llamaremos a veces esquema de diseño). Una vez definido el esquema conceptual, hay que traducirlos a estructuras almacenables en soportes físicos controlados por el ordenador, normalmente discos magnéticos.  Esta transformación se suele llamar diseño físico de datos.

Un buen diseño lógico debe producir un esquema conceptual que sea una imagen fiel y completa del modelo conceptual, incluyendo algunas interrelaciones y condiciones semánticas, es decir, aquellas que son consecuencia del significado de los datos.
 
Un modelo de datos es un sistema formal y abstracto que permite describir los datos de acuerdo con unas reglas  y convenios predefinidos.  Es formal en el sentido de que los objetos del sistema se manipulan siguiendo unas reglas perfectamente definidas, y utilizando exclusivamente  los operadores definidos en el sistema, independientemente de lo que estos objetos y operadores pueden significar.

Por el contrario el modelo conceptual de datos, que como ya se ha dicho, es el conjunto de concepto e interrelaciones que en la mente del analista forman una imagen del mundo real, no es un sistema formal.

El modelo de datos es el lenguaje en el que le analista describe el modelo conceptual que su mente ha concebido, llamándose esta descripción, como ya se ha dicho, esquema conceptual.

Un modelo de datos es tanto mejor cuanto más capacidad expresiva tengan para producir fielmente en el esquema conceptual el comportamiento del modelo conceptual,  que a su vez deben ser imagen fiel del mundo real si  está bien concebido.

Un modelo de datos tiene tres componentes.

   Estructura de datos: Es una colección de objetos abstractos por datos.

     Operadores entre las estructuras: Conjunto de operadores, con reglas bien definidas , que permiten manipulas la estructura de datos.

     Definición de integridad: Colección de conceptos y reglas que permiten expresar que valores de datos pueden aparecer válidamente en nuestro esquema.

Existen varios modelos de datos generalmente aceptados.  Entre ellos los más utilizados son el jerárquico, el modelo de red y el relacional.  Este ultimo es el que aquí nos interesa.

La definición del modelo relacional de datos generalmente aceptada en la literatura sobre el tema generalmente incluye las posibilidades de nulo, lo que lleva a redefinir los conceptos de clave, dominio, etc.

En la forma en que se ha establecido en el apartado anterior.  Sin embargo, no suelen incluirse en él las operaciones algebraicas extendidas (por ejemplo, yunción externa y unión externa).  Este será el modelo de datos al que nos referimos de ahora en adelante.  En resumen, tiene los componentes siguientes:

Estructura de datos: Dominio, relaciones, atributos, tuplas.

Operadores: Los primitivos del álgebra relacional, es decir unión, diferencia, producto cartesiano, proyección y selección.

Definición de integridad: Los conceptos de claves y la posibilidad de valores nulos.
           
También se incluyen aquí dos reglas de integridad, llamadas:

a)   Integridad de claves primarias.
b)  Integridad referencial.


Conceptos de los Componentes

Realidad, datos y metadato.-   Antes de considerar los componentes de la Base de datos, es importante entender cómo se presentan los datos.  Solamente el mundo real en sí puede ser mencionado como la realidad.  Aquellos datos que se obtienen de las personas, de lugares o de eventos de la realidad, eventualmente serán almacenados en base de datos.  Con el fin de comprender la forma y la estructura de los datos, se requiere de información acerca de los datos mismos.  Aquella información descriptiva de los datos se denomina como metadato.

Qué es una Entidad?


Una entidad es cualquier objeto o evento, acerca del cual, se recolectan datos, o también se puede decir que es una cosa con una existencia independiente. 

Una entidad con existencia física puede ser una persona, un lugar o un objeto.  Por ejemplo: un vendedor, una ciudad o un producto.  Una entidad con existencia conceptual puede ser un evento o unidad de tiempo, tal como la descompostura de una máquina, una venta, un mes o un año, una compañía, trabajo o universidad, etc.

Observación: Quiere decir que todas las entidades pueden contener  (describir) varios tipos de datos, por ejemplo el precio de un producto no sería una entidad, porque ya no podría contener otros tipos de datos, sino que sólo contiene el valor del producto.

Qué son Relaciones?


Las relaciones son asociaciones entre entidades (y algunas se refieren como asociaciones de datos).   Existen 3 tipos de relaciones o asociaciones:

·         Asociación uno a uno (1:1).-  Son aquellas en las cuales solo interviene un objeto de cada entidad.   Ejemplo:



Descripción:   El diagrama número 1 muestra que para cada PRODUCTO existe un sólo EMPAQUE.  La segunda relación de uno a uno muestra que cada EMPLEADO tiene una OFICINA única. 

Nota: Observe que todas estas entidades pueden describirse aún más (el Precio de un producto no sería una entidad, tampoco lo sería una extensión telefónica).

·         Asociación uno a muchos (1:M o M:1).-  Son aquellas en las cuales interviene un objeto de una de las entidades asociadas a varios objetos de la otra entidad.   Ejemplo:



Descripción:   Como se muestra en la figura, en el primer gráfico de este tipo de relación muestra a un MEDICO dentro de una organización de cuidados médicos se le asignan muchos PACIENTES, pero un PACIENTE es asignado sólo a un MEDICO.  El otro ejemplo (gráfico No. 2) muestra que un EMPLEADO es un miembro de sólo un DEPARTAMENTO, pero cada DEPARTAMENTO tiene numerosos EMPLEADOS.

·         Asociación muchos a muchos (M:N).  Son aquellas en las cuales intervienen varios objetos de una de las entidades asociadas a varios objetos de la otra entidad, es decir que describe la posibilidad de que las entidades puedan tener numerosas asociaciones en cualquier dirección. Ejemplo:




Descripción:   En el ejemplo número 1 muestra que un ESTUDIANTE puede tener o tomar muchos CURSOS, mientras que al mismo tiempo, un CURSO puede tener muchos ESTUDIANTES inscritos.   El segundo ejemplo nos muestra cómo un VENDEDOR puede cubrir muchas ciudades, y una CIUDAD puede ser un área de ventas para muchos VENDEDORES.

Qué es un atributo?


Un atributo es una característica de una entidad, es decir que cada entidad tiene propiedades particulares que la describen. Puede haber muchos atributos para cada entidad.  Por ejemplo, un paciente (entidad) puede tener numerosos atributos, tales como el apellido, nombre, dirección, ciudad, estado, etc. Otro ejemplo es: la entidad libro debe ser descrita por el titulo de la obra, autor, editorial, año de edición.

La palabra atributo también se la puede utilizarse de manera intercambiable con la de dato.  Los datos de hecho son las unidades más pequeñas en un base de datos.

Tipos de atributo


Existen Seis tipos de atributos (de acuerdo a los datos que lo componen) los cuales son:

1.      SIMPLES.-  Aquellos atributos que son indivisibles, son llamados atributos simples o atómicos. Ejemplo: Título de la Obra, en el caso de la entidad Libro.

2.      COMPUESTOS.- Estos atributos pueden ser divididos en subpartes más pequeñas las cuales representan más atributos básicos, con significados independientes del concepto básico.  La concatenación de atributos simples conforman un atributo compuesto. Ejemplo: La fecha, esta compuesta por Día, Mes y Año.

3.      SIMPLE VALOR.- Son los que tienen un valor simple para una entidad particular.  Ejemplo: IVA, siempre es 10.

4.      MULTIVALOR.- Un atributo multivalor debe tener un límite superior e inferior en  el número de valores para cada entidad individual. Ejemplo: Edad mayor a 18 y menor a 85.

5.      DERIVADO.- Es cuando el valor de un atributo puede ser determinado en base a otro. Ejemplos: El total de un articulo es calculado en base a la Cantidad por el Precio Unitario, la edad de una persona, es en base a la Fecha de Nacimiento de esa persona.

6.      ALMACENADO.- En base a este atributo se puede obtener atributos derivados. Ejemplo: La cantidad o el Precio Unitario sirven para obtener el Total.

En algunos casos una entidad particular, puede no tener un valor aplicable para un atributo, para tal situación un valor especial denominado nulo es creado.  La categoría de los valores nulos pueden ser adicionalmente creadas en dos casos.  El primer caso cuando se conoce que el valor del atributo existe pero es desconocido, y el segundo caso cuando no se conoce si el valor del atributo existe.

Qué son los Dominios?


Un dominio es un conjunto, finito o infinito, de palabras formadas con un alfabeto finito entre las que existe un criterio de orden.  Este criterio de orden puede ser común  para varios dominios, por lo que éstos pueden participar  unos con otros en ciertas operaciones que  impliquen comparación y orden.  Por ejemplo, tiene sentido hablar de unión, intersección, etc. , entre ellos.  Por ejemplo:

D1: Conjunto de fechas de nacimiento.
D2: Conjunto de los sueldos en sucres de los empleados.
D3: Conjunto de los nombres de los empleados.

Entonces se podría  restringir las operaciones de comparación y orden a elementos y subconjuntos de un mismo dominio.  Así se aseguraría evitar hacer operaciones sin sentido, como por ejemplo comparar fechas con sueldos.

A un dominio se le especifica nombre, tipo de dato y formato, es posible que varios atributos tengan el mismo dominio, el atributo indica diferentes roles o interpretaciones para el dominio.

Qué son las Tuplas?


Cada elemento de una relación se llama  tupla,  y también se las conoce con el nombre de  registros, que es una colección de datos elementales que tienen algo en común con la entidad descrita, es decir está compuesta por los atributos de una entidad.

Se llama grado de una tupla al número de componentes que tiene.  El grado de una relación es el de sus tuplas.

Como las entidades son conjuntos, todas sus tuplas deben ser diferentes.  Es decir, en una relación no puede haber tuplas repetidas.  Además, no hay un criterio de orden definido entre ellas.

Una tupla puede representarse o bien como una lista ordenada de valores:

            T=<t1, t2, t3, t4, ......, tn>, donde:

            T1= Valor del primer dominio
            T2= Valor del segundo domino
            T3= Valor del tercer dominio
            T4= Valor del cuarto dominio

O bien como una lista desordenada de valores identificados por sus nombres de atributos:

T=<Atr3=t3, Atr2=t2, Atr1=t1, ....., Atrn=tkn>.


Esquema de Datos Relacional.

Qué son las Tablas?


Si colocamos todas las tuplas de una relación una debajo de otra, alineando los componentes correspondientes de cada atributo en una columna, y colocamos en la cabecera de cada columna el nombre de sus atributos, obtenemos una representación de la relación a la que designaremos con el nombre de TABLA.

Dentro del Esquema Conceptual, las tablas provienen de las Entidades, y compuestas por los atributos de la misma que pasan a conformar un registro. 

Las tablas están compuestas de registros, y estos de atributos.  Una tabla es parecida a una matriz que esta compuesta de filas y columnas, en donde las filas forman los registros y las columnas los datos.   Dentro de las tablas y atributos encontramos las denominadas Claves o Llaves Primarias.

Qué son las Claves?


Una clave es un dato elemental en un registro que se utiliza como criterio de identificación para éste, también se le conoce con el nombre de llave.  Cuando una llave identifica de manera exclusiva a un registro se le denomina llave primaria (o criterio primario).  Por ejemplo:   un # de Orden, puede ser una llave primaria porque sólo hay un número asignado a cada orden o pedido del cliente, es decir que no puede tomar valores repetidos.  De esta manera, la llave primaria identifica la entidad del mundo real (orden del cliente). Toda entidad tiene al menos una clave, pero puede tener más de una.  Esto depende del significado de la relación.

Una llave puede denominarse llave secundaria ( o criterio secundario) si no identifica de manera exclusiva a un registro.  Las llaves secundarias se utilizan para seleccionar a un grupo de registros que pertenecen a un conjunto, por ejemplo:  las órdenes que provienen de determinada ciudad.

Cuando no es posible identificar de manera exclusiva un registro utilizando uno de los elementos dato presentes en el registro, la llave puede construirse mediante la elección de dos o más elementos dato combinándolos entre sí.  A este criterio se le denomina llave concatenada.  Cuando se utiliza un elemento dato en un registro como criterio (llave secundaria), es recomendable subrayarlo (__________), por el contrario si el atributo es una llave presente en otro archivo (llave ajena), debe subrayarse con una línea punteada  ( _  _  _  _  _  _ ).

Integridad de claves primarias.

Al definir el concepto de claves se dijo que estas pueden utilizarse como identificadores de las tuplas de una relación, puesto que a cada valor de una clave corresponde una sola tupla y viceversa.

En el modelo relacional, la única manera de encontrar una tupla determinada en una relación, es conociendo el valor de una clave.

Una relación puede tener varias claves, pero suele aceptarse la conveniencia de usar siempre la misma como identificador.  A esta clave se la suele llamar clave primaria.  Las restantes se las  llama claves alternativas.

Puesto que la clave primaria es el identificador designado para una relación, no debería de tomar valores nulos para evitar ambigüedades.  Esta condición es la que hemos llamado regla de integridad de claves primarias.

Podría pensarse que en el caso de tener varias claves, podríamos emplear como identificador unas veces a una y otras veces a otra, con lo que tendríamos una única clave primaria y ambas podrían tomar valores nulos. Esto no es así y podría crear problemas de ambigüedad.

En conclusión  en toda relación deber de designarse a una clave como primaria y sus atributos no deben tomar valores nulos.

Si una relación tiene varias claves cualquiera de ellas puede ser designada a priori como primarias.   Para elegir la más conveniente, el diseñador de la base de datos deberá tener en cuenta el significado de la relación y sus atributos, y sopesar diversos factores.  Pueden considerarse los siguientes.

*                    Estabilidad.

 Considerar si algunas claves son menos propensas a sufrir modificaciones en sus valores.

*                    Facilidad de uso.

 Será, por ejemplo, más fácil de usar una clave numérica corta que otra alfanumérica con otros caracteres.

*                    Fiabilidad.

Ver si alguna clave contiene dígitos de validación u otros mecanismos de autodetección o corrección de errores..

*                    Universalidad.
             
 Puede haber claves cuyo uso y conocimiento esté muy extendido (por ejemplo el número de Documento Nacional de Identidad, cédula).

Integridad Referencial.


La integridad referencial es una propiedad muy agradable de la base de datos relacional para fortificar el sistema de manejo de datos.  Especialmente la integridad referencial asegura que las relaciones representadas por las llaves primarias y secundarias sean mantenidas.

Se podría decir entonces que es una regla que refuerza una relación dentro de un sistema.

Cuando en el esquema conceptual se designa un atributo como llave ajena (secundaria, en las que sobrecae la responsabilidad de la relación), conviene también especificar las acciones a tomar en caso de intentar actualizarlo con los valores inválidos.  Estas acciones dependerán de los valores de los datos, esta es una de las reglas de integridad relacional, entonces tenemos ejemplo:

Ejemplo para realizar las validaciones de Integridad:



Tabla Departamentos:
 
Reglas de Inserción:

            En función de cómo se asignan los empleados a departamentos.

a)   Inserción en Dpto.
no hay que comprobar nada.

b)  Inserción emp
Hay que comprobar que el dpto. de este nuevo empleado en la tabla Dpto.  Si así no fuere se rechazara la petición de inserción en Emp.

Reglas de Actualización.

a)   Actualización en Dep modificando el atributo principal .

Hay que comprobar que el dpto. que modificamos no tiene empleados.  Si así no fuere, la acción a tomar para mantener los datos en un estado válido de acuerdo con la integridad referencial podría ser la siguiente:

·      Rechazar la petición de actualizar.
·      Aceptada y propagada a Emp, es decir, actualizar en Emp todos los registros que hagan al departamento modificado poniendo el nuevo valor en la tabla EMP campos NomDept.
·      Aceptarla y anularla referencia es decir, actualizar todas las tuplas de Emp que hagan referencia al departamento poniendo nulo en el atributo Emp.Nomdpto.

b)  Actualización en emp modificando el atributo Departamento.

Hay que comprobar si el nuevo valor de Emp. Departamento no es nulo, existe en Dep. Si así no fuere, se rechazará la petición de actualización.

Reglas de Borrado.

a)   Borrado de un registro en Dpto.

Hay que comprobar que le dpto. que borramos no tiene empleados.  Si así no fuere, la acción a tomar para mantener los datos en un estado válido de acuerdo a la integridad referencial podría ser una de las siguientes:

·      Rechazar la petición de borrado.
·      Aceptada y propagada a Emp, es decir, borrar en Emp todos los registros que hagan referencia al departamento borrado. Este borrado podría propagarse a su vez a otras relaciones que hagan referencia a Emp.
·      Aceptarla y anularla referencia es decir, actualizar todas las tuplas de Emp que hagan referencia al departamento poniendo nulo en el atributo Emp.Nomdpto.

b)  Borrado de un registro de emp.
     No hay que comprobar nada.

En conclusión en la tabla Emp no puede ser asignado un Dpto. que no exista en la tabla dpto. Al borra o actualizar la tupla Dpto. debe verificarse en la tabla Emp.

El primer beneficio de la integridad relacional es la consistencia de los datos.  Dentro de Oracle, como en la mayoría de DBMS, esta integridad se almacena en un archivo conjuntamente con la Base de Datos. Es decir que puede ser definida en el momento de la creación de las tablas y sus relaciones.  Refuerza el descuido de las aplicaciones o herramientas que accesan a las tablas.

La llave ajena es el mecanismo para soportar la integridad referencial.

Integridad Transaccional.

Antes de comenzar a hablar sobre la integridad transaccional, debemos primero saber que es una transacción.

Transacción.-            Es un hecho completo desde el punto de vista computacional, en el que se puede hacer actualizaciones, borrados independientes o en conjunto.  Ejemplo:  Pedidos en una factura,  Depósitos, Retiros de fondeos,  Cajeros Automáticos en los Bancos, etc.   Además se puede hacer consultas sin que ocurran desastres si hay algún percance.

Hasta ahora se ha considerado el empleo de seguros para proteger la Base de datos.  Una incongruencia temporal, introducida por una transacción de actualización, también puede crear respuestas erróneas en transacciones que entreguen respuestas a los usuarios.

Sin embargo, un sistema que produzca resultados erróneos con cualquier frecuencia pronto perderá la confianza de los usuarios.  Por lo tanto, en este caso también es adecuado emplear un seguro.   La transacción de actualización ya debería estar asegurada para impedir interferencias de actualización.  Las transacciones sólo de lectura que necesitan ser correctas; esto es, deben ser capaces de soportar una auditoría, y en su caso seguros para protegerse de actualizaciones simultáneas.

Se ha llegado a la conclusión, según observaciones, que los resultados erróneos solo se crean debido a actualizaciones que interfieren, las cuales modifican múltiples elementos datos relacionados.

Especificación de un seguro.

Es necesario que exista una forma de avisar al sistema de apoyo a la Base de Datos que se ha solicitado el seguro de un objeto.  Sería de esperarse que el usuario final, el vendedor o el oficinista, solicitará la acción de aseguramiento.
Cuando se logra el acceso a los objetos reclamados se colocan seguros.  Puede haber retrasos, pero eventualmente una transacción que espere en la línea correspondiente a un objeto tendrá el acceso al objeto reclamado y podrá proceder.

La transacción coloca un seguro para lograr así el acceso exclusivo al objeto, y este seguro se conservará hasta que la transacción se ejecute, para luego liberar el objeto.   Las reclamaciones conservadas por una transacción también se liberan cuando la transacción se concluye o aborta.   Las transacciones que concluyan sin liberar sus seguros se consideran defectuosas. 

Si el sistema tiene la capacidad de eliminar los efectos de transacciones defectuosas y restaurar la base de datos, esta restauración se recomienda.

A nivel mínimo, el administrador de sistema deberá ser informado  cuando las transacciones se detienen sin liberar todos sus seguros sobre los recursos.  Si los seguros no se liberan, una parte del sistema no está disponible.

Regiones que deben asegurarse.

Se deben asegurar ciertas regiones en el que los datos obtenidos por una transacción de lectura son inconsistentes debido a una secuencia de actualizaciones necesarias para realizar una transferencia de fondos.  A fin de garantizar que otras transacciones sean correctas es necesario asegurar una región constituida por los dos objetos asegurados por la transacción de actualización.

Resultará necesario asegurar una región para impedir la interferencia, tanto de transacciones de lectura como de actualizaciones.

Interacciones entre seguros.

Es necesario proporcionar aseguramiento entre transacciones de actualización y entre consulta sólo de lectura que requieran resultados que puedan soportar una auditoría y transacciones de actualización.  El empleo de aseguramiento vuelve inaccesible a una parte de la Base de Datos.