데이터 독립성

데이터 독립성은 하위 변경이 상위 사용 방식으로 새는 것을 줄이는 성질입니다

DBMS는 외부, 개념, 내부 스키마를 나누고 그 사이의 매핑을 관리합니다. 그래서 저장 방식이나 일부 논리 구조가 바뀌어도 사용자 화면과 프로그램의 사용 방식을 더 오래 안정적으로 유지할 수 있습니다.

논리적 데이터 독립성

개념 스키마 변경이 외부 스키마에 미치는 영향을 줄입니다

예시

고객 테이블에 `등급` 컬럼을 추가해도 기존 화면이 쓰던 `이름`, `연락처` 뷰는 그대로 유지할 수 있습니다.

물리적 데이터 독립성

내부 저장 방식 변경이 논리 구조와 외부 사용 방식에 덜 새게 합니다

예시

성능을 위해 인덱스를 추가하거나 파일 배치를 바꿔도 `SELECT * FROM 고객`의 의미는 그대로 유지됩니다.

1 계층을 나눈다

외부, 개념, 내부 스키마를 분리해 사용자 관점과 저장 구현을 직접 묶지 않습니다.

2 매핑으로 흡수한다

DBMS는 계층 사이의 대응 관계를 해석해 일부 변경의 영향을 줄입니다.

3 무조건 안전은 아니다

기존 앱이 쓰는 컬럼 삭제처럼 의미를 깨는 변경은 상위 계층에도 영향을 줄 수 있습니다.

논리적 변경

테이블에 새 속성을 추가

기존 뷰가 새 속성을 사용하지 않는다면 사용자 화면은 그대로 둘 수 있습니다.

물리적 변경

인덱스나 저장 위치를 조정

성능 개선을 위해 내부 구조를 바꿔도 프로그램의 질의 문장은 유지됩니다.