|
Buscador
Secciones
Otras zonas
Foros
Ganamos
Registro
|
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.
|
| 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.
| 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 interrelacionesEn 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).
| Leer comentarios (82) | |
| Escribir comentario | |
| Puntuación: |
|
| Votar | |
| Recomendar este tutorial | |
| Estadísticas |
Copyright © 1999-2007
Programación en castellano.
Todos los derechos reservados.
Formulario de Contacto -
Datos legales -
Publicidad
Mantenida por: Claudio y
Dani.
Hospedaje web y servidores dedicados linux por Ferca Network
red internet: musica mp3 | logos y melodias | hospedaje web linux | registro de dominios | servidores dedicados
más internet: comprar | recursos gratis | posicionamiento en buscadores | tienda virtual | gifs animados