Database

[DATABASE] relation data model에서 relation의 의미가 뭘까?

ju_young 2023. 10. 15. 00:42
728x90

set (집합)

  • 서로 다른 요소들을 가지는 collection
  • 순서를 보장하지 않음

수학의 relation과 의미

아래와 같이 A 집합과 B 집합이 있을때 각각의 요소들을 선택하여 쌍을 만든다.

그러면 (1, p), (1, q), (1,r), (2, p), (2,q), (2,r) 이 생길 것이다. 그리고 이렇게 표현한 것을 카르테시안 곱(cartesian product)라고 한다.

이 카르테시안 곱이 relation과 관련이 있는데

아래처럼 집합이 A, B 두 개가 있을 경우 binary relation 이라고 한다. 여기서 relation의 의미가 바로 A x B 카르테시안 곱의 부분 집합이라는 것이다.

그리고 아래처럼 집합이 n개까지 있다고 한다면 n-ary relation 이라 하고 n개의 집합에 대한 카르테시안 곱의 부분집합이 되는 것이다.

이런 relation에서 나온 아래와 같은 리스트들은 tuple(튜플)이라고 부른다. 위와 같은 경우 n개의 요소들을 담는 튜플이기때문에 n-tuple 이라고 부른다.

이제 이런 relation을 테이블로 그려서 표현해보면 다음과 같다.

relation schema

  • relation 구조를 나타냄
  • relation 이름과 attributes 리스트로 표기
  • 예) User(id, name, email, phone)
  • attributes와 관련된 constraints라는 것도 포함

degree of a relation

  • relation schema에서 attributes의 수
  • 예) User(id, name, email, phone) -> degree 4

relation database

  • relation data model을 기반으로 구조화된 database
  • relational database는 여러 개의 ralations로 구성

relation의 특징

  1. 중복된 tuple을 가질 수 없다.
  2. tuple을 식별하기위해 attribute의 부분 집합을 key로 설정 (예를 들어서 "id, name, email, phone" 중 id 를 key로 설정)
  3. tuple의 순서는 중요하지 않음
  4. attribute는 원자성(더 이상 쪼개지지않는 성질)을 가져야함 (예를 들어서 "경기도 수원시"라는 값이 있다면 "경기도"와 "수원시"로 나누어질 수 있기때문에 원자성을 만족하지 않는다.)
728x90