devFancy BE Developer

[데이터베이스개론] 관계 데이터 모델의 개념

2023-02-15
devFancy

이 글의 정보들은 데이터베이스 개론면접을 위한 CS 전공지식 노트 교재를 공부하면서 정리한 내용을 토대로 작성하였습니다.

데이터베이스의 기본

  • 데이터베이스는 일정한 규칙, 혹은 규약을 통해 구조화되어 저장되는 데이터의 모음이다.

  • 해당 데이터베이스를 제어, 관리하는 통합 시스템을 DBMS라고 하며, 데이터베이스 안에 있는 데이터들을 특정 DBMS 마다 정의된 쿼리 언어를 통해 삽입, 삭제, 수정, 조회 등을 수행할 수 있다.

  • 또한 데이터베이스는 실시간 접근과 동시 공유가 가능하다.

엔티티

  • 엔티티(entity)는 사람, 장소, 물건, 사건, 개념 등 여러 개의 속성을 지닌 명사를 의미한다.

  • 예를 들어 회원이라는 엔티티가 있다고 하면, 회원은 이름, 아이디, 주소, 전화번호의 속성을 갖는다.

  • 물론 이보다 더 많은 속성이 있을 수 있지만 서비스의 요구 사항에 맞춰 속성이 정해진다.

릴레이션

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

  • 엔티티에 관한 데이터를 데이터베이스는 릴레이션 하나에 담아서 관리한다.

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

  • 일반적으로 관계 데이터 모델에서는 하나의 개체에 관한 데이터를 릴레이션(relation) 하나에 담아 데이터베이스를 저장한다.

  • [그림 5-1]은 인터넷 쇼핑몰을 위한 데이터베이스에서 고객 개체를 표현한 고객 릴레이션의 예다. 해당 예시를 통해 릴레이션과 관련된 용어를 하나씩 알아보자.

속성

  • 릴레이션의 열을 속성(or attribute)라고 부른다. [그림 5-1]의 고객 릴레이션에는 고객아이디, 고객이름, 나이, 등급, 직업, 적립금이라는 6개의 속성이 존재한다.

  • 릴레이션은 파일 관리시스템의 파일, 속성은 해당 파일의 필드에 대응하는 개념이다.

튜플

  • 릴레이션의 행을 튜플(or tuple)이라고 부른다. [그림 5-1]에서 고객 4명에 대한 데이터를 저장하고 있는 고객 릴레이션에는 4개의 튜플 또는 4개의 고객 개체 인스턴스가 존재한다.

  • 튜플은 파일 관리 시스템 관점에서 해당 파일의 레코드에 대응하는 개념이다.

도메인

  • 속성 하나가 가질 수 있는 모든 값의 집합을 해당 속성의 도메인(domain)이라 한다.

  • [그림 5-1]의 고객 릴레이션에서 등급 속성의 값으로 vip, gold, silver, bronze 중 하나만 허용된다면, 네 가지 값을 모아 놓은 것이 등급 속성의 도메인이 된다.

  • 매번 모든 값을 일일이 나열하여 도메인을 정의하기가 어렵기 때문에, 일반적으로 속성의 특성을 고려한 데이터 타입으로 정의한다.

  • CHAR(20), INT 같이 특정 데이터 타입으로 선언된 변수는 해당 데이터 타입의 값만 저장할 수 있는 것과 같은 원리다.

  • 데이터 타입을 도메인, 변수를 속성으로 생각하면 이해하기 쉽다.

널값

  • 릴레이션에 있는 특정 튜플의 속성 값을 모르거나, 적합한 값이 없는 경우에는 널(null)이라는 특별한 값을 사용할 수 있다.

  • 널 값은 특정 속성에 해당하는 값이 없음을 나타내므로 숫자 0 혹은 공백 문자와는 다르다.

  • 널 값은 데이터베이스 관리 시스템마다 내부적으로 표시하는 기호가 다르다.

차수

  • 하나의 릴레이션에서 속성의 전체 개수를 릴레이션의 차수(degree)라고 한다.

  • 예를 들어 [그림 5-1]의 고객 릴레이션은 차수는 6이다.

  • 모든 릴레이션은 최소 1 이상의 차수를 유지해야 한다.

  • 릴레이션의 차수는 일반적으로 자주 변하지 않는다는 정적인 특징이 있다.

카디널리티

  • 하나의 릴레이션에서 튜플의 전체 개수를 카디널리티(cardinality)라고 한다.

  • 예를 들어 [그림 5-1]의 고객 릴레이션의 카디널리티는 4이다.

  • 튜플이 없는 릴레이션이 존재할 수도 있다.

  • 새로운 튜플이 계속 삽입되거나 기존 튜플이 삭제될 수 있으므로 릴레이션의 카디널리티는 일반적으로 자주 변한다는 동적인 특징이 있다.

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

  • 관계 데이터 모델에서 릴레이션은 [그림 5-2]와 같이 릴레이션 스키마릴레이션 인스턴스로 구성되어 있다.

릴레이션 스키마

  • 릴레이션 스키마는 릴레이션의 이름과 릴레이션에 포함된 모든 속성의 이름으로 정의하는 릴레이션의 논리적 구조다.

  • 일반적으로 다음과 같은 형태로 쉽게 표현한다.

릴레이션 이름(속성이름1, 속성이름2, …, 속성이름 n)

  • [그림 5-2]의 고객 릴레이션에서 릴레이션 스키마는 고객(고객아이디, 고객이름, 나이, 등급, 직업, 적립금) 이다.

  • 릴레이션 스키마는 릴레이션 내포라고도 부른다.

릴레이션 인스턴스

  • 릴레이션 인스턴스는 어느 한 시점에 릴레이션에 존재하는 튜플들의 집합이다.

  • [그림 5-2]의 고객 릴레이션에서 4개의 튜플로 구성된 릴레이션 인스턴스를 확인할 수 있다.

  • 릴레이션 인스턴스는 간단히 릴레이션이라 부르기도 하고 릴레이션 외연이라고도 부른다.

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

  • 일반적으로 데이터베이스는 릴레이션이 여러 개로 구성된다.

  • [그림 5-3]와 같이 인터넷 쇼핑몰 데이터베이스는 여러 릴레이션으로 구성되어 있다.

  • 데이터베이스 스키마는 데이터베이스를 구성하는 릴레이션들의 스키마를 모아놓은 것이다.

  • 데이터베이스 인스턴스는 어느 한 시점에서 데이터베이스에 저장된 데이터 내용의 전체 집합을 의미한다.

릴레이션의 특성

  • 관계 데이터 모델의 릴레이션에는 4가지 중요한 특성이 있다.

  • 기본적으로 이 4가지 특성을 만족해야 테이블이 릴레이션으로 인정받을 수 있다.

  1. 튜플의 유일성 : 하나의 릴레이션에는 동일한 튜플이 존재할 수 없다.

  2. 튜플의 무순서 : 하나의 릴레이션에서 튜플 사이의 순서는 무의미하다.

  3. 속성의 무순서 : 하나의 릴레이션에서 속성 사이의 순서는 무의미하다.

  4. 속성의 원자성 : 속성 값으로 원자 값만 사용할 수 있다. (원자 값이란 더는 분해할 수 없는 하나의 값을 의미한다)

Reference


Comments

Index