Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

[SOLUCIONADO] Clave de entidad debil a otra entidad

Estas en el tema de Clave de entidad debil a otra entidad en el foro de Oracle en Foros del Web. Hola resulta que tengo una entidad llamada LINEA que es débil en identificación, esta estidad tiene su clave primaria formada por dos campos, y me ...
  #1 (permalink)  
Antiguo 01/04/2015, 03:57
 
Fecha de Ingreso: octubre-2007
Mensajes: 9
Antigüedad: 16 años, 5 meses
Puntos: 0
Clave de entidad debil a otra entidad

Hola resulta que tengo una entidad llamada LINEA que es débil en identificación, esta estidad tiene su clave primaria formada por dos campos, y me gustaría pasar la clave primaria de LINEA a una entidad llamada SUBESTACION, lo estoy intentando hacer con la siguiente consulta pero no consigo nada, haber si alguien me puede prestar su ayuda en este tema.


Código SQL:
Ver original
  1. /* Linea */
  2. CREATE TABLE linea(
  3.       n_linea varchar2(10),
  4.       c_red NUMBER(8) CONSTRAINT red_linea_fk REFERENCES red ON DELETE cascade,
  5.       longitud NUMBER(6) NOT NULL CONSTRAINT linea_ch CHECK(longitud BETWEEN 1 AND 999999),
  6.       CONSTRAINT linea_pk PRIMARY KEY (n_linea,c_red));
  7.  
  8. /* Subestacion */
  9. CREATE TABLE subest(
  10.       n_subest varchar2(20) CONSTRAINT subest_n_pk PRIMARY KEY,
  11.       n_linea varchar2(10) NOT NULL CONSTRAINT linea_nlinea_fk REFERENCES linea,
  12.       c_red NUMBER(8) NOT NULL CONSTRAINT linea_cred_fk REFERENCES linea
  13.       );



Muchas gracias.
  #2 (permalink)  
Antiguo 01/04/2015, 04:05
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Clave de entidad debil a otra entidad

Son por seguridad, ¿en qué DBMS estás trabajando?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 01/04/2015, 04:10
 
Fecha de Ingreso: octubre-2007
Mensajes: 9
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: Clave de entidad debil a otra entidad

Estoy con Oracle y el Sql Developer, se que el error puede ser muy tonto pero es que estoy empezando en esto y me surgen algunas dudas.

Gracias
  #4 (permalink)  
Antiguo 01/04/2015, 05:51
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Clave de entidad debil a otra entidad

OK. Por empezar, una aclaración conceptual: Cuando trabajamos con el modelo físico, es decir con tablas, no hablamos de entidades, ni tuplas. Esos son términos que aluden al modelo lógico o de sistema, y no al modelo físico.
No existe una relación 1:1 entre las entidades y las tablas, dado que entre otras cosas una misma entidad del modelo lógico puede terminar requiriendo 1 a N tablas. Eso se puede ver claramente cuando estudias las Formas Normales.

Por otro lado, hay alguna confusión en lo que es una FK: Es un campo o conjunto de campos que referencia a la PK de otra tabla. En consecuencia, si la PK de la tabla referenciada es una clave compuesta, la FK debe ser también compuesta, por campos del mismo tipo y en el mismo orden.
Código SQL:
Ver original
  1. /* Linea */
  2. CREATE TABLE linea(
  3.       n_linea VARCHAR2(10),
  4.       c_red NUMBER(8),
  5.       longitud NUMBER(6) NOT NULL,
  6.       CONSTRAINT linea_pk PRIMARY KEY (n_linea,c_red),
  7.       CONSTRAINT linea_ch CHECK(longitud BETWEEN 1 AND 999999),
  8.       CONSTRAINT red_linea_fk REFERENCES red(c_red) ON DELETE CASCADE
  9.       );
  10.  
  11. /* Subestacion */
  12. CREATE TABLE subest(
  13.       n_subest VARCHAR2(20) NOT NULL,
  14.       n_linea VARCHAR2(10) NOT NULL,
  15.       c_red NUMBER(8) NOT NULL ,
  16.       CONSTRAINT subest_n_pk PRIMARY KEY (n_subest),
  17.       CONSTRAINT linea_nlinea_fk FOREIGN KEY (n_linea,c_red) REFERENCES linea(n_linea,c_red)
  18.       );
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 01/04/2015, 06:34
 
Fecha de Ingreso: octubre-2007
Mensajes: 9
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: Clave de entidad debil a otra entidad

Muchisimas gracias me ayudaste a solventar mi problema, en cuanto a los confusiones se que las tengo porque como ya te dije soy principiante esta materia y me ha quedado todo mas claro tras tu aclaración.

Muchas gracias de nuevo.
  #6 (permalink)  
Antiguo 01/04/2015, 06:52
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Clave de entidad debil a otra entidad

Me alegra que te sirviera.

__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: bases-de-datos-general, campos, clave, entidad
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:03.