데이터베이스 관계 유형: Difference between revisions
From CS 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 05:12, 9 November 2019
- Database Relation Type
종류[edit | edit source]
구분 | 설명 | 예시 |
---|---|---|
관계 차수
(카디널리티) |
두 엔티티간 관계에서 참여자 수를 표현 |
|
선택 관계 | 엔티티간 상호 필수 존재 여부를 표현 |
|
식별 관계 | 한 엔티티의 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) 직원 - 개발자/기획자: 직원은 개발자이면서 기획자일수도 있다.