정보 처리/데이터 모델링

관계의 개념과 관계 정의하기

본클라쓰 2012. 6. 12. 19:12

 

관계는 두 개의 엔티티타입에서 서로에게 연향을 주는 것을 말합니다. 데이터 모델에서 관계는 업무의 흐름을 나타냅니다. 데이터 모델에 관계가 제대로 되어 있지 않다면 업무 흐름이 정확하게 데이터 모델에 표현되지 않아 데이터의 무결성을 깨뜨립니다.

 

 

 

관계의 명명

 

엔티티타입에서 관계가 시작되는 편을 시작점이라 하고, 받는 편을 관계 끝점이라고 합니다. 시작점과 끝점 모두 관계 이름을 가져야 하며 멤버십의 성격에 따라 관계 이름이 능동적이거나 수동적으로 명명됩니다. 관계 이름은 다음과 같은 규칙에 딸 작성합니다.

 

 · 애매한 동사는 피하라.

 · 현재형으로 표현하라.

 

 

 

관계의 종류

 

두 개의 엔티티타입 간에 관계에 참여자의 수를 카디낼리티(cardinality)라고 합니다. 가장 일반적인 카디낼리티는 1:M, 1:1, M:N 입니다.

 

 

1) 1:1  관계

 

각 엔티티가 단지 하나의 관계만을 가집니다.

 

 

회원={회원인덱스+이름}, 회원정보={회원인덱스+나이+주소+성별} 이렇게 두 테이블이 있다면 이 두 테이블은 일대일 대응 관계를 가지고 있습니다. 이럴 때는 하나의 테이블로 통합하여 관리하는 것이 좋다.

 

 

2) 1:M 관계

 

하나 이상의 수와 관계를 가집니다.

 

 

일대다 관계는 하나에 해당하는 테이블에는 기본키를 가지고 다에 해당하는 테이블에는 기본키를 외래키로 추가하여 연결하는 방법입니다. 하나로 관리하면 널 값이 많이 생겨 공간의 낭비가 발생할 때 새로운 테이블을 생성하여 테이블을 나누는 것이라 볼 수 있습니다.

 

회원={인덱스+이름}, 취미={회원 인덱스+취미} 이 경우는 회원이 가질 수 있는 취미의 종류가 많기 때문에 한 회원이 다양한 취미를 가질 수 있습니다. 이런 관계가 일대다 관계입니다.

 

 

3) M:N 관계

 

서로 하나 이상의 관계를 가지고 있습니다.

 

 

다대다 관계는 회원={이름+나이+주소}, 상품={상품명+제조사+가격} 같이 상품을 구매하는 경우 발생합니다. 이 때는 각각의 개체를 테이블로 작성한 후 기본키를 새로 작성한 구매={회원(FK)+상품(FK)+수량} 테이블을 생성하여 테이블의 관계를 맺는 방법을 사용합니다.

 

 

 

 

 

 

'정보 처리 > 데이터 모델링' 카테고리의 다른 글

식별자의 정의  (0) 2012.06.16
정규화   (0) 2012.06.16
속성 정의 하기  (0) 2012.06.12
엔티티타입의 개념과 설계 방법  (0) 2012.06.12
업무 분석하기 (프로세스 모델링)  (0) 2012.06.12