데이터베이스 시스템(DataBase System, DBS)이란?
- DB에 데이터를 저장하고, 저장된 데이터를 관리하여 조직에 필요한 정보를 생성해주는 시스템
스키마(schema)란?
- DB에 저장되는 데이터 구조와 제약조건을 정의한 것
- 인스턴스
- 정의된 스키마에 의해 DB에 실제로 저장된고 갓
스키마는 한 번 정의되면 자주 변경되지 않지만, 인스턴스는 계속 변하는 특성이 있다.
- 정의된 스키마에 의해 DB에 실제로 저장된고 갓
데이터베이스의 3단계 구조
- 외부 단계 (external level)
- DB를 개별 사용자 관점에서 이해하고 표현하는 단계
- 외부 스키마
- 외부 단계에서 사용자에게 필요한 DB를 정의한 것
- 각 사용자가 생각하는 DB의 논리적인 구조
- 각 사용자마다 다르다.
- DB 하나에 외부 스키마가 여러 개 존재할 수도 있고,
외부 스키마 하나를 사용 목적이 같은 사용자들이 공유할 수도 있다. - 개념 스키마를 기초로 하여 사용자의 이용 목적에 맞게 만들어진다.
- 서브 스키마라고도 부른다.
- 개념 단계 (conceptual level)
- DB를 조직 전체의 관점에서 이해하고 표현하는 단계
- DB를 이용하는 사용자들의 관점을 통합한다.
- 개념 스키마
- DBMS나 관리자의 관점에서 모든 사용자에게 필요한 데이터를 통한한 전체 DB의 논리적인 구조
- 다양한 정의를 포함한다.
- 저장되는 데이터의 종류
- 데이터들 간의 관계
- 데이터들 간의 제약조건
- 데이터에 대한 보안 정책
- 데이터에 대한 접근 권한
- DB 하나에는 개념 스키마가 하나만 존재한다.
- 각 사용자는 개념 스키마의 일부분을 사용한다.
- 일반적으로 스키마라고 하면 개념 스키마를 의미한다.
- 내부 단계 (internal level)
- DB를 물리적인 저장 장치의 관점에서 이해하고 표현하는 단계
- DB가 저장 장치에 실제로 저장되는 방법을 정의한다.
- 내부 스키마
- 파일에 데이터를 저장하는 레코드의 구조, 인덱스를 이용한 레코드 접근 경로 등을 정의한다.
- 개념 스키마에 대한 물리적인 저장 구조를 표현하므로 하나의 DB에 하나만 존재한다.
- 외부 단계에서는 사용자별로 외부 스키마를 정의하여 불필요한 데이터 접근을 사전에 막아 보안 측면에서도 효과적이다.
DB 하나를 세 단계로 나누고, 각 단계별로 다른 추상화를 제공하면 DB를 효과적으로 관리할 수 있다.
내부 단계에서 외부 단계로 갈 수록 추상화 레벨이 높아진다.
3단계 DB 구조를 통해 모든 데이터가 어떻게 저장되고 유지되는지에 관련된
복잡한 내용을 숨기고 필요한 데이터만 단순화한 외부 단계의 관점을
일반 사용자들에게 제공할 수 있다.
요약
- 외부 단계 : 각 팀이 요구사항을 바탕으로 동일한 하나의 테이블에 대해서 논리적 설계를 진행한다.
- 개념 단계 : 모든 팀이 설계한 내용을 통합 및 정리하여 논리적 설계를 완료한다.
- 내부 단계 : 개념 단계에서 나온 결과물을 바탕으로 물리적인 설계를 진행 및 완료한다.
데이터 독립성
- 하위 스키마를 변경하더라도 상위 스키마가 영향을 받지 않는 특성
DB를 3단계 구조로 나누고, 단계별로 스키마를 유지하며 스키마 사이의 대응 관계를 정의하는 목적
- 사상
- 스키마 사이의 대응 관계
- 매핑이라고도 부른다.
- 외부 스키마와 개념 스키마는 외부/개념 사상에 의해 대응된다.
- 외부/개념 사상은 응용 인터페이스라고도 부른다.
- 외부/개념 사상은 논리적 데이터 독립성이라고도 부른다.
- 개념 스키마와 내부 스키마는 개념/내부 사상에 의해 대응된다.
- 개념/내부 사상은 저장 인터페이스라고도 부른다.
- 개념/내부 사상은 물리적 데이터 독립성이라고도 부른다.
- DBMS는 미리 정의된 외부/개념 사상과 개념/내부 사상 정보를 이용해 사용자가 원하는 데이터에 접근할 수 있다.
하나의 DB에 존재하는 3가지 유형의 스키마는 바라보는 관점만 다를 뿐 모두 같은 DB를 바라본다.
논리적 데이터 독립성
- 개념 스키마가 변경되더라도 외부 스키마가 영향을 받지 않는 것
- 전체 DB의 논리적인 구조가 변경되어도 관련된 외부/개념 사상 정보만 적절하게 수정해주면
직접 관련이 없는 사용자를 위한 외부 스키마는 변경할 필요가 없다. - 개념 스키마가 변경되어도 외부 스키마가 영향을 받지 않았다는 것은
결국 외부 스키마의 사용자가 전체 DB의 논리적 구조가 변경되었다는 사실을 알 필요가 없음을 의미한다.
물리적 데이터 독립성
- 내부 스키마가 변경되더라도 개념 스키마가 영향을 받지 않는 것
- 결과 적으로는 외부 스키마도 영향을 받지 않는다.
- 물리적 데이터 독립성이 실현되면 DB의 저장 구조가 변경되어도
관련된 개념/내부 사상 정보만 적절히 수정해주면
직접적으로 관련이 없는 DB의 논리적 구조는 영향을 받지 않는다.
데이터 사전
- DB에 저장되는 데이터에 관한 정보를 저장하는 곳
- 스키마, 사상 정보, 제약조건 등을 저장하고 있다.
- DBMS가 스스로 생성하고 유지한다.
- DBMS가 주로 접근하지만 일반 사용자도 접근할 수 있다,
- DBMS는 데이터 사전에 내용을 새로 추가하거나 수정할 수 있다.
- 일반 사용자는 데이터 사전에 저장된 내용을 읽기만 할 수 있다.
- 시스템 카탈로그라고도 부른다.
- 데이터를 저장하는 DB의 일종이기 때문에 시스템 데이터베이스라고도 부른다.
- 사용자가 실제로 사용하는 데이터베이스는 사용자 데이터베이스라고도 부른다.
- 메타 데이터
- 데이터 사전에 저장되는 데이터에 대한 데이터
- 데이터 디렉토리
- 데이터 사전에 있는 데이터에 실제로 접근하는데 필요한 위치 정보가 저장되어 있는 곳
데이터 독립성을 실현하면서 DB를 다양한 관점에서 이해하려면 3가지 스키마와 스키마 간의 사상 정보가 필요한데,
그러한 데이터들을 저장하는 곳이 데이터 사전이다.