백엔드 Back-end/데이터베이스 Database

dbdiagram.io를 활용해서 쉽고 간편하게 데이터베이스 모델링하기

Tap to restart 2023. 6. 20. 08:00

dbdiagram.io

DBML(Database Markup Language)이란 언어를 사용해서 관계형 데이터베이스 논리적 설계를 돕는 무료 툴이다. ORM(Object Relational Mapping) 또는 SQL DDL(Data Definition Language)을 활용한 물리적 설계 전에 미리 간편하게 설계해서 시간을 절약할 수 있다.

 

DBML(Database Markup Language)이란?

아래 예처럼 SQL DDL을 좀 더 간소화한 것에 가깝다. 딱 설계에 필요한 정보만 남겨 DDL보다 훨씬 파악하기 쉽다.

Table users {
  id integer
  username varchar
  role varchar
  created_at timestamp
}

Table posts {
  id integer [primary key]
  title varchar
  body text [note: 'Content of the post']
  user_id integer
  status post_status
  created_at timestamp
}

Enum post_status {
  draft
  published
  private [note: 'visible via URL only']
}

Ref: posts.user_id > users.id // many-to-one

 

실제 dbdiagram.io의 예

아래 예제 DBML을 입력한 상태면 각 테이블이 화면에 나타나고 관계가 표시된다.

// Use DBML to define your database structure
// Docs: https://github.com/holistics/dbml/tree/master/dbml-homepage/docs

Table follows {
  following_user_id integer
  followed_user_id integer
  created_at timestamp 
}

Table users {
  id integer [primary key]
  username varchar
  role varchar
  created_at timestamp
}

Table posts {
  id integer [primary key]
  title varchar
  body text [note: 'Content of the post']
  user_id integer
  status varchar
  created_at timestamp
}

Ref: posts.user_id > users.id // many-to-one

Ref: users.id < follows.following_user_id

Ref: users.id < follows.followed_user_id

 

장단점

MySQL 워크벤치 등 무료 툴도 위와 같은 다이어그램을 만들어주지만, 좀 더 간편해서 좋다. 대신 DBML에 익숙해지는데 약간 시간이 필요하다. 

 

활용 예

깃허브 개인 프로젝트에 DB다이어그램을 간단히 넣고 싶을 때 활용할 수 있다.