본문 바로가기
스터디/SQL

[정리노트] SQLD 2024년 개정판 - 관계와 조인의 이해

by 견습생L 2024. 8. 13.

[정리노트] SQLD 2024년 개정판 - 관계와 조인의 이해

 

관계(Relationship)의 개념

  •   엔터티의 인스턴스 사이의 논리적인 연관성
  •   엔터티의 정의, 속성 정의 및 관계 정의에 따라서도 다양하게 변할 수 있음
  •   관계를 맺는다는 의미는 부모의 식별자를 자식에 상속하고, 상속된 속성을 매핑키 (조인키)로 활용
    > 부모 자식을 연결
    양 엔터티를 조인한다고하면 부서번호가 메인키다

관계(Relationship)의 분류

  •   관계는 존재에 의한 관계와 행위에 의한 관계로 분류
  •   존재 관계는 엔터티 간의 상태를 의미
    •   사원 엔터티는 부서 엔터티에 소속
  •   행위 관계는 엔터티 간의 어떤 행위가 있는 것을 의미
    •   주문은 고객이 주문할 때 발생

조인의 의미

 

  •   결국 데이터의 중복을 피하기 위해 테이블은 정규화에 의해 분리된다. 분리되면서 두 테이블은 서로 관계를 맺게 되고, 다시 이 두 테이블의 데이터를 동시에 출력하거나 관계가 있는 테이블을 참조하기 위해서는 데이터를 연결해야 하는데 이 과정을 조인이라고 함

  •   계좌 번호 100111의 관리점이 어딘지 찾으려면
    1. 계좌번호 테이블에서 계좌번호가 100111 데이터 확인
    2. 계좌번호 테이블에서 계좌번호가 100111 데이터의 관리점코드 (1000) 확인
    3. 관리점 코드 (1000) 관리점 테이블에 전달하여 관리점 확인 (서울점)
  •   SQL작성
Select A.계좌번호, B.관리점
  FROM 계좌 A, 관리점 B
 WHERE A.관리점코드 = B.관리점코드
   AND A. 계좌번호 = '100111';

계층형 데이터 모델

  •   자기 자신끼리 관계가 발생. 즉, 하나의 엔터티 내의 인스턴스끼리 계층 구조를 가지는 경우
  •   계층 구조를 갖는 인스턴스끼리 연결하는 조인을 셀프조인이라 함 (같은 테이블을 여러번 조인)

MGR은 매니저 번호, EMPNO 사원번호 두가지를 다 가지고 있음, 이런경우 셀프조인 필

  •   SQL 작성
SELECT E1.ENAME AS 사원이름,
       E2.ENAME AS 매니저이름
  FROM EMP E1, EMP E2
 WHERE E1.MGR = E2.EMPNO;

 


상호배타적 관계

  •   두 테이블 중 하나만 가능한 관계
    •   ex) 주문 엔터티에는 개인 또는 법인번호 둘 중 하나만 상속될 수 있음 > 상호배타적 관계
    •   즉, 주문은 개인고객이거나 법인고객 둘 중 하나의 고객만이 가능

출처: SQL 전문가 가이드

 

반응형