인트로
안녕하세요. 오늘은 데이터베이스의 매핑 카디널리티에 대해서 알아 보겠습니다.
사상 원소수(mapping cardinarlity), 즉 매핑 카디널리티에는 3가지가 있습니다.
1) 1:1관계
2) 1:N 관계
3) N:M 관계
4) 전체 참여 / 부분 참여 관계
5) 존재 종속 : 'A가 있어야 B도 존재한다'
그럼 데이터베이스의 관계에 대해 설명 시작하겠습니다.
1) 1:1관계
왼쪽 개체와 오른쪽 개체가 반드시 '하나'로만 매핑되어야 한다.
f(x)가 함수가 되려면 fx값은 반드시 하나만 나와야한다.
[예시] 예를 들어, 국가와 대통령은 1:1관계입니다.
개체는 정적인 성질과 관련이 있고, 개체들간의 관계는 오퍼레이션을 해결하기 위해 만들어진다.
예를 들어, 과외라는 관계를 생각해봅시다.
선생님과 학생은 '과외'라는 관계를 가지고 있습니다.
2) 1:N관계 (일대다관계)
현실세계에는 1:N관계가 많이 있습니다. 1:N 관계는 N:M 관계처럼 새로운 테이블을 만들지 않습니다.
[예시] 예를 들어, 팀과 선수의 '소속' 관계를 생각해봅시다.팀에 소속되있지만 어떤 순간에는 1:N관계로 정의된다.
또한, 선수에 team_id를 외래키로 넣어주면 1:N 관계로 표현할 수 있습니다.
3) N:M관계 (다대다 관계)
개체들간의 관계성에서 중요한 측면이 매핑 카디널리티입니다.
영화와 배우사이의 관계는 몇대몇일까요? 1:N 관계라고 생각해버리는 순간 테이블 구조가 제대로 안나옵니다.
왜냐하면 한 배우는 여러 영화를 촬영하고, 한 영화는 여러 배우들을 쓰기 때문입니다.
N:M 관계는 관계를 가진 양쪽 개체 모두에서 1:M관계가 나타날때, N:M관계로 정의합니다.
추후에, N:M관계는 1:N으로 나누어야합니다.
4) 전체참여 / 부분참여 관계
전체 참여 관계 : 전체 참여는, 전체 개체가 참여하는 릴레이션입니다. 어떤 관계를 보면, 교수와 학과의 '소속'이라는 관계가 있습니다. 교수는 학과에 모두 소속되므로, 전체 참여 조건을 가지는 릴레이션입니다.
부분 참여 관계 : 부분 참여는 일부 개체만 참여하는 릴레이션이다. 학생과 과목 사이의 릴레이션인경우, 어떤 학생이 휴학한 상태일 수 도 있기 때문에 '부분 참여'입니다.
5) 존재 존속
존재 존속 (existence dependence) : 'A가 존재해야 B가 존재한다'
A가 반드시 있어야만 B가 존재할때, B는 A의 존재 존속이라고 합니다.
A를 주 개체라고 하고 , B를 종속 개체라고 합니다.
예를 들어, 상환은 대출에 의존적입니다. (대출을 하지 않으면 상환할 필요가 없겠죠.)
이자율에 따라 '한달에 얼마를 내야하느냐' 의 상환이 결정됩니다.
상환을 대출의 애트리뷰트로 잡기에는 너무 속성들이 많습니다.
대출의 기본키가 상환의 외래키로 사용됩니다.
일단, 의존적이면 A인 대출은 1입니다. 그러나 B 개체인 '상황'은 1일수도 있고 N일 수도 있습니다.
상환이 1일수도 N일수도 있는 이유는, 상환을 한번에 한 경우 1이고, 나눠서 한 경우 N이기 때문입니다.
읽어주셔서 감사합니다 :)
'이론 > DB' 카테고리의 다른 글
[DB][SQL] SQL의 셀프조인 (0) | 2020.03.29 |
---|---|
[DB] 데이터베이스 애트리뷰트 종류(단순, 복합, 유도, NULL) (0) | 2020.03.29 |
[DB][SQL] 집계함수(COUNT, SUM, AVG, MAX, MIN) (0) | 2020.03.11 |
[DB] SQLD 35회차 시험 후기 (0) | 2019.12.10 |
[데이터베이스] Indexing - (3) (0) | 2019.06.11 |