0% encontró este documento útil (0 votos)
355 vistas3 páginas

BD03 Tarea

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1/ 3

EJERCICIO 1:

Vamos a crear las tablas para una liga de fútbol, donde participan futbolistas y técnicos en diversos
equipos. Empezaremos creando con SQL las siguientes tablas:
Tabla FUTBOLISTAS recogerá información sobre el cliente: Nombre, Apellido1, Apellido2, NIF,
Dirección, Sexo, Fecha de Nacimiento, Demarcación y Equipo en el que juega.
Tabla TÉCNICOS con los siguientes campos: Nombre, Apellido1, Apellido2, NIF, Dirección y Sueldo.
Tabla EQUIPOS con los siguientes campos: Nombre, Estadio, NIF del Técnico, Sede Social, Fecha de
Creación, Presupuesto.

a) Debes elegir los nombres más adecuados para los atributos teniendo en cuenta las reglas.
b) Debes elegir los tipos de datos adecuados en función del contenido de los campos.
c) Al crear las tablas debes establecer las siguientes restricciones (No será válida una solución en la
que se creen las tablas y a continuación y de forma independiente se creen las restricciones):
1. El equipo tendrá un técnico que obligatoriamente deberá existir en la BD.
2. En un equipo, el presupuesto es un dato que no puede faltar, es obligatorio que contenga
información.
3. En la tabla TÉCNICOS, el atributo sueldo no puede estar vacío.
4. Dos equipos no pueden tener la misma sede social.
5. Podremos diferenciar las tuplas de la tabla EQUIPOS por el Nombre.
6. Podremos diferenciar las tuplas de la tabla FUTBOLISTAS Y TÉCNICOS por el NIF.
7. El sueldo de un técnico debe ser entre 30000 y 300000.
8. Se debe cumplir la regla de integridad referencial.

DROP TABLE TECNICOS;

DROP TABLE EQUIPOS;

DROP TABLE FUTBOLISTAS;

CREATE TABLE TECNICOS(


NIF VARCHAR2(9),
Nombre VARCHAR2(25),
Apellido1 VARCHAR2(13),
Apellido2 VARCHAR2(13),
Direccion VARCHAR2(100),
Sueldo NUMBER(8,2) NOT NULL,
CONSTRAINT PK_TEC_NIF PRIMARY KEY (NIF),
CONSTRAINT CK_Sueldo CHECK (Sueldo BETWEEN 30000 AND 300000)
);

CREATE TABLE EQUIPOS(


Nombre_EQU VARCHAR2(50),
TEC_NIF VARCHAR2(9) NOT NULL,
Estadio VARCHAR2(100),
SedeSocial VARCHAR2(25),
Fecha_de_creacion DATE,
Presupuesto NUMBER(14,2) NOT NULL,
CONSTRAINT PK_EQU_NOM PRIMARY KEY (Nombre_EQU),
CONSTRAINT FK_TEC_NIF FOREIGN KEY (TEC_NIF) REFERENCES TECNICOS(NIF),
CONSTRAINT UK_SedeSocial UNIQUE (SedeSocial)
);

CREATE TABLE FUTBOLISTAS (


NIF VARCHAR2(9),
Nombre VARCHAR2(25),
Apellido1 VARCHAR2(13),
Apellido2 VARCHAR2(13),
Direccion VARCHAR2(100),
Sexo VARCHAR2(1),
FechadeNacimiento DATE,
Demarcacion VARCHAR2(10),
Nombre_EQUI VARCHAR2(30),
CONSTRAINT PK_FUT_NIF PRIMARY KEY(NIF),
CONSTRAINT FK_Nombre_EQU FOREIGN KEY (Nombre_EQUI) REFERENCES EQUIPOS(Nombre_EQU)
);

EJERCICIO2:
Añade las siguientes restricciones a las tablas ya creadas (no se admitirá las soluciones en las que se
creen las restricciones a la vez que las tablas del ejercicio 1. Cada punto del ejercicio 2 se realizará de
forma independiente, es decir, una sentencia SQL). Una vez que están ya creadas las tablas vamos a
modificarlas:
1. Crea un nuevo atributo llamado Edad de tipo numérico a la tabla FUTBOLISTAS.
ALTER TABLE FUTBOLISTAS ADD (EDAD NUMBER(2));

