본문 바로가기

인터넷강의/[패스트캠퍼스] 합격의하이패스:SQLD자격과정

합격의 하이패스:SQLD자격과정 CH01-04, 05 | 관계(Relationship), 식별자(Identifiers)

728x90
728x90

관계

= 관계의 정의

상호 연관성이 있는 상태로 엔터티 간의 논리적 연관성을 의미, 존재에 의한 관계 및 행위에 의한 관계로 구분

 

= 관계의 페어링 Relationship Pairing!

관계의 엔터티 안에 인스턴스가 개별적으로 관계를 가지는 것 -> 페어링

인스턴스들은 자신이 관련된 인스턴스들과 관계의 어커런스(발생, 사건)으로 참여하는 형태를 관계의 페어링이라고 함.
Ex)

강사 A는 학생 C,D에 강의
강사 B는 학생 D에 강의

-> 엔터티 내 인스턴스와 인스턴스사이에 관계가 설정되어있다.

 

= 존재관계 (부서 - 사원)

= 행위관계 (고객 - 주문)

 

= 관계 표기법

관계명 Membership : 관계 이름

관계차수 Cardinality : 1:1, 1:M, M:M

관계선택사양 Optionality : 필수관계, 선택관계

 

= 관계명

관계는 두 개의 관계명을 가진다. -> 각각의 관계명에 의해 양쪽 관점에서 표현될 수 있다.

 

= 관계는 시작점과 끝점 이름을 가지고, 참여자의 관점에 따라 능동적이고 수동적으로 명명된다

 

= 관계 이름짓기

애매한 동사를 피한다. / 관련있다 이런거

현재형으로 표현하기 -> 했다. X / 할것이다. X


식별자

= 식별자

엔터티가 인스턴스 집합 -> 인스턴스사이에서 구분할 수 있는 무언가가 필요 -> 식별자 identifier

 

= 식별자 특징 (유최불존)

유일성 

최소성 :속성의 숫자는 유일성을 만족하는 최소의 수

불변성:식별자 값 변할 수 없음

존재성:데이터값이 무조건 존재해야됌

 

= 식별자 분류

대표성여부 - 주식별자, 보조식별자

스스로생성여부 - 내부식별자, 외부식별자

속성의 수 - 단일식별자, 복합식별자

대체여부 - 본질식별자, 인조식별자

 

주식별자:각행을 구분할 수 있는 구분자! (사원번호)

보조식별자:행을구분할수는있지만,대표성은 가지지못함 (주민등록번호)

내부식별자:고객번호,사원번호와같이 스스로만들어지는 식별자

외부식별자:주문엔터티의 고객번호는 고객이 주문을 했기때문에 생겨진 식별자

단일식별자:하나의 속성으로 구성된 식별자 고객엔터티의 고객번호

복합식별자:둘 이상의 속성으로 구성된 식별자(주문상세엔터티의 주문번호+상세순번)
본질식별자:업무에 만들어지는 식별자 (고객번호)

인조식별자:인위적으로 만든 식별자(주문엔터티의 주문번호를 만들 때, 고객번호+주문번호+순번이렇게 합쳐서 만든 것)

 

= 식별자 도출기준

업무에 자주 이용되며 명칭, 내역들과 같이 명사들은 주식별자로 지정하지 않고, 복합적으로 사용할 때는 속성이 너무 많지 않게 주의할 것

 

= 식별자관계와 비식별자 관계

외부식별자 Foreign Key (FK) : 자식 쪽 엔터티에 생성되는 속성 



식별자 관계는 FK를 주식별자로 이용

(부모의 식별자 = 자식의 식별자)

 

비식별자 관계는 부모와 자식이 연결이 되게 하는 속성으로만 이용

(부모의 식별자 != 자식의 식별자) 그저 외부식별자가 FK로서의 역할만 함

 

=비식별자 관계 고려 이유

관계가 약하거나

독립 pk 구성이 필요하거나

PK속성 단순화가 필요할 때 (SQL 복잡성 방지)

 

 

 

 

728x90