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?
Es necesario que todos los atributos aparezcan con el mismo nombre que aparecen en la imagen.
Los valores que van a contener los atributos son:
- EMPRESA
- CIF: combinación de números y letras de hasta 20 caracteres. Su longitud se debe tomar como variable.
- NOMBRE: cadena de hasta 100 caracteres de longitud.
- MUNICIPIO
- CODMUNICIPIO: está compuesto únicamente por dígitos.
- NOMBRE: cadena de hasta 100 caracteres de longitud.
- PROVINCIA
- CODPROVINCIA: está compuesto únicamente por dígitos.
- NOMBRE: cadena de hasta 50 caracteres de longitud.
Ten en cuenta que esta relación no genera valores NULL.
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 PROVINCIA
(
CODPROVINCIA NUMBER PRIMARY KEY
, NOMBRE VARCHAR2(50) NOT NULL
);
CREATE TABLE MUNICIPIO
(
CODMUNICIPIO NUMBER NOT NULL,
CODPROVINCIA NUMBER NOT NULL REFERENCES PROVINCIA(CODPROVINCIA),
NOMBRE VARCHAR2(100) NOT NULL,
PRIMARY KEY (CODMUNICIPIO, CODPROVINCIA)
);
CREATE TABLE EMPRESA
(
CIF VARCHAR2(20) PRIMARY KEY,
CODMUNICIPIO NUMBER NOT NULL,
CODPROVINCIA NUMBER NOT NULL,
NOMBRE VARCHAR2(100) NOT NULL,
FOREIGN KEY (CODMUNICIPIO, CODPROVINCIA)
REFERENCES MUNICIPIO (CODMUNICIPIO, CODPROVINCIA)
);
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)
--


