Databases
Examen 2o Trimestre Transformación E/R
Enunciado
Dado el siguiente subconjunto del diagrama Entidad-Relación que gestiona la FCT de un centro educativo, ¿qué sentencias DDL sería necesario ejecutar para conseguir trasladar esa parte del diagrama al SGBDR?
Los valores que van a contener los atributos son:
- ALUMNO
- DNI: combinación de números y letras de hasta 9 caracteres. Su longitud se debe tomar como variable.
- NOMBRE: cadena de hasta 50 caracteres.
- CENTRO
- CODIGOCENTRO: combinación de números y letras de hasta 20 caracteres. Su longitud se debe tomar como variable.
- NOMBRE: cadena de hasta 100 caracteres.
- TITULO
- CODIGOTITULO:
- NOMBRE:
Notas para todos los ejercicios de transformación E/R:
- Es necesario que todos los atributos aparezcan con el mismo nombre que aparecen en la imagen.
- En el caso de que hubiera que crear alguna tabla proveniente de alguna relación, la tabla tendría el nombre de la relación.
Tipo
DDL
Solución
CREATE TABLE ALUMNO
(
DNI VARCHAR2(9) PRIMARY KEY
, NOMBRE VARCHAR2(50) NOT NULL
);
CREATE TABLE TITULO
(
CODIGOTITULO NUMBER PRIMARY KEY
, NOMBRE VARCHAR2(100) NOT NULL
);
CREATE TABLE CENTRO
(
CODIGOCENTRO NUMBER PRIMARY KEY
, NOMBRE VARCHAR2(100) NOT NULL
);
CREATE TABLE OBTIENE (
DNI VARCHAR2(9) NOT NULL REFERENCES ALUMNO,
CODIGOTITULO NUMBER NOT NULL REFERENCES TITULO,
CODIGOCENTRO NUMBER NOT NULL REFERENCES CENTRO,
FECHA DATE NOT NULL,
NOTA NUMBER (4,2) NOT NULL,
PRIMARY KEY (CODIGOTITULO, DNI)
);
Prueba
SELECT TABLE_NAME, COLUMN_NAME, DATA_TYPE, DATA_LENGTH, 'A' TIPO
FROM USER_TAB_COLUMNS
UNION
SELECT USER_CONSTRAINTS.TABLE_NAME, COLUMN_NAME, STATUS, 1, CONSTRAINT_TYPE
FROM USER_CONSTRAINTS JOIN USER_CONS_COLUMNS USING (CONSTRAINT_NAME)
WHERE CONSTRAINT_TYPE IN ('R', 'P')
ORDER BY TABLE_NAME, COLUMN_NAME, TIPO;
LibrerÃas (Onfly databases)
--


