soluciones al ejercicio ddl 2 y 3 empresa y musica

3
EJERCICIOS TEMA 5. ALGEBRA RELACIONAL SOLUCIONES A LOS EJERCICIOS. BASE DE DATOS EMPRESA; CREATE DATABASE EMPRESA; CREATE TABLE PERSONA ( dni VARCHAR(9)PRIMARY KEY, nombre VARCHAR(20)NOT NULL UNIQUE, dirección VARCHAR (50)NOT NULL, telefono VARCHAR (9) ); CREATE TABLE EMPLEADO ( dni VARCHAR(9)PRIMARY KEY, fecha_alta DATE NOT NULL, fecha_consolidacion DATE NOT NULL, salario MONEY, departamento CHAR(3)UNIQUE, jefe VARCHAR(9) CONSTRAINT EMP_FK FOREIGN KEY (jefe) REFERENCES EMPLEADO (DNI) ON UPDATE CASCADE ON DELETE CASCADE, CONSTRAINT PER_FK FOREIGN KEY (DNI) REFERENCES PERSONA (DNI) ON UPDATE CASCADE ON DELETE CASCADE, CONSTRAINT DEP_FK FOREIGN KEY (Departamento) REFERENCES DEPARTAMENTO (cod_dep) ON UPDATE CASCADE ON DELETE CASCADE ); CREATE TABLE DEPARTAMENTO ( cod_dep CHAR(3) PRIMARY KEY, nombre VARCHAR(20)UNIQUE, presupuesto MONEY ); Ahora voy a añadir las restricciones en la tabla departamentos para controlar que la fecha de alta sea menor que la fecha de consolidación y salario con respecto de presupuesto: ALTER TABLE EMPLEADOS ADD CONSTRAINT FECHAS_CK CHECK Fecha_Alta <Fecha_consolidación, ADD CONSTRAINT SALARIO_CK CHECK SALARIO<(PRESUPUESTO*0.10)

Upload: oxygened

Post on 22-Jun-2015

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Soluciones Al Ejercicio Ddl 2 y 3 Empresa y Musica

EJERCICIOS TEMA 5. ALGEBRA RELACIONAL

SOLUCIONES A LOS EJERCICIOS.

BASE DE DATOS EMPRESA; CREATE DATABASE EMPRESA; CREATE TABLE PERSONA ( dni VARCHAR(9)PRIMARY KEY, nombre VARCHAR(20)NOT NULL UNIQUE, dirección VARCHAR (50)NOT NULL, telefono VARCHAR (9) ); CREATE TABLE EMPLEADO ( dni VARCHAR(9)PRIMARY KEY, fecha_alta DATE NOT NULL, fecha_consolidacion DATE NOT NULL, salario MONEY, departamento CHAR(3)UNIQUE, jefe VARCHAR(9) CONSTRAINT EMP_FK FOREIGN KEY (jefe) REFERENCES EMPLEADO (DNI) ON UPDATE CASCADE ON DELETE CASCADE, CONSTRAINT PER_FK FOREIGN KEY (DNI) REFERENCES PERSONA (DNI) ON UPDATE CASCADE ON DELETE CASCADE, CONSTRAINT DEP_FK FOREIGN KEY (Departamento) REFERENCES DEPARTAMENTO (cod_dep) ON UPDATE CASCADE ON DELETE CASCADE ); CREATE TABLE DEPARTAMENTO ( cod_dep CHAR(3) PRIMARY KEY, nombre VARCHAR(20)UNIQUE, presupuesto MONEY );

Ahora voy a añadir las restricciones en la tabla departamentos para controlar que la

fecha de alta sea menor que la fecha de consolidación y salario con respecto de

presupuesto:

ALTER TABLE EMPLEADOS

ADD CONSTRAINT FECHAS_CK CHECK Fecha_Alta <Fecha_consolidación,

ADD CONSTRAINT SALARIO_CK CHECK SALARIO<(PRESUPUESTO*0.10)

Page 2: Soluciones Al Ejercicio Ddl 2 y 3 Empresa y Musica

EJERCICIOS TEMA 5. ALGEBRA RELACIONAL

SOLUCIONES A LOS EJERCICIOS.

EJERCICIO 3 – MUSICA.

CREATE DATABASE MUSICA;

CREATE TABLE GRUPO

(

num_grupo INT PRIMARY KEY,

nom_grupo VARCHAR(50) NOT NULL,

año DATE

);

CREATE TABLE INTEGRANTES

(

num_integrante INT,

num_grupo INT,

nom_integrante VARCHAR(20),

ape_integrante VARCHAR(30),

Año_nacimiento DATE,

CONSTRAINT int_pk PRIMARY KEY (num_integrante , num_grupo ),

CONSTRAINT gru_fk FOREIGN KEY (num_grupo) REFERENCES grupo

(num_grupo)

ON UPDATE CASCADE ON DELETE CASCADE

);

CREATE TABLE DISCOS

(

num_disco INT NOT NULL,

num_grupo INT NOT NULL,

titulo VARCHAR(25),

año_creacion DATE,

CONSTRAINT dis_pk PRIMARY KEY (num_disco , num_grupo ),

CONSTRAINT gru_fk FOREIGN KEY (num_grupo) REFERENCES grupo

(num_grupo) ON UPDATE CASCADE ON DELETE CASCADE

);

Page 3: Soluciones Al Ejercicio Ddl 2 y 3 Empresa y Musica

EJERCICIOS TEMA 5. ALGEBRA RELACIONAL

SOLUCIONES A LOS EJERCICIOS.

CREATE TABLE CANCIONES

(

num_grupo INT NOT NULL,

num_disco INT NOT NULL,

num_cancion INT NOT NULL,

titulo VARCHAR(20),

duracion numeric(4,2),

CONSTRAINT can_pk PRIMARY KEY (num_grupo , num_disco , num_cancion ),

CONSTRAINT GRUP_FK FOREIGN KEY (num_grupo) REFERENCES GRUPO

(num_grupo) ON UPDATE CASCADE ON DELETE CASCADE,

CONSTRAINT DISC_FK FOREIGN KEY (num_disco) REFERENCES DISCOS

(num_disco) ON UPDATE CASCADE ON DELETE CASCADE

)