데이터베이스 관계 유형: Difference between revisions

From IT Wiki
(새 문서: 분류:데이터베이스 ;Database Relation Type == 일대일(1:1) 관계 == ; 하나의 부모 엔티티에 연결된 자식 엔티티는 하나밖에 올 수 없는 관계 * '...)
 
No edit summary
 
Line 2: Line 2:
;Database Relation Type
;Database Relation Type


== 일대일(1:1) 관계 ==
== 종류 ==
{| class="wikitable"
|-
! 구분 !! 설명 !! 예시
|-
| 관계 차수
(카디널리티)
|| 두 엔티티간 관계에서 참여자 수를 표현 ||
* 1:1
* 1:N
* N:M
|-
| 선택 관계 || 엔티티간 상호 필수 존재 여부를 표현 ||
* 선택적 관계
* 강제적 관계
|-
| 식별 관계 || 한 엔티티의 PK가 다른 엔티티에서 PK/FK여부를 구분 ||
* 식별 관계
* 비식별 관계
|-
| 상속 관계 || 두 엔티티간 상하 상속 관계 ||
* 배타적 관계
* 포함 관계
|}
 
== 관계 차수 ==
=== 일대일(1:1) 관계 ===
; 하나의 부모 엔티티에 연결된 자식 엔티티는 하나밖에 올 수 없는 관계
; 하나의 부모 엔티티에 연결된 자식 엔티티는 하나밖에 올 수 없는 관계
* '''ex) 사원번호 - 주민등록번호'''
* '''ex) 사원번호 - 주민등록번호'''
Line 8: Line 34:
* 하나의 테이블로 구성한다.
* 하나의 테이블로 구성한다.


== 일대다(1:N) 관계 ==
=== 일대다(1:N) 관계 ===
;하나의 부모 엔티티에 연결된 자식 엔티티가 여러 개가 될 수 있는 관계
;하나의 부모 엔티티에 연결된 자식 엔티티가 여러 개가 될 수 있는 관계
* '''ex) 부서 - 사원'''
* '''ex) 부서 - 사원'''
Line 14: Line 40:
* 두개의 테이블로 구성하고 FK를 이용한다.
* 두개의 테이블로 구성하고 FK를 이용한다.


== 다대다(N:M) 관계 ==
=== 다대다(N:M) 관계 ===
;하나의 부모 엔티티와 연결된 자식 엔티티가 여러 개가 될 수 있고 여러 개의 부모 엔티티와 연결된 자식 엔티티가 하나가 될 수 있는 관계
;하나의 부모 엔티티와 연결된 자식 엔티티가 여러 개가 될 수 있고 여러 개의 부모 엔티티와 연결된 자식 엔티티가 하나가 될 수 있는 관계
* '''ex) 사원 - 업무'''
* '''ex) 사원 - 업무'''
** 한명의 사원이 A업무, B업무를 동시에 할 수도 있고, A업무를 여러 사원이 같이 할 수도 있다.
** 한명의 사원이 A업무, B업무를 동시에 할 수도 있고, A업무를 여러 사원이 같이 할 수도 있다.
* 두개의 테이블에 관계 테이블이 하나 더 필요하다.(3개)
* 두개의 테이블에 관계 테이블이 하나 더 필요하다.(3개)
== 선택 관계 ==
* 선택적 관계: 한 엔티티가 다른 엔티티에 속할 수도 있고 안 속할 수도 있다.
** ex) 직원 - 파견지: 직원은 파견지에 속할수도 있고 안 속할 수도 있다.
* 강제적 관계: 
** ex) 직원 - 부서: 직원은 반드시 하나의 부서에 속하여야 한다.
== 식별 관계 ==
* 식별 관계 : 부모 엔티티의 주식별자가 자식 엔티티의 주식별자로 상속
** ex) 사원 - 가족관계: 사원의 가족관계는 사원 PK를 주식별자로 이용한다.
* 비식별 관계 : 부모 엔티티의 주식별자가 자식 엔티티의 일반속성으로 상속
** ex) 사원 - 프로젝트: 사원은 프로젝트의 담당자라는 속성으로 이용된다.
== 상속 관계 ==
* 배타적 관계: 슈퍼타입의 엔티티가 반드시 하나의 서브타입에는 속하는 관계
** ex) 직원 - 정직원/계약직원: 직원은 정직원이거나 계약직원 둘 중 하나이다.
* 포함 관계: 슈타타입의 엔티티가 두 개 이상의 서브타입에 포함될 수 있는 관계
** ex) 직원 - 개발자/기획자: 직원은 개발자이면서 기획자일수도 있다.

