Está en la página 1de 2

DISEÑO Y ADMINISTRACIÓN DE BBDD

4º Grado Ingeniería Informática y


Doble Grado en Informática y ADE
Curso 2022/23

PRÁCTICA 3: IMPLEMENTACIÓN EN MARIADB


Dado el siguiente esquema relacional (diagrama relacional + apartado de supuestos semánticos no recogidos en el
diagrama), implementar el esquema en el Sistema Gestor de Bases de Datos MariaDB del entorno de máquinas virtuales
de la asignatura.
NOTA IMPORTANTE: el siguiente esquema es un subconjunto modificado a propósito para abarcar la problemática que
nos ocupa, por lo tanto, NO SE HA DE TOMAR COMO SOLUCIÓN A LA PRÁCTICA 1_Parte2, aunque está relacionado.

ESQUEMA RELACIONAL
1. Diagrama relacional

2. Supuestos semánticos no incluidos en el diagrama relacional


A. DOMINIOS:
1. Todos los atributos n_doc son UUIDs
2. ESTADO.valor IN {creada, emitida, pagada, rectificada}
3. FACTURA.tipo IN {emitida, recibida, rectificativa}
4. FACTURA_EMITIDA.n_factura es un número secuencial
5. FACTURA_EMITIDA.serie es el año en el que se emite la factura
6. PAGO_RECIBIDO.referencia es cadena de caracteres
7. PAGO_RECIBIDO.medio IN {TPV, PayPal}
Nota: la norma UIT-T Rec. X.667 | ISO / IEC 9834-8: 2005 define el formato de un UUID (universally unique
identifier)

B. CHECKS:
1. Todas las marcas temporales son valores positivos
C. ASERCIONES / OTROS:
1. Si FACTURA.tipo = recibida ⇒  tupla con el mismo ID en FACTURA_RECIBIDA y ∄ tupla en FACTURA
EMITIDA
2. Si FACTURA.tipo = emitida ⇒  tupla con el mismo ID en FACTURA_EMITIDA y ∄ tupla en
FACTURA_RECIBIDA
3. Si FACTURA.tipo = rectificativa ⇒  tupla con el mismo ID en FACTURA_EMITIDA y ∄ tupla en
FACTURA_RECIBIDA y  tupla con el mismo ID en FACTURA_RECTIFICATIVA
4. Cuando una factura rectificativa corrige a otra factura, el estado de esta última se debe llevar a
“rectificada”
5. Cuando una factura rectificativa corrige a otra factura, el estado de esta última se debe llevar a
“rectificada”
6. Si la suma de los pagos recibidos contra una factura es mayor o igual a su importe, la factura pasará al
estado de “pagada”
7. Si la suma de los pagos enviados contra una factura recibida es igual a su importe, la factura pasará al
estado de “pagada”

SE PIDE:
Implementar en el SGBD MariaDB, realizando en cada punto todas las aclaraciones y justificaciones necesarias.
1. (0,20 ptos.) Implementación de TABLAS, con todas las restricciones de clave primaria, alternativas, ajenas,
restricciones de integridad referencial, definiendo si los atributos pueden o no ser nulos, sus tipos y restricciones
que puedan existir en sus dominios. Los nombres de las tablas y de los atributos deben ser exactamente iguales
a los indicados en el grafo relacional para poder realizar pruebas sobre la implementación realizada.
2. (0,20 ptos.) Implementación de Checks, Aserciones y Disparadores (o procedimientos almacenados)
especificados en el apartado 2 Supuestos semánticos no incluidos en el diagrama relacional
3. (0,10 ptos.) Consultas:
a. Necesidades de tesorería de los últimos 12 meses, es decir, debe presentar la diferencia mensual entre
los cobros recibidos y los pagos realizados
b. Facturas pendientes de pago y sus importes

FECHA Y MODO DE ENTREGA


Se entregará un fichero único en formato .zip a través de aula global de nombre GrupoX_Imp.zip, donde se sustituye X
por el número de grupo de prácticas. Por ejemplo: Grupo1_Imp.zip
El fichero contendrá:
Cinco scripts SQL para:
1. Borrado y creación del esquema
2. Definición del esquema externo (vistas) si fuera necesario
3. Implementación de la lógica para el control de los supuestos semánticos no incluidos
4. Inserción de tuplas para crear un escenario de pruebas y algunas pruebas
5. Consultas
Documento .pdf con la memoria de la práctica conteniendo:
● Brevemente se especificarán aclaraciones necesarias para facilitar su corrección
● CÓDIGO Y EJEMPLOS de funcionamiento (con datos) para cada check/aserción/disparador
● CÓDIGO Y EJEMPLOS de funcionamiento (con datos) para cada CONSULTA

La fecha límite de entrega será: viernes 17 de marzo a las 22:00 horas

También podría gustarte