Proyecto Northwind¶
La BD Northwind es una base de datos de una empresa ficticia que se usa en los productos Microsoft como base de datos completa y para practicar:
Northwind Traders es una organización ficticia que gestiona pedidos, productos, clientes, proveedores y muchos otros aspectos de una pequeña empresa.
Este ejemplo apareció con las primeras versiones de Microsoft Access y todavía está disponible como plantilla de Access.
Una descripción de necesidades de esta empresa podría ser la siguiente:
La empresa Northwind Traders importa y exporta alimentos especiales a cualquier parte del mundo. Necesitamos guardar las transacciones de venta entre la empresa y sus clientes. Y por supuesto los detalles de la compra de la empresa a sus proveedores.
Hay que hacer un seguimiento de los pedidos y del inventario de productos. Además los productos los tenemos organizados por categorías.
Las órdenes de los pedidos son hechas por un empleado de la empresa, y queremos registrar también la compañía que lo envía (el transportista).
Tenemos que gestionar también los datos de contacto tanto de los empleados, de los proveedores y los clientes. Nos llega con saber dirección, código postal, país, ciudad y teléfono. Ah! Y necesitamos felicitar, todos los años, los cumpleaños a los empleados.
Tareas a Realizar¶
Diseño lógico usando la notación CD (Crow’s Foot).
Solución
No tiene porqué ser exactamente este, pero te sirve de referencia. Puedes ver la explicación completa .
Diseño físico. Dependerá del SGBD que utilices. Tendrás que revisar la documentación de tu SGBD para ver:
Las instrucciones DDL utilizadas
Cómo se implementan las restricciones
Qué tipos de datos permite implementar
Solución Sqlite
Solución Mariadb/Mysql
Solución Postgres
Guía de Evaluación¶
¿Tienes una imagen (PNG / JPG) con el diseño lógico en notación CF?
¿Están todas las entidades detectadas y con los atributos adecuados?
¿Están correctamente relacionadas, es decir, la versión inicial del diagrama ER sería correcta?
¿Están las cardinalidades y participación correctamente diseñadas? Es decir, ¿está el diseño ER con notación CF bien completo?
¿Están las tablas y sus atributos correctamente diseñadas en sql?
¿Están claras las claves primarias de cada tabla?
¿Y las claves ajenas?
¿Están todas las restricciones (atributo y tabla) correctamente diseñadas?
¿Es coherente el archivo .sql con el modelo ER?
Hago la importación (en sqlite o el que me digas) y está todo correcto.