본문 바로가기
과학, IT 정보

데이터 추상화 수준 (Levels of Abstraction)에 대해 알아보자

by 넘버원리뷰 2024. 3. 21.

데이터 추상화 수준은 데이터베이스 시스템에서 데이터를 관리하고 표현하는 방식을 설명하는 개념입니다. 각 수준은 특정 관점에서 데이터를 다루며, 사용자와 데이터베이스 시스템 간의 상호 작용을 정의합니다.

1. 주요 추상화 수준이란?

  • 물리적 수준 (Physical Level)
    • 레코드(예: 고객)가 물리적 장치에 저장되는 방식을 설명합니다. 이 수준에서는 데이터베이스 내부의 물리적 구조에 관련된 세부 정보가 포함됩니다. 예를 들어, 데이터가 디스크에 저장되는 방식이나 인덱스의 구조 등이 이에 해당합니다.
    • 데이터베이스에서 레코드의 저장 방법, 인덱스 구조, 데이터 파일의 배치 방식 등이 물리적 수준에 해당합니다.
  • 논리적 수준 (Logical Level)
    • 데이터베이스에 저장된 데이터와 데이터 간의 관계를 설명합니다. 이 수준에서는 데이터베이스의 전체 구조 및 데이터 간의 관계를 나타내는 개념적인 설명이 포함됩니다. 테이블, 뷰, 관계 등이 여기에 해당합니다.
    • 데이터베이스에서 고객이 주문을 할 수 있고, 주문은 여러 상품을 포함할 수 있다는 개념이 논리적 수준에 해당합니다.
  • 뷰 수준 (View Level)
    • 응용 프로그램은 데이터 유형의 세부 정보를 숨깁니다. 이 수준에서는 사용자가 데이터를 볼 때 데이터베이스에서 어떤 부분을 볼 수 있는지를 정의합니다. 사용자가 필요로 하는 데이터만 표시되며, 기밀성을 유지하거나 특정 사용자에게만 특정 데이터를 보여줄 수 있습니다.
    • 사용자에게는 고객의 일부 정보만 표시되고, 급여 정보와 같은 민감한 정보는 보안 목적으로 숨겨질 수 있습니다.

데이터 추상화 수준을 통해 데이터베이스 시스템은 데이터를 효율적으로 관리하고 사용자가 필요로 하는 데이터에 접근할 수 있도록 지원합니다. 각 추상화 수준은 데이터베이스 설계와 응용 프로그램 개발에서 중요한 역할을 합니다.

 

2. 데이터 추상화 수준의 장점은 무엇일까

  • 데이터 뷰의 격리
    • 추상화 수준은 데이터가 사용자나 응용 프로그램에 의해 인식되는 방식과 DBMS에서 저장되고 액세스되는 방식 사이에 명확한 구분을 제공합니다. 이는 물리적 저장소나 액세스 방법에 대한 변경이 외부 또는 개념적 수준에 영향을 미치지 않음을 의미합니다.
    • 사용자 및 응용 프로그램은 데이터를 논리적 모델을 통해 상호 작용할 수 있으며, 저장 또는 액세스 방법의 변경에 대해 걱정할 필요가 없습니다.
  • 데이터베이스 관리 용이성
    • 추상화 수준을 통해 데이터베이스 관리자는 더욱 효율적으로 데이터베이스를 관리할 수 있습니다. 물리적 저장소 및 액세스 방법에 대한 변경을 수행할 때 사용자나 응용 프로그램에 영향을 주지 않습니다. 이러한 분리는 관리 작업이 사용자나 응용 프로그램의 기능에 영향을 미치지 않고 수행될 수 있도록 합니다.
  • 성능 최적화
    • 추상화 수준은 데이터를 사용자나 응용 프로그램에 효율적으로 제공하기 위해 물리적 저장소와 액세스 방법을 최적화할 수 있습니다.
    • DBMS는 데이터 저장소를 재구성하거나 인덱스를 생성하거나 캐싱 메커니즘을 구현하여 성능을 향상시킬 수 있습니다. 이러한 최적화는 데이터의 논리적 또는 외부적 뷰에 영향을 미치지 않고 성능을 향상시킵니다.
  • 변경 요구사항 대응력
    • 사용자나 응용 프로그램은 밑바닥부터 데이터베이스의 내부를 이해하지 않고도 데이터를 처리할 수 있습니다. 이러한 유연성은 변경되는 비즈니스 요구사항이나 사용자 요구사항에 대응하기 쉽도록 합니다.
    • 비즈니스 요구사항이 변경되는 경우, 관리자는 데이터의 물리적 저장소나 액세스 방법을 조정할 수 있으며 이로 인해 논리적 또는 외부적 데이터 뷰에 영향을 미치지 않으므로 데이터베이스는 계속해서 사용 가능하고 적합한 상태를 유지할 수 있습니다.

요약하자면, DBMS의 추상화 수준은 유연성, 효율성 및 관리 용이성을 제공하여 사용자, 응용 프로그램 및 관리자가 데이터베이스 환경의 변화에 대응하기 쉽도록 합니다.

 

3. 데이터 독립성 (Data Independence)에 대해 알아보자

데이터 독립성은 한 수준의 스키마를 수정하더라도 그 다음 높은 수준의 스키마 정의에 영향을 주지 않는 능력을 말합니다. 데이터 독립성은 두 가지 주요 유형으로 나뉩니다.

  • 물리적 데이터 독립성 (Physical Data Independence)
    • 물리적 수준에서의 변경이 개념적 수준에 영향을 주지 않는 것을 의미합니다. 즉, 데이터의 물리적 구조가 변경되어도 논리적 구조에 영향을 주지 않습니다.
    • 예를 들어, 데이터베이스의 파일 구조가 변경되어도 논리적 데이터 구조(테이블, 관계 등)에는 영향을 주지 않습니다.
  • 논리적 데이터 독립성 (Logical Data Independence)
    • 개념적 수준에서의 변경이 뷰 수준에 영향을 주지 않는 것을 의미합니다. 즉, 데이터의 논리적 구조가 변경되어도 응용 프로그램이나 사용자에게 제공되는 뷰에 영향을 주지 않습니다.
    • 예를 들어, 테이블의 컬럼 추가 또는 삭제와 같은 논리적 구조의 변경이 있어도 응용 프로그램에서 사용되는 데이터 뷰는 변경되지 않습니다.

이러한 데이터 독립성은 데이터베이스 시스템의 유연성을 높이고 유지보수를 용이하게 합니다. 변경이 필요한 경우 해당 수준의 스키마만 수정하면 되므로 시스템의 다른 부분에 영향을 최소화할 수 있습니다.