Está en la página 1de 2

CREATE TABLE departamento (

id NUMBER(2,0) CONSTRAINT id PRIMARY KEY,


nombre VARCHAR(50)CONSTRAINT nombre NOT NULL
);

CREATE TABLE persona (


id NUMBER(10) CONSTRAINT id_pk PRIMARY KEY,
nif VARCHAR2(9) CONSTRAINT nif_uk UNIQUE,
nombre VARCHAR2(25) CONSTRAINT nombre_nn NOT NULL,
apellido1 VARCHAR2(50) CONSTRAINT apellido1_nn NOT NULL,
apellido2 VARCHAR2(50),
ciudad VARCHAR2(25) CONSTRAINT ciudad_nn NOT NULL,
direccion VARCHAR2(50) CONSTRAINT direccion_nn NOT NULL,
telefono VARCHAR2(9),
fecha_nacimiento DATE CONSTRAINT fecha_nacimiento_nn NOT NULL,
sexo CHAR(1) CONSTRAINT sexo_ck CHECK (sexo IN ('H', 'M')),
tipo VARCHAR2(10) CONSTRAINT tipo_nn NOT NULL
);

CREATE TABLE profesor (


id_profesor NUMBER(10) CONSTRAINT id_profesor_pk PRIMARY KEY,
id_departamento NUMBER(10) CONSTRAINT id_departamento_fk REFERENCES
departamento(id),
CONSTRAINT profesor_persona_fk FOREIGN KEY (id_profesor) REFERENCES persona(id)
);

CREATE TABLE grado (


id NUMBER(10) CONSTRAINT grado_id_pk PRIMARY KEY,
nombre VARCHAR2(100) CONSTRAINT grado_nombre_nn NOT NULL
);

CREATE TABLE asignatura (


id NUMBER(10) CONSTRAINT asignatura_id_pk PRIMARY KEY,
nombre VARCHAR2(100) CONSTRAINT asignatura_nombre_nn NOT NULL,
creditos NUMBER(10, 2) CONSTRAINT asignatura_creditos_nn NOT NULL,
tipo VARCHAR2(20) CONSTRAINT asignatura_tipo_nn NOT NULL,
curso NUMBER(3) CONSTRAINT asignatura_curso_nn NOT NULL,
cuatrimestre NUMBER(3) CONSTRAINT asignatura_cuatrimestre_nn NOT NULL,
id_profesor NUMBER(10) CONSTRAINT asignatura_profesor_fk REFERENCES
profesor(id_profesor),
id_grado NUMBER(10) CONSTRAINT asignatura_grado_fk REFERENCES grado(id)
);

CREATE TABLE curso_escolar (


id NUMBER(10) CONSTRAINT curso_escolar_id_pk PRIMARY KEY,
anyo_inicio NUMBER(4) CONSTRAINT anyo_inicio_nn NOT NULL,
anyo_fin NUMBER(4) CONSTRAINT anyo_fin_nn NOT NULL
);

CREATE TABLE alumno_se_matricula_asignatura (


id_alumno NUMBER(10) CONSTRAINT alumno_se_matricula_asignatura_alumno_fk
REFERENCES persona(id),
id_asignatura NUMBER(10) CONSTRAINT
alumno_se_matricula_asignatura_asignatura_fk REFERENCES asignatura(id),
id_curso_escolar NUMBER(10) CONSTRAINT
alumno_se_matricula_asignatura_curso_escolar_fk REFERENCES curso_escolar(id),
PRIMARY KEY (id_alumno, id_asignatura, id_curso_escolar)
);

select * from departamento;

También podría gustarte