데이터베이스 시스템
데이터베이스 시스템 (DBS)은 데이터베이스와 DBMS를 이용하여 조직에 필요한 정보를 제공해주는 전체 시스템이다.
데이터베이스의 구조
스키마란 데이터베이스에 저장되는 데이터 구조와 제약조건을 정의한 것을 말하고 인스턴스는 스키마에 따라 데이터베이스에 실제로 저장된 값으로 테이블 그림의 스키마 아래에 존재하는 실제 값이다.
그림으로 표현하면 노란색이 스키마 아래의 값들이 인스턴스라고 할 수 있다.
3단계 데이터베이스 구조
하나의 데이터베이스를 세 단계로 나눌 수 있는데, 개별 사용자 관점에서 바라보는 외부 단계, 조직 전체의 관점에서 바라보는 개념 단계, 물리적인 저장 장치의 관점에서 바라보는 내부 단계로 나뉜다.
외부 단계
외부 단계에서는 개별 사용자 관점에서 데이터베이스를 이해하고 표현한다. 하나의 데이터베이스를 여러 사용자들이 함께 사용하지만 각자의 사용자가 데이터베이스 전체를 사용하는 것은 아니다. 예를 들어 고객 관리를 담당하는 사용자는 고객과 관련된 데이터만, 상품 관리를 담당하는 사용자는 상품관련 데이터만 사용한다. 즉 사용자들은 데이터베이스를 부분적으로 사용하게고 각자 필요한 데이터베이스의 구조가 다른데, 이처럼 외부 단계에서 각 사용자에게 필요한 데이터베이스를 정의한 것을 외부 스키마라고 한다.
외부 스키마는 각 사용자가 필요로 하는 데이터베이스의 구조이므로 각 사용자마다 다르다. 데이터베이스 하나엔 외부 스키마가 여러 개 존재할 수 있고, 외부 스키마 하나를 공유할 수 있다. 외부 스키마는 전체 데이터베이스 중 사용자가 관심을 가지는 일부분을 볼 수 있어 서브 스키마라고도 한다.
개념 단계
개념 단계에서는 데이터베이스를 이용하는 사용자들의 관점을 통합하여 데이터베이스를 조직 전체의 관점에서 이해하고 표현한다. 데이터베이스 관리 시스템이나 데이터베이스 관리자는 데이터베이스의 일부분이 아닌 전체 데이터베이스가 필요하므로 모든 사용자들에게 필요한 데이터를 통합한 전체 데이터베이스의 논리적 구조를 정의한다. 이를 개념 스키마라고 한다.
개념 스키마는 모든 사용자가 생각하는 데이터베이스의 모습을 하나로 합친 모습이다. 개념 스키마는 전체 데이터베이스에 어떤 데이터가 저장되는지, 어떤 관계가 존재하고 어떤 제약조건이 존재하는지, 데이터에 대한 보안 정책이나 접근 권한에 대한 정의도 포함하지만 데이터를 물리적으로 저장하는 방법이나 데이터를 저장하는 저장 장치와는 독립적이다.
하나의 데이터베이스에는 개념 스키마가 하나만 존재하고, 각 사용자는 개념 스키마의 일부분을 사용한다. 다시말하면 외부 스키마는 개념 스키마를 기반으로 하여 사용자 목적에 맞게 만들어진다. 일반적으로 스키마라고 하면 개념 스키마를 의미한다.
내부 단계
내부 단계에서는 데이터베이스를 디스크나 테이프 같은 저장 장치의 관점에서 이해하고 표현한다. 내부 단계는 전체 데이터베이스가 저장 장치에 실제로 저장되는 방법을 정의하며 이를 내부 스키마라고 한다.
내부 스키마는 데이터베이스의 개념 스키마에 대한 물리적인 저장 구조를 표현하므로 하나의 데이터베이스에 하나만 존재한다.
스키마의 대응 관계
하나의 데이터베이스에는 세 가지 유형의 스키마가 존재하지만, 실제 데이터는 물리적 저장 장치에 저장된 데이터베이스만 존재하므로 사용자가 자신의 외부 스키마를 이용해 데이터를 얻으려면 내부 스키마에 따라 저장된 데이터베이스에 접근해야 한다. 이를 위해선 세가지 스키마사이에 대응 관계가 성립해야 하는데 이 대응 관계를 사상 또는 매핑이라 한다.
외부 스키마와 개념 스키마는 외부/개념 사상 (응용 인터페이스)에 의해 대응되고, 개념 스키마와 내부 스키마는 개념/내부 사상 (저장 인터페이스)에 의해 대응된다.
데이터 독립성
데이터 독립성은 하위 스키마를 변경하더라도 상위 스키마가 영향을 받지 않는 것을 말한다.
- 논리적 데이터 독립성 : 개념 스키마가 변경되더라도 외부 스키마가 영향을 받지 않는 것
- 물리적 데이터 독립성 : 내부 스키마가 변경되더라도 개념 스키마가 영향을 받지 않는 것
데이터 사전
데이터베이스는 조직 운영을 위해 실제 데이터를 저장하는데, 이 데이터를 관리하고 이용하려면 부가 정보(스키마와 사상 관계)도 저장해야 한다. 이러한 정보가 저장되는 곳을 데이터 사전 혹은 시스템 카탈로그라고 부른다. 이 데이터들은 메타 데이터라고도 한다. 이 데이터 사전도 데이터베이스이기 때문에 사용자가 실제 사용하는 것과 구별하기 위해 사용자가 사용하는 데이터베이스를 사용자 데이터베이스라고 부른다. 데이터 사전은 DBMS가 가 스스로 생성하고 유지하므로 일반 사용자는 검색으로만 접근할 수 있다. 또 이 데이터 사전에 있는 데이터에 접근하는데 필요한 정보는 데이터 디렉토리라는 곳에서 관리한다. 이 데이터 디렉토리는 사용자가 접근할 수 없다.
데이터베이스 사용자
사용자를 이용 목적에 따라 3가지로 나눌 수 있다.
- 데이터베이스 관리자 : 데이터 베이스 시스템을 운영 및 관리하는 자로 직접 데이터베이스를 활용하기보단 설계 및 구축하고 제어한다. 데이터 언어 중 주로 데이터 정의어와 데이터 제어어를 이용해 데이터베이스에 접근한다.
- 최종 사용자 : 데이터를 조작하기위해 접근하는 사람들로 주로 데이터 조작어를 사용한다. 캐주얼 사용자와 초보 사용자로 구분하기도 한다.
- 응용 프로그래머 : 프로그램을 작성할 때 데이터베이스에 접근하여 데이터 조작어를 삽입하는 사용자이다.
데이터 언어
DBMS를 사용할 때 필요한 언어로 데이터 정의(DDL), 데이터 조작어(DML), 데이터 제어어(DCL)로 나눌 수 있다.
- 데이터 정의어 : 스키마를 정의하거나 기존 스키마의 정의를 수정 또는 삭제하기 위해 사용
- 데이터 조작어 : 데이터의 삽입, 삭제, 수정, 검색 등의 처리를 위해 사용하며 설명 방식에 따라 절차적 데이터 조작어와 비절차적 데이터 조작어로 나뉜다.
- 절차적 데이터 조작어 : What, How 를 알려주어 구체적으로 할 일을 지정
- 비절차적 데이터 조작어 : What 만 알려주어 처리는 DBMS에게 맡김
- 데이터 제어어 : 내부적으로 필요한 규칙이나 기법을 정의하는데 사용