Ver Mensaje Individual
  #5 (permalink)  
Antiguo 02/12/2008, 10:00
kurtinaitis
 
Fecha de Ingreso: septiembre-2008
Mensajes: 67
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: base de datos con relacion de especialización

Antes de nada agradeceros vuestro interés en ayudarme.

Respecto al diseño considero que es completamente válido, el problema aparece debido a lo siguiente:

Recordar que se trata un modelo de base de datos que utiliza relaciones de generalización/especialización.

El concepto Patrimonio se divide en tres subclases que son excavaciones, edificios y objetos. Todas las entidades tienen los mismos atributos salvo uno, aquel que hace referencia al tipo de entidad (en el caso de excavaciones, tipo_excavacion, en el caso de objetos tipo_objeto, y en el de edificio tipo_edificio). Además el atributo tipo_edificio implica una nueva división esta vez con edificio como clase y arquitectura religiosa. arquitectura civil, y elementos menores como subclases.

En ambos casos las relaciones de especialización presentan dos restricciones. La primera es la restricción dedesunión, la cual especifica que las subclases de la especialización deben estar separadas. Esto significa que una ocurrencia de la entidad puede ser miembro de como máximo una de las subclases de la especialización. Es decir, que una ocurrencia de patrimonio sólo puede existir o en excavaciones o en edificios o en objetos. La segunda restricción a la especialización se llama la restricción de totalidad, la cual puede ser
parcial o total. Una restricción de especialización total especifica que cada ocurrencia de entidad de la superclase debe ser miembro de alguna subclase de la especialización, es decir que cualquier ocurrencia de patrimonio debe aparecer en alguna de sus 3 subclases.

Esta chapa viene por lo siguiente. Con estas características la mejor opción para transformar nuestro diagrama entidad relacion a relacional es la siguiente:

Crear para cada subclase una relación con los atributos de la superclase mas los
atributos propios, donde la clave primaria será la de la superclase. Esta opción sólo es válida para las especializaciones con restricción de totalidad y desunión.

Siguiendo esta regla el resultado es el que os ponía en el primer mensaje:

Excavaciones
Cod_Patri Nombre Periodo Municipio tipo_excavacion y una Clave externa

Arq.Religiosa
Cod_Patri Nombre Periodo Municipio tipo_arqreligiosa y una Clave externa

Arq.Civil
Cod_Patri Nombre Periodo Municipio tipo_arqcivil y una Clave externa

Elementos menores
Cod_Patri Nombre Periodo Municipio tipo_elementomenor y una Clave externa

Objetos
Cod_Patri Nombre Periodo Municipio tipo_objetos y una Clave externa


El problema es que no se como indicar a mi base de datos que estas tablas forman una relación de especialización, y que por tanto comparten "clave primaria".

Sé que existen otras opciones que me resultarían más fáciles para evitar este problema sin embargo debería corregir algunas otras, y replanificar mi diseño que no me apetece mucho, jeje.

Un saludo, y muchas gracias a todos de verdad, sólo con el interés que poneis me vale.