데이터베이스 개론2판(김연희)를 읽고 복습 및 내용 정리한 글입니다.
1. 데이터베이스 시스템의 정의
데이터베이스, 데이터베이스 관리 시스템, 데이터베이스 시스템은 각자 다른 의미를 가진다.
- 데이터베이스: 저장된 데이터의 집합
- 데이터베이스 관리 시스템: 데이터베이스에 저장된 데이터를 관리하는 시스템
- 데이터베이스 시스템: 데이터베이스 + 데이터베이스 관리 시스템을 이용해 조직에 필요한 정보를 제공해주는 전체 시스템

즉 사용자가 데이터베이스 관리 시스템을 거쳐 데이터베이스에 접근하고 사용하는 전체 시스템을 의미한다.
2. 데이터베이스의 구조
스키마(shema)
데이터베이스에 저장되는 데이터 구조와 제약조건.
미리 설정된 데이터의 구조를 의미한다.
3단계 데이터베이스 구조
데이터베이스의 복잡한 구조를 감추고 단순화하기 위해서 구조를 3단계로 나누는 관점이다.

외부 단계(external level)
- 외부 사용자가 바라보는 단계이다.
- 외부 단계에서 사용자에게 필요한 데이터베이스를 정의한다.
개념 단계(conceptual level)
- 모든 데이터를 통합하여 전체 데이터베이스의 논리적 구조를 정의한다. -> 개념스키마
- 데이터베이스에는 개념스키마가 하나 존재하고 사용자는 개념스키마의 일부를 사용한다.
내부 단계(internal level)
- 디스크나 테이프같은 저장 장치의 관점이다.
- 개념스키마에 대한 물리적인 저장구조를 표현한다.
데이터 독립성
3단계 데이터베이스 구조에는 논리적 데이터 독립성과 물리적 데이터 독립성이 존재한다.
논리적 데이터 독립성
- 개념 스키마가 변경되더라도 외부 스키마가 영향을 받지 않는 것.
물리적 데이터 독립성
- 내부 스키마(저장장치 구조)가 변경되더라도 개념 스키마가 영향을 받지 않는 것.
데이터 사전
데이터베이스 관리에 필요한 부가정보들이 저장되는 공간이다.
3. 데이터베이스 사용자
데이터베이스 사용자는 목적에 따라 3가지로 분류된다.
데이터베이스 관리자
- 데이터베이스를 운영, 관리한다.
- 데이터베이스 구성 요소 선정
- 데이터베이스 스키마 정의
- 물리적 저장 구조와 접근 방법 결정
- 무결성 유지를 위한 제약조건 정의
- 보안 및 접근 권한 정책 결정
- 백업 및 회복 기법 정의
- 시스템 데이터베이스 관리
- 시스템 성능 감시 및 성능 분석
- 데이터베이스 재구성
최종 사용자
-
데이터를 조작(삽입,삭제,수정,검색)하기 위해 데이터베이스에 접근하는 사람들이다.
-
데이터 조작어를 사용하거나 GUI를 통해 데이터베이스를 사용한다.
응용 프로그래머
- 응용 프로그램을 작성할 때 데이터베이스에 접근하는 데이터 조작어를 삽입한다.
4. 데이터 언어
데이터 정의어(Data Definition Language)
-
새로운 데이터베이스를 구축하기 위해 스키마를 정의하거나 삭제, 수정할 때 사용하는 언어이다.
-
데이터 정의어로 정의된 스키마는 데이터 사전에 저장되고, 삭제나 수정 발생 시에도 데이터 사전에 반영된다.
데이터 조작어(Data Manipulation Language)
-
사용자가 데이터의 삽입,삭제,수정,검새긍의 처리를 데이터베이스 관리 시스템에게 요구하기 위해 사용되는 언어이다.
-
설명 방식에 따라 절차적 조작어와 비절차적 데이터 조작어로 나눈다.
- 절차적 데이터 조작어(procedural DML): 무엇을 원하는지와 더불어 데이터를 어떻게 처리하는지 방법까지 설명한다.
- 비절차적 데이터 조작어(nonprocedural DML): 데이터를 어떻게 처리하는지는 데이터베이스 관리 시스템에 맡긴다.
데이터 제어어(Data Control Language)
- 데이터의 무결성과 일관성을 유지하며 공유할 수 있도록 내부적으로 필요한 규칙을 정의하는 데 사용하는 언어이다.
5. 데이터베이스 관리 시스템의 구성
데이터베이스 관리 시스템은 사용자와 데이터베이스 사이에 위치한다.
크게 질의 처리기와 저장데이터 관리자로 구분할 수 있다.

Reference
- IT CookBook, 데이터베이스 개론(2판): 기초 개념부터 빅데이터까지_김연희