데이터 사전 소개

표준 단어와 도메인을 등록해 두면, ERD 에서 컬럼 논리명을 적는 것만으로 물리명과 타입이 채워집니다. 도메인과 사전이 각각 무엇이고 어떤 순서로 쓰는지 살펴봅니다.

데이터 사전과 도메인이란

데이터 사전은 데이터베이스에서 쓰는 이름과 그 뜻을 모아 둔 목록입니다. 어떤 용어를 어떤 약어로 적을지, 그 용어가 무엇을 가리키는지를 조직이 미리 합의해 적어 둔 것입니다. 데이터 모델링에서는 보통 다음 세 가지로 나누어 관리합니다.

개념일반적인 정의
표준 단어이름을 이루는 가장 작은 단위입니다. 정식 명칭과 영문 약어를 짝지어 둡니다.고객 = CUST, 주문 = ORD, 일시 = DTM
표준 용어표준 단어를 조합해 만든, 실제로 쓰는 테이블명과 컬럼명입니다.주문일시 = ORD_DTM
도메인같은 성격의 값이 공통으로 가지는 데이터 타입 규칙에 이름을 붙인 것입니다.금액 = DECIMAL(15,2), 여부 = CHAR(1)

도메인은 관계형 모델에서 "속성이 가질 수 있는 값의 범위" 를 뜻하는 오래된 개념입니다. 실무에서는 타입과 길이, 소수 자릿수, NULL 허용, 기본값을 묶어 재사용하는 단위로 씁니다. 표준 단어가 이름을 통일한다면, 도메인은 그 이름이 갖는 타입을 통일합니다.

같은 뜻을 사람마다 다르게 적으면 (고객번호, cust_no, customer_id, cst_num) 같은 값이 시스템마다 다른 이름과 다른 타입으로 흩어집니다. 통합과 조회, 이관에서 드는 비용이 여기서 생깁니다. 공공 데이터 표준화 지침이나 사내 DA 표준이 이 목록을 먼저 요구하는 이유입니다.

단어에 도메인을 연결한다 — NeoSQL 의 차이

보편적으로는 이 세 목록을 각각 관리하고, 어떤 용어가 어떤 도메인을 쓰는지는 사람이 표로 맞춥니다. NeoSQL 은 사전의 단어 자체에 도메인을 연결 할 수 있습니다 — 다른 도구와 가장 다른 점입니다. "일시" 라는 단어에 DATETIME 도메인을 물려 두면, 논리명에서 그 단어가 읽히는 순간 이름과 타입이 한 번에 정해집니다. 이름 표준과 타입 표준을 두 번에 나눠 적용하지 않아도 됩니다.

NeoSQL 은 이 셋을 두 종류의 자산에 나눠 담습니다. 도메인은 도메인 자산에, 표준 단어와 조합 규칙은 사전 자산에 들어갑니다. 표준 용어는 따로 관리하지 않고, 논리명에서 조합해 만들거나(조합형) 등재된 용어와 정확히 일치할 때만 쓰도록(완성형) 정합니다.

무엇을 해결하나요

표준 단어 정의서를 옆에 띄워 두고 약어를 찾아 옮겨 적는 대신, 이름 짓는 규칙을 설계 화면 안으로 가져옵니다. 컬럼 논리명에 주문일시라고 적으면 물리명 ord_dtm 이 만들어지고, 끝 단어 "일시" 가 물고 있는 도메인이 타입과 길이, NULL 허용까지 함께 채웁니다.

아래는 조합형 사전에서 논리명을 적었을 때의 결과입니다.

논리명 입력만들어진 물리명적용되는 도메인
주문일시ord_dtm일시 · DATETIME
고객번호cust_no번호 · VARCHAR(20) 추천
사용여부use_yn여부 · CHAR(1)

물리명은 사전에 등록된 약어를 이어 붙여 만듭니다. 대소문자는 DBMS 정책을 따르므로 Oracle 이면 ORD_DTM, PostgreSQL 이면 ord_dtm 으로 들어갑니다. 손으로 입력할 때와 결과가 같습니다.

컬럼 논리명을 입력하면 물리명과 도메인이 채워지는 화면

사전의 두 가지 방식

사전이 논리명을 읽는 방식은 두 가지입니다. 자산을 만들 때 고르며, 이후 화면 동작이 갈립니다.

