4 minute read

1. 데이터베이스 시스템의 정의

  • 데이터베이스 시스템(DBS: Database System)은 데이터베이스에 데이터를 저장하고, 저장된 데이터를 관리하여 조직에 필요한 정보를 생성해주는 시스템임
  • 흔히 데이터베이스, 데이터베이스 관리 시스템, 데이터베이스 시스템을 같은 의미로 사용하지만 각 용어의 개념을 구분하고 관계를 명확히 이해할 필요가 있음
    • 데이터를 저장해두는 곳, 다시 말해 저장된 데이터의 집합이 데이터베이스
    • 데이터베이스 관리 시스템은 데이터베이스에 저장된 데이터가 일관되고 무결한 상태로 유지되도록 관리하는 역할을 함
    • 데이터베이스 시스템은 데이터베이스와 데이터베이스 관리 시스템을 이용해 조직에 필요한 정보를 제공해주는 전체 시스템임
  • 데이터베이스와 데이터베이스 관리 시스템은 데이터베이스 시스템의 핵심 구성 요소임
  • 데이터베이스 시스템은 그림과 같이 데이터베이스와 데이터베이스 관리 시스템 외에도 사용자, 사용자가 데이터베이스에 접근할 때 사용하는 데이터 언어, 데이터베이스와 데이터베이스 관리 시스템을 설치하고 데이터 처리 연산을 담당하는 컴퓨터로 구성
    image

2. 데이터베이스의 구조

1) 스키마(schema)

  • 스키마는 데이터베이스에 저장되는 데이터 구조제약조건을 정의하는 것임
  • 그림은 스키마를 간략하게 표현한 것임
    • 고객과 관련된 데이터인 고객번호, 이름, 나이, 주소를 저장한다고 가정함
    • 고객번호는 정수로, 이름은 최대 10자의 문자열로, 나이는 정수로, 주소는 최대 20자의 문자열만 허용하길 했다면 이 모든 정해진 내용이 스키마임
  • 정의된 스키마에 따라 데이터베이스에 실제로 저장된 값이 인스턴스(instance)임
  • 보통 스키마는 한번 정의도면 자주 변경되지 않지만, 인스턴스는 계속 변하는 특성이 있음
    image

2) 3단계 데이터베이스 구조(3-level database architecture)

  • 미국의 표준화 기관인 ANSI/SPARC에서는 데이터베이스의 복잡한 내부 구조를 감추고 일반 사용자가 데이터베이스를 쉽게 이해하고 이용할 수 있도록 3단계 데이터베이스 구조를 제안함

(1) 3단계 데이터베이스 구조의 개념

  • 3단계 데이터베이스 구조는 하나의 데이터베이스를 세단계로 나누어 이해함
  • 개별 사용자 관점에서 바라보는 외부 단계, 조직 전체의 관점에서 바라보는 개념 단계, 물리적인 저장 장치의 관점에서 바라보는 내부 단계로 나뉨
    • 데이터베이스 하나를 세 단계로 나누고, 각 단계별로 다른 추상화를 제공하면 데이터베이스를 효과적으로 관리할 수 있음
  • 일반적으로 내부 단계에서 외부 단계로 갈수록 추상화 레벨이 높아짐
    • 3단계 데이터베이스 구조를 통해, 모든 데이터의 저장•유지와 관련된 복잡한 내용을 숨기고 필요한 데이터만 단순화한 외부 단계의 관점을 일반 사용자들에게 제공할 수 있음

(2) 외부 단계(external level)

  • 개별 사용자 관점에서 데이터베이스를 이해하고 표현함
  • 하나의 데이터베이스를 조직 내의 사용자들이 함께 사용하지만 각 사용자가 데이터베이스 전체에 관심이 있는 것은 아님
  • 외부 단계에서는 개별 사용자가 데이터베이스를 어떻게 보는가를 표현하므로 사용자마다 생각하는 데이터베이스의 구조가 다름
    • 이처럼 외부 단계에서 사용자에게 필요한 데이터베이스를 정의한 것을 외부 스키마(external schema)임
    • 외부 스키마는 각 사용자가 생각하는 데이터베이스의 모습을 표현한 논리적인 구조로, 사용자마다 다름
  • 데이터베이스 하나에는 외부 스키마가 여러 개 존재할 수 있고, 외부 스키마 하나를 사용 목적이 같은 사용자들이 공유할 수 있음
    • 외부 스키마는 전체 데이터베이스 중 사용자가 관심을 가지는 일부분으로 볼 수 있어 서브 스키마(sub schema)라고도 함

