데이터베이스를 3가지의 큰 범주로 분리해보자는 컨셉
3층 스키마의 독립성
개념 스키마가 변경되어도 외부 스키마에는 영향을 미치지 않도록 지원
논리적 구조가 변경되어도 응용 프로그램에 영향이 없음
우리가 데이터 저장이 필요한 속성을 추가/변경이 필요할 때 외부 응용 프로그램을 변경하지 않아도됨
→ 사용자 특성에 맞게 변경 가능
→ 통합 구조로 변경 가능
내부 스키마가 변경되어도 개념 스키마는 영향을 받지 않도록 지원
저장 장치의 구조 변경은 응용프로그램과 개념 스키마에 영향을 주지 않음
실제로 데이터를 저장하는 위치나 파일 이름을 변경하더라도 데이터베이스 전체 관점 즉, 개념 스키마 관점에서는 아무런 영향이 없음
→ 물리적 구조의 영향 없이 개념 구조로 변경 가능
→ 개념 구조의 영향 없이 물리적인 구조로 변경 가능
예시 1) CS팀 aiden(외부 스키마 #1): 이벤트 상품 전달을 위해 고객 정보가 필요
→ 필요한 정보: 고객의 이름, 전화번호, 주소
→ 하지만 회사가 저장하고 있는 정보는 고객 비밀번호, 계좌번호, 캐시, 이메일, 닉네임 등 굉장히 많음
→ 외부 스키마는 개념 스키마를 이용하여 필요한 정보만 전달받을 수 있음
예시 2) CS팀 mae(외부 스키마 #2): 14세가 안된 고객은 우리 서비스에서 거래를 못하게 해야한다. 즉, 14세 미만인지 아닌지 여부를 새롭게 저장해야 하는 상황
→ 14세 이상인지 여부를 판단하는 데이터가 추가되었다고 해서 앞서 aiden(외부 스키마 #1)이 하던 고객 정보에 대한 접근이 안된다면 물리적 / 논리적 독립성 모두 없는 것
⇒ 검색 속도를 높이기 위해 데이터가 저장되는 파일의 구조를 바꿨다고 해서(내부 스키마), 전체적인 데이터 베이스 구조/설계가 달라지거나(개념 스키마) 응용 프로그램단(외부 스키마)이 변경되면 안됨
⇒ 데이터베이스를 바라보는 관점에 따라 세가지로 나눌 수 있으며 그 각각은 논리적/물리적으로 독립적이면 좋다는 뜻!