공부 정리용!
자료는 한국데이터산업진흥원 참고 사용
https://dataonair.or.kr/db-tech-reference/d-guide/sql
1. 관계의 개념
가. 관계(Relationship)의 정의
나. 관계의 패어링(Paring)
- 패어링 : 엔터티 안에 인스턴스가 개별적으로 관계를 가지는 것
- 관계 : 패어링의 집합
- 관계 패어링(RelationShip Paring) : 각각의 엔터티의 인스턴스들이 자신이 관련된 인스턴스들과 관계의 어커런스로 참여하는 형태
2. 관계의 분류
존재에 의한 관계와 행위에 의한 관계로 구분됨의 이유는 관계연결에 있어 어떤 목적으로 연결되었느냐에 의함
- UML(Unified Modeling Language) 표기 :
1) 연관관계(Association) : 존재론적 관계. 항상 이용하는 관계
2) 의존관계(Dependency) : 상대방 클래스의 행위에 의해 관계가 형성되는 관계
- ERD 표기 :
1) 연관관계 : 실선 표현, 소스코드내 멤버변수로 선언
2) 의존관계 : 점선 표현, 소스코드내 Operation(Method)에서 파라미터 로 표현
3. 관계의 표기법
- 관계명(Membership) : 관계의 이름
- 관계차수(Cardinality) : 1:1, 1:M, M:N
- 관계선택사양(Optionality) : 필수관계, 선택관계
가. 관계명(Membership)
엔터티가 참여하는 형태를 지칭. 두 개의 관계명을 지니며 각각의 관점으로 표현 가능
애매한 동사 사용 X, (관계된다, 관련이 있다, 이다, 한다 등)
현재형으로 표현 (수강신청 했다 O, 수강신청 할 것이다 X)
- 관계의 시작, 끝의 여부에 따라
1) 관계시작점(The Beginning)
2) 관계끝점(The End)
- 관계 참여자의 관점에 따라
1) 능동적(Active)
2) 수동적(Passive)
나. 관계차수(Degree/Cardinality)
참여자수의 표현을 관계차수라 함
Crow's Foot 모델표기 : 한개 참여시 실선, 다수 참여시 까마귀 발 사용
1) 1:1 (One to One)
2) 1:M(One to Many)
3) M:M(Many to Many)
다. 관계선택사양(Optionality)
ERD 표기 시 : 선택참여하는 엔터티쪽이 원으로 표시. 필수 참여는 미 표시
1) 필수참여관계(Mandatory Membership) : 필수적인 관계 (Ex.지하철 출발과 문 닫힘-닫히지 않으면 출발 불가)
모든 참여자가 반드시 관계를 가짐, 타 엔터티의 참여자와 연결 되는 관계
2) 선택참여관계(Optionality Membership) : 선택적인 관계 (Ex. 지하철 출발과 안내방송- 방송이 고장과 출발은 무관)
물리속성의 FK로 연결할 경우 Null 허용 가능
4. 관계의 정의 및 읽는 방법
가. 관계 체크사항
- 두 개의 엔터티 사에에 관심있는 연관규칙 존재여부
- 두 개의 엔터티 사이에 정보의 조합 발생 여부
- 업무기술서, 장표에 관계연결에 대한 규칙 서술 여부
- 업무기술서, 장표에 관계연결을 가능하 하는 동사(Verb)여부
나. 관계 읽기
- 기준(Source) 엔터티를 한 개(One) 또는 각(Each)로 읽음
- 대상(Target) 엔터티의 관계참여도 즉 개수(하나, 하나 이상을 잃음)
- 관계사양과 관계명을 읽음
Tip. 엔터티 관계설정 뿐 아니라 업무 흐름도의 분석이 되는 실제프로젝트에 효과 있는 질문
주문과 제품과 관계를 질문하기 원할 때
“한 주문에 대해서 하나의 제품만을 주문합니까?
혹은
"한 제품은 하나의 주문에 대해서만 주문을 접수받을 수 있습니까?”
참고자료 :
https://dataonair.or.kr/db-tech-reference/d-guide/sql/?pageid=5&mod=document&uid=328
'SQL' 카테고리의 다른 글
SQL - 데이터모델링과 성능 (개요) (0) | 2023.03.09 |
---|---|
SQL - 데이터모델링의 이해 (식별자) (0) | 2023.03.08 |
SQL - 데이터모델링의 이해 (속성) (0) | 2023.03.07 |
SQL - 데이터모델링의 이해 (엔터티) (0) | 2023.03.02 |
SQL - 데이터 모델링의 이해 (개요) (0) | 2023.02.22 |