Ejercicios de Diseño de Modelo de Datos#

Requisitos Previos

Necesitas tener conocimientos previos de diseño de base de datos (p.ej Almacenar (y usar) Datos y Diseñando una BD), para realizar estos ejercicios.

Las herramientas de referencia son:

  1. Usamos el Modelo IE (Notación Crow’s Foot) para los diagramas ER

  2. Usamos Sqlite como SGBDR de referencia (después PostgreSQL)

Diseño Conceptual#

  1. Ejemplo UPV . Restaurante

    Se desea construir una base de datos que almacene la carta de un restaurante.

    Para cada plato, se desea obtener su nombre, descripción, nivel de dificultad (de elaboración), una foto y el precio final para el cliente.

    Cada plato pertenece a una categoría. Las categorías se caracterizan por su nombre, una breve descripción y el nombre del encargado.

    Además de los platos, se desea conocer las recetas para su realización, con la lista de ingredientes necesarios, aportando la cantidad requerida, las unidades de medida (gramos, litros, etc…) y cantidad actual en el almacén.

  2. Realizar el Modelo ER de la base de datos hubway.db

    La puedes ver en Ejercicios para usar SQL

  3. Ejemplo Regina Univ. Sistema Citas Médicas

    Un doctor puede tener muchas citas, o ninguna. Cada cita sólo puede ser con un doctor concreto. Un paciente puede reservar varias citas, y para estar registrado en el sistema tiene que tener al menos una cita.

    Cada cita genera una factura (sólo una), y esa factura puede realizarse en diferentes pagos en diferentes plazos. No hace falta pagar la factura al recibirla, es decir, la factura puede estar con todo el saldo pendiente. Un paciente puede tener muchos pagos pendientes, pero todos los pagos de una factura son hechos por el mismo paciente.

    Algunos pacientes tienen una compañía aseguradora (y sólo una, es decir, no pueden estar asegurados con diferentes compañías). En el caso de pacientes asegurados, los pagos los hace la compañía aseguradora, no el paciente

Diseño Lógico#

Entendiendo diseños de otros#

  1. Desde JorgeSanchez.net :

    https://jorgesanchez.net/manuales/gbd/diseno-logico-relacional-web-resources/image/3.png
  2. Desde García Paraneda

    https://bookdown.org/paranedagarcia/database/images/db-fisico.png
  3. Desde Regina Univ :

    ../_images/ejemplo_ru.png

En todos los casos, entender el diseño suele ser responder a algunas de las siguientes preguntas:

  1. ¿Cual es la clave primaria de la tabla?

  2. ¿Cual podría ser la clave primaria de una tabla?

  3. ¿Qué campos pueden tener valores nulos?

  4. ¿Qué valor puede tener un campo concreto?

  5. ¿Cuales son las claves foráneas?

  6. ¿Qué registro podría introducirse en una tabla concreta?

  7. ¿Con qué tablas está relacionada una tabla concreta?

Convertir de Notación Chen a Notación Crow’s Foot#

  1. Desde García Paraneda

    https://bookdown.org/paranedagarcia/database/images/db-logico.jpg
  2. Desde Wikipedia

    https://upload.wikimedia.org/wikipedia/commons/f/f6/Ejemplo_Diagrama_E-R_extendido.PNG
  3. Desde Wikipedia Inglés

    https://upload.wikimedia.org/wikipedia/commons/7/72/ER_Diagram_MMORPG.png

Diseño Físico#

Según el SGBD que estés utilizando, usa estos diagramas lógicos y defínelos en SQL

  1. Uno sencillo:

    https://vertabelo.com/blog/crow-s-foot-notation/crows-foot-notation-many-to-many.png
  2. Desde García Paraneda

    https://bookdown.org/paranedagarcia/database/images/db-fisico.png
  3. Desde Regina Univ :

    ../_images/ejemplo_ru.png

Referencias a Diseños#

Vertabelo (Servicio SAAS de Diseño de Modelos de datos) tiene algunos muy buenos ejemplos . Son muy completos y más complejos de lo que necesitamos ahora, pero por si quereis profundizar en el tema.