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

DDL

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 );