도메인이란?

  • 속성에 허용된 유효한 값(원자값)의 집합(예: 정수의 집합, 세자리 문자 등)
  • 데이터 타입, 길이, 허용값, 기본값, 값의 포멧 등이 포함


도메인의 사용예

  • 사람이름 : 사람 이름이 값으로 사용되는 속성을 위한 도메인, 데이터 타입은 varchar이며 자리수는 10자리
  • 일자 : 날짜를 값으로 사용하는 속성을 위한 도메인, varchar(10), 데이터 포멧은 YYYY-MM-DD
    (단, 0025-13-35 같은 년월일의 값이 아닌 데이터가 입력되지 못하도록 데이터베이스의 CHECK 제약조건 필요)
  • 참고사항 : 날짜 타입은 varchar 타입보다 date 타입을 사용하는 것이 원칙(데이터의 무결성을 위해)


도메인의 범위

  • 고객번호라는 속성의 도메인을 varchar(5)으로 지정하면 허용된 값은 00001 ~ 99999까지이나, number(5)으로 지정하면 1 ~ 99999까지가 허용됨
  • 도메인 범위 예제
도메인값의 범위
고객번호1 ~ 99999까지 숫자
고객명최대 10자리까지의 문자
가입금액0원부터 9999999999999원까지의 금액
가입일자1900년 1월 1일부터 9999년 12월 31일까지의 날짜
~여부Yes(여), No(부)
요일일, 월, 화, 수, 목, 금, 토


속성과 도메인과의 관계

  • 속성명이 도메인명으로 끝나도록 관리(예 : '이름'이라는 도메인을 사용하면 '고객명'이라는 속성명이 아니라 '
    고객이름'이라는 속성명을 사용해야 함) -> 인위적이고, 자연스럽지 않는 면이 존재하나 속성명이 명확해지는 장점이 존재
  • 기준가, 예수금, 수수료, 소득세, 이체금액 등 같은 돈과 관련된 속성은 '금액'이라는 도메인으로 관리할 수 있음 -> 속성명으로 도메인의 세부사항을 확인하기 어려운 단점이 존재하지만 도메인을 유연하게 관리할 수 있는 장점이 존재
  • 같은 의미의 값을 표현하는 도메인이 여러개 생길 수 있음(예 : 날짜 데이터를 관리하기 위해 date 타입과 varchar 타입의 도메인이 존재할 수 있음)
  • 도메인은 데이터 타입과 길이가 주요 기준이 되므로 타입과 길이가 다른 속성이 존재하면 전부 도메인이 될 수 있음(예 : 이름과 관련된 도메인은 사람이름, 회사이름, 상품이름 등 데이터의 길이가 다른 동명의 '이름' 도메인이 다수 존재할 수 있음) -> 도메인은 세분화해서 관리하는 것이 바람직
  • 금액, 수량 등의 도메인은 데이터 타입과 자릿수에 따라 세분화하기 어려운 경우가 존재하며, 이 경우 도메인에 자릿수가 종속되지 않도록 관리해야 유연하게 관리할 수 있음