QuickDBD

Accept yourself, your strengths, your weaknesses, your truths, and know what tools you have to fulfill your purpose.

Steve Maraboli, Life, the Truth, and Being Free

QuickDBD es una herramienta que permite Dibujar diagramas de base de datos escribiendo.

Su interfaz es bastante sencilla, consiste de un editor de texto similar a lenguage de marcado (Markdown) del lado izquierdo, y del lado derecho muestra el diagrama que se está generando.

El diagrama ejemplo es claro, la definición de una tabla consiste en una línea seguido por un texto que corresponde al nombre de la tabla. Para iniciar la definición de los campos, se debe de escribir en una nueva línea el caracter guión (‘-‘), y en las líneas posteriores se definen los campos, incluyento la posiblidad de definir su tipo y la relación que tiene el campo con otras tablas.

Existe la posiblidad de colocarle un alias a las tablas, y poder hacer referencia a este alias para definir las relaciones. Para definir un alias se utiliza la palabra clave as seguido por el alias asignado a la tabla, incluso es posible agregar más de un alias separando cada uno con una coma.

# Modify this code to update the DB schema diagram.
# To reset the sample schema, replace everything with
# two dots ('..' - without quotes).

Customer
-
CustomerID PK int
Name string INDEX
Address1 string
Address2 NULL string
Address3 NULL string

Order
-
OrderID PK int
CustomerID int FK >- Customer.CustomerID
TotalAmount money
OrderStatusID int FK >- os.OrderStatusID

OrderLine as ol
----
OrderLineID PK int
OrderID int FK >- Order.OrderID
ProductID int FK >- p.ProductID
Quantity int

# Table documentation comment 1 (try the PDF/RTF export)
Product as p # Table documentation comment 2
------------
ProductID PK int
# Field documentation comment 1
# Field documentation comment 2 
Name varchar(200) UNIQUE # Field documentation comment 3
Price money

OrderStatus as os
----
OrderStatusID PK int
Name UNIQUE string

El resultado, es el siguiente diagrama, en donde se puede apreciar el detalle y estilo, e incluso permité reorganizar manualmente la posición de las tablas en el diagrama. Por el momento es posible mover cada tabla una por una, o mover todas las tablas al mismo tiempo, pero no el seleccionar tablas específicas y tener la opción de moverlas.

QuickDBD

La magia no termina con el diagrama, QuickDBD permite exportar el diagrama y generar un script de creación de las tablas. Al momento de la publicación de este artículo, QuickDBD permite las siguientes opciones.

  • ANSI SQL
  • MySQL/MariaDB
  • Oracle (12c+)
  • PostgreSQL
  • SQL Server

Incluso tiene la capacidad de generar documentación en PDF o RTF, o incluso guardar el diagrama como una imágen PNG o SVG.

-- Exported from QuickDBD: https://www.quickdatatabasediagrams.com/
-- NOTE! If you have used non-SQL datatypes in your design, you will have to change these here.

-- Modify this code to update the DB schema diagram.
-- To reset the sample schema, replace everything with
-- two dots ('..' - without quotes).

SET XACT_ABORT ON

BEGIN TRANSACTION QUICKDBD

CREATE TABLE [Customer] (
    [CustomerID] int  NOT NULL ,
    [Name] string  NOT NULL ,
    [Address1] string  NOT NULL ,
    [Address2] string  NULL ,
    [Address3] string  NULL ,
    CONSTRAINT [PK_Customer] PRIMARY KEY CLUSTERED (
        [CustomerID] ASC
    )
)

CREATE TABLE [Order] (
    [OrderID] int  NOT NULL ,
    [CustomerID] int  NOT NULL ,
    [TotalAmount] money  NOT NULL ,
    [OrderStatusID] int  NOT NULL ,
    CONSTRAINT [PK_Order] PRIMARY KEY CLUSTERED (
        [OrderID] ASC
    )
)

CREATE TABLE [OrderLine] (
    [OrderLineID] int  NOT NULL ,
    [OrderID] int  NOT NULL ,
    [ProductID] int  NOT NULL ,
    [Quantity] int  NOT NULL ,
    CONSTRAINT [PK_OrderLine] PRIMARY KEY CLUSTERED (
        [OrderLineID] ASC
    )
)

