DNF LOVE

[데이터베이스론 기초 - 8] 관계 데이터베이스 모델과 릴레이션 개념에 대하여 본문

Computer Science/데이터베이스

[데이터베이스론 기초 - 8] 관계 데이터베이스 모델과 릴레이션 개념에 대하여

botho 2019. 8. 14. 23:48
반응형

   ** 헷갈릴만한 용어 정리

  • 릴레이션 = 테이블, 릴레이션 인스턴스의 집합
  • 애트리뷰트 = 속성, 필드, 테이블 열
  • 도메인
  • 튜플 = 레코드, 테이블 행
  • 인스턴스 = 튜플의 집합
  • 관계 데이터 모델 = 프로그래밍 시스템
  • 릴레이션 인스턴스 = 튜플들의 집합 | 데이터베이스 인스턴스 = 모든 릴레이션들의 인스턴스 집합

1. 관계 데이터베이스 모델 : 1970년 IBM의 E.F.CODD에 의해 제안된 데이터베이스 모델이다.

1) 특징

테이블의 행과 열

  • 수학에서의 릴레이션과 집합 이론에 기초된다. 수학의 숫자를 데이터라고 생각하면 된다.
    집합 성질 : 같은 성질을 가진 대상들의 모임이며 이들은 구별할 수 있어야 한다. 또한 닫힌 성질을 갖고 있는데 이는 숫자가 중복되지 않고 순서가 존재하지 않다는 뜻이다.
  • 관계 데이터 모델의 직관적인 이해에 도움이 된다.
  • 테이블의 열은 필드, 아이템, 혹은 관계 데이터모델의 애트리뷰트이다.
  • 테이블의 행은 레코드, 혹은 관계 데이터 모델의 튜플이다.

2) 관계 데이터베이스 모델 개념 : 테이블들의 집합이다. 데이터베이스를 시간에 따라 그 내용이 변할 수 있는 테이블 형태로 표현되는 동적인 데이터베이스이다. 개체를 만들 수도 관계를 만들 수도 있다. 개체 뿐만 아니라 관계도 속성과 레코드를 가질 수 있는 테이블이 될 수 있다는 뜻이다.

3) 관계 데이터베이스 스키마 = 릴레이션 스키마 + 무결성 제약 조건
 EX> 관계 데이터베이스 학생(개체) - 등록(학생과 과목의 관계) - 과목(개체)의 테이블

학생 테이블 = 개체
과목 테이블, 개체
등록 테이블, 관계

 

2. 도메인과 애트리뷰트

1) 도메인 : 애트리뷰트가 취할 수 있는 값(value)의 집합이다. 즉 범위를 뜻한다 2. 애트리뷰트와 도메인

  • 단순 도메인 : 단순 애트리뷰트이며 더 이상 쪼개질 수 없는 원자값이다.
  • 복합 도메인 : 복합 애트리뷰트이며 복합적인 값을 가질 수 있다. 예를 들어 날짜라는 하나의 애트리뷰트에 <연, 월, 일> 세 가지의 값이 들어갈 수 있는 애트리뷰트이다. 그렇지만 값을 하나의 단위로 취급하기 때문에 이 역시 원자값이다.

2) 애트리뷰트 : 도메인의 역할(Role)이름을 뜻한다. 한 릴레이션 내에서 애트리뷰트 이름들은 모두 달라야 한다.
단, 애트리뷰트 이름은 도메인의 이름일 수 있다. 역할 이름을 도메인 이름으로 지정한다.

관계 데이터베이스 테이블. 각 개념에 따른 도식표

 

3. 릴레이션 R

1) 릴레이션 스키마(=릴레이션 내포, =릴레이션 스킴) : 릴레이션의 이름 + 애트리뷰트의 이름(+애트리뷰트 도메인)
 ex> 학생({학번, 이름, 학년, 학과})

  • 시간에 무관하며 정적인 성질을 가지고 있다. 즉 시간에 따라 변경되지 않는다.
  • 릴레이션 타입과 같은 의미가 있다.

2) 릴레이션 인스턴스(=릴레이션 외연) : 어느 한 시점에 릴레이션 R이 포함하고 있는 투플들의 집합이다. 집합이기 때문에 데이터가 중복되지 않고 내용에 의한 참조이기 때문에 순서가 존재하지 않는다.

  • 릴레이션의 내용과 상태는 스냅샷처럼 어느 한 시점을 순간적으로 찍은 상태를 갖는다.
  • 릴레이션 인스턴스는 동적인 성질을 가지고 있기 때문에 삽입, 삭제, 갱신으로 시간에 따라 변한다. 
  • 릴레이션 값(보통 릴레이션)