(3) 개념 단계(conceptual level)

  • 데이터베이스를 이용하는 사용자들의 관점을 통합하여, 데이터베이스를 조직 전체의 관점에서 이해하고 표현함
  • 데이터베이스 관리 시스템이나 데이터베이스 관리자는 데이터베이스의 일부분이 아닌 전체 데이터베이스에 관심을 둠
  • 개념 단계에서는 이 같은 데이터베이스 관리 시스템이나 관리자의 관점에서 모든 사용자에게 필요한 데이터를 통합하여 전체 데이터베이스의 논리적 구조를 정의함
    • 그리고 이를 개념 스키마(conceptual schema)라 함
  • 개념 스키마는 조직 전체의 관점에서 생각하는 데이터베이스의 모습이며, 모든 개별 사용자가 생각하는 데이터베이스의 모습을 하나로 합친 형태임
    • 개념 스키마는 전체 데이터베이스에 어떤 데이터가 저장되는지, 데이터들 간에는 어떤 관계까 존재하고 어떤 제약조건이 있는지에 대한 정의뿐만 아니라, 데이터에 대한 보안 정책이나 접근 권한에 대한 정의도 포함함
    • 하지만 데이터를 물리적으로 저장하느느 방법이나 데이터 자장 장치와는 독립적임
  • 데이터베이스 하나에는 개념 스키마가 하나만 존재하고, 각 사용자는 개념 스키마의 일부분을 사용함
  • 즉 외부 스키마는 개념 스키마를 기초로 하여 사용자의 이용 목적에 맞게 만들어짐
  • 일반적으로 스키마라고 하면 개념 시키마를 의미함

(4) 내부 단계(internal level)

  • 데이터베이스를 디스크나 테이프 같은 저장 장치의 관점에서 이해하고 표현함
    • 즉 내부 단계에서는 전체 데이터베이스가 저장 장치에 실제로 저장되는 방법을 정의하며 이를 내부 스키마라고 함
  • 데이터베이스는 저장 장치에 파일 형태로 저장되는데 내부 스키마는 파일에 데이터를 저장하는 레코드의 구조, 레코드를 구성하는 필드의 크기, 인덱스를 이용한 레코드 접근 경로 등을 정의함
  • 내부 스키마는 데이터베이스의 개념 스키마에 대한 물리적인 저장 구조를 표현하므로 하나의 데이터베이스에 하나만 존재
    image
  • 외부 단계에는 고객 분석팀과 상품 배송팀 사용자가 존재함
    • 두 사용자는 자신의 팀에 필요한 데이터로 구성된 외부 스키마를 각각 가지고 있음
    • 고객 분석팀은 상품을 구매한 고객의 성향을 분석하는 것이 주 업무이므로 고객의 성별, 나이, 직업 데이터를 필요로 함
    • 상품 배송팀은 고객에게 상품을 배송하는 업무를 담당하므로 데이터베이스가 고객번호, 고객이름, 주소, 연락처로만 구서오디어 있다고 생각함
    • 외부 단계에서는 사용자별로 외부 스키마를 정의하여 불필요한 데이터 접근을 사전에 막아 보안 측면에서도 효과적임
  • 개념 단계에서는 고객 데이터베이스 전체에 대한 논리적 구조를 정의하는 개념 스키마가 하나 존재함
    • 개념 스키마는 고객 데이터베이스를 이용하는 모든 사용자에게 필요한 데이터를 종합하여 번호, 이름, 성별, 나이, 직업, 주소, 연락처로 데이터베이스를 구성하고, 각 데이터의 타입도 함께 정의함
  • 내부 단계에는 고객 데이터베이스를 저장 장치에 저장하는 파일의 레코드 구조를 정의한 내부 스키마가 하나 존재함
    • 내부 스키마에 정의된 고객 레코드는 필드 7개로 구성되어 있고, 레코드 총 길이는 70바이트임
    • 이 내부 스키마는 번호와 연락처 필드에 인덱스를 정의하고 있어, 번호나 연락처 필드의 값을 이용해 해당 고객 레코드에 빠르게 접근할 수 있

3. 데이터 독립성(Data independency)

1) 논리적 데이터 독립성

2) 물리적 데이터 독립성

4. 데이터 사전

  • 데이터베이스는 조직 운영을 위해 필요한 실제 데이터를 저장하는데, 저장된 데이터를 올바르게 관리하고 이용하려면 필요한 부가 정보도 저장해야 함
    • 대표적인 부가 정보가 스키마와 사상 정보임
  • 데이터 독립성을 실현할면 데이터베이스를 다양한 관점에서 이해하기 위해 정의되는 세 가지 스키마에 대한 정보와 스키마 간의 사상 정보도 어딘가에 저장되어 있어야 필요할 때 사용할 수 있음
  • 데이터베이스에 저장되는 데이터에 관한 정보를 저장하는 곳을 데이터 사전(Data Dictionary) 또는 시스템 카탈로그(System Catalog)라고

Leave a comment