-- Table documentation comment 1 (try the PDF/RTF export)
-- Table documentation comment 2
CREATE TABLE [Product] (
    [ProductID] int  NOT NULL ,
    -- Field documentation comment 1
    -- Field documentation comment 2
    -- Field documentation comment 3
    [Name] varchar(200)  NOT NULL ,
    [Price] money  NOT NULL ,
    CONSTRAINT [PK_Product] PRIMARY KEY CLUSTERED (
        [ProductID] ASC
    ),
    CONSTRAINT [UK_Product_Name] UNIQUE (
        [Name]
    )
)

CREATE TABLE [OrderStatus] (
    [OrderStatusID] int  NOT NULL ,
    [Name] string  NOT NULL ,
    CONSTRAINT [PK_OrderStatus] PRIMARY KEY CLUSTERED (
        [OrderStatusID] ASC
    ),
    CONSTRAINT [UK_OrderStatus_Name] UNIQUE (
        [Name]
    )
)

ALTER TABLE [Order] WITH CHECK ADD CONSTRAINT [FK_Order_CustomerID] FOREIGN KEY([CustomerID])
REFERENCES [Customer] ([CustomerID])

ALTER TABLE [Order] CHECK CONSTRAINT [FK_Order_CustomerID]

ALTER TABLE [Order] WITH CHECK ADD CONSTRAINT [FK_Order_OrderStatusID] FOREIGN KEY([OrderStatusID])
REFERENCES [os] ([OrderStatusID])

ALTER TABLE [Order] CHECK CONSTRAINT [FK_Order_OrderStatusID]

ALTER TABLE [OrderLine] WITH CHECK ADD CONSTRAINT [FK_OrderLine_OrderID] FOREIGN KEY([OrderID])
REFERENCES [Order] ([OrderID])

ALTER TABLE [OrderLine] CHECK CONSTRAINT [FK_OrderLine_OrderID]

ALTER TABLE [OrderLine] WITH CHECK ADD CONSTRAINT [FK_OrderLine_ProductID] FOREIGN KEY([ProductID])
REFERENCES [p] ([ProductID])

ALTER TABLE [OrderLine] CHECK CONSTRAINT [FK_OrderLine_ProductID]

CREATE INDEX [idx_Customer_Name]
ON [Customer] ([Name])

COMMIT TRANSACTION QUICKDBD

La acción de importar se encuentra limitada debido a que actualmente no soportan todas las funcionalidades de las bases de datos, por lo que la secuencia importar, modificar y exportar, no es recomendada ya que es posible que se pueda perder información.

La documentación generada por QuickDBD incluye para cada tabla, descripción de la misma, nombre de los campos, descripción del campo, tipo, valor por defecto y una columna otros, en donde se detallan los atributos adicionales que fueron asignados al campo.

QuickDBD export to PDF

QuickDBD posee actualmente dos tipos de planes. Siendo el básico “gratis”, y el plan PRO con una suscripción de $14.00 mensuales, con la posibilidad de pagar $7 la primera semana (oferta única).

  • Básico
    • Máximo número de diagramas: 1
    • Máximo de tablas por diagrama: 10
    • Diagramas privados: no disponible
    • Posibilidad de exportar imagenes, sql y documento: disponible
  • PRO
    • Máximo número de diagramas: 30
    • Máximo de tablas por diagrama: cualquier número
    • Diagramas privados: disponible
    • Posibilidad de exportar imagenes, sql y documento: disponible

Por el momento me encuentro evaluando esta herramienta, lo utilizaré para el diseño de un proyecto de la universidad, se ve que QuickDBD tiene mucho potencial.

El último Twitt de la cuenta de QuickDBD fue el 8 de febrero del 2019, y actualmente su plan de trabajo se encuentra disponible y vacío, por lo que no está claro si tendrá nuevas funcionalidades.


Enlace a QuickDBD

Enlace a plan de trabajo de QuickDBD

Publicado por

Jonathan Búcaro

Scrum Master Certified ™, Planeswalker

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s