logo

데이터 추상화 및 데이터 독립성

데이터베이스 시스템은 복잡한 데이터 구조로 구성됩니다. 데이터 검색 측면에서 시스템을 효율적으로 만들고 사용자의 유용성 측면에서 복잡성을 줄이기 위해 개발자는 추상화를 사용합니다. 즉, 사용자에게 관련 없는 세부 정보를 숨깁니다. 이 접근 방식은 데이터베이스 설계를 단순화합니다. 

DBMS의 추상화 수준

데이터 추상화에는 주로 3가지 수준이 있습니다. 



  • 물리적 또는 내부 수준
  • 논리적 또는 개념적 수준
  • 뷰 또는 외부 레벨

물리적 또는 내부 수준

이는 가장 낮은 수준의 데이터 추상화입니다. 데이터가 실제로 메모리에 어떻게 저장되는지 알려줍니다. 순차 또는 무작위 액세스와 같은 액세스 방법과 B+ 트리 및 해싱과 같은 파일 구성 방법이 동일하게 사용됩니다. 메모리의 사용성 크기와 레코드 횟수는 데이터베이스를 설계할 때 알아야 할 요소입니다. 
직원의 세부 정보를 저장해야 한다고 가정해 보겠습니다. 이러한 목적으로 사용되는 저장 블록과 메모리 양은 사용자에게 숨겨져 있습니다. 

논리적 또는 개념적 수준

이 수준은 테이블 형식으로 데이터베이스에 실제로 저장되는 정보로 구성됩니다. 또한 비교적 간단한 구조로 데이터 엔터티 간의 관계를 저장합니다. 이 수준에서는 보기 수준에서 사용자가 사용할 수 있는 정보를 알 수 없습니다. 
직원의 다양한 속성과 관계를 저장할 수 있습니다. 관리자와 함께 저장할 수도 있습니다. 

따라서 논리적 수준은 소수의 상대적으로 단순한 구조로 전체 데이터베이스를 설명합니다. 논리적 수준에서 간단한 구조를 구현하면 복잡한 물리적 수준 구조가 포함될 수 있지만 논리적 수준 사용자는 이러한 복잡성을 인식할 필요가 없습니다. 이를 물리적 데이터 독립성이라고 합니다. 데이터베이스에 보관할 정보를 결정해야 하는 데이터베이스 관리자는 논리적 추상화 수준을 사용합니다.



뷰 또는 외부 레벨

이것은 가장 높은 수준의 추상화입니다. 사용자는 실제 데이터베이스의 일부만 볼 수 있습니다. 이 수준은 개별 사용자가 데이터베이스에 쉽게 접근할 수 있도록 하기 위해 존재합니다. 사용자는 행과 열 형태로 데이터를 봅니다. 테이블과 관계는 데이터를 저장하는 데 사용됩니다. 동일한 데이터베이스에 대한 여러 보기가 존재할 수 있습니다. 사용자는 데이터를 보고 데이터베이스 스토리지와 상호 작용할 수 있으며 구현 세부 정보는 숨겨져 있습니다. 논리 수준에서는 더 간단한 구조를 사용하더라도 대규모 데이터베이스에 저장된 정보의 다양성으로 인해 복잡성이 남아 있습니다. 데이터베이스 시스템의 많은 사용자에게는 이 모든 정보가 필요하지 않습니다. 대신 데이터베이스의 일부에만 액세스하면 됩니다. 뷰 수준의 추상화는 시스템과의 상호 작용을 단순화하기 위해 존재합니다.

예: 고객정보를 저장하는 경우

스프링 프레임워크
  • 신체 수준 - 저장소 블록(GBTBetc 바이트)이 포함됩니다.
  • 논리적 수준 -  여기에는 데이터의 필드와 속성이 포함됩니다.
  • 보기 수준 - 그것은 함께 작동합니다 CLI 또는 GUI 데이터베이스 접근




데이터 추상화' src='//techcodeview.com/img/dbms/89/data-abstraction-and-data-independence.webp' title=데이터 추상화

데이터 추상화의 주요 목적은 데이터베이스를 수정하거나 변경할 때 소요되는 시간과 비용을 절약하기 위해 데이터 독립성을 달성하는 것입니다. 

데이터 독립성

데이터 독립성 주로 다음 레벨에서 스키마를 변경할 필요 없이 시스템의 한 레벨에서 데이터베이스 스키마를 변경할 수 있도록 도와주는 DBMS의 속성으로 정의됩니다. 데이터를 사용하는 모든 프로그램에서 데이터를 분리하여 유지하는 데 도움이 됩니다.
즉, 이러한 추상화 수준에서 발생하는 두 가지 수준의 데이터 독립성이 있습니다. 

  • 물리 Cal 수준 데이터 독립성
  • 논리적 레벨 데이터 독립성
데이터 추상화 및 데이터 독립성' src='//techcodeview.com/img/dbms/89/data-abstraction-and-data-independence-1.webp' title=데이터 독립성

물리적 수준 데이터 독립성

최적화 목적으로 수행된 개념적 또는 논리적 스키마를 변경하지 않고도 물리적 스키마를 수정할 수 있는 특성을 말합니다. 개념적 구조 데이터 베이스 데이터베이스 시스템 서버의 스토리지 크기 변경에 영향을 받지 않습니다. 순차 액세스 파일을 무작위 액세스 파일로 변경하는 것이 그러한 예 중 하나입니다. 물리적 구조에 대한 이러한 변경 또는 수정에는 다음이 포함될 수 있습니다. 

  • 새로운 저장 장치를 활용합니다.
  • 저장에 사용되는 데이터 구조를 수정합니다.
  • 인덱스 변경 또는 대체 파일 구성 기술 사용 등

논리적 레벨 데이터 독립성

외부 스키마나 응용프로그램에 영향을 주지 않고 논리적 스키마를 수정할 수 있는 특징을 말한다. 데이터의 사용자 보기는 데이터의 개념적 보기 변경으로 인해 영향을 받지 않습니다. 이러한 변경에는 테이블 구조 엔터티 또는 논리 스키마와의 관계를 변경하는 속성의 삽입 또는 삭제가 포함될 수 있습니다.