관계형데이터모데링노트 요약

도메인

mitomi 2023. 12. 3. 19:59
반응형
SMALL

일반적인 정의 : 도메인은 속성에 허용된 유효한 값의 집합이다. 속성이 가질 수 있는 값이  집합이 도메인이다.

데이터모델링에서 사용되는 두가지 정의

-도메인은 데이터 타입과 길이를 의미(물리도메인을 실무에서 사용하는 도메인)

-속성을 대표속성을 의미(논리적개념)

 

물리도메인

물리도메인을 구성하는 주요 요소는 데이터 타입과 길이, 허용값의 범위와 기본값, 값의 포멧등을 포함한다.

ex)일자

도메인 이름 : 일자

도메인의 데이터 타입 : date

도메인의 데이터 포맷 : yyyy-mm-dd

허용범위 : 1900년 1월 1일부터 9999년12월31일까지의 날짜

기본값: 9999년12월31일

 

물리 도메인을 구분할때는 일반적으로 데이터타입과 길이를 기준으로 한다. 데이터 타입과 길이가 주요기준이 되므로 타입과 길이가 다른 속성이 존재하면 전부 도메인이 될수 있다. 도메인 개수를 한정하는 것은 바람직하지 않다.

도메인의 개수를 한정하면 속성표준화를 하기 곤란해 질수 있다. 이름과 관련된 도메인은 다양하게 존재할 수 있다. 사람이름. 회사이름, 상품이름등 데이터길이를 다르게 관리할 수 있다. 이름이라는 하나의 도메인만을 사용하면 아마도 varchar(200) 정도로 모든데이터를 수용할 수 있게 크게 잡아야 하지만, 사람이름을  varchar(200)으로 사용하면 데이터의 본질을 제대로 반영했다고 보기 어렵다.

 

데이터타입과 길이를  기준으로 물리도메인을 생성하기 모호한 경우. 텍스트 내용을 관리하는 도메인이나 금액 , 수, 도메인에 대해서 자릿수에 따라 도메인을 생성하면 거의 무한대의 도메인이 필요할 수 있다. 도메인이 많아지는 것이 부담돼 방지하고 싶다면 도메인에 자릿수라 종속되지 않도록 사용할 수 있다. 도메인은 타입만 지정하고 자릿수는 별도로 지정하게 하여 도메인의 개수를 줄일수 있다. 데이터타입과 자릿수에 종속되지 않는 도메인이 시스템에서 사용하기 편리하다/

 

논리도메인

논리도메인은 대표속성을 의미한다. '고객명' 이라는 속성을 등록할 때 varchar(30)이라는 물리도메인을 지정한다.

의미가 유사한 ' CRM  고객명'이라는 속성을 등록할때  varchar(30)이라는 물리도메인을 지정하는것이 아니라 '고객명'이라는 속성을 지정하여 논리도메인역활을 한다.

 

속성을 표준화 할때 논리도메인이 사용된다. 논리도메인은 대표속성개념이 포함되기 때문에 속성의 의미도 포함된다. 데이터타입과 길이 위주로 판단하는 물리 도메인과 다른부분이다.

의미가 포함되기 때문에 데이터 성격이 고정적인 속성에만 논리 도메인을 적용하는 것이 바람직하다.

· 주식별자(후보실별자, 업무식별자, 인조식별자)

· 식별자번호(주민번호, 사업자등록번호, 법인번호, 전화번호)

· 코드속성

· 표준데이터성격의 기준데이터(우편번호, 주소)

· 외부시스템에서 받은 번호나 코드

위 같은성격의 속성은 논리도메인으로 지정하는 것이 좋다. 대표속성으로 사용해야 한다. 이런속성의 특징은 데이터가 고정길이라는 것이다. 데이터 타입과 길이 포맷등이 거의 변하지 않아 대표역활을 할수 있으므로 일반속성에 연결이된다. 반면에 데이터 성격자체가 가변적인 속성을 논리 도메인으로 관리하는 것은 좋은점이 없다.

ex) 'CRM고객명' varchar(30) 물리도메인을 지정하지 않고, 고객명 논리도메인(대표속성)을 지정하면,   'CRM고객명' 길이나 '고객명'의 길이가 변경될 때 대응하기가 쉽지 않다. 고객명이 바뀌면    CRM고객명도 자연히 바뀌어야 한다면 논리도멘인으로 사용해야 하지만, 가변길이는 데이터 성격상 그렇지 않을 가능성이 더크다.

속성의미의 결합도는 내용,명,수,금액,율,식별자 ,코드순으로 결합도가 커진다. 결합도가 같한 속성일수록 대표속성 성격이 강한 속성으로 논리도메인으로 사용한다. 결합도가 강한 식별자코드 성격의 데이터외에는 논리도메인 개념을 적용하지 않는 것이 바람직하다.

도메인은 물리와 논리 도메인으로 구분할 필요가 있으며, 특히 논리도메인은 데이터 성격자체가 변하지 않는 식별자 속성에 적용하는 것이 바람직하다. 

도메인을 사용하면 데이터 무결성이 높아진다. 넒은 의미의 물리도메인에는  default, check등이 포함되므로 데이터무결성은 높아진다. 논리도메인을 사용하면 동일한 것을 의미하기 때문에 속성을 일관되게 사용하게 된다. 

 

 

 

728x90

'관계형데이터모데링노트 요약' 카테고리의 다른 글

널(Null)에 대하여  (1) 2023.12.03
데이터 타입 선정 원칙과 절차  (0) 2023.12.03
속성명  (0) 2023.12.02
코드속성 2  (0) 2023.11.29
코드 속성 1  (1) 2023.11.27