게임 개발자를 향해

관계형 데이터베이스의 구조 / 관계형 데이터 모델 본문

정보처리기사/2. 데이터 입출력 구현

관계형 데이터베이스의 구조 / 관계형 데이터 모델

뿌단이 2022. 9. 5. 15:30

1. 관계형 데이터베이스

  • 관계형 데이터베이스는 2차원적인 표(Table)를 이용해서 데이터 상호 관계를 정의하는 데이터베이스이다.
  • 개체관계를 모두 릴레이션이라는 표로 표현하여 개체 릴레이션관계 릴레이션이 존재한다.
  • 장점은 간결하고 보기 편리하며, 다른 데이터베이스로의 변환이 용이하다.
  • 단점은 성능이 다소 떨어진다.

2. 관계형 데이터베이스 릴레이션 구조

릴레이션(Relation)데이터들을 표(table)의 형태로 표현한 것으로, 구조를 나타내는 릴레이션 스키마와 실제 값들인 릴레이션 인스턴스로 구성된다.

 

이미지 출처: http://wiki.hash.kr/index.php/%EB%A6%B4%EB%A0%88%EC%9D%B4%EC%85%98

 

 

<여기서 Tip!>

아래에 릴레이션의 구성요소의 정의를 설명하고 위 학생 릴레이션을 예로 들어 설명하겠다. 

 

3. 튜플(Tuple)

  • 튜플은 릴레이션의 행을 뜻한다.
  • 설명하자면 학생 릴레이션이면 한 학생이 가지고있는 정보를 통틀어 튜플이라 한다. (클래스의 인스턴스 개념)
  • 학생 릴레이션에는 4개의 튜플이 있으며 이는 4명의 학생 정보가 있다는 것이다. 
  • 튜플의 수를 카디널리티(cardinality) 한글로는 기수 라고 한다.

 

4. 속성(Attribute)

  • 속성은 릴레이션의 열을 뜻한다.
  • 속성은 데이터베이스를 구성하는 가장 작은 논리적 단위이다. 
  • ["이름"은 문자열], ["나이"는 0 ~ 200 사이의 정수]도메인을 기준으로 저장하고 관리한다.
  • 속성의 수를 디그리(Degree), 한글로는 차수 라고 한다.
  • 학생 릴레이션에서 속성은 [학번], [이름], [성별], [학과] 등이 있다.

 

5. 도메인

  • 도메인은 하나의 애트리뷰트가 취할 수 있는 같은 타입원자(Atomic)값들의 집합이다.
  • 학생 릴레이션 성별 속성 "남", "여" 문자열 외에 값은 입력될 수 없다.
  • 도메인은 실제 애트리뷰트 값이 나타날 때 그 값의 합법 여부를 시스템이 검사하는데에도 이용된다.

 

<여기서 Tip!>

예를들어 20세 이하 고객 위주의 릴레이션이라면 나이 속성의 도메인 [ 0 ~ 20 사이의 정수] 이며, 이외의 숫자는 들어갈 수 없다.

속성은 튜플들에 저장될 정보의 분류이며 그 속성마다 도메인을 기준으로 값을 저장한다.

 

6. 릴레이션의 특징 (너무나도 중요)

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

 

<여기서 Tip!>

속성들의 순서가 상관없는 이유는 어차피 쿼리문을 사용할 때 사용자의 임의로 순서를 지정하기 때문이다.

 

 

나이 성별 이름
20 김뿌단
20 김뿌단

위와같이 이름과 나이와 성별이 같은 튜플이 존재할 수 없다.

독자들은 생각할것이다.

??? : "다른사람일 수 있잖아?"

 

 

나이 성별 이름 회원번호
20 김뿌단 0018
20 김뿌단 0019

만약 같은 정보를 가진 사람이 2명이라면 서로를 식별할 수 있는 회원번호라는 속성(기본키)을 사용해야한다.

기본키가 되는 속성은 밑줄이 그어진다.

키에 관한 내용은 다음 챕터에 자세히 다루겠다.

 

 

나이 성별 이름 회원번호
20 김뿌단 0018
20 김뿌단 0019

 

나이 성별 이름  회원번호
20 뿌단 0018
20 뿌단 0019

또한 속성은 논리적으로 쪼갤 수 없는 원자값만 저장한다. 

 

 

7. 관계형 데이터 모델

  • 관계형 데이터 모델은 2차원적인 표(Table)를 이용해서 데이터 상호 관계를 정의하는 DB 구조이다.
  • 기본키(Primary Key)와 이를 참조하는 외래키(Foreign Key)데이터 간의 관계를 표현한다.
  • 계층 모델과 망 모델의 복잡한 구조를 단순화 시킨 모델이다.
  • 관계형 모델의 대표적인 언어는 SQL 이다.

 

<여기서 Tip!>

DB 개념에서 빠질 수 없는 아주 중요한 개념이니 무조건 알고 가는게 좋다.

 

 

 

읽어주셔서 감사합니다!

정처기 화이팅!