Computer Science/데이터 베이스

[데이터베이스] 릴레이션의 특성(Characteristics of Relation)

바보1 2023. 10. 26. 00:24

앞의 글을 읽으시면 이해에 도움이 됩니다.

 

2023.10.25 - [Computer Science/데이터 베이스] - [데이터베이스] 관계 모델(Relation Model)

 

[데이터베이스] 관계 모델(Relation Model)

앞의 글을 읽으시면 이해에 도움이 됩니다. 2023.10.25 - [Computer Science/데이터 베이스] - [데이터베이스] 약한 엔티티 타입(Weak Entity Type) [데이터베이스] 약한 엔티티 타입(Weak Entity Type) 앞의 글을 읽

hi-guten-tag.tistory.com


1. 릴레이션의 특성(Characteristics of Relation)

 

 

  • 릴레이션에도 특성이 있습니다.
  • 튜플들의 순서, 애트리뷰트의 순서, 튜플의 값 등이 있습니다.
  • 이번 글에는 릴레이션의 특성들에 대해 알아보겠습니다.

2. 튜플들의 순서(Ordering of Tuples)

 

 

  • Relation내의 튜플들의 순서는 정해져 있지 않습니다.
  • 집합 내에서의 원소들 사이의 순서는 정해져 있지 않는 것처럼, 릴레이션 내의 튜플들은 특정 순서를 갖지 않습니다.

  • 따라서 위 두개의 릴레이션은 동일한 릴레이션입니다.
  • 다만 Physical 단계에는 순서적으로 저장되어 있지만, 릴레이션은 Logical 혹은 Abstract 단계에서 표현하기 때문에 튜플들의 순서는 릴레이션의 정의의 일부가 아닙니다.

3. 애트리뷰트들의 순서(Ordering of Attributes)

 

 

  • 이전 글에서 n-튜플은 n개의 값의 순서 리스트라고 언급했습니다.
  • 릴레이션 스키마 R의 튜플은 R(A1, A2, ..., An)으로 표시되고, 튜플 ti는 <v1, v2, ..., vn>으로 표시됩니다.
  • 즉 이 말은 릴레이션 스키마를 정의할 때는 애트리뷰트들의 순서가 중요하다는 것을 의미합니다.
  • 하지만 각 애트리뷰트와 애트리뷰트의 값이 서로 대응된다면 애트리뷰트들의 순서와 애트리뷰트 값들의 순서는 중요하지 않습니다.
  • 예를 들어 t=<(Name, Woo), (Phone_number, 010-1234-5678), (Birth, 10000101)>과 t=<(Phone_number, 010-1234-5678), (Birth, 10000101), (Name, Woo)>은 서로 동일한 튜플입니다.
  • 이러한 튜플들을 Self-Describing이라고 합니다.
  • 그 외의 경우에는 애트리뷰트들의 순서가 중요합니다.

4. 튜플의 값(Value in a Tuple)

 

 

  • 튜플의 값은 원자값(atomic)하다고 말합니다. 이는 값이 더 이상 나누어질 수 없음을 의미합니다.
  • 따라서 Composite Attribute와 Multi-Valued Attribute는 허용되지 않습니다.
  • 이러한 모델을 평면 관계 모델(flat relational model)이라고 부릅니다.
  • 평면 관계 모델에서 Composite Atturibute는 단순 애트리뷰트들로 표현해야 하고, Multi-Valued Attribute는 별도의 릴레이션으로 표현해야 합니다.
  • 그럼에도 불구하고, 튜플의 값을 NULL로 표시해야 하는 경우가 종종 발생합니다.
    • 값을 알 수 없는 경우(Unknown)
    • 가능하지 않은 값을 가지는 경우 혹은 값을 가지고 있지 않은 경우(Not Available)
    • 이 튜플에는 이 애트리뷰트를 적용할 수 없는 경우(Inapplicable)

 

  • 위의 경우에는 튜플의 값을 NULL로 표시해야 합니다.

5. 표기법(Notation)

 

 

  • 차수가 n인 릴레이션 스키마 R은 R(A1, A2, ..., An)으로 표기합니다.
  • 대문자는 Q, R, S는 릴레이션의 이름을, 소문자 q, r, s는 릴레이션의 상태를 나타냅니다.
  • 소문자 t, u, v는 튜플을 나타냅니다.
  • 일반적으로 STUDENT처럼 릴레이션 스키마의 이름은 현재의 릴레이션 상태를 가리키고, 반면에 STUDENT(Name, Ssn, ...)은 릴레이션 스키마만을 가리킵니다.
  • 애트리뷰트 이름 A에 애트리뷰트가 속한 릴레이션의 이름 R을 붙여서 R.A로 표기 할 수 있습니다. STUDENT.Name 또는 STUDENT.Age 등이 그 예시인데, 서로 다른 릴레이션이 동일한 이름의 애트리뷰트를 사용할 수 있기 때문입니다. 하지만 한 릴레이션의 애트리뷰트 이름들은 서로 달라야 합니다.
  • 릴레이션 r(R)의 n-투플 t는 t=< v1, v2, ..., vn>으로 표기합니다. 여기서 vi는 애트리뷰트 Ai의 값이 됩니다.
  • t[Ai]와 t.Ai는 t에서 애트리뷰트 Ai의 값 vi를 가리킵니다.
  • t[Au, Aw, ..., Az]와 t.(Au, Aw, ..., Az)는 t에서 애트리뷰트들의 리스트 Au, Aw, ..., Az에 대한 값들의 서브 튜플(subtuple) < vu, vw, ..., vz>를 가리킵니다.

참고

 

 

경북대학교 컴퓨터학부 COMP0322-004 데이타베이스 수업

DATABASE SYSTEMS 7th / Elmasri, Navathe 저 / PEARSON / 2019년


다음 글에서는 관계 모델의 제약 조건 - 1(Relational Model Constraints)에 대해 알아보겠습니다.

 

2023.10.26 - [Computer Science/데이터 베이스] - [데이터베이스] 관계 모델의 제약 조건 - 1(Relational Model Constraints)

 

[데이터베이스] 관계 모델의 제약 조건 - 1(Relational Model Constraints)

앞의 글을 읽으시면 이해에 도움이 됩니다. 2023.10.26 - [Computer Science/데이터 베이스] - [데이터베이스] 릴레이션의 특성(Characteristics of Relation) [데이터베이스] 릴레이션의 특성(Characteristics of Relation

hi-guten-tag.tistory.com

 

감사합니다.

지적 환영합니다.