Logical Independence

논리적 데이터 독립성

논리적 데이터 독립성은 개념 스키마 변경이 사용자나 응용 프로그램이 보는 외부 스키마에 덜 드러나게 하는 성질입니다. 핵심은 외부/개념 매핑과 안정적인 뷰 계약입니다.

개념 스키마 변경

phone 컬럼 추가

현재 개념 스키마 users 테이블
id name team_id
논리 구조 변경 ALTER TABLE

ADD COLUMN phone

새 개념 스키마 users 테이블
id name phone team_id
외부 스키마 유지

뷰 호환성 유지

매핑 규칙 외부/개념 매핑

앱에 필요한 컬럼만 외부 스키마로 연결합니다.

안정적인 외부 계약 user_view
id name
기존 소비자 기존 앱

id와 name 계약을 그대로 사용합니다.

새 소비자 새 기능

필요할 때 phone을 별도 경로로 사용합니다.

잘 되는 경우 기존 의미를 보존하는 컬럼 추가

외부 뷰나 API가 필요한 컬럼만 안정적으로 제공하면 영향이 작습니다.

주의할 경우 이름 변경, 제약 강화, 타입 변경

외부 계약을 유지하려면 뷰 재정의, 기본값, 마이그레이션 전략이 필요할 수 있습니다.

어려운 경우 테이블 분할·병합, 의미 변경

앱이 기대하던 행의 단위와 관계가 바뀌면 코드 수정이 필요할 수 있습니다.

1 개념 구조가 바뀐다

테이블, 속성, 관계, 제약 조건이 조직 요구에 따라 변경됩니다.

2 외부 계약을 지킨다

외부 스키마는 앱이 기대하는 이름, 컬럼, 의미를 가능한 한 유지합니다.

3 한계를 판단한다

의미가 흔들리는 변경은 DBMS만으로 숨기기 어렵고 설계 조정이 필요합니다.