2. Añade una restricción para que dos técnicos no puedan coincidir simultáneamente en Nombre,
Apellido1 y Apellido2.
ALTER TABLE TECNICOS ADD (
CONSTRAINT UK_Nombre UNIQUE(Nombre),
CONSTRAINT UK_Apellido1 UNIQUE(Apellido1),
CONSTRAINT UK_Apellido2 UNIQUE(Apellido2));

3. No se permite que futbolistas mayores de 60 años puedan tener un equipo.


ALTER TABLE FUTBOLISTAS ADD CHECK (EDAD < 60);

4. Modifica el campo demarcación de manera que solo pueda tomar los valores "Portero", "Defensa",
"Centrocampista" y "Delantero".
ALTER TABLE FUTBOLISTAS ADD CHECK (Demarcacion IN
('PORTERO','DEFENSA','CENTROCAMPISTA','DELANTERO'));

5. Elimina la restricción que controla los valores del sueldo.


ALTER TABLE TECNICOS DROP CONSTRAINT CK_Sueldo;

6. Elimina la columna Dirección de la tabla FUTBOLISTAS.


ALTER TABLE FUTBOLISTAS DROP COLUMN Direccion;

7. Renombra la tabla FUTBOLISTAS por JUGADORES.


ALTER TABLE FUTBOLISTAS RENAME TO JUGADORES;

8. Elimina la tabla JUGADORES.


DROP TABLE JUGADORES;

9. Crea un usuario con tu nombre_apellido y clave BD03 y dale todos los privilegios sobre la tabla
EQUIPOS.
CREATE USER JESUS_GARCIA IDENTIFIED BY BD03
DEFAULT TABLESPACE SYSTEM
QUOTA 5M ON SYSTEM;
GRANT CREATE SESSION TO JESUS_GARCIA;
GRANT ALL PRIVILEGES ON SYSTEM.EQUIPOS TO JESUS_GARCIA;

10. Elimina los permisos para modificar o actualizar la tabla EQUIPOS del usuario anterior.
REVOKE UPDATE SYSTEM.EQUIPOS FROM JESUS_GARCIA;

Criterios de puntuación. Total 10 puntos.


Ejercicio 1: 5 puntos
Sintaxis correcta 1,2 puntos. Nota: Al ejecutar en el editor de SQL debe funcionar.
Elección adecuada de los tipos de datos 0,5 puntos.
Elección adecuada de los nombres 0,5 puntos
Diseño adecuado de las restricciones. Apartados 1-6: 0,3 puntos, apartados 7 y 8: 0,5 puntos.
Ejercicio 2: 5 puntos
Cada apartado 0,5 punto.
Recursos necesarios para realizar la Tarea.
Aunque no es estrictamente necesario tener instalada la aplicación Oracle Express Edition, si te resultará útil
para poder comprobar tus resultados.
Consejos y recomendaciones.
Para estos ejercicios tendrás que hacer uso de algunos operadores con los que aún no has trabajado, recuerda
que en el apartado "Elementos del Lenguaje. Normas de escritura" tienes un documento con los operadores más
comunes.
Aquí tienes un enlace que te pueden servir:
Operadores Oracle.
Indicaciones de entrega.
Una vez realizada la tarea elaborarás un único documento donde figuren las respuestas correspondientes. El
envío se realizará a través de la plataforma de la forma establecida para ello, y el archivo se nombrará siguiendo
las siguientes pautas:
apellido1_apellido2_nombre_SIGxx_Tarea

Asegúrate que el nombre no contenga la letra ñ, tildes ni caracteres especiales extraños. Así por ejemplo la
alumna Begoña Sánchez Mañas para la segunda unidad del MP de BD, debería nombrar esta tarea como...
sanchez_manas_begona_BD02_Tarea

También podría gustarte