programacion software linux cursos manuales tutoriales
 

Tutorial de SQL

Noticias de >
bases de datos Codigo Fuente
 

Las interrelaciones

Bases de datos-Modelo de datos relaccional-Las interrelaciones
Las interrelaciones son las relaciones que existen entre varias tablas del sistema (Clientes y Pedidos, por ejemplo). Existen tres formas de interrelaciones dependiendo de la cardinalidad con la que se combinan los elementos de ambas tablas.

Interrelaciones uno a uno
Una interrelación es de uno a uno entre la tabla A y la tabla B cuando a cada elemento de la clave de A se le asigna un único elemento de la tabla B y para cada elemento de la clave de la tabla B contiene un único elemento en la tabla A. Un ejemplo de interrelación de este tipo es la formada por las tablas Datos Generales de Clientes y Datos Contables de Clientes. En esta relación cada cliente tiene una única dirección y una dirección en cada una de las tablas. Representamos la relación como A 1: 1 B.

Ante la presencia de este tipo de relación nos podemos plantear el caso de unificar todos los datos en única tabla pues no es necesario mantener ambas tablas a la misma vez.

Este tipo de relación se genera cuando aparecen tablas muy grandes, con gran cantidad de campos, disgregando la tabla principal en dos para evitar tener una tabla muy grande. También surge cuando los diferentes grupos de usuario cumplimentan una información diferente para un mismo registros; en este caso se crean tantas tablas como registros, evitando así tener que acceder a información que el usuario del grupo actual no necesita.

Interrelaciones uno a varios
Una interrelación es de uno a varios entre las tablas A y B cuando una clave de la tabla A posee varios elementos relacionados en la tabla B y cuando una clave de la tabla B posee un único elemento relacionado en la tabla A.

Estudiemos la relación entre la tabla de clientes y la tabla de pedidos. Un cliente puede realizar varios pedidos pero un pedido pertenece a un único cliente, por tanto se trata de una relación uno a varios y la representamos A 1: n B.

Estas relaciones suelen surgir de aplicar la 1NF a una tabla.

Interrelaciones varios a varios
Una interrelación es de varios a varios entre las tablas A y B cuando una clave de la tabla A posee varios elementos relacionados en la tabla B y cuando una clave de la tabla B posee varios elementos relacionados en la tabla A.

Un caso muy característico de esta interrelación es la que surge entre las tablas de Puestos de Trabajo y Empleados de una empresa. Un Empleado puede desempeñar realizar varias funciones dentro de una empresa (desempeñar varios puestos de trabajo), y un puesto de trabajo puede estar ocupado por varios empleados a la misma vez. Esta interrelación la representamos como A n: n B.

No se deben definir relaciones de este tipo en un sistema de bases de datos, debido a su complejidad a la hora de su mantenimiento, por este motivo se debe transformar este tipo de relación es dos interrelaciones de tipo 1: n, empleando para ello una tabla que denominaremos puente y que estará formada por las claves de ambas tablas. Esta tabla puente debe contener una única clave compuesta formada por los campos clave de las tablas primeras.

Empleados Puestos
Código Empleado Empleado Código Puesto Puesto
103 Juan 52 Comercial
105 Luisa 73 Administrativo
251 Martín
736 Ana María
Tabla Puente
Código Empleado Código Puesto
103 52
103 73
105 73
251 52
736 52
736 73


Ahora existe una relación 1: n entre Empleados y Tabla Puente y otra relación 1: n entre Puestos y Tabla Puente ya que un empleado posee varios códigos de empleado en la tabla puente pero cada elemento de la tabla puente pertenece a un único empleado.

Por otro la un puesto de trabajo posee varios elementos relacionados en la tabla puente, pero cada elemento de la tabla puente está relacionado con un único elemento de la tabla puestos.

Problemas con las interrelaciones
A la hora de establecer las interrelaciones existentes en un sistema de bases de datos nos podemos encontrar dos problemas:


Interrelaciones recursivas: un elemento se relaciona consigo mismo directamente.
Interrelaciones circulares o cíclicas: A se relaciona con B, B se relaciona con C y C se relaciona con A.

Ambos casos pueden suponer un grabe problema si definimos una relación con integridad referencial y decimos eliminar en cascada (al eliminar una clave de la tabla A se eliminan los elementos relacionados en la tabla B). Supongamos la relación recursiva existen en la relación Empleado y Supervisor (ambos son empleados de la empresa). Está claro que un empleado está supervisado por otro empleado. Veamos la forma de solucionarlo:

Empleados
Código Nombre Supervisor
102 Juan NO
105 Luis SI
821 María NO
956 Martín SI


Para solucionar la relación debemos crear una tabla formada por dos campos. Ambos campos deben ser el código del empleado pero como no podemos tener dos campos con el mismo nombre a uno de ellos le llamaremos código supervisor.

Tabla Puente
Código Empleado Código Supervisor
102 105
105 956
821 105
956 105


Para terminar de resolver la interrelación recursiva basta con definir dos interrelaciones entre la tabla empleados y la tabla puente de tipo 1: n. La primera relación se crea utilizando las claves Empleados[Código] y Tabla Puente[Código Empleado]. La segunda entre Empleados[Código] y Tabla Puente [Código Supervisor].

Las interrelaciones cíclicas o circulares no son muy frecuentes y no existe una metodología estándar para su eliminación, normalmente son debidas a errores de diseño en la base de datos, principalmente en el diseño conceptual del sistema de datos. Por tanto si llegamos a este punto hay que volver a replantearse todo el diseño de la base de datos.

