데이터베이스 카디널리티: Difference between revisions

From IT Wiki
No edit summary
No edit summary
Line 10: Line 10:
* N:M (다대다)
* N:M (다대다)


== 예시 ==
== 카디널리티 비율 ==
 
'''Cardinality Ratio'''
* '''1:1 관계''': 한 엔티티의 인스턴스가 다른 엔티티의 인스턴스와 단 하나의 관계를 맺을 때
* '''1:1 관계''': 한 엔티티의 인스턴스가 다른 엔티티의 인스턴스와 단 하나의 관계를 맺을 때
** 예시: 사원(Employee)와 '''사원증(Employee ID)''' 간의 관계.
** 예시: 사원(Employee)와 '''사원증(Employee ID)''' 간의 관계.
Line 39: Line 39:


=== 숫자 표기법 ===
=== 숫자 표기법 ===
[[파일:데이터베이스 카디날리티 숫자 표현법.png|없음|섬네일|여긴 1:N, N:M 카디날리티 표현과 (min, max) 노테이션이 같이 사용되었는데 이해를 돕기 위한 것이며, 중복된 의미를 가지므로 둘을 함께 쓰는 경우는 없다.]]
[[파일:데이터베이스 카디날리티 숫자 표현법.png|섬네일|여긴 1:N, N:M 카디날리티 표현과 (min, max) 노테이션이 같이 사용되었는데 이해를 돕기 위한 것이며, 중복된 의미를 가지므로 둘을 함께 쓰는 경우는 없다.]]
'''Cardinality Ratio'''
'''Cardinality Ratio'''


Line 45: Line 45:
* 위 그림에서 Professor에 1이 있고 Course에 M이 있는 것은, 교수 1명은 M개의 코스를 가르칠 수 있다는 것이다.
* 위 그림에서 Professor에 1이 있고 Course에 M이 있는 것은, 교수 1명은 M개의 코스를 가르칠 수 있다는 것이다.
** 그리고 M개의 코스들은 각각 1명의 교수들에 의해서만 가르쳐질 수 있다는 것이다.
** 그리고 M개의 코스들은 각각 1명의 교수들에 의해서만 가르쳐질 수 있다는 것이다.
* 여기선 최대 몇명인지, 그리고 꼭 존재해야 하는 것인지는 표현되지 않는다.
* 여기선 최대 몇명인지, 그리고 꼭 존재해야 하는 것인지는 일반적으로 표현되지 않는다.
** 꼭 존재해야 한다면 두 줄을 사용할 수 있다.  
** 꼭 존재해야 한다면 두 줄을 사용할 수 있다.  
*** 아래 ERD 예시에서 Department는 Manage를 해줄 Employee가 필요하다는 의미로 두 줄이 사용되었다.
*** 이 매니저는 최소 1명, 최대 1명이 될 수 있음을 의미한다.
*** 표현된 숫자는 1:1 관계이지만. 한 줄과 두 줄 표현을 통해 아래와 같이 최대 최소가 정의됨 (ERD 예시 2 참조)
**** EMPLOYEE - (0,1) - MANAGES - (1,1) - DEPARTMENT
**** EMPLOYEE는 0개 또는 1개의 DEPARTMENT를 관리할 수 있음
**** DEPARTMENT는 최소 1명, 최대 1명의 MANAGING EMPLOYEE를 가짐
** 최대값까지 표현하려면 아래의 (min, max) 노테이션을 사용해야 한다.
** 최대값까지 표현하려면 아래의 (min, max) 노테이션을 사용해야 한다.


'''Structure Constraints Using (min, max) Notation'''
'''Structure Constraints Using (min, max) Notation'''


* 그냥 1:N이 아니라 최소, 최대도 표현해줄 수 있다.
* 이 노테이션을 사용하면 그냥 1:N이 아니라 최소, 최대도 표현해줄 수 있다.
* 위 그림에서 (0,3), (1,1)로 되어 있는 것인데, 순서가 반대라 헷갈릴 수 있다.
* 위 그림에서 (0,3), (1,1)로 되어 있는 것인데, 기본 카디날리티 표현과 순서가 반대라 헷갈릴 수 있다.
* 여기서 교수는 Course를 맡지 않을 수도 있고, 맡는다면 최대 3개까지만 맡을 수 있다.
* 여기서 교수는 Course를 맡지 않을 수도 있고, 맡는다면 최대 3개까지만 맡을 수 있다.
** Course는 무조건 1명의 교수가 있어야 한다.
** Course는 무조건 1명의 교수가 있어야 한다.
Line 64: Line 70:


== ERD 예시 ==
== ERD 예시 ==
예시1 (Cardinality Ratio)
[[파일:ERD Figure 3.2.png|613x613픽셀]]
예시2 (Structure Constraint)
[[파일:ERD Figure 3.15.png]]
[[분류:데이터베이스]]
[[분류:데이터베이스]]

Revision as of 11:18, 16 October 2024

Cardinality

카디널리티는 두 엔티티 간의 최대 연관성을 나타내며, 한 엔티티의 인스턴스가 다른 엔티티의 인스턴스와 맺을 수 있는 관계의 개수를 정의한다. 이는 관계의 최대 값을 의미한다.

종류

