본문 바로가기

기타

Quick DBD

 

 

Home - QuickDBD

Quick Database Diagrams (QuickDBD) is a simple online tool to quickly draw database diagrams by typing.

www.quickdatabasediagrams.com

Quick DBD란?

Quick Database Diagram으로, ERD를 설계하는 툴이다. 블로그 후기를 작성할 경우, 무료료 1년의 free권한을 받을 수 있다. 작년에 데이터베이스 설계하는 프로젝트를 진행할때는 workbench의 ERD 툴을 사용했었는데, 해당 툴은 무료로 제공되지만 논리적 모델링을 지원하지 않기 때문에 설계에 있어서 살짝 어려움이 있었다. Quick DBD는 별도의 소프트웨어를 다운받을 필요 없이 아래와 같이 웹사이트 내에서 설계 및 export가 가능하다는 장점이 있다. 반응 속도도 빠르고, key들을 한눈에 알아보기 쉽게 구성되어 있어서 편하게 사용 가능할 것 같다. 또한 공개적인 프로젝트 저장 및 공유가 가능하고, MySQL, SQL Server 및 Oracle지원이 가능하다는 장점이 있다. 이 블로그 글 작성을 통해 1년 pro 사용이 가능해진다면 직접 사용후 후기를 다시 작성해보아야겠다.

 

 

ERD란?

위에서 Quick DBD가 ERD를 설계하는 툴이라고 소개를 했는데, 그렇다면 ERD는 무엇일까?

  • Entity Relationship Diagram
  • 시스템의 엔티티들이 무엇이 있고, 어떤 관계가 있는지를 나타내는 다이어그램
  • 주로 데이터베이스 모델링 및 소프트웨어 엔지니어링에 사용됨

ERD 기호 및 표기법

Entity

  • 어떤 시스템인지에 따라 Entity는 사람, 장소, 사건(이벤트), 오브젝트가 될 수도 있음
  • 표현할 정보를 가지고 있는 독립적인 객체 또는 실체
  • 비슷한 속성의 개체 타입을 구성하며 개체 집합으로 묶임
  • 약한 개체(Weak Entity) : 고유적으로 구분될 정보를 가지고 있지 않은 개체. 이러한 Weak Entity는 의존하고 있는 주인 개체(Owner Entity)가 존재하며, Weak Entity의 구분자는 (Owner Entity의 구분자, Weak Entity의 Partial key) 로 구성된다.

Attributes

  • 속성은 개체(Entity)가 지니고 있는 특성, 성질 (ex. 학생(개체)의 학번, 학과 등 )
  • 속성은 기본적으로 타원으로 표현하며 개체(직사각형)와 실선으로 연결
  • 속성 도메인(Attribute Domain)이란 해당 속성이 가질 수 있는 집합 (ex. 성별(속성)의 도메인 : 남, 여)
  • Key attribute는 개체를 고유적으로 구분할 수 있는 속성 (ex. 사원 - 사번, 국민 - 주민등록번호 등)
  • Multivated attribute는 속성값이 여러 개 존재할 수 있는 속성 (ex. 부서의 위치가 1층과 4층 등 여러 곳에 존재할 수 있다면 Location 속성은 다중값 속성이 될 수 있음)
  • Partial key attribute는 약한 개체를 구분할 수 있는 속성
  • Composite attribute는 여러 속성들이 함께 구성하고 있는 속성(ex. FamilyName + FirstName = Name ) 
  • Derived attribute는 다른 속성으로부터 유도되어 가지게 된 속성 (ex. 전체 직원 수 속성, 직원 월급 속성 으로 부터 유도된 전체 직원 총 월급 예산 속성)

Relationship

  • 관계성은 ER Diagram의 가장 큰 목적 중의 하나로 개체(Entity)들 간의 관계를 표현
  • 관계를 통해 Entity를 이해하고, DB를 이해할 수 있다.
  • Strong Relationship은 개체가 다른 개체를 통해 존재할 수 있는 의존적인 관계를 뜻한다(부모 개체가 있어야 자식 개체도 존재 가능한 경우) 마름모로 표현
  • Weak Relationship은 개체가 다른 개체와 독립적으로 존재할 수 있는 독립적인 관계를 뜻한다(부모 개체와 상관없이 자식 개체가 존재 가능한 경우) 이중 마름모로 표현
  • Participation constraints(참여 제약 조건) : 전체참여(Total Participation)와 부분참여(Partial Participation)으로 나뉜다. 전체참여는 관계에 개체 집합의 모든 개체가, 부분 참여는 일부의 개체만 참여하는 것이다.
  • 다시 말해, 전체참여는 관계 (최솟값, 최댓값)에서 최솟값 >=1 , 부분참여는 최솟값 >=0 을 뜻한다.
  • Degree of Relationship(Cardinality) : 차수라고도 표현되는 관계의 정도는 1:1(One to One), 1:N(One to Many), N:1(Many to One), M:N(Many to Many)가 있다.
    • One : 일대일 혹은 일대다 관계이다. 주로 하나의 외래키가 걸린 관계라고 보면 된다.
    • Many : 다대다 관계이다. 중계 테이블을 통하여 여러개의 데이터를 바라보고 있을때 사용한다.
    • One(and only one)  : 위의 조건과 동일하게 일대일 관계이나, 하나의 row끼리만 연결된 데이터이다.
    • Zero or one : 일대일 혹은 일대 다 관계를 가지고 있으나, 필수 조건이 아님을 의미한다. 비유를 하자면 개인정보 동의시, 필수값 구분과 선택값 구분이라고 보면 될 것 같다.
    • One or Many : 일대일 혹은 다대다 관계를 가지고 있음을 의미한다. 관계를 가지고 있으나, 참조되는 row값들이 불명확함을 의미한다.
    • Zero or Many : 참조하는 테이블과의 관계가 불명확한 경우이다. 장바구니처럼 row 생성값이 없을수도, 하나일수도, 여러개일 수도 있는 경우이다.

 

 

 

 

 

 

 

출처:

https://choiseungyoun.github.io/posts/what-is-erd/

https://mulmandu17.tistory.com/68 

https://woongsin94.tistory.com/186