Latest revision as of 19:12, 9 November 2019

Database Relation Type

종류[edit | edit source]

구분 설명 예시
관계 차수

(카디널리티)

두 엔티티간 관계에서 참여자 수를 표현
  • 1:1
  • 1:N
  • N:M
선택 관계 엔티티간 상호 필수 존재 여부를 표현
  • 선택적 관계
  • 강제적 관계
식별 관계 한 엔티티의 PK가 다른 엔티티에서 PK/FK여부를 구분
  • 식별 관계
  • 비식별 관계
상속 관계 두 엔티티간 상하 상속 관계
  • 배타적 관계
  • 포함 관계

관계 차수[edit | edit source]

일대일(1:1) 관계[edit | edit source]

하나의 부모 엔티티에 연결된 자식 엔티티는 하나밖에 올 수 없는 관계
  • ex) 사원번호 - 주민등록번호
    • 사원번호, 주민등록번호 모두 고유한 사원을 가리킨다. 사원번호 하나엔 하나의 주민등록번호만 대응될 수 있다.
  • 하나의 테이블로 구성한다.

일대다(1:N) 관계[edit | edit source]

하나의 부모 엔티티에 연결된 자식 엔티티가 여러 개가 될 수 있는 관계
  • ex) 부서 - 사원
    • 부서에 여러 사원이 속한다. 사원은 여러 부서를 가질 수 없다.
  • 두개의 테이블로 구성하고 FK를 이용한다.

다대다(N:M) 관계[edit | edit source]

하나의 부모 엔티티와 연결된 자식 엔티티가 여러 개가 될 수 있고 여러 개의 부모 엔티티와 연결된 자식 엔티티가 하나가 될 수 있는 관계
  • ex) 사원 - 업무
    • 한명의 사원이 A업무, B업무를 동시에 할 수도 있고, A업무를 여러 사원이 같이 할 수도 있다.
  • 두개의 테이블에 관계 테이블이 하나 더 필요하다.(3개)

선택 관계[edit | edit source]

  • 선택적 관계: 한 엔티티가 다른 엔티티에 속할 수도 있고 안 속할 수도 있다.
    • ex) 직원 - 파견지: 직원은 파견지에 속할수도 있고 안 속할 수도 있다.
  • 강제적 관계:
    • ex) 직원 - 부서: 직원은 반드시 하나의 부서에 속하여야 한다.

식별 관계[edit | edit source]

  • 식별 관계 : 부모 엔티티의 주식별자가 자식 엔티티의 주식별자로 상속
    • ex) 사원 - 가족관계: 사원의 가족관계는 사원 PK를 주식별자로 이용한다.
  • 비식별 관계 : 부모 엔티티의 주식별자가 자식 엔티티의 일반속성으로 상속
    • ex) 사원 - 프로젝트: 사원은 프로젝트의 담당자라는 속성으로 이용된다.

상속 관계[edit | edit source]

  • 배타적 관계: 슈퍼타입의 엔티티가 반드시 하나의 서브타입에는 속하는 관계
    • ex) 직원 - 정직원/계약직원: 직원은 정직원이거나 계약직원 둘 중 하나이다.
  • 포함 관계: 슈타타입의 엔티티가 두 개 이상의 서브타입에 포함될 수 있는 관계
    • ex) 직원 - 개발자/기획자: 직원은 개발자이면서 기획자일수도 있다.