Databases
Examen 2o Trimestre DDL
Enunciado
Imagina que en el gestor de bases de datos se han creado las siguientes tablas:
CREATE TABLE TUTOR (
DNI NUMBER PRIMARY KEY -- sin letra
, Nombre VARCHAR2(50) NOT NULL
, Apellido1 VARCHAR2(50) NOT NULL
, Apellido2 VARCHAR2(50) NOT NULL
, Email VARCHAR2(100) NOT NULL
, Telefono VARCHAR2(12) NOT NULL
);CREATE TABLE PROYECTO (
CodigoProyecto VARCHAR2(5) PRIMARY KEY
, TituloProyecto VARCHAR2(100) NOT NULL
, BreveDescripcion VARCHAR2(255) NOT NULL
);Añade una restricción que indique quién es el tutor que dirige cada proyecto. En este caso, es posible que haya proyectos que no tengan asignado ningún tutor.
Si, una vez asociado un tutor a un proyecto, dicho tutor es eliminado de la base de datos, se deberá permitir que el valor NULL sea asignado al atributo correspondiente.
Tipo
Solución
ALTER TABLE PROYECTO
ADD DNI NUMBER REFERENCES TUTOR(dni)
ON DELETE SET NULL;
Prueba
SELECT c_pk.table_name r_table_name, c_pk.column_name r_pk, c.DELETE_RULE
FROM USER_cons_columns a
JOIN USER_constraints c ON a.owner = c.owner
AND a.constraint_name = c.constraint_name
JOIN USER_cons_COLUMNS c_pk ON c.r_owner = c_pk.owner
AND c.r_constraint_name = c_pk.constraint_name
WHERE c.constraint_type = 'R'
AND a.table_name = 'PROYECTO';
LibrerÃas (Onfly databases)
CREATE TABLE TUTOR (
DNI NUMBER PRIMARY KEY -- sin letra
, Nombre VARCHAR2(50) NOT NULL
, Apellido1 VARCHAR2(50) NOT NULL
, Apellido2 VARCHAR2(50) NOT NULL
, Email VARCHAR2(100) NOT NULL
, Telefono VARCHAR2(12) NOT NULL
);
CREATE TABLE PROYECTO (
CodigoProyecto VARCHAR2(5) PRIMARY KEY
, TituloProyecto VARCHAR2(100) NOT NULL
, BreveDescripcion VARCHAR2(255) NOT NULL
);

