Computers">
Nothing Special   »   [go: up one dir, main page]

Dam BD02

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 3

Ejercicio 1

Vamos a crear las tablas para una Academia donde se imparten distintos cursos de
informtica. Empezaremos creando con SQL las siguientes tablas:

1. Tabla ALUMNOS recoger informacin sobre el alumnado: Nombre, Apellido1, Apellido2, NIF,
Direccin, Sexo, Fecha de Nacimiento y Curso en el que se matricula.

CREATE TABLE alumnos (


Nombre VARCHAR2 (15),
Apellido1 VARCHAR2 (25),
Apellido2 VARCHAR2 (25),
NifA CHAR (9) CONSTRAINT alu_nif_PK PRIMARY KEY,
Direccin VARCHAR2 (50),
Sexo CHAR (1) CONSTRAINT alu_sex_CK CHECK (sexo IN (H, M)),
F_Nacimiento DATE,
Curso VARCHAR2 (50) NOT NULL,
CONSTRAINT alu_cur_FK FOREIGN KEY (Curso) REFERENCES cursos (NombreCurso)
);

2. Tabla CURSOS con los siguientes campos: Nombre del Curso, Cdigo del Curso que lo identifica,
NIF del Profesor, Mximo nmero de alumnos/as recomendado, Fecha de inicio, Fecha final,
Nmero de horas totales del curso. Los alumnos/as no pueden compaginar varios cursos a la vez.

CREATE TABLE cursos (


NombreCurso VARCHAR2 (50) CONSTRAINT cur_nom_UK UNIQUE,
codigoCurso VARCHAR2(10) CONSTRAINT cur_cod_PK PRIMARY KEY,
nifProfesor CHAR (9),
numMaxAlumnos NUMBER (3),
fInicio DATE,
fFin DATE,
horasCurso NUMBER (4) NOT NULL,
CONSTRAINT cur_fechas_CK CHECK (fInicio < fFin),
CONSTRAINT cur_nif_FK FOREIGN KEY (nifProfesor) REFERENCES profesores (NifP)
);

3. PROFESORES con los siguientes campos: Nombre, Apellido1, Apellido2, NIF, Direccin, Titulacin,
Salario.

CREATE TABLE profesores (


Nombre VARCHAR2 (15),
Apellido1 VARCHAR2 (25),
Apellido2 VARCHAR2 (25),
NifP CHAR (9) CONSTRAINT prof_nif_PK PRIMARY KEY,
Direccion VARCHAR2 (50),
Titulacion VARCHAR2 (30),
Salario NUMBER (10,2) NOT NULL,
CONSTRAINT pro_nom_UK UNIQUE (nombre, apellido1, apellido2)
);
Ejercicio 2
Vamos a modificar las tablas que hemos creado en el apartado anterior:

1. Crea un nuevo atributo llamado Edad de tipo numrico a la tabla ALUMNOS.

ALTER TABLE alumnos ADD (Edad NUMBER (2));

2. Modifica el campo que has creado anteriormente para que la edad del alumno o alumna est
comprendida entre 14 y 65 aos.

ALTER TABLE alumnos MODIFY (Edad NUMBER (2) CHECK (Edad BETWEEN 14 AND 65));

3. Modifica el campo Nmero de horas del CURSO de manera que solo pueda haber cursos con 30,
40 o 60 horas

ALTER TABLE cursos MODIFY (horasCurso NUMBER (4) CHECK (horasCurso IN (30, 40, 60)));

4. No podemos aadir un curso si su nmero mximo de alumnos es inferior a 15

ALTER TABLE cursos MODIFY (numMaxAlumnos NUMBER (3) CHECK (numMaxAlumnos > 15));

5. Elimina la restriccin que controla los valores que puede tomar el atributo Sexo

ALTER TABLE alumnos DROP CONSTRAINT alu_sex_CK;

6. Elimina la columna Direccin de la tabla PROFESORES

ALTER TABLE profesores DROP COLUMN Direccion;

7. Cambia la clave primaria de la tabla PROFESORES por Nombre y Apellidos.

ALTER TABLE cursos DROP CONSTRAINT cur_nif_FK;


ALTER TABLE profesores DROP CONSTRAINT prof_nif_PK;
ALTER TABLE profesores DROP CONSTRAINT pro_nom_UK;
ALTER TABLE profesores ADD CONSTRAINT pro_nom_PK PRIMARY KEY (nombre, apellido1, apellido2);

8. Renombra la tabla PROFESORES por TUTORES.

RENAME profesores TO tutores;

9. Elimina la tabla ALUMNOS.

DROP TABLE alumnos;


10. Crea un usuario con tu nombre y clave BD02 y dale todos los privilegios sobre la tabla CURSOS.

CREATE USER pepe IDENTIFIED BY bd02;

GRANT ALL PRIVILEGES ON cursos TO pepe;

11. Ahora al usuario anterior qutale permisos para modificar o actualizar la tabla CURSOS.

REVOKE ALTER, UPDATE ON cursos FROM pepe;

También podría gustarte