Creación visual de esquemas de bases de datos con DBML
Resumen
Dominar los conceptos básicos de bases de datos y normalización es vital para cualquier desarrollador. Esta sesión profundiza en cómo utilizar DBML y DB Diagram, herramientas prácticas que facilitan la creación visual y estandarizada de esquemas para bases de datos, simplificando notablemente el paso previo a trabajar directamente con sentencias SQL.
¿Qué es DBML y por qué utilizarlo en tu proyecto?
El DBML, Database Markup Language, es un lenguaje de descripción que permite representar bases de datos de forma visual y clara. Es neutral, independiente de tecnologías específicas como MySQL o PostgreSQL:
Describe bases de datos de manera gráfica y textual.
Permite exportar fácilmente a diferentes sistemas.
Facilita la comunicación entre miembros del equipo.
Usa herramientas como DB Diagram (freemium) para visualizar los esquemas y optimizar el desarrollo inicial de bases de datos en proyectos complejos.
¿Cómo crear tablas visualmente con DB Diagram?
Crear un esquema en DB Diagram es intuitivo y directo:
Regístrate en dbdiagram.io con una cuenta gratuita.
Usa sintaxis sencilla para declarar tablas y relaciones, por ejemplo:
MySQL Workbench es una herramienta que también tiene un graficador, es un cliente de SQL pero no tiene incluido el servidor que tendrás que instalarlo por tu cuenta, en la universidad nos dijeron que usáramos esa para entender mejor la base de datos.
MySQL Workbench tiene un módulo donde se pueden crear e interacturar con estos diagramas
No lo conocia, muuuy buen aporte brother !!
Quiero recomendar este otro sitio (Puedan ver ejemplos de Bases de datos).
Sitio:
Y, este otro (Ustedes haga sus Diagramas).
Sitio:
Veo que la herramienta que usa el profesor es muy similar a esta, , me parece tambien una buena opcion
corrijo, quizás te referías a ésta
En esta clase ya se está explicando bastante mal
Al diseñar relaciones entre tablas, es crucial entender el contexto de los datos que representarán. Cada tabla debe reflejar una entidad o concepto en tu dominio, y las relaciones dependen de cómo estas entidades interactúan.
Identifica las entidades: Determine qué información necesitas almacenar. Por ejemplo, en un sistema de gestión de clientes, podrías tener tablas como "Clientes", "Órdenes" y "Productos".
Define relaciones: Utiliza los tipos de relaciones:
Uno a Uno: Un cliente tiene una única dirección.
Uno a Muchos: Un cliente puede tener múltiples órdenes.
Muchos a Muchos: Un producto puede estar en múltiples órdenes y una orden puede contener múltiples productos.
Establece llaves foráneas: Las tablas se relacionan mediante llaves foráneas que referencian la clave primaria de otra tabla. Por ejemplo, la tabla "Órdenes" incluirá una columna "cliente_id" que apunta a la tabla "Clientes".
Para diseñar la estructura, puedes utilizar diagramas como DBML o herramientas como DB Diagram, que facilitan la visualización de estas relaciones. Asegúrate de revisar el contexto del negocio para definir qué tablas deben relacionarse.
En MySQL, puedes limpiar la pantalla de comandos rápidamente presionando Ctrl + L. Este atajo es útil para mantener tu consola ordenada sin necesidad de escribir el comando \! clear. Es una técnica que mejora tu eficiencia al trabajar con la terminal. Además, familiarizarte con estos atajos puede ayudarte a ser más productivo en tus proyectos de bases de datos.
Sabes si hay alguna forma de limpiar el cmd de windows cuando está en mysql? ninguno de los dos comandos que dices me funciona.
Profesor una consulta, para esta tabla "bill_products" se requiere que lleve el precio "price", para poderlo relacionar luego con la columna "total" de la tabla "bills",
Esta relacion seria necesaria ?, gracias por tu respuesta
Table bill_products { bill_product_id int [pk, not null, increment] product_id int [not null,ref:> products.product_id] bill_id int [not null,ref:> bills.bill_id] quantity int
}
Ame la herramienta!!!!
Para los curiosos:
El editor de código VisualStudioCode tiene también extensiones y herramientas para hacer diagramas de bases de datos.
También, si se trabaja en una empresa, depende de las herramientas que se tengan. En mi caso, trabajan mucho con una herramienta llamada Confluence, y ahí se pueden integrar diagramas de Draw.io
¿cuál es la extensión?
DBML nos ayuda a ver de manera esquemática nuestras tablas!
Existen casos famosos o populares donde se borraron tablas o bases completas por error?
Hay un caso reciente en Replit, en donde un agente de AI borró toda una data base de sus usuarios y llegó a inventar datos para evitar ser culpada del error.
Notas:
#DBML (HERRAMIENTA) LENGUAJE PARA ILUSTRAR, DIAGRAMAR BASES DE DATOS DE FORMA SENCILLA, LENGUAJE SIMILAR A SQL.
CREATE DATABASE PLATZI;#CREAR BASE DE DATOS
USE PLATZI;#USAR/ENTRAR EN BASE DE DATOS, PARA TRABAJAR SOBRE ELLA
SHOW databases;#MUESTRA LA BASE DE DATOS
SHOW tables;#MUESTRA LAs TABLAS DE LA BASE DE DATOS
SELECT database ();#LLAMA O MUESTRA LAS BASES DE DATOS EXISTENTES
SHOW warnings;#LISTA LOS WARNINGS, ADVERTENCIAS
DESC NOMBRE TABLA;#DESCRIPCION DE LA TABLA
DESCRIBE NOMBRE_TABLA;#DESCRIPCION DE LA TABLA
DROP TABLE NOMBRE_TABLA;#ADVERTENCIA, BORRA POR COMPLETO UNA TABLA Y SU CONTENIDO CON UN(1) SOLO ENTER!!!!!.
#limpiar la pantalla de comandos rápidamente presionando ( Ctrl + L )
#Ver ejemplos de Bases de datos. Sitio:
#Crear diagramas: Sitio:
#Herramienta/servicio con freemium sitio: dbdiagram.io, Ayuda a escribir correctamente, a entender DBML de forma rápida o ágil.
A mi en lo personal me gusta mas
Es bonito y facil de entender y te permite hacer tablas muy bonitas para documentar.
Si deseas algo mas potente y de paga prueben en mi opinion la mas bonita y completa de todas.
La clase se centra en la creación de diagramas de bases de datos utilizando DBML y DB Diagram. Se enfatiza la importancia de entender la normalización y las relaciones entre tablas. Se introduce DBML como un lenguaje de descripción que permite visualizar tablas y sus relaciones de forma clara. Se crea una tabla de clientes y se exploran las relaciones entre clientes, facturas y productos. Se destaca la necesidad de definir el orden en que se crean las tablas para una correcta estructuración de la base de datos.
Esencia de DBML
DBML es un lenguaje de marcado diseñado para definir esquemas de bases de datos con foco absoluto en la legibilidad. Transforma código simple en representaciones visuales claras, eliminando la fricción técnica entre el diseño conceptual y la implementación final.
Pilares del flujo
Definición: Estructura tablas y tipos de datos mediante una sintaxis intuitiva.
Relaciones: Define vínculos explícitos con ref para mapear la lógica de negocio.
Integración: Exporta directamente a SQL o visualiza en tiempo real con herramientas externas.
Hay una herramienta open source llamada ChartDB que puedes correr en local con docker. Funciona prácticamente igual que la herramienta que vimos en esta clase, les dejo el link del repositorio por si gustan darle un vistazo:
profesor una consulta, y los diagramas Entidad-Relacion, Relacional y el relacional fisico? recomienda hacer esos diagramas para el modelado de Bases de Datos???