Atributos de las interrelaciones
En la mayoría de las interrelaciones definidas será conveniente exigir integridad relacional entre las claves. Exigiendo la integridad referencial se consigue que en una relación de tipo 1: n o de tipo 1: 1, no se puede añadir ningún valor en la tabla destino si no existe en la tabla origen. Dicho con un ejemplo: en la relación Clientes y Pedidos la tabla Pedidos contiene un campo que se corresponde con el código del Cliente, si se exige la integridad referencia no se podrá escribir un código de cliente en la tabla Pedidos que no exista en la tabla Clientes; de no exigir la integridad referencial se podrán crear pedidos con códigos de clientes que no existen, generando incongruencia de datos en la base de datos.

Definida la integridad referencial (siempre necesaria) podemos exigir la actualización en cascada (siempre necesaria); esta actualización implica que si cambiamos el código a un cliente, debemos actualizar dicho código en la tabla de pedidos, de no ser así, al cambiar el código a un cliente, perderemos los pedidos que tenía realizados.

Para concluir debemos hablar de la eliminación en cascada (NO siempre necesaria), la eliminación en cascada consiste en eliminar todos los datos dependientes de una clave. En nuestro ejemplo implica que al borrar un cliente hay que eliminar todos los pendidos que ha realizado. En muchas ocasiones no interesa realizar esta operación de eliminación en cascada por motivos diversos. Si en el caso de clientes y pedidos no se exige eliminación en cascada no se podrá borrar ningún cliente en tanto en cuanto tenga realizado algún pedido (de lo contrario tendríamos incongruencia de datos).





Este manual como su contenido ha sido integramente elaborado por
Claudio Casares www.lobocom.es/~claudio
nuestro agradecimiento

software tecnologia programacion webmasters
Nube de Tags
Nuestra Red de agregadores de noticias tematicas
info mac ipod iphone
Mac- mundo mac iphone ipod novedades
noticias de moviles iphone nokia trucos
Moviles- actualidad del mundo de los moviles
salud
Salud- salud medicina dietas vida sana
noticias de coches f1 motos tuning motogp
Motor- noticias de coches F1 motoGP motos quads
cine teatro estrenos video
Ocio-Cine- estrenos de cine trailers noticias
juegos psp ps2 ps3 wii nintendo xbox xbox360
Juegos- psp ps2 ps3 wii pc xbox xbox360 sony
noticias de mujeres recetas thermomix
Mujer- noticias recetas moda thermomix belleza
tecnologia
Tech-y- gadchets actualidad de tecnologia
Deportes- todos los deportes agregados
energia eolica solar nuclear biomasa alternativas
Energia- eolica solar nuclear biomasa y mas...
noticias de ecologia
Ecologia- vive de forma ecologica y reciclando
energia solar eolica biomasa nuclear
Finanzas- ibex35 bolsa forex manuales fondos euribor
noticias de musica videos de musica
Musica - miles de videos de musica y noticias
Programacion- software programacion linux
viajes vuelos pueblos de españa Viajes - turismorama viajes y pueblos de españa..   Negocios- negocios y pymes, negocios online
       
viajes vuelos pueblos de espaņa
Recetas - 1001 recetas de cocina
 
Otros idiomas
salud Salute-(it) salute medicina diete salud Sante-(fr) sante medicina diet

 

BlogRoll


 
ver 50 mas votadas + Ver las 50 noticias mas leidas
ver 50 mas votadas + Ver las 50 noticias mas votadas
 
ver 50 mas votadas + Ver las 50 videos mas vistos

Links Recomendados

- pueblos de España

 
 
Las mejores ofertas de la Red
Ofertas de Tecnologia Ofertas de Vivienda
Ofertas de Finanzas Ofertas de Motor
Ofertas de Formacion Ofertas de Juegos
Ofertas de Ocio Ofertas de Salud
Ofertas de Viajes
  Volver a portada del manual SQL
 Manual de SQL
Introducción
Consultas
-De Selección
-De Acción
-De Unión Internas
-De Unión Externas
-De Referenc Cruzadas
Criterios de Selección
Agrupamiento Registros
Tipos de Datos
Subconsultas
Extructuras de Tablas
Problemas Resueltos
-Registros Duplicados
-Registros no Relacc.
Cursores
FullText (SQL-Server)
ACCESS
-Bases Externas
-Parámetros
-Omitir Permisos
-Cláusula PROCEDURE
Optimizar Sentencias
Modelo de datos
Introduccion
Los usuarios
Ciclo de vida
Criterios de calidad
Indicadores de calidad
El modelo logico
Restricciones integridad
Modelo Relacional
Introduccion
Proceso d Normalización
Las Interrelaciones
Algebra Relacional
Cálculo Relacional
El Modelo E/R
Entidades
Atributos
Dominios
Claves
Interrelaciones
Restricciones Interrelaciones
Ejemplo
Generalidades
Definiciones
Leyes de Murphy
Arquitecturas
Buffers
DataWareHousing
-Introducción
-Teoría
-Proyecto
Tutoriales
Recomedamos: programatium I solorecursos I manuales I pueblos 2.0I info-salud I info-ocio I info-motor
noticias: Salud I Ocio/cine I Musica I Motor IDeportes IJuegos I Finanzas I Moviles I Energia I Ecologia I Tech-y I Mujer I MAC I Salud I