본문 바로가기

SQL

SQL - 데이터모델링의 이해 (관계)

공부 정리용!

 

자료는 한국데이터산업진흥원 참고 사용   

https://dataonair.or.kr/db-tech-reference/d-guide/sql

 

SQL – DATA ON-AIR

 

dataonair.or.kr

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 

 

관계

1. 관계의 개념 가. 관계의 정의 관계(Relationship)를 사전적으로 정의하면 상호 연관성이 있는 상태로 말할 수 있다. 이것을 데이터 모델에 대입하여 정의해 보면, “엔터티의 인스턴스 사이의 논

dataonair.or.kr