Posts [Database] 데이터베이스 용어 - 릴레이션, 어트리뷰트, 튜플, 도메인, 차수, 카디널리티, 스키마
Post
Cancel

[Database] 데이터베이스 용어 - 릴레이션, 어트리뷰트, 튜플, 도메인, 차수, 카디널리티, 스키마

데이터베이스 용어

데이터베이스를 공부하다보면 릴레이션, 어트리뷰트, 튜플, 도메인, 차수, 카디널리티, 스키마 등의 용어를 접하게 된다. 나도 DB CS 공부를 하면서 앞서 언급한 용어가 나올때마다 그냥 넘어가곤 하였는데 이번 기회에 완벽히 정리하기로 했다.

릴레이션

릴레이션이란 관계형 데이터베이스에서 정보를 구분하여 저장하는 기본 단위이다.

결국, 릴레이션은 DB 테이블이다. 흔히 개발을 할때 DB 설계를 하게 되는데 ERD (Entity Relationship Diagram) 아래와 같이 구성한다.

Untitled

그래서 이 네모칸 하나하나가 결국 릴레이션이다. 이 릴레이션에는 몇가지 특징이 있다.

릴레이션의 특징

  • 한 릴레이션에는 똑같은 튜플(Tuple)이 포함될 수 없으므로 릴레이션에 포함된 튜플들은 모두 상이하다.
  • 한 릴레이션에 포함된 튜플 사이에는 순서가 없다.
  • 튜플들의 삽입, 삭제 등의 작업으로 인해 릴레이션은 시간에 따라 변한다.
  • 릴레이션 스키마를 구성하는 속성들 간의 순서는 중요하지 않다.
  • 속성의 유일한 식별을 위해 속성의 명칭은 유일해야 하지만, 속성을 구성하는 값은 동일한 값이 있을 수 있다.
  • 릴레이션을 구성하는 튜플을 유일하게 식별하기 위해 속성들의 부분집합 키(Key)로 설정한다.
  • 속성의 값은 논리적으로 더 이상 쪼갤 수 없는 원자 값만을 저장한다.

릴레이션은 이러한 특징들을 갖고 있는데 위에서 튜플, 속성, 스키마 등 용어가 생소한 사람은 지금 부터의 설명을 잘 들어보자!!

속성 (attribute, 애트리뷰트)

하나의 릴레이션은 현실세계의 어떤 개체(entity)를 표현하고 저장하는데 사용된다. 이때 개체는 사물이 될 수도 추상적인 개념이 될 수도 있다.

속성은 내가 저장하고 싶은 개채의 항목들이다. 예를 들어, 내가 쇼핑몰을 운영하고 있다고 생각하자.

그럴때 쇼핑몰 운영을 위해 고객의 이름, 고객 고유 번호, 전화번호, 집 주소 등이 필요하다.

따라서 고객의 이름, 고객 고유 번호, 전화번호, 집 주소 등이 속성이 되고 아래와 같이 테이블을 만들 수 있다.

Untitled 1

결국 하나의 열은 하나의 속성 정보를 표시한다.

속성 또한 고유한 이름을 가지고 있어 동일 릴레이션 내에서는 같은 이름의 속성이 존재할 수 없다.

차수 (degree)

한 릴레이션 안에 있는 에트리뷰트 수를 차수 라고 한다.

따라서, 유효한 릴레이션의 최소 차수는 1 이다.

그렇기 때문에 모든 릴레이션은 적어도 하나 이상의 애트리뷰트를 갖고 있고 위의 쇼핑몰 고객 테이블에서 차수는 4 임을 알 수 있다.

튜플 (tuple, 레코드)

Untitled 2

위의 테이블에서 보다시피 릴레이션의 각 행을 레코드 라고 한다.

레코드를 더 공식적으로 튜플이라고 부른다.

카디날리티 (Cardinality)

카디날리티는 릴레이션 튜플의 개수 이다. 따라서, 아직 데이터가 삽입되지 않은 테이블의 경우 카디널리티는 차수와 다르게 0의 값을 가질 수 있다.

또한 카디날리티는 시간에 지남에 따라 값이 계속해서 변화한다.

도메인 (domain)

도메인은 릴레이션에 포함된 속성들이 각각 가질 수 있는 값들의 집합이라 할 수 있다.

예를 들어 ‘‘안경 착용의 유무’‘라는 속성이 있을 때 이 속성이 가질 수 있는 값은 “유” 혹은 “무”일 것이다.

이 집합 즉 도메인의 이름을 ‘A’ 라고 칭하자.

그럼 ‘안경 착용의 유무’라는 속성은 A라는 도메인에 있는 값만 가질 수 있다.

도메인의 이름은 속성 이름과 같을 수도 있고 다를 수도 있다. 또 하나의 도메인을 여러 속성에서 공유할 수도 있다.

스키마

스키마는 데이터베이스의 구조와 제약 조건에 관한 전반적인 명세를 기술한 메타데이터의 집합이다. 스키마는 데이터베이스를 구성하는 데이터 개체(Entity), 속성 (Attribute), 관계 (Relationship) 및 데이터 조작 시 데이터 값들이 갖는 제약 조전 등에 관해 전반적으로 정의한다.

그리고 스키마는 사용자의 관점에 따라 외부 스키마, 개념 스키마, 내부 스키마로 나눠진다.

아래의 사진이 스키마의 예이다.

Untitled 3

논리모델 vs 물리모델

논리모델물리모델
엔티티(Entity)테이블(Table)
속성, 어트리뷰트(Attribute)컬럼(Column)
관계, 릴레이션(Relation)관계, 릴레이션(Relation)
키 그룹(Key group)인덱스(Index)
This post is licensed under CC BY 4.0 by the author.

[프로그래머스] 자물쇠와 열쇠 Python (파이썬)

[프로그래머스] 큰수만들기 Python (파이썬)

Loading comments from Disqus ...