DB 구조
데이터베이스의 복잡한 내부 구조, 동작 방식을 모두 이해하고 있어야 한다면 일반 사용자에게 데이터베이스는 접근하기 힘든 소프트웨어이다. 미국의 표준화 기간인 ANSI/APARC(안시)에서는 일반 사용자가 DB를 쉽게 이해하고 이용할 수 있도록 3단계 데이터 베이스 구조를 제안했다.
- 개별 사용자 관점에서 바라보는 외부 단계(external level)
- 조직 전체(DB 전체 관리의 관점)의 관점에서 바라보는 개념 단계(conceptual level)
- 물리적인 저장 장치의 관점에서 바라보는 내부 단계(internal level)
DB구조 예시
-
아파트에 살고 있는 몇몇 세대 -> 외부 단계
- 자신이 살고 있는 집의 구조, 크기 등에만 관심이 있고 다른 세대에는 큰 관심이 없다.
-
아파트를 관리하는 관리인 -> 개념 단계
- 어느 한집에만 관심을 두면 안되며 아파트 전체를 관리하려면 모든 세대와 아파트 전체의 흐름을 알고 있어야 한다.
-
아파트의 시공업체 -> 내부 단계
- 아파트 내부 뼈대, 구조 등을 잘 알고 있어야 한다.
외부 단계(외부스키마)
개별 사용자 관점에서 데이터베이스를 이해하고 표현한다. 각 사용자는 업무 내용과 사용 목적이 달라 필요한 데이터 내용이 다를 수 있다. 예를들어 쇼핑몰 DB에 고객, 상품, 직원, 주문 등의 데이터가 존재하면 사용자 가운데 고객관리 담당직원은 고객 관련 데이터만, 상품 관리 담당 직원은 상품 관련 데이터만 관심을 가질 것이다.
외부 단계에서 사용자에게 필요한 DB를 정의한 것을 외부 스키마라고하며, 각 사용자가 생각하는 DB의 모습을 표현한 논리적 구조로, 사용자마다 다르다.
DB 하나에는 여러개의 외부 스키마가 존재할 수 있다.
개념 단계
DB를 이용하는 사용자들의 관점을 통합하여, DB 조직 전체의 관점에서 이해하고 표현한다.
개념 단계에서는 DBMS나 관리자의 관점에서 모든 사용자에게 필요한 데이터를 통합하여 전체 DB의 논리적 구조를 정의한다.
전체 DB에 어떤 데이터가 저장되는지, 데이터들 간에는 어떤 관계가 존재하고 어떤 제약조건이 있는지, 데이터에대한 보안정책, 접근 권한에 대한 정의도 포함된다.
하지만 데이터를 물리적으로 저장하는 방법이나 데이터 저장 장치와는 독립적이다.
DB하나에는 개념 스키마가 하나만 존재하고 각 사용자는 개념 스키마의 일부분을 사용한다. 즉 외부 스키마는 개념 스키마를 기초로하여 사용자의 이용 목적에 맞게 만들어진다.
내부 단계
DB를 디스크나 테이프 같은 저장 장치의 관점에서 이해하고 표현한다. 즉 실제로 물리 저장 장치에 저장되는 방법을 정의하는 것이 내부 스키마다.
파일에 데이터를 저장하는 레코드의 구조, 레코드를 구성하는 필드의 크기, 인덱스를 이용한 레코드 접근 경로 등을 정의한다.