[DB] 데이터 독립성

데이터 독립성

외부, 개념, 내부 스키마들은 서로 유기적인 대응 관계에 있고, 이를 Mapping(사상)이라고 한다.

DB를 3단계로 나누고, 단계별로 스키마를 유지하며 대응관계를 정의하는 궁극적 목적은 데이터 독립성을 실현하기 위해서다.

데이터 독립성은 DBMS의 장점이자, 존재 이유 이기도 한데, 간단하게 말하면 하위 스키마를 변경하더라도 상위 스키마가 영향을 받지 않는 특성이다. 즉 특정 스키마가 바뀌더라도 매핑을 다시 함으로써 다른 계층의 스키마의 내용은 변하지 않아도 되는 것이다. 이는 논리적 데이터 독립성, 물리적 데이터 독립성 두가지로 나뉠 수 있다.

논리적 데이터 독립성

  1. 응용 프로그램에 영향을 주지 않고 데이터베이스 논리적 구조를 변경할 수 있는 능력.

  2. DBMS 가 하나의 논리적 데이터 구조를 가지고 많은 응용 프로그램이 제각각 요구하는 다양한 형태의 논리적 구조로 mapping 시킬 수 있는 능력이 있을 때 가능.

  3. 데이터베이스를 확장 (새로운 레코드 타입이나 데이터 항목 추가) 하거나 데이터베이스를 축소 (기존의 레코드 타입이나 데이터 항목 삭제) 하면서 개념 스키마를 변경할 수 있으며, 후자의 경우는 남아있는 데이터만 참조하는 외부 스키마들이 영향을 받아서는 안됨.

  4. 외부스키마에 영향을 미치지 않으면서 개념스키마에 적용되는 제약조건들을 변경가능.

물리적 데이터 독립성

  1. 응용 프로그램이나 데이터베이스의 논리적 구조에 영향을 미치지 않고 데이터의 물리적 구조를 변경할 수 있는 능력.

  2. 하나의 논리적 구조로부터 여러 가지의 상이한 물리적 구조를 지원할 수 있는 mapping 능력이 있을 때 가능.

  3. 내부스키마에 대한 변경은 파일에 대한 검색이나 갱신 성능을 향상시키기 위해서 접근구조를 추가하는 것처럼 어떤 파일들이 재구성 될 때 필요

      참조:
      https://m.blog.naver.com/ageofgaya/130019550380
      https://www.bsidesoft.com/?p=4754