구분조합형완성형
읽는 방식등록된 단어를 가장 긴 것부터 끊어 읽고, 약어를 이어 붙여 물리명을 만듭니다.논리명 전체가 등재된 표기 하나와 정확히 일치할 때만 그 약어를 씁니다. 부분 조합은 하지 않습니다.
주문일시 = 주문(ORD) + 일시(DTM) → ord_dtm"고객주문" 이 등재돼 있어야 cust_ord 가 됩니다. "고객" 과 "주문" 이 따로 있어도 조합하지 않습니다.
도메인이 정해지는 곳조합의 끝 단어에 연결된 도메인을 후보로 올립니다. 후보가 여럿이면 추천만 합니다.일치한 단어에 연결된 도메인이 그대로 후보입니다. 단어가 하나라 후보도 하나입니다.
읽지 못했을 때읽어낸 구간만 물리명에 넣고, 읽지 못한 글자에만 표시를 남깁니다.물리명을 만들지 않고 논리명 전체를 미등록으로 표시합니다.
입력 도움후보 목록을 띄우지 않습니다. 여러 단어를 이어 붙이는 중이라 지금 치는 구간의 경계를 알 수 없기 때문입니다.치는 동안 등재된 명칭 후보를 추천하고, 고르면 물리명과 도메인까지 함께 정해집니다.

단어 단위 표준 단어 정의서를 쓰고 있다면 조합형이 맞습니다. 전사 표준 용어집처럼 이미 확정된 명칭만 쓰게 해야 한다면 완성형입니다.

사전 타입은 자산을 만들 때 정해지고 나중에 바꾸지 않습니다. 커넥션 하나에는 사전 하나를 지정하므로, 두 방식이 모두 필요하면 사전을 따로 만들어 커넥션마다 지정합니다.

NeoSQL 의 도메인과 사전

데이터 사전은 두 종류의 자산으로 이루어집니다. 서로 독립이라 하나만 써도 됩니다.

종류담는 것하는 일
도메인컬럼의 물리 속성 묶음 — 타입, 길이, 소수 자릿수, NULL 허용, 기본값, 자동증가컬럼에 도메인을 지정하면 이 값들이 컬럼에 그대로 써집니다
사전표준 단어와 약어, 그리고 각 단어에 연결한 도메인. 동의어 · 금지어 · 유의어 · 반대어 · 유사어를 함께 담습니다논리명을 읽어 물리명을 만들고, 읽어낸 단어에 연결된 도메인을 컬럼에 적용하거나 추천합니다

사전은 자기 단어에 붙일 도메인을 위해 도메인 팩 하나를 지정할 수 있습니다. 이 경우 커넥션의 도메인 슬롯은 사전이 지정한 팩으로 잠깁니다.

사용 순서

1

자산 만들기

상단 메뉴의 데이터 사전데이터 사전 관리에서 도메인 또는 사전을 새로 만듭니다.

2

항목 채우기

그리드에서 도메인과 단어를 등록합니다. 엑셀로 한 번에 올릴 수도 있습니다.

3

저장하고 게시

편집한 내용은 초안입니다. 저장한 뒤 게시해야 다른 곳에서 지정할 수 있습니다.

4

커넥션에 지정

커넥션 설정의 데이터 사전 탭에서 사용할 도메인과 사전, 그리고 버전을 고릅니다.

5

ERD 에서 사용

컬럼 논리명을 적으면 물리명과 도메인이 채워집니다.

사용 조건과 범위

  • 데이터 사전은 Free 플랜에서도 기간 제한 없이 사용합니다.
  • 데스크톱은 로그인하지 않아도 이 기기에 저장되는 자산을 만들어 로컬 프로젝트에서 쓸 수 있습니다. 기기 로컬 자산에는 게시 · 버전 · 멤버 개념이 없습니다.
  • 로컬 프로젝트에서는 공식 제공 팩과 이 기기에 저장한 자산만 지정할 수 있습니다. 로그인해도 계정 자산은 목록에 올라오지 않습니다.
  • 계정 프로젝트에서는 공식 제공 팩, 공개 자산, 내가 소유하거나 함께 편집하는 자산을 지정합니다.

알아두기

  • 논리명은 DDL 과 무관한 메타데이터입니다. 이미 DB 에 있는 컬럼에 논리명을 적어도 이름과 타입이 자동으로 바뀌지 않습니다.
  • 도메인 값은 컬럼에 복사됩니다. 참조로 남지 않으므로 나중에 자산을 열 수 없는 상태여도 ERD 렌더링과 DDL 생성은 그대로 동작합니다.
  • 지정은 커넥션 단위입니다. 운영과 신규 프로젝트가 서로 다른 표준을 쓰는 상황을 그대로 담을 수 있습니다.
  • 지정은 특정 버전에 고정됩니다. 자산이 새로 게시되어도 자동으로 따라가지 않습니다.