본문 바로가기

정보처리기사/데이터베이스 개론

관계 데이터 모델의 개념과 구조

관계 데이터 모델

관계 데이터 모델에서는 하나의 개체에 관한 데이터를 릴레이션(Relation) 하나에 담아 데이터베이스에 저장합니다.

 

예) 학생 릴레이션

학 번 이 름 학 년 학과
20200101 강아지 1 소프트웨어학과
20190202 고양이 2 컴퓨터공학과
20180303 호랑이 3 인공지능학과
20170404 독수리 4 기계공학과
20160505 코끼리 3 시각디자인학과

관계 데이터 모델의 기본 용어

 릴레이션 : 데이터를 표(Table) 형태로 표현한 것입니다.

 

 속성 :

  • 릴레이션의 을 속성 or Attribute 애트리뷰트라고 부릅니다.
  • 데이터베이스를 구성하는 가장 작은 논리적인 단위입니다.
  • 파일 구조에서 데이터 항목 or 데이터 필드에 해당됩니다.
  • 개체의 특성을 기술합니다.
  • 속성의 수 = 디그리(Degree) = 차수

 

▶ 튜플(Tuple) :

  • 릴레이션의 Tuple 튜플이라고 부릅니다.
  • 속성의 모임으로 구성됩니다.
  • 파일 구조에서 레코드와 같은 의미입니다.
  • 튜플의 수 = 카디널리티(Cardinality) = 기수 = 대응수

 

 도메인 : 하나의 속성이 가질 수 있는 모든 값의 집합을 해당 속성의 Domain 도메인이라 합니다. 조금 더 설명하자면 이 포스팅 본문 위에 학생 릴레이션에서 학년 속성으로 1,2,3,4 중 하나만 허용된다면, 네 가지 값을 모아놓은 것이 학년 속성의 도메인이 됩니다. 속성 값의 도메인을 정해두면 사용자가 속성 값을 입력하거나 수정할 때 데이터베이스 시스템이 적합성을 판단하여 이외의 값은 허용하지 않음으로써 항상 올바른 값을 유지 할 수 있습니다.

 

이름 속성의 값은 도메인을 정의하기 어렵습니다. 이처럼 어려운 경우가 대부분일때는 속성의 특성을 고려한 데이터 타입으로 정의합니다. char(20) 이런 식으로 문자 타입으로 정의할 수 있습니다. 이는 프로그래밍 언어에서 데이터 타입과 변수의 관계로 이해할 수 있습니다. 특정 데이터 타입으로 선언된 변수는 해당 데이터 타입의 값만 저장할 수 있는 것과 같은 원리입니다. 데이터 타입을 도메인, 변수를 속성으로 생각하면 이해하기 쉽겠습니다.

 

 

 차수 : 하나의 릴레이션에서 속성의 전체 개수를 릴레이션 Degree 차수라고 합니다. 조금 더 설명하자면 이 포스팅 본문 위에 학생 릴레이션에서 차수는 4입니다. 모든 릴레이션은 최소 1 이상의 차수를 유지해야 하고, 일반적으로 자주 변하지 않는 정적인 특징이 있습니다.

 

 카디널리티 : 하나의 릴레이션에서 튜플의 전체 개수를 릴레이션의 Cardinality 카디널리티라고 합니다. 조금 더 설명하자면 이 포스팅 본문 위에 학생 릴레이션에서 카디널리티는 5입니다. 튜플이 없는 릴레이션이 존재할 수도 있고, 새로운 튜플이 계쏙 삽입되거나 기존 튜플이 삭제 될 수 있으므로 자주 변한다는 동적인 특징이 있습니다.


릴레이션과 데이터베이스의 구성

 

 릴레이션 스키마(Relation Schema) : 릴레이션의 이름과 릴레이션에 포함된 모든 속성의 이름으로 정의하는 릴레이션의 논리적 구조입니다. 릴레이션 스키마는 데이터베이스 관리 시스템이 내부적으로 데이터 정의어를 이용해 정의합니다. 이처럼 논리적 구조를 정의하는 릴레이션 스키마는 자주 변하지 않는다는 정적인 특징이 있다.

 

릴레이션 인스턴스(Relation Instance) : 어느 한 시점에 릴레이션에 존재하는 튜플들의 집합입니다. 실제값들로 구성되어 있습니다. 데이터베이스 관리 시스템이 내부적으로 데이터 조작어를 이용해 튜플을 검색하거나, 새로운 튜플을 삽입하고, 기존 튜플을 삭제 및 수정을 수행합니다. 이런 수행이 자주 발생해 동적인 특징이 있다.

 

 데이터베이스 스키마와 데이터베이스 인스턴스

일반적으로 데이터베이스는 릴레이션 여러 개로 구성됩니다. 예를 들어 학사정보시스템을 위한 데이터베이스는 학생 릴레이션, 교수 릴레이션,  과목 릴레이션으로 구성 될 수 있겠습니다. 데이터베이스의 전체 구조를 의미하는 데이터베이스 스키마는 데이터베이스를 구성하는 릴레이션들의 스키마를 모아놓은 것입니다. 데이터베이스 인스턴스는 어느 한 시점에서 데이터베이스에 저장된 데이터 내용의 전체 집합을 의미합니다. 


잠깐, 간단 연습 문제

  1. 테이블에서 열(Column)을 의미하는 것은? ( 속성 Attribute )
  2. 릴레이션에서 포함되어 있는 튜플의 수 ? ( 카디널리티 Cardinality )
  3. 릴레이션을 구성하고 있는 각각의 속성이 가질 수 있는 모든 원자값집합은 ? ( 도메인 Domain )
  4. 테이블에서 하나의 레코드를 나타내는 행(Row)은 ? ( 튜플 Tuple )
  5. 릴레이션을 구성하는 속성(Attribute)의 수 ? ( 차수 Degree )
  6. 개체가 가지고 있는 성질 ( 속성 Attribute )
  7. 데이터의 가장 작은 논리적 단위로서 파일 구조상의 데이터 항목 또는 데이터 필드 ? ( 속성 Attribute )
  8. 속성의 값은 다중값을 가지는 것이 바람직하다 ( X )
  9. 속성의 값은 더이상 쪼갤 수 없는 원자값을 가져야한다 ( O )
728x90
300x250