스키마란
스키마(schema)는 데이터베이스에 저장되는 데이터 구조와 제약조건을 정의한 것
고객과 관련된 데이터인 고객번호, 이름, 나이, 주소가 있음
고객번호는 정수로, 이름은 최대 10자의 문자열, 나이는 정수로, 주소는 최대20자의 문자열만 허용하기로 함
정해진 이 모든 내용이 스키마, 그리고 정의된 스키마에 따라 데이터베이스에 실제로 저장된 값이 인스턴스
3단계 데이터베이스 구조
- 데이터베이스는 3단계 구조 외부스키마, 개념스키마, 내부스키마로 나뉠 수 있음
- 3단계 데이터베이스는 외부단계, 개념단계, 내부 단계 세단계로 나뉨
- 개별 사용자 관점에서 바라보는 외부 단계(external level)
- 조직 전체의 관점에서 바라보는 개념 단계(conceptual level)
- 물리적인 저장 장치의 관점에서 바라보는 내부 단계(internal level)
- 데이터베이스 하나를 세 단계로 나누고, 각 단계별로 다른 추상화를 제공하면 데이터베이스를 효과적으로 관리 할 수 있음
- 일반적으로 내부 단계에서 외부 단계로 갈수록 추상화 레벨이 높아짐
- 해당 구조를 통해 모든 데이터가 어떻게 저장되고 유지되는지와 관련된 복잡한 내용을 숨기고 필요한 데이터만 단순화한 외부 단계의 관점을 일반 사용자들에게 제공할 수 있음
- 아파트를 예를 들면, 집주인의 관점에서 보는게 외부 단계, 건물 전체의 관리인 관점에서 보는게 개념 단계, 건설 업체에서 보는게 내부 단계
외부 단계
- 개별 사용자 관점에서 데이터베이스를 이해하고 표현하는 단계
- 하나의 데이터베이스를 조직 내의 사용자들이 함께 사용하지만 각 사용자가 데이터베이스 전체에 관심이 있는 것이 아님
- 사용자마다 업무 내용과 사용 목적이 달라 필요한 데이터 내용이 다를 수 있음.
- 예를 들면 쇼핑몰 담당 직원이 필요한 데이터, 고객 관리 담당 직원이 필요한 데이터, 상품 관리 담당 직원이 필요한 데이터는 각각 다름
외부 스키마
- 사용자단에서 데이터베이스를 바라보는 뷰를 정의
- 사용자마다 생각하는 데이터베이스의 논리적인 구조
- 사용자가 관심을 가지는 데이터베이스의 일부를 표현
- 서브 스키마(Sub schema)라고도 함
- 데이터베이스 하나의 여러 외부 스키마가 존재할 수 있음
- 사용 목적이 같은 사용자들이 외부 스키마 공유 가능
- 사용자마다 데이터베이스를 보는 구조가 다름
개념 단계
- 데이터베이스를 조직 전체의 관점에서 통합하고 이해하고 표현하는 단계
개념 스키마
- 전체 데이터베이스의 구조를 정의
- 조직 관점에서 모든 사용자에게 필요한 데이터를 통합한 전체 데이터베이스의 논리적 구조
- 저장 데이터, 데이터 간 관계, 제약 조건, 보안 정책, 접근 권한을 포함
- 물리적 저장 방식과는 독립적
- 하나의 데이터베이스에는 하나의 개념 스키마가 존재
- 일반적으로 스키마라고 하면 개념 스키마를 의미
내부 단계
- 데이터베이스를 저장 장치 관점에서 이해하고 표현하는 단계
- 전체 데이터베이스가 저장 자치에 실제로 저장되는 방법을 정의하며, 이를 내부 스키마라고 함
내부 스키마
- 데이터의 물리적 저장구조를 정의
- 파일에 데이터를 저장하는 레코드의 구조, 레코드를 구성하는 필드 크기, 인덱스를 이용한 레코드 접근 경로 등을 정의
- 데이터베이스의 개념 스키마에 대한 물리적인 저장 구조를 표현
- 하나의 데이터베이스에 하나만 존재
데이터 독립성
데이터 독립성이란?
- 데이터 독립성은 하위 스키마를 변경하더라도 상위 스키마가 영향을 받지 않는 특성을 의미
- 3단계 데이터베이스 구조에는 논리적 데이터 독립성과 물리적 데이터 독립성이 존재
- 데이터베이스를 3단계 구조로 나누고, 단계별로 스키마를 유지하며 스키마 사이의 대응 관계를 정의하는 궁극적인 목적은 데이터 독립성(data independency)을 실현하기 위해서임
데이터 독립성을 위한 스키마 간 매핑
- 외부/개념 사상
- 외부 스키마와 개념 스키마를 연결
- 사용자가 요청한 데이터를 개념 스키마와 매핑하여 제공
- 논리적 데이터 독립성 실현
- 개념/내부 사상
- 개념 스키마와 내부 스키마를 연결
- 개념 스키마에 정의된 데이터를 물리적 저장 구조로 매핑
- 물리적 데이터 독립성 실현
논리적 데이터 독립성
- 논리적 데이터 독립성은 개념 스키마가 변경되더라도 외부 스키마가 영향을 받지 않는 것을 의미
- 즉, 데이터베이스의 논리적 구조가 변경되어도 외부 스키마와 응용 프로그램은 변경할 필요가 없음
- 전체 데이터베이스의 논리적인 구조가 변경되어도 관련된 외부/개념 사상 정보만 적절히 수정해주면 직접 관련이 없는 사용자를 위한 외부 스키마는 변경할 필요가 없음
물리적 데이터 독립성
- 물리적 데이터 독립성은 내부 스키마가 변경되더라도 개념 스키마가 영향을 받지 않는 것을 의미
- 결과적으로 외부 스키마도 영향을 받지 않음
- 데이터베이스의 저장 구조가 변경되어도 관련된 개념/내부 사상 정보만 적절히 수정해주면 직접적으로 관련이 없는 데이터베이스의 논리적 구조는 영향을 받지 않음
Reference
https://terms.naver.com/list.naver?cid=58430&categoryId=58430&so=st4.asc