주로 아래 중 하나로 정의된다.

  • 1:1 (일대일)
  • 1:N (일대다, 다대일)
  • N:M (다대다)

카디널리티 비율

Cardinality Ratio

  • 1:1 관계: 한 엔티티의 인스턴스가 다른 엔티티의 인스턴스와 단 하나의 관계를 맺을 때
    • 예시: 사원(Employee)와 사원증(Employee ID) 간의 관계.
      • 한 사원은 하나의 사원증만 가질 수 있고, 사원증은 한 명의 사원에게만 발급된다.
  • 1:N 관계: 한 엔티티의 인스턴스가 여러 다른 엔티티의 인스턴스와 관계를 맺을 때
    • 예시: 교수(Professor)와 학생(Student) 간의 관계
      • 한 명의 교수는 여러 명의 학생을 지도할 수 있지만, 학생은 한 명의 교수에게 지도받는다.
  • N: M 관계: 여러 엔티티의 인스턴스들이 서로 다수의 관계를 맺을 때
    • 예시: 학생(Student)과 강좌(Course) 간의 관계
      • 한 명의 학생은 여러 강좌를 수강할 수 있고, 한 강좌에는 여러 학생이 수강할 수 있다.

최소 카디널리티

Minimum Cardinality

최소 카디널리티는 관계에서 최소 몇 개의 인스턴스가 반드시 연결되어야 하는지를 나타낸다. 이는 각 엔티티가 관계에 필수적으로 참여하는지 아니면 선택적으로 참여하는지를 결정하는 요소이다.

  • 0 (Partial Participation, 선택적 참여): 엔티티가 관계에 참여하지 않아도 된다.
    • 예시: 사원은 필수로 부서에 속할 필요가 없다.
  • 1 (Total Participation, 필수적 참여): 엔티티는 반드시 관계에 참여해야 한다.
    • 예시: 학생은 반드시 한 명의 지도 교수에게 할당되어야 한다.

최소, 최대 카디널리티가 가지는 의미

  • 교수(1)와 학생(N) 간의 관계에서 최소 카디널리티가 교수에 대해 1이라면, 한 명의 교수가 반드시 한 명 이상의 학생을 지도해야 한다는 의미이다.
  • 학생의 최소 카디널리티가 0이라면, 학생은 지도 교수가 없어도 되지만, 최대 카디널리티가 1이라면 한 명의 교수에게만 지도받을 수 있다는 의미다.

표기법

카디널리티는 숫자를 직접 적거나 기호로 표현할 수 있다.

숫자 표기법

여긴 1:N, N:M 카디날리티 표현과 (min, max) 노테이션이 같이 사용되었는데 이해를 돕기 위한 것이며, 중복된 의미를 가지므로 둘을 함께 쓰는 경우는 없다. Cardinality Ratio

  • 그냥 1, N, M으로만 표현 하는 것을 Cardinality Ratio라고 한다.
  • 위 그림에서 Professor에 1이 있고 Course에 M이 있는 것은, 교수 1명은 M개의 코스를 가르칠 수 있다는 것이다.
    • 그리고 M개의 코스들은 각각 1명의 교수들에 의해서만 가르쳐질 수 있다는 것이다.
  • 여기선 최대 몇명인지, 그리고 꼭 존재해야 하는 것인지는 일반적으로 표현되지 않는다.
    • 꼭 존재해야 한다면 두 줄을 사용할 수 있다.
      • 아래 ERD 예시에서 Department는 Manage를 해줄 Employee가 필요하다는 의미로 두 줄이 사용되었다.
      • 이 매니저는 최소 1명, 최대 1명이 될 수 있음을 의미한다.
      • 표현된 숫자는 1:1 관계이지만. 한 줄과 두 줄 표현을 통해 아래와 같이 최대 최소가 정의됨 (ERD 예시 2 참조)
        • EMPLOYEE - (0,1) - MANAGES - (1,1) - DEPARTMENT
        • EMPLOYEE는 0개 또는 1개의 DEPARTMENT를 관리할 수 있음
        • DEPARTMENT는 최소 1명, 최대 1명의 MANAGING EMPLOYEE를 가짐
    • 최대값까지 표현하려면 아래의 (min, max) 노테이션을 사용해야 한다.

Structure Constraints Using (min, max) Notation

  • 이 노테이션을 사용하면 그냥 1:N이 아니라 최소, 최대도 표현해줄 수 있다.
  • 위 그림에서 (0,3), (1,1)로 되어 있는 것인데, 기본 카디날리티 표현과 순서가 반대라 헷갈릴 수 있다.
  • 여기서 교수는 Course를 맡지 않을 수도 있고, 맡는다면 최대 3개까지만 맡을 수 있다.
    • Course는 무조건 1명의 교수가 있어야 한다.
  • 학생은 1~6개의 Course을 등록해야 한다.
    • Course는 학생이 한명도 없을 수도 있고 최대 35명까지 있을 수도 있다.

참여 제약조건

Participation Constraint

  • 위에서 설명한 최소 카디날리티를 포함한다.
  • 최대, 최소 카디날리티를 지켜야 하는 제약조건을 일컫는다.

ERD 예시

예시1 (Cardinality Ratio)

613x613픽셀

예시2 (Structure Constraint)

ERD Figure 3.15.png