엔터티 간의 관련성을 의미
존재 관계 | 두 개의 엔터티가 존재 여부의 관계가 있는 것[엔터티 간의 상태를 의미] ex1> 계좌 개설 시 할당된 관리점에서 고객 관리 ex2> 부서와 사원 엔터티 간의 '소속'관계 |
행위 관계 | 두 개의 엔터티가 어떤 행위에 의한 관련성이 있는 것[엔터티 간에 행해지는 행위를 의미] ex1> 계좌 개설 후 주문 발주 ex2> 주문과 배송 엔터티 간의 '배송근거' 관계 |
1. 두 개의 엔터티 사이에 관심 있는 연관규칙이 존재하는가? |
2. 두 개의 엔터티 사이에 정보의 조합이 발생되는가? |
3. 업무기술서, 장표에 관계연결을 가능하게 하는 동사가 있는가? |
4. 업무기술서, 장표에 관계연결에 대한 규칙이 서술되어 있는가? |
엔터티 간에 관계에 참여하는 형태를 지칭
두 개의 엔터티 간에 관계에 참여하는 수를 의미
→ 관계의 기수성을 나타내는 개념
관계차수의 종류 | 설 명 |
1:1 | * 완전 1대1과 선택적 1대 1 관계가 있음 완전 1대 1 : 하나의 엔터티에 관계되는 엔터티의 관계가 하나인 경우[반드시 존재] 선택적 1대 1 : 하나의 엔터티에 관계되는 엔터티의 관계가 하나이거나 없을 수도 있음 ex> 한 명의 고객은 하나의 고객등급이 부여 |
1:M | * 엔터티에 행이 하나 있을 때 다른 엔터티의 값이 여러 개 있는 관계 → 주식별자 중 일부로부터 독립한 경우, 주식별자와 독립한 엔터티는 1:M 관계 ex> 한 명의 고객이 여러 개의 계좌를 가질 수 있음 |
M:M | * 두 개의 엔터티가 서로 여러개의 관계를 가지고 있는 관계 ex> 한 명의 고객이 여러 개의 상품 가입 가능 하나의 상품은 여러 명의 고객들로 이루어짐 * 관계형 데이터베이스에서 M대 N관계의 Join은 카테시안 곱이 발생 → M대 N관계를 1대 N, N대 1로 해소해야 함[교차 엔터티] |
# 카테시안 곱
각 집합의 원소를 각 성분으로하는 튜플들의 집합
Query의 From 절에 2 개 이상의 Table이 있고, 두 Table 사이의 유효한 Join조건이 기술되어 있지 않은 경우에는 두 Table의 모든 행들이 무조건 결합해 Table들에 존재하는 행 갯수를 곱한 만큼의 결과값이 반환되는 것
필수, 선택 | * 반드시 하나는 존재해야 하는 관계 → 선택적 관계는 없을 수도 있는 관계 * 필수적 관계 : 반드시 하나가 있어야 하는 관계 선택적 관계 : 없을 수도 있는 관계 필수적인 관계는 '|'로 표현되고 선택적 관계는 'O'로 표현 |
식별 관계 [Identification Relationship] |
* 부모 테이블의 기본키가 자식 테이블의 기본키로 전이되는 관계 → ERD에서 실선으로 표시 * 부모가 자식의 모든 정보를 저장[기본키를 공유받은 관계] * 식별자 관계만으로 연결될 경우, 주식별자 속성이 지속적으로 증가하여 복잡성과 오류 가능성을 유발 * 강한 연결관계 표현 ex> 고객과 계좌 엔터티에서 고객은 독립적으로 존재할 수 있는 강한 개체[Strong Entity] 계좌 엔터티는 약한 개체[Weak Entity] → 강한 개체는 어떤 다른 엔터티에게 의존하지 않고 독립적으로 존재 → 강한 개체는 다른 엔터티와 관계를 가질 때 다른 엔터티에게 기본키를 공유 → 강한 개체는 식별 관계로 표현 → 강한 개체의 기본키 값 변경 시, 식별 관계에 있는 엔터티 값도 변경됨 |
비식별 관계 [Non - Identification Relationship] |
* 부모테이블의 기본키가 자식테이블의 일반 속성으로 전이되는 관계 → ERD에서 점선으로 표시 * 부모가 자식의 부분적인 정보를 저장[독립적인 기본키를 가짐] → 부모엔터티에 참조값이 없어도 자식엔터티의 인스턴스가 생성될 수 있음 * 비식별 관계만으로 연결될 경우, 불필요한 조인이 다량으로 유발 * 약한 연결관계 표현 ex> 관리점 엔터티의 기본키인 지점코드는 고객 엔터티와 비식별 관계를 가짐 지점 코드는 고객 엔터티의 기본키가 아닌 일반 칼럼으로 참조 |
# 강한 개체와 약한 개체
강한 개체[Strong Entity] : 누구에게도 지배되지 않는 독립적인 Entity
약한 개체[Weak Entity] : 개체(Entity)의 존재가 다른 개체(Entity)의 존재에 달려있는 Entity
[개미의 걸음 SQLD 1과목] 성능 데이터 모델링의 이해 (0) | 2020.12.09 |
---|---|
[개미의 걸음 SQLD 1과목] 식별자(Identifier) & 키(KEY) (0) | 2020.12.08 |
[개미의 걸음 SQLD 1과목] 데이터 모델링 요소 ② 속성(Attribute) with 도메인 (0) | 2020.12.06 |
[개미의 걸음 SQLD 1과목] 데이터 모델링 요소 ① 엔터티(Entity) with 인스턴스 (0) | 2020.12.05 |
[개미의 걸음 SQLD 1과목] 데이터 모델링 표기법(ERD) (0) | 2020.12.04 |
댓글 영역