CREATE TABLE Asignatura
(
Codigo_asig INTEGER NOT NULL ,
Nombre VARCHAR2 (15)
)
;
ALTER TABLE Asignatura
ADD CONSTRAINT "Asignatura PK" PRIMARY KEY ( Codigo_asig ) ;
CREATE TABLE DICTA
(
Profesor_Cod_Profesor INTEGER NOT NULL ,
Asignatura_Codigo_asig INTEGER NOT NULL ,
Fecha DATE ,
hora DATE
)
;
ALTER TABLE DICTA
ADD CONSTRAINT DICTA__IDX PRIMARY KEY ( Profesor_Cod_Profesor, Asignatura_Codigo_asig ) ;
CREATE TABLE Departamento
(
Nombre VARCHAR2 (15) NOT NULL ,
Telefono VARCHAR2 (10) NOT NULL
)
;
ALTER TABLE Departamento
ADD CONSTRAINT "Empleado PK" PRIMARY KEY ( Nombre ) ;
CREATE TABLE PERTENECE
(
Departamento_Nombre VARCHAR2 (15) NOT NULL ,
Profesor_Cod_Profesor INTEGER NOT NULL
)
;
ALTER TABLE PERTENECE
ADD CONSTRAINT PERTENECE__IDX PRIMARY KEY ( Departamento_Nombre, Profesor_Cod_Profesor ) ;
CREATE TABLE Profesor
(
Cod_Profesor INTEGER NOT NULL ,
Nombre VARCHAR2 (15)
)
;
ALTER TABLE Profesor
ADD CONSTRAINT "Profesor PK" PRIMARY KEY ( Cod_Profesor ) ;
CREATE TABLE TIENE
(
Departamento_Nombre VARCHAR2 (15) NOT NULL ,
Asignatura_Codigo_asig INTEGER NOT NULL
)
;
ALTER TABLE TIENE
ADD CONSTRAINT TIENE__IDX PRIMARY KEY ( Departamento_Nombre, Asignatura_Codigo_asig ) ;
ALTER TABLE DICTA
ADD CONSTRAINT FK_ASS_1 FOREIGN KEY
(
Profesor_Cod_Profesor
)
REFERENCES Profesor
(
Cod_Profesor
)
ON DELETE CASCADE
;
ALTER TABLE DICTA
ADD CONSTRAINT FK_ASS_2 FOREIGN KEY
(
Asignatura_Codigo_asig
)
REFERENCES Asignatura
(
Codigo_asig
)
ON DELETE CASCADE
;
ALTER TABLE PERTENECE
ADD CONSTRAINT FK_ASS_3 FOREIGN KEY
(
Departamento_Nombre
)
REFERENCES Departamento
(
Nombre
)
ON DELETE CASCADE
;
ALTER TABLE PERTENECE
ADD CONSTRAINT FK_ASS_4 FOREIGN KEY
(
Profesor_Cod_Profesor
)
REFERENCES Profesor
(
Cod_Profesor
)
ON DELETE CASCADE
;
ALTER TABLE TIENE
ADD CONSTRAINT FK_ASS_5 FOREIGN KEY
(
Departamento_Nombre
)
REFERENCES Departamento
(
Nombre
)
ON DELETE CASCADE
;
ALTER TABLE TIENE
ADD CONSTRAINT FK_ASS_6 FOREIGN KEY
(
Asignatura_Codigo_asig
)
REFERENCES Asignatura
(
Codigo_asig
)
ON DELETE CASCADE
;
desc departamento
desc profesor
desc asignatura
desc hora
insert into departamento values ('Marco',8527419)
select * from departamento
insert into profesor values (005,'jose')
select * from profesor
insert into asignatura values (0010,'redes')
select * from asignatura