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/* Linea */
CREATE TABLE linea(
n_linea VARCHAR2(10),
c_red NUMBER(8),
longitud NUMBER(6) NOT NULL,
CONSTRAINT linea_pk PRIMARY KEY (n_linea,c_red),
CONSTRAINT linea_ch CHECK(longitud BETWEEN 1 AND 999999),
CONSTRAINT red_linea_fk REFERENCES red(c_red) ON DELETE CASCADE
);
/* Subestacion */
CREATE TABLE subest(
n_subest VARCHAR2(20) NOT NULL,
n_linea VARCHAR2(10) NOT NULL,
c_red NUMBER(8) NOT NULL ,
CONSTRAINT subest_n_pk PRIMARY KEY (n_subest),
CONSTRAINT linea_nlinea_fk FOREIGN KEY (n_linea,c_red) REFERENCES linea(n_linea,c_red)
);