-
개념
- 엔터티의 인스턴스 사이의 논리적인 연관성
- 엔터티의 정의, 속성 정의 및 관계 정의에 따라서도 다양하게 변할 수 있음
- 관계를 맺는다는 의미는 부모의 식별자를 자식에 상속하고, 상속된 속성을 매핑키(조인키)로 활용
- 부모, 자식을 연결함
분류
- 관계는 존재에 의한 관계와 행위에 의한 관계로 분류
- 존재 관계는 엔터티 간의 상태를 의미
- ex) 사원 엔터티는 부서 엔터티에 소속
- 행위 관계는 엔터티 간의 어떤 행위가 있는 것을 의미
- 주문은 고객이 주문할 때 발생
조인의 의미
결국 데이터의 중복을 피하기 위해 테이블은 정규화에 의해 분리된다. 분리되면서 두 테이블은 서로 관계를 맺게 되고, 다시 이 두 테이블의 데이터를 동시에 출력하거나 관계가 있는 테이블을 참조하기 위해서는 데이터를 연결해야 하는데 이 과정을 조인이라고 함
👉계좌 테이블은 제 3 정규화에 의해 계좌 + 관리점으로 분리됨. 이때 관리점 코드를 같이 공유함. 만약 계좌 정보와 함께 관리점 정보를 함께 출력할 경우 두 데이터를 조인하여 출력함. 즉, 양 테이블의 데이터를 함께 출력하거나 참조하기 위해 두 데이터를 연결하는 과정을 조인, 연결키를 조인키라고 함
❓ 계좌번호 100111의 관리점이 어딘지를 찾으려면?
① 계좌번호 테이블에서 계좌번호가 10111 데이터 확인
② 계좌번호 테이블에서 계좌번호가 10111 데이터의 관리점코드(1000)를 확인
③ 관리점코드(1000)를 관리점 테이블에 전달하여 관리점 확인(서울점)SQL 작성)
SELECT A.계좌번호, B.관리점
FROM 계좌 A, 관리점 B
WHERE A.관리점코드 = B.관리점코드
AND A.계좌번호 = '100111'계층형 데이터 모델
- 자기 자신끼리 관계가 발생. 즉, 하나의 엔터티 내의 인스턴스끼리 계층 구조를 가지는 경우를 말함
- 계층 구조를 갖는 인스턴스끼리 연결하는 조인을 셀프조인이라함(같은 테이블을 여러 번 조인)
아래 EMP 테이블은 직원테이블 순서대로 사번, 이름, 직무, 매니저번호, 입사일, 급여, 보너스, 부서번호 컬럼으로 구성.
이 때, 매니저번호(MGR)는 매니저의 사원번호를 의미하므로 사원번호(EMPNO) 컬럼과 관련이 있다.
즉, SMITH 의 매니저 이름을 확인하는 과정을 보면, SMITH의 매니저 번호를 확인(7902)
해당 번호의 사번을 갖는 데이터를 찾으면 FORD 라는것을 확일할 수 있음SQL로 표현하면,
상호배타적 관계
- 두 테이블 중 하나만 가능한 관계를 말함
- 주문 엔터티에는 개인 또는 법인번호 둘 중 하나만 상속될 수 있음
- 상호배타적 관계
- 주문은 개인고객이거나 법인고객 둘 중 하나의 고객만이 가능
'CS > SQL' 카테고리의 다른 글
[SQLD] Null 속성 (0) 2025.02.17 [SQLD] 모델이 표현하는 트랜잭션 (0) 2025.02.17 [SQLD] 정규화 (0) 2025.02.15 [SQLD] 식별자(Identifier) (0) 2025.02.12 [SQLD] 관계(Relationship) (0) 2025.02.10 댓글