DBMS (Database Management System)
1. 정의
- 데이터베이스 관리 시스템
- 응용 프로그램과 데이터 사이의 중재자로서 모든 사용자들이 데이터베이스를 공용할 수 있게 관리해주는 범용 소프트웨어
2. 발전 배경 – 파일 처리 시스템, 파일 관리 시스템
1) 파일 처리 시스템
- 운영체제가 지원
- 각 응용 프로그램들이 ①논리적 파일 구조를 정의하고 ②직접 물리적 파일 구조로 구현
① 논리적 파일 구조: 파일이 논리적으로 어떻게 구성되었는가(이름, 주소 등)
② 물리적 파일 구조: 파일이 물리적으로 어떻게 구성되었는가(용량, 형식 등)
😡 데이터의 종속성(dependency)과 중복성(redundancy)를 야기
2) 파일 관리 시스템
- 파일 관리 시스템(라이브러리) 통해 파일에 접근
- 파일에 접근하는 형식이 공통
😡 마찬가지로, 데이터의 중복성(redundancy)를 야기
🧐 그렇다면 여기서 말하는 데이터 종속성과 중복성이란?
1) 데이터 종속성 (data dependency)
- 응용 프로그램과 데이터가 상호 의존관계를 맺고 있는 것
→ 데이터의 구성 방법이나 접근 방법을 변경하면 관련된 응용 프로그램도 함께 변경해야 함
2) 데이터 중복성 (data redundancy)
- 한 시스템 내에 같은 내용의 데이터가 여러 파일에 중복 저장된 것
→ ①일관성, ②보안성, ③경제성, ④무결성에 악영향
① 일관성(consistency): 데이터베이스가 항상 일관된 상태를 유지(정보 손실이 없는 상태)
② 보안성(security)
③ 경제성(economics): 저장장치를 더 많이 사용하게 됨
④ 무결성(intergrity): 데이터의 정확성(일관성이 깨지면 무결성도 깨짐)
3. 기능 – 정의 기능, 조작 기능, 제어 기능
1) 정의 기능
- 하나의 저장 구조(storage structure)로 여러 사용자의 요구를 지원할 수 있도록 데이터를 조직하는 기능
① 데이터의 논리적 구조를 명세
② 데이터의 물리적 구조를 명세
③ 물리적/논리적 사상(mapping)을 명세
2) 조작 기능
- 사용자와 데이터베이스 간의 인터페이스(interface)를 지원하는 기능
- 데이터베이스의 접근 및 조작을 지원
- 4가지 연산: ①검색(retrieve) ②갱신(update) ③삽입(insert) ④삭제(delete)
- 데이터 언어(질의어)로 표현
- 사람의 언어, 비절차적 언어
3) 제어 기능
- 데이터의 정확성과 보안성을 유지하는 기능
① 무결성(integrity) 유지
② 보안(security) 유지
③ 권한(authority) 검사
④ 병행수행 제어(concurrency control)
⑤ 복구(recovery) 지원
4. 궁극적 목적
✓ DBMS의 궁극적 목적은 데이터 독립성(data independency)
- 논리적 데이터 독립성(logical data independency)
- 응용 프로그램에 영향을 주지 않고 논리적 데이터 구조 변경 가능
- 물리적 데이터 독립성(physical data independency)
- 응용 프로그램과 논리적 데이터 구조에 영향을 주지 않고 물리적 데이터 구조의 변경 가능
✓ 데이터 독립성은 사상을 통해 구현된다.
데이터베이스의 구성요소
1. 3단계 데이터베이스
1) 스키마(schema): DB의 구조 + 제약조건 명세
2) 3단계 DB구조
(source: https://www.javatpoint.com/dbms-three-schema-architecture)
①외부 스키마(external schema)
②개념 스키마(conceptual schema)
- 범기관적 입장에서 DB를 정의
- 통합된 조직 전체의 DB
③내부 스키마(internal schema)
- 저장장치의 입장에서 DB 전체가 저장되는 방법을 명세
- 3단계간의 사상
- 외부 단계(외부 스키마) ①⇢ 개념 단계(개념 스키마) ②⇢ 내부 단계(내부 스키마)
① 외부/개념 사상(응용 인터페이스): 개념 스키마가 바뀌어도 외부 스키마는 영향X
→ 논리적 데이터 독립성
② 개념/내부 사상(저장 인터페이스): 내부 스키마가 바뀌어도 개념 스키마는 영향 X
→ 물리적 데이터 독립성
2. 시스템 데이터베이스
- 카탈로그(catalog)
- 메타 DB, 시스템 카탈로그, 데이터 사전, 데이터 디렉토리
- 데이터를 위한 데이터
- 시스템 내의 모든 객체들에 대한 정의나 명세에 대한 정보를 수록
- DB관리자(DBA)가 사용하는 도구
3. 데이터 언어
1) 데이터 정의어 (DDL: Data Definition Language)
- DB 구조를 정의하고 변경하는 데 사용
① 논리적 데이터 구조의 정의: 스키마, 외부 스키마 명세
② 물리적 데이터 구조의 정의: 내부 스키마 명세 → 데이터 저장 정의어
③ 사상 정의: 논리적 데이터 구조 ↔ 물리적 데이터
2) 데이터 조작어 (DML: Data Manipulation Language)
A) 절차적(procedural) DML
- 저급 데이터 언어 → ”What + How” 명세
- 한 번에 하나의 레코드만 처리
- 응용 프로그램 속에 삽입되어 사용(DML 예비 컴파일러가 처리)
B) 비절차적(non-procedural) DML
- 고급 데이터 언어→ “What” 명세
- 한 번에 여러 개의 레코드 처리
- 질의어(Query Language)
3) 데이터 제어어 (DCL: Data Control Language)
- 공용 데이터베이스 관리를 위해 데이터 제어(data control)를 정의하고 기술
- 데이터 제어 내용
✓ ①보안(security) ②무결성(integrity) ③회복(recovery) ④병행수행(concurrency)
- DB 관리를 위해 DBA가 사용
참고