본문 바로가기
개발/데이터베이스

[RDB] 데이터 독립성의 실무 적용

by Devsong26 2023. 11. 30.

데이터 독립성은  데이터베이스 시스템이 데이터를 관리하는 방식에 있어 중요한 역할을 하며, 지속적으로 증가하는 유지보수 비용을 절감하고 데이터 복잡도를 낮추며 중복된 데이터를 줄이기 위해 등장했습니다.

 

 

데이터 독립성을 확보하면 장점

  • 각 View의 독립성 유지합니다.
  • 계층별 View에 영향을 주지 않고 변경할 수 있습니다.
  • 단계별 Schema에 따라 데이터 정의어(DDL)와 데이터 조작어(DML)가 달라집니다.

 

데이터베이스 스키마 구조는 3단계로 구분됩니다.

 

데이터 독립성의 구성 요소

 

항목 내용 비고
외부 스키마
(External Schema)
- View 단계 여러 개의 사용자 관점으로 구성

- 사용자 단계로서 개개 사용자가 보는 개인적 DB 스키마

- DB의 개개 사용자나 응용프로그래머가 접근하는 DB 정의
- 사용자 관점

- 접근하는 특성에 따른 스키마 구성
개념 스키마
(Conceptual Schema)
- 개념 단계 하나의 개념적 스키마로 구성

- 모든 사용자 관점을 통합한 조직 전체의 DB를 기술하는 것

- 모든 응용 시스템이나 사용자들이 필요로 하는 데이터를 
통합한 조직 전체의 DB를 기술한 것으로 DB에 저장되는 
데이터와 그들간의 관계를 표현하는 스키마
- 통합 관점
내부 스키마
(Internal Schema)
- 내부 단계, 내부 스키마로 구성

- DB가 물리적으로 저장된 형식

- 물리적 장치에서 데이터가 실제적으로 저장되는 방법을 
표현하는 스키마
- 물리적 저장 구조

 

이렇게 3단계로 개념이 분리되기 때문에 각각의 영역에 대한 독립성을 따로 있습니다.

데이터 독립성은 논리적 데이터 독립성과 물리적 데이터 독립성으로 나뉩니다.

 

논리적 데이터 독립성


논리적 데이터 독립성은 데이터베이스의 논리적 구조(스키마)가 변경되어도 응용 프로그램이나 사용자 쿼리에 영향을 주지 않는 성질을 말합니다. 즉, 데이터베이스의 구조(예: 테이블 구조)를 변경하거나 수정해도 기존의 응용 프로그램은 그대로 동작할 수 있어야 합니다.

예를 들어, 테이블에 새로운 열을 추가하거나, 데이터 타입을 변경하는 경우에도 기존에 작성된 응용 프로그램 코드나 SQL 쿼리가 수정 없이 그대로 동작해야 합니다.

 


물리적 데이터 독립성

 

물리적 데이터 독립성은 데이터베이스의 물리적 저장 구조가 변경되어도 그것이 논리적 구조(스키마)나 응용 프로그램에 영향을 주지 않는 성질을 말합니다. 이는 저장 매체의 구조나 파일 시스템의 변경, 데이터베이스의 인덱스 구조 변경 등이 응용 프로그램이나 사용자 쿼리에 영향을 주지 않아야 함을 의미합니다.

예를 들어, 데이터베이스를 다른 서버로 이전하거나, 인덱스를 추가/제거하거나, 파일 저장 방식을 변경해도 기존의 응용 프로그램이나 쿼리는 영향받지 않고 그대로 동작해야 합니다.

 


데이터 독립성의 중요성

  • 유지보수 용이성
    • 데이터 독립성은 데이터베이스의 변경이나 유지보수가 응용 프로그램에 미치는 영향을 최소화합니다. 이로 인해 시스템의 유지보수가 용이해집니다.
  • 확장성 및 유연성
    • 논리적 또는 물리적 변경이 응용 프로그램에 영향을 미치지 않기 때문에 시스템의 확장성과 유연성이 향상됩니다.
  • 데이터 관리의 효율성
    • 데이터 독립성은 데이터 관리의 효율성을 높여 복잡한 데이터베이스 시스템의 관리를 용이하게 합니다.

 


데이터 독립성은 데이터베이스 관리 시스템(DBMS)의 주요 기능 중 하나이며, 이를 통해 데이터베이스 시스템의 안정성, 유지보수성, 확장성이 크게 향상됩니다.

 

 

사상(Mapping)

상호 독립적인 개념을 연결시켜주는 브리지입니다.

데이터 독립성에서는 크게 두 가지의 사상이 도출됩니다.

 

사상 내용
외부적/개념적 사상
(논리적 사상)
외부적 뷰와 개념적 뷰의 상호 관련성을 정의합니다. - 사용자가 접근하는 형식에 따라 다른 타입의 필드를 가질 수 있으며 개념적 뷰의 필드 타입은 변화가 없습니다.

- 외부 화면이나 사용자에게 인터페이스하기 위한 스키마 구조는 전체가 통합된 개념적 스키마와 연결됩니다.
개념적/내부적 사상
(물리적 사상)
개념적 뷰와 저장된 데이터베이스의 상호 관련성을 
정의합니다.
- 만약 저장된 데이터베이스 구조가 바뀐다면 개념적/내부적 사상이 바뀌어야 합니다. 
그래야 개념적 스키마가 그대로 남아있게 됩니다.

- 통합된 개념적 스키마구조와 물리적으로 저장된 구조의 물리적인 테이블스페이스와 연결되는 구조입니다.

 

 

 


 

참고 도서

- 아는 만큼 보이는 데이터베이스 설계와 구축