users 테이블 확장
ALTER TABLE users ADD phone VARCHAR(20);
업무 요구가 늘어나면 테이블 정의는 더 풍부해질 수 있습니다.
논리적 데이터 독립성은 개념 스키마의 변화와 사용자가 보는 외부 스키마를 직접 1:1로 묶지 않는다는 뜻입니다.
조직 전체 논리 구조의 수정
ALTER TABLE users ADD phone VARCHAR(20);
업무 요구가 늘어나면 테이블 정의는 더 풍부해질 수 있습니다.
SELECT id, name FROM users;
`phone`을 노출하지 않으면, 기존 사용자 관점은 변하지 않습니다.
같은 변경이 두 단계에 다르게 나타남
DB 내부 논리: 이제 `users`는 id, name, phone을 포함하는 더 큰 구조가 됩니다.
앱이 보는 계약: 여전히 id, name만 받으므로 기존 화면과 API는 그대로 동작합니다.
왜 독립성이라고 부르는가
개념 스키마는 진화해도 됩니다. 변경 부담은 뷰와 매핑 관리로 모입니다.
외부 스키마를 안정적으로 유지하면, 이를 쓰는 애플리케이션은 즉시 수정하지 않아도 됩니다.
이 독립성은 특히 컬럼 추가처럼 단순한 변화에서 잘 드러납니다. 하지만 테이블 분할·병합처럼 구조가 크게 바뀌면 `user_view` 자체를 다시 정의해야 할 수 있어, 물리적 데이터 독립성보다 실현이 더 어렵습니다.