데이터 독립성
- DBMS의 궁극적인 목표: 응용 프로그램이 데이터에 종속되지 않는 데이터의 독립성을 제공하는 것
- 상위 단계의 스키마 정의에 영향을 주지 않고 하위 단계의 스키마 정의를 수정할 수 있는 능력
논리적 데이터 독립성
- 기존 응용프로그램에 영향을 주지 않고 데이터베이스의 논리적 구조를 변경시킬 수 있는 능력
- 응용 프로그램과 자료 구조를 독립시키는 것
물리적 데이터 독립성
- 물리적 데이터 독립성은 응용 프로그램이나 데이터베이스의 논리적 구조에 영향을 주지 않고 DBMS가 데이터의 물리적 구조를 변경할 수 있는 것
- 하나의 논리적 구조와 이를 지원할 수 있는 여러 가지 상이한 물리적 구조 사이의 사상(mapping) 능력이 있어야 가능
- 시스템 성능(performance) 향상을 위해 필요
3단계 데이터베이스
- 스키마 정의: 데이터 구조와 제약 조건에 관한 명세(specification)를 기술한 것으로 컴파일 되어 데이터 사전에 저장
- 스키마의 정보
- 데이터 구조를 표현하는 개체(entity)
- 개체의 특성을 표현하는 속성(attribute)
- 이들 간 존재하는 관계(relationship)에 대한 정의
- 이들이 유지해야 될 제약 조건(constraints) 포함
- 어떤 입장에서 데이터베이스를 보느냐에 따라 데이터베이스 스키마 3단계로 구분
- 각 개인의 견해(외부)
- 개인의 견해가 종합된 기관 전체의 견해(개념)
- 저장장치의 견해(내부)
- 인스턴스: 스키마의 반대 개념으로 어느 특정한 순간에 데이터베이스에 저장되어 있는 정보의 모임
외부 스키마
- External Schema
- 외부 스키마는 개개 사용자를 위한 사용자 논리 단계
- 개개 사용자가 생각하는 개인적 데이터베이스 구조에 관한 것으로 여러 개가 존재
- 데이터베이스 전체의 한 논리적 부분으로 서브 스키마(sub schema)라고도 함
개념 스키마
- Conceptual Schema
- 모든 응용 시스템들이나 사용자들이 필요로 하는 데이터를 범 기관적 입장에서 통합한 조직 전체의 데이터베이스를 기술한 것으로 한 개만 존재
- 개체, 관계, 제약조건, 접근권한, 보안정책, 무결성 규칙에 관한 명세 포함
- 조직 논리 단계(community logical level)
- 단순히 스키마로 불림
내부 스키마
- Internal Schema
- 저장장치 입장에서 데이터베이스 전체가 저장되는 방법을 명세한 것으로 한 개만 존재
- 실제로 저장될 내부 레코드의 형식, 인덱스의 유무, 레코드의 물리적 순서 등에 관한 명세 포함
- 내부 스키마는 실제로 물리적 단계(하위단계: 운영체제)보다 한 단계 위에 존재
데이터베이스 시스템
- 데이터를 DB로 저장하고 관리해서 필요한 정보를 생성하는 컴퓨터 중심의 시스템
- 데이터베이스 시스템의 구성요소
- 데이터베이스
- DBMS
- Data Language
- 사용자
- DBA
- 데이터베이스 컴퓨터
데이터 사전
- 데이터베이스에 포함되는 모든 데이터 개체들에 대한 정의·명세에 관한 정보를 유지관리하고 있는 시스템
- 여러 스키마와 이들 속에 포함된 사상들에 관한 정보도 컴파일 되어 저장, 관리
- 질의 최적화 모듈이나 보안 및 권한에 관한 모듈 정보 저장
- 시스템 카탈로그 자체도 일반 사용자 데이터 테이블과 같이 릴레이션(테이블)으로 구성되어 있어 일반 질의어로 검색 가능
- 카탈로그의 정보
- SQL의 UPDATE, DELETE, INSERT문으로 사용자가 직접 갱신 불가
- 사용자의 질의문을 처리할 때 DBMS가 자동으로 카탈로그 정보를 갱신하고 관리(자기정의)
데이터 디렉터리
- 데이터 사전에 수록된 데이터를 실제 접근하는 데 필요한 정보를 관리·유지하는 시스템
- 시스템 카탈로그와 데이터 디렉터리는 모두가 시스템 데이터베이스라는 점에서는 같음
- 하지만 시스템 카탈로그는 사용자가 접근해서 검색해 볼 수 있는 반면에, 데이터 디렉터리는 시스템만 접근할 수 있다는 점이 다름
데이터 언어
데이터 정의어 (DDL)
- Data Definition Language
- 데이터베이스를 정의하거나 그 정의를 수정할 목적으로 사용하는 언어
- 데이터베이스 관리자(DBA)가 사용하며 DDL 컴파일러가 컴파일하여 시스템 카탈로그에 저장하여 필요한 경우 시스템이 활용
- 명령어: 생성(CREATE), 삭제(DELETE), 변경(ALTER)
데이터 조작어 (DML)
- Data Manipulation Language
- 사용자가 DBMS로 하여금 원하는 데이터를 처리하게끔 명세하는 도구
- 응용 프로그래머나 일반 사용자가 사용하는 언어
- 절차적(procedural) 데이터 조작어: 사용자가 무슨 데이터를 원하며 어떻게 그것을 접근하여 처리해야 되는지를 명세
- 저급 데이터 언어로서 독자적으로 사용되지 못함
- 호스트 프로그래밍 언어로 작성된 응용 프로그램 속에 삽입(embedded)되어 사용
- 한 번에 하나의 레코드만을 처리하는 언어
- 비절차적(non-procedural) 데이터 조작어: 사용자가 무슨 데이터를 원하는 지만 명세하고 그것을 어떻게 접근하여 처리할 것인가에 대해서는 명세할 필요 없음
- 데이터베이스 관리 시스템에 위임하는 고급 데이터 언어
- 대화식으로 독자적으로 사용할 수도 있고 HOST 프로그램 속에 삽입시켜 사용도 가능
- 데이터베이스로부터 여러 개의 레코드를 검색하여 처리하는 언어
- 명령어: 검색(SELECT), 삽입(INSERT), 삭제(DELETE), 변경(UPDATE)
데이터 제어어 (DCL)
- Data Control Language
- 데이터베이스를 올바르게 공용하게 하면서 정확성을 유지하기 위해 필요한 언어
- 불법적인 사용자로부터 데이터를 보호하기 위한 보안
- 데이터 정확성 유지를 위한 무결성
- 시스템 장애에 대비한 데이터 회복
- 동시 접근을 가능하게 하는 병행수행 제어
- 데이터 관리 목적으로 데이터베이스 관리자(DBA)가 주로 사용
사용자 분류
- 일반 사용자: 보통 터미널에서 질의어를 이용해서 데이터베이스를 접근하는 사용자
- 응용 프로그래머: 일반 호스트 프로그래밍 언어로 응용 프로그램을 작성할 때 데이터 조작어(데이터 부속어, DSL)을 삽입해 데이터베이스를 접근하는 사용자
- 데이터베이스 관리자(DBA): 데이터베이스 시스템의 관리 운영에 대한 모든 책임을 지고 있는 사람
- 데이터 정의어와 데이터 제어어를 사용
- 데이터베이스 설계와 운영, 행정 및 불평 해결, 시스템 감시 및 성능 분석 등의 업무를 수행
데이터베이스 시스템의 구조
중앙 집중 데이터베이스 시스템
- 범용 컴퓨터 시스템: 하나에서 수 개의 CPU와 공유 메모리의 액세스를 제공하는 공동 버스로 연결된 여러 개의 장치 제어기를 가짐
- 단일 사용자 시스템(PC 또는 워크스테이션): 일반적으로 하나의 CPU와 하나 또는 두 개의 하드 디스크를 가지며 OS는 한 사용자만을 지원
- 다수 사용자 시스템: 보다 많은 디스크, 보다 큰 메모리, 다수 CPU 및 다수 사용자용 OS 터미널을 통해 시스템에 연결된 굉장히 많은 사용자를 지원
클라이언트 - 서버 시스템
- 데이터베이스 기능
- 후처리: 액세스 구조 관리, 질의 평가 및 최적화, 동시성 제어 및 회복
- 전처리: forms, report-writer 및 그래픽 사용자 인터페이스 기능과 같은 도구들로 구성
- 전처리와 후처리 간의 인터페이스는 SQL을 통하거나 어플리케이션 프로그램 인터페이스를 통해 처리
병렬 데이터베이스 시스템
- 고속의 내부 연결 네트워크로 연결된 여러 처리기와 여러 디스크로 구성
- 병렬 컴퓨터는 소수의 강력한 처리기로 구성
- 대량 병렬 또는 작은 단위의 컴퓨터는 수천 개의 보다 작은 처리기를 사용
공유 메모리 구조
- 처리기와 디스크는 일반적으로 버스 또는 내부 연결 네트워크를 통해 공통 메모리에 액세스
- 공유 메모리 내의 데이터는 소프트웨어를 사용해 이동시킬 필요 없이 어떤 처리기에서도 액세스 가능
- 이 구조는 버스 또는 내부 연결 네트워크가 병목이 되기 때문에 32 또는 64 이상의 처리기를 갖지 않음
- 병렬성 정도가 낮은 경우 널리 사용
공유 디스크 구조
- 모든 처리기는 내부 연결 네트워크를 통해 모든 디스크에 직접 액세스할 수 있지만, 처리기들은 자신의 메모리를 가짐
- 메모리 버스는 병목이 아니지만 디스크의 내부 연결에서 병목이 발생
- 처리기 간의 통신은 느려짐
무공유 메모리 구조
- 노드: 처리기, 메모리 및 하나 이상의 디스크로 구성
- 지역 디스크로부터 액세스 되는 데이터는 내부 연결 네트워크를 통과하지 않음 → 자원 공유의 간섭을 최소화
계층 메모리 구조
- 공유 메모리 구조, 공유 디스크 구조, 무공유 메모리 구조의 특징을 결합
분산 시스템
- 데이터가 여러 컴퓨터(사이트 또는 노드)에 분산되며 네트워크로 연결
- 각 사이트는 지역적으로 저장된 데이터에 제어권을 유지
- 중복을 통해 시스템 가용도와 신뢰성을 높임
- 단점으로는 복잡성이 증가, 소프트웨어 개발 비용, 오류 가능성의 증가, 처리 비용 증가