3) 릴레이션 R 

  • 수학적 정의 : 릴레이션 R은 카티션 프로덕트의 부분집합이다. 부분집합인 이유는 수학적으로 모든 가능한 조합 중 일부분이 릴레이션 되기 때문이다. 즉 모든 튜플과 도메인의 집합이다.
  • 개념적 정의 : 릴레이션 스키마(애트리뷰트와 도메인의 집합) + 릴레이션 인스턴스(튜플들의 집합)이다. 간단하게는 튜플, 인스턴스의 집합이라고 한다.
  • 애트리뷰트의 무순서성 : 릴레이션 스키마는 애트리뷰트들의 집합이기 때문에 한 릴레이션을 구성하는 애트리뷰트는 <애트리뷰트 : 값>처럼 서로 짝으로 존재할 뿐 순서가 없다. 위의 예시를 들어 설명하자면 데이터를 집어넣을 때 학번을 먼저 넣으나 이름을 먼저 넣으나 상관이 없다. (물론 SQL에서는 순서 중요함)
  • 애트리뷰트의 원자성 : 애트리뷰트는 논리적으로 더 이상 분해되지 않는다. 즉 처리상의 단위값이다.
    - Null 값도 원자 값으로 취급한다. ① Unknown : 아직 모르는 값 ② Inapplicable : 적용 대상이 아니다.
    - 한 릴레이션에 관련된 모든 도메인이 단순 도메인인 경우에는 애트리뷰트들이 모두 단순 애트리뷰트가 되어 원자값이라는 성질에 적용된다.
    - 복합 도메인이 사용된 경우에는 복합 애트리뷰트 값은 의미가 하나의 단위로 취급하기 때문에 이 역시 문제가 되지 않는다.
  • 정규화 릴레이션 : 애트리뷰트 값으로 원자 값만 허용되는 릴레이션이다
  • 비정규화 릴레이션 : 분해를 통해 정규화를 한다.

 

4. 관계 데이터베이스 키 : 키란 각 튜플을 유일하게 식별할 수 있는 애트리뷰트 집합을 뜻한다. 키가 집합인 이유는 키 하나만으로 구성할 수 없는 떄가 존재하기 때문이다.

1) 후보키 : 유일성과 최소성 모두를 만족시키는 릴레이션에 대한 애트리뷰트 집합

  • 유일성 : 각 투플에 대해 K({Ai, Aj, ..., Ak})의 값 (<vi, vj, ..., vk>)은 유일하다. 즉 각 튜플에 대한 키의 값은 유일하다.
  • 최소성 : 키는 각 튜플을 유일하게 식별하는데 필요한 최소의 애트리뷰트의 수로 구별할 수 있어야 한다.

2) 기본키(Primary Key, PK) : 후보키 중에서 지정된 하나의 키이고 이는 DBA(데이터베이스 관리자)가 지정한다. 각 튜플에 대한 키 값은 항상 유효값이어야 하기 때문에 널 값은 허용되지 않는다. 이를 개체 무결성 제약조건이라 한다.

3) 대체키 : 후보키 중에서 기본 키를 제외한 나머지 후보키들을 말한다.

4) 외래키(Foreign Key, FK) : 릴레이션 R의 애트리뷰트 집합 FK가 릴레이션 S의 기본 키일때 이 FK는 R의 외래키이다.
 즉, FK의 도메인 = S의 기본 키의 도메인을 뜻한다. 
 - FK의 값은 S에 존재하는 값이거나 Null값이어야 한다.
 - R과 S가 같은 릴레이션일 수도 있다. 즉 자기자신을 참조 가능하다.
 - R이 S의 기본 키 FK를 외래키로 가지며 이를 통해 릴레이션 S를 참조할때, R을 참조 릴레이션(Referencing Relation)이라 하며, S를 피참조 릴레이션(Referenced Relation)이라 한다.

 

5. 무결성 제약 : 데이터베이스 상태가 만족시켜야 할 제약조건.

1) 데이터베이스 상태 : 어느 한 시점(스냅 샷)에 데이터베이스에 저장되어 있는 모든 데이터 값(튜플)을 의미한다.

  • 데이터베이스 상태는 동적인 성질을 갖고 있어서 시간에 따라 계속적으로 변화(삽입, 삭제, 변경 등)된다
  • 데이터베이스 인스턴스 : 데이터베이스 스키마에 포함되어 있는 모든 릴레이션들의 인스턴스 집합을 의미한다.

2) 개체 무결성 : 기본 키 값은 언제 어느때고 널 값을 가질 수 없다. 
** Null Value : 정보 부재를 명시적으로 표현하는 특수한 데이터 값. ① 아직 모르는 값 ② 해당 없음

3) 참조 무결성 : 외래 키값은 반드시 피참조 릴레이션의 기본값이거나 Null값이어야 한다.

  • 참조 무결성에서 Null값이 가능한 이유를 예시로 들어보도록 하겠다.

위의 교수 개체와 교수번호를 FK로 갖고 있는 학과 개체가 있다.

여기서 만약 컴퓨터학과의 학과장인 김뚜빼기 교수님이 퇴직을 하셨다고 가정해보자.

개체 무결성에 의하여 교수번호 100을 갖고 있는 테이블 행은 사라지게 된다.

그렇게 되면 학과장 번호는 어떤 값을 가지게 될 것인가? 그것은 바로 Null이다. 여기서는 아직 모르는 값이 된다.

왜냐하면 다음 학과장 교수님을 뽑기전까지 컴퓨터 교수님들 중 어느 교수님이 학과장님이 되실지 모르기 때문이다.


 

반응형