간접적(Indirect)인 관계와 직접적(Direct)인 관계로 나눕니다.
1. 간접적인 관계(Indirect Relationship)
사실 물리적으로는 팩트니 어트리뷰트등 모든 오브젝트는 테이블의 컬럼으로부터 출발을 합니다. 테이블의 특정컬럼은 팩트가 될 수 도 있고 어트리뷰트가 될 수도 있습니다. 팩트를 볼 수 있는 어트리뷰트는 1차적으로 팩트가 들어있는 테이블의 어트리뷰트라고 했는데 한테이블에 들어있는 어트리뷰트들은 사실 그 존재만으로도 서로간의 관계를 가집니다. 매출테이블에 있는 일자와 영업소와 판매액이라는 컬럼들은 데이타(row)가 존재하는 순간 판매액에 대한 속성이 되는 것이죠. 이들 일자, 영업소 등의 어트리뷰트는 매출이라는 테이블내에서 관계를 가진다고 볼 수 있습니다.
2. 직접적인 관계(Direct Relationship)
팩트를 볼 수 있는 어트리뷰트는 동일한 테이블에 있는 어트리뷰트와 그 어트리뷰트를 하위로 두고 있는 상위어트리뷰트라고 했는데 이때 하위어트리뷰트와 상위어트리뷰트를 직접적인 관계에 있다고 합니다. 즉, 팩트테이블이라는 동일한 테이블내에 있지않지만 어떤 디멘젼 테이블을 매개로하여 서로 상하위 관계를 가지는 어트리뷰트를 말합니다.
3. 상하위 관계(Child-Parent Relationship)의 의미
예) 일자테이블
=============================
일자 월 년계
-----------------------------
20060401 200604 2006
20060402 200604 2006
20060403 200604 2006
.
.
.
20060501 200604 2006
20060502 200604 2006
=============================
예로 위의 일자테이블의 경우 일자의 상위어트리뷰트로 월이라는 어트리뷰트를 둡니다. 관계테이블은 일자테이블을 선택합니다 ( 아래그림 )
![사용자 삽입 이미지](https://t1.daumcdn.net/tistoryfile/fs6/20_10_26_22_blog40191_attach_0_20.jpg?original)
그렇다면 월이라는 어트리뷰트의 상위로 년을 주고 관계테이블을 일자테이블을 준다면 월이라는 어트리뷰트를 알때 년을 일자테이블에서 찾을 수 있다(?)가 성립되지 않기때문에 잘못된 정의입니다(다대다관계가 발생). 이때는 월이 중복없이(Unique) 들어있는 월테이블이 필요합니다.
상위어트리뷰트의 관점에서 본다면 월이라는 어트리뷰트는 일만 알면은 일자테이블을 뒤져서 월을 알 수 있다는 것이 됩니다. (아래그림 참조)
![사용자 삽입 이미지](https://t1.daumcdn.net/tistoryfile/fs6/20_10_26_22_blog40191_attach_0_21.jpg?original)