Cuál sería la sentencia más precisa para la construcción de la relación "TIENE" entre las tablas INSTITUCIONES y ASPIRANTES, según el diagrama entidad/relación anterior:
- A.CREATE TABLE Beca(id VARCHAR(10) NOT NULL PRIMARY KEY, nombre VARCHAR(100), CREATE TABLE Aspirantes(CIF VARCHAR(10) NOT NULL PRIMARY KEY, nombre VARCHAR(100), id_beca VARCHAR(10), FOREIGN KEY (id_beca) REFERENCES Beca(id));
- B.CREATE TABLE Instituciones( CIF VARCHAR(10) NOT NULL PRIMARY KEY, nombre VARCHAR(100)); CREATE TABLE Beca(id VARCHAR(10) NOT NULL PRIMARY KEY, nombre VARCHAR(100), id_institucion VARCHAR(10), FOREIGN KEY (id_institucion) REFERENCES Instituciones(CIF) ) ;Respuesta correcta
- C.CREATE TABLE Tiene(id VARCHAR(10) NOT NULL PRIMARY KEY, nombre VARCHAR(100), CREATE TABLE Tiene(id_institucion VARCHAR(10), id_beca VARCHAR(10), FOREIGN KEY (id_institucion) REFERENCES Instituciones(CIF));
- D.CREATE TABLE Beca(id VARCHAR(10) NOT NULL PRIMARY KEY, nombre VARCHAR(100), id_institucion VARCHAR(10), FOREIGN KEY (id_institucion) REFERENCES Instituciones(CIF)); CREATE TABLE Instituciones( CIF VARCHAR(10) NOT NULL PRIMARY KEY, nombre VARCHAR(100)); CREATE TABLE Solicita.otorga(id_beca VARCHAR(10), id_institucion VARCHAR(10)); FOREIGN KEY (id_beca) REFERENCES Beca(id);
Explicación
La relación 1:N entre INSTITUCIONES y BECAS (una institución otorga muchas becas) se representa en SQL propagando la clave primaria de INSTITUCIONES (CIF) como clave ajena en la tabla BECAS. La sintaxis SQL DDL correcta crea ambas tablas con CREATE TABLE y establece restricción FOREIGN KEY para garantizar integridad referencial. Una tabla intermedia sería incorrecta.