정리 노트

관계 데이터 구조 본문

개념 정리/데이터베이스

관계 데이터 구조

꿈만 꾸는 학부생 2023. 8. 10. 22:02
728x90

이 포스트는 국민대학교 소프트웨어학부 '데이터베이스' 강의를 듣고 요약하는 포스트입니다. 원하시는 정보가 없을 수도 있습니다. 이 점 유의 바랍니다. 오류 지적은 매우 환영합니다!


관계 데이터 모델은 RDB의 논리적 설계 시 이용되는 모델로 아래 3가지를 정의해야 합니다.

  • 관계 데이터 구조
  • 관계 연산
  • 관계 제약 조건

이번 포스트에서는 관계 데이터 구조에 대해 알아보겠습니다.

 

관계 데이터 구조(= Relation = Table)

Relation의 수학적 정의

1. n-tuple의 집합

Table의 한 record로 생각하면 이해하기 쉽습니다.

학번 중간고사 전공 평점
20230001 3.7
20230134 2.5
20230342 3.7

위의 table을 보면, 총 3개의 행이 있습니다. 여기의 각 행을 tuple로 생각하면 됩니다. 위 표의 이름을 '등록'이라 할 때 위의 표를 3개의 tuple을 가지는 집합으로 표현할 수 있습니다.

등록 = { <20230001, 3.7>, <20230134, 2.5>, <20230342, 3.3>}

여기서 2가지의 개념이 등장합니다.

  • relation의 차수(degree): 속성의 수
  • relation의 기수(cardinality): tuple(record)의 수

위의 relation을 예로 들면, degree 값은 2, cardinality의 값은 3입니다.

 

2. Domain들의 cartesian product(집합의 곱셈)의 부분 집합

Relation을 여러 집합들의 곱셈 결과의 부분 집합으로 볼 수 있습니다. 위의 표도 이와 같이 생각할 수 있습니다.

빨간색으로 작성된 tuple이 실제 table에 작성된 record들입니다.

Relation의 개념적 정의

개념적인 정의로 얘기하면 relation은 relation scheme과 relation instance들을 합친 것을 의미합니다.

Relation scheme은 relation 명칭과 속성 명칭을 기술한 것입니다.

ex. 등록(학번, 중간고사 전공 평점)

Relation instance는 relation이 포함하고 있는 tuple들의 집합으로 각 tuple은 속성과 값의 순서쌍으로 작성합니다

ex. 등록 = { <학번: 20230001, 중간고사 전공 평점: 3.7>, <학번: 20230134, 중간고사 전공 평점: 2.5>, <학번: 20230342, 중간고사 전공 평점: 3.3>}

Relation의 특성

  1. tuple의 유일성
  2. tuple의 무순서
  3. 속성들의 무순서
  4. 속성은 원자값만 가짐(= 다중값 불가)

1번과 2번의 특성은 relation은 수학적으로 '집합'이기 때문에 생기는 특성입니다. 집합처럼 relation 내의 각 tuple은 유일해야 하고, tuple 간의 순서도 보장되지 않습니다.

728x90