DB정리는 할껀데 핵심만 할껍니다. - 관계 데이터 모델 (Relation Data Model)

0

DB

목록 보기
3/4

관계 데이터 모델

1. 관계 데이터 모델이란?

크게 어려울 것은 없고, table 형식과 똑같다. 여기서 table은 relation이라고 한다.

관계 데이터 모델에서는 이렇게 행(row)열(column)로 구성된 2차원의 테이블(table)을 realtion이라고 한다.

릴레이션은 수학의 집합에서 나온 개념이다. 수학적으로 릴레이션은 두 개 이상의 집합으로부터 각 집합을 구성하는 원소들의 순서쌍에 대한 집합을 의미한다.

말이 좀 어려운 것 같은데, 그냥 집합이라는 것만 알아두면 된다.

1.1 relation 관련 용어

relation은 속성과 tuple, 도메인, NULL을 갖는다.

  1. 속성(attribute) : relation의 각 열을 속성이라고 부른다.
  2. tuple : 하나의 튜플은 각 속성에서 정의된 값을 이용하여 구성된다. 가령 속성이 가격이라면, 가격 속성에 해당하는 튜플은 1000원이다.
  3. 도메인(domain) : 하나의 속성이 가질 수 있는 같은 타입의 모든 값의 집합이다. 각 속성의 도메인은 원자 값(atomic value)을 갖는다. 따라서, 각 속성은 모두 다중 속성값, 복합 속성을 가질 수 없다. 도메인은 프로그래밍 언어의 데이터 형식과 비슷하다. 동일한 도메인이 여러 속성에 사용될 수도 있다.

도메인의 예제는 다음과 같다.

CREATE DOMAIN BNO INT
CREATE DOMAIN BNAME VARCHAR(50)

도메인을 생성하는 것인데, 도메인은 속성이 가질 수 있는 같은 타입의 모든 값이라고 했다. 이는 다른 말로 제한이라고 생각하면 된다. 즉, 속성이 가질 수 있는 모든 경우를 도메인으로 제한한다는 것이다.

위의 예제에서 BNO는 속성이다. 해당 속성의 도메인으로 INT 제한이 있는 것이다. 따라서 BNO는 정수만 사용할 수 있는 것이다.

BNAME도 속성이다. 해당 속성의 도메인은 VARCHAR(50)으로 최대 길이가 N바이트인 가변 길이 문자열만 사용가능하다는 것이다. 문자 하나당 1바이트이므로 50글자까지만 사용할 수 있다는 것이다.

  1. 특정 속성에 대한 값을 알 수 없어서 입력하지 못하는 경우는 NULL을 넣는다.

이렇게 relation은 속성과 튜플, 도메인, NULL을 갖는다.

1.1.1 참고

관계 데이터 모델의 공식적인 용어, 관계 DBMS에서 사용되는 용어, 파일 시스템에서 사용되는 언어를 헷갈리지 않도록 하자

관계 데이터 모델관계 DBMS파일 시스템
릴레이션테이블파일
튜플레코드
속성필드

1.2 relation 스키마와 인스턴스

데이터가 저장되기 위해서는 먼저 저장될 구조가 정의되어야 한다.

요구조건의 정의에 따라 만들어진 데이터 구조를 릴레이션 스키마(relation schema)또는 스키마라고 부른다. 즉, 릴레이션 스키마는 한 개의 릴레이션의 논리적인 구조를 저으이한 것으로 릴레이션의 이름과 릴레이션에 포함된 속성들의 집합을 의미한다.

또한, 릴레이션 스키마를 내포(intension)이라고 표한하고 다음과 같이 정의한다.

relation_이름(속성이름1, 속성이름2 , ... 속성이름n)

밑줄 친 부분인 식별자가 된다.

이렇게 릴레이션 스키마에 정의된 속성의 개수를 그 릴레이션의 차수(degree)라고 한다. 릴레이션은 한 개 이상의 속성을 가져야 하므로, 유효한 릴레이션의 최소 차수는 1이다.

이와 같이 릴레이션 스키마에 현실세계의 데이터를 저장한 형태를 릴레이션 인스턴스(relation instance) 또는 간단히 인스턴스라고 표현한다 클래스와 인스턴의 개념과 비슷하다고 생각하면 된다. 클래스가 스키마가 되고, 클래스 인스턴스가 릴레이션 인스턴스가 되는 것이다.

즉, 릴레이션 인스턴스는 어느 한 시점의 릴레이션에 들어있는 내용 또는 상태를 의미한다. 즉 튜플 전체의 데이터이다. 이와 같은 특징으로 릴레이션 인스턴스를 외연(extension)이라고 부르기도 한다.

왼쪽은 스키마이고, 오른쪽은 인스턴스가 된다. 이처럼 스키마를 기준으로 튜플을 갖는 것이 인스턴스가 되는 것이다.

릴레이션 인스턴스는 튜플들의 집합인데, 이 때 한 릴레이션의 튜플 수를 릴레이션 기수(cardinarity)라고 한다. 위의 예제를 들면 튜플 수가 3개이므로 cardinarity는 3이다.

이처럼 릴레이션은 스키마와 인스턴스로 구성되어 있다는 것을 알아두도록 하자.

1.3 릴레이션의 특성

릴레이션이 "집합"이라는 특성을 기억해둘 것을 말했다. 때문에 릴레이션 안의 튜플들은 순서가 중요하지 않고, 중복된 튜플을 가질 수 없다. 또한, 각 속성들은 원자성을 갖기 때문에 복합적 데이터를 가질 수 없다.

복합적 데이터란 다음과 같다.

이와 같이 (이름, 별명) 으로 구성된 복합 속성을 가질 수 없다는 것이다.

따라서, 릴레이션은 튜플의 유일성과 무순서성과 속성의 무순서성과 원자성의 특징을 갖게 된다.

  1. 튜플의 유일성 : 하나의 릴레이션에는 중복된 튜플이 존재하지 않는다.
  2. 튜플의 무순서성 : 하나의 릴레이션에서 튜플 간의 순서는 의미가 없다.
  3. 속성의 무순서성 : 하나의 릴레이션에서 속성의 순서는 의미가 없다.
  4. 속성의 원자성 : 모든 속성 값은 원자 값만 사용할 수 있다. 덧붙이자면 하나의 속성은 여러 개의 값, 즉 다중 값을 가질 수 없다는 것이다.

다음은 관계 데이터 모델에서 중요한 부분인 무결성에 대하여 알아보도록 하자.

0개의 댓글