Está en la página 1de 3

Actividad No 3.

Presentación y objetivos

La actividad No3, consta de dos preguntas; la primera sobre diseño e implementación, la


segunda sobre manipulación de datos (incluye consultas SQL).

1. Diseño e implementación.

Nos disponemos a diseñar una base de datos para almacenar información sobre el servicio
de tickets restaurant que utilizan algunas empresas para las comidas de los empleados
durante su jornada laboral. Para ello, la base de datos contendrá información sobre los
tipos de vales de restaurante que se utilizan.

Las empresas se identifican con el CIF y todas tienen un nombre único identificador.

Los restaurantes se identifican con el nombre. De ellos guardaremos la dirección, el preció


del menú (si lo ofrecen) y el detalle de la posible especialidad de cocina que tienen de
entre las diversas posibles.

Existen diferentes tipos de vales y dada uno de ellos tiene una denominación distinta.
Todos los vales son aceptados en todos los restaurantes y se quiere registrar el uso de
estos como medio de pago de las comidas de los empleados. Nos interesa también
guardar el precio de cada tipo de vale y qué empresas utilizan cada tipo de vale.

Los restaurantes pueden tener contratados camareros. Un camarero no puede estar


contratado por más de un restaurante y entre los camareros de un restaurante hay que
pueden considerarse sustitutos los unos de los otros. Existen algunos camareros que
pueden ejercer de 'maître' en el restaurant donde trabajan. En un restaurant únicamente
puede haber un maître.

Los empleados de las empresas pueden ser contratados por unos periodos de tiempo
determinados para su especialidad laboral y nos interesa tener constancia de dicho
histórico. Tanto la especialidad con la descripción de los estudios que le corresponde se
especificará textualmente. Un empleado puede tener diversas especialidades laborales.

De tota persona que trabaja en una empresa o que hace de camarero se desean
almacenar los siguientes datos; el nombre, el apellido, la calle donde vive, el código postal
correspondiente, la fecha de nacimiento, la fecha de defunción (si existe) y el género.

1
Actividad No 3.

Se pide:

a. Realizad el diagrama entidad/relación para la base de datos que dará soporte al


sistema informático que almacenará todos los datos, según el modelo descrito (se
deben incluir exclusivamente las entidades y relaciones básicas que se pueden
extraer del enunciado).

b. Realizad la transformación del modelo ER al modelo relacional. Cread claves


identificadoras sintéticas siempre que lo creáis necesario.

NOTA: Las tablas que se piden crear/cargar en el segundo ejercicio deben servir para
comprobar la idoneidad de las entidades, atributos y relaciones aquí propuestas (por
coherencia, se pide conservar el nombre de las tablas que existen en el segundo
ejercicio).

c. Cread las tablas según atributos, claves (primarias y foráneas) y restricciones que se
entrevean en el SCHEMA, según las creadas en el modelo relacional.

NOTA: No utilicéis herramientas de generación automática de código. No declaréis


las restricciones a posteriori (no utilicéis ALTER TABLE para añadir restricciones
después de la creación de las tablas). Dad nombre a todas las restricciones.
Indentad/tabulad el código SQL para que sea muy legible (mostrad un único campo
por línea).

INDICACIONES: Utilizad claves primarias sintéticas para la tabla que contendrá los
datos de las especialidades y para el identificador de la tabla donde se almacenan
los tickets cambiados. Cread concretamente estos campos cómo tipo 'SERIAL'.

RESTRICCIONES A TENER EN CUENTA OBLIGATORIAMENTE AL CREAR LAS


TABLAS:
- Un camarero únicamente puede ser maître del restaurante donde trabaja.
- De estar informada la fecha de defunción de una persona, ha de ser
posterior a la de nacimiento.
- El nombre y los apellidos de una persona siempre han de estar informados.
- El género de una persona puede no estar informado, pero de estarlo, deberá
contener una H o una M.

2. CREACIÓN DE LAS TABLAS:


Implementar sentencias Sql, para la creación de tablas.

Ejercicio voluntario:
Repetid las sentencias de creación de las tablas con la sintaxis SQL de MySQL/MariaDB,
utilizando InnoDB.

2
Actividad No 3.

3. Manipulación y consultas

Para probar la base de datos diseñada la empresa gestora de los vales restaurante nos
ceden un conjunto de datos semisintéticos de restaurantes, tickets y camareros.

a. Teniendo en cuenta la estructura de las tablas realitzades y el contenido de los


ficheros a realizar por los estudiantes, se pide poblar de datos las siguientes tablas:

Tabla COMPANY

Utilizar la instrucción COPY para cargar los datos en la tabla del mismo nombre, los
datos pueden ser proporcionados por el alumno, por medio de un archivo txt

Tabla SPECIALTY

Utilizar la instrucción COPY para cargar los datos en la tabla del mismo nombre, los
datos pueden ser proporcionados por el alumno, por medio de un archivo txt

Tabla RESTAURANT

Utilizar la instrucción COPY para cargar los datos en la tabla del mismo nombre, los
datos pueden ser proporcionados por el alumno, por medio de un archivo txt
.

Tabla WAITER

Utilizar la instrucción COPY para cargar los datos en la tabla del mismo nombre, los
datos pueden ser proporcionados por el alumno, por medio de un archivo txt

Cumplimentad con el número de registros, según los datos disponible después de


realizar los procesos de carga de datos, la tabla correspondiente:

Nombre Tabla Num. total


registros
Restaurant
Waiter
Company
Specialty

b. Realizad la siguiente consulta SQL:

Se desea obtener el tipo de especialidad de los restaurantes en que se han entregado


más tickets. En concreto, se desea recuperar el número total de tickets cambiados y el
tipo de especialidad de dichos restaurantes.