Ejercicios de modelado lógico relacional de bases de datos · Ejercicio: (avanzado) Clínica veterinaria

Ejercicio: (avanzado) Clínica veterinaria

Puedes preparar tu diagrama. .

Enunciado #

Una clínica veterinaria necesita gestionar a sus pacientes animales, sus dueños, los veterinarios y las citas. También debe registrar los medicamentos recetados durante las consultas.

Datos que debes almacenar #

  • Dueno: id_dueno (entero, identificador), nombre (texto), apellido (texto), direccion (texto), telefono (texto) y email (texto).
  • Paciente: id_paciente (entero, identificador), nombre (texto), especie (texto), raza (texto), edad (entero; años) e id_dueno (entero).
  • Veterinario: id_veterinario (entero, identificador), nombre (texto), apellido (texto), especializacion (texto) y anios_experiencia (entero).
  • Cita: id_cita (entero, identificador), fecha_hora (fechahora), motivo (texto), id_paciente (entero) e id_veterinario (entero).
  • Receta: id_receta (entero, identificador), fecha_emision (fecha), medicamento (texto), dosis (texto), frecuencia (texto) e id_cita (entero).

Reglas del negocio #

  1. Un dueño puede ser responsable de varios animales y cada paciente tiene un único dueño responsable.
  2. Un paciente puede tener varias citas y cada cita corresponde a un solo paciente.
  3. Un veterinario puede atender muchas citas y cada cita es atendida por un único veterinario.
  4. Una cita puede generar una o varias recetas. Cada receta pertenece a una única cita y contiene un medicamento con su dosis y frecuencia. Para este modelo no se crea un catálogo de medicamentos ni una tabla de líneas de receta.
  5. No dupliques en Receta el paciente ni el veterinario: ambos se conocen a través de la cita.

Diseña las cinco tablas y sus cuatro relaciones 1:N. Se conserva edad como dato del documento; en un sistema real convendría almacenar la fecha de nacimiento para poder calcularla. Las edades y los años de experiencia no pueden ser negativos y se validarían al implementar la base de datos.

Criterios para el challenge #

Conserva los nombres de tablas y campos indicados; los nombres de campos están escritos sin tildes y con guiones bajos. Los tipos entre paréntesis corresponden a las opciones del editor. Todos los campos son obligatorios (NN), salvo los marcados como opcionales; marca las claves primarias (PK), foráneas (FK) y las restricciones de unicidad que se deducen de las reglas.

Deja desactivados autoincremento, clave alternativa e índice. Deja vacíos el valor por defecto, las acciones ON DELETE y ON UPDATE y, salvo que se indique expresamente, CHECK. Usa los extremos 1 y n, o 1 y 1, en las conexiones; una FK opcional tiene NN desmarcado.

Una PK compuesta identifica por la combinación de sus campos: no marques cada componente como único por separado. Si una FK referencia una PK compuesta, dibuja una conexión por cada pareja de campos; todas juntas representan una única referencia a la misma fila. En una implementación SQL se debe declarar una sola FOREIGN KEY con todas esas columnas, no varias referencias independientes. El editor no comprueba por sí solo las reglas sobre varias filas ni todas las restricciones compuestas.

Cargando actividad al acercarte…