DBMS
From CS Wiki
- Database Management System
- 파일 시스템의 문제점인 데이터의 중복성과 종속성 등의 문제를 최소화하기 위해 등장. 모든 사용자나 응용 프로그램들이 데이터베이스를 공유할 수 있도록 관리, 운영해 주는 소프트웨어 시스템
등장 배경[edit | edit source]
- 기존의 파일처리 방식의 문제점
- 종속성의 문제점: 저장되는 방법이나 접근방법을 변경할 때 모두 바꿔줘야 한다.
- 중복성의 문제점: 일관성, 보안성, 경제성, 무결성 부족
역할[edit | edit source]
- 사용자의 요구에 따라 정보를 생성하고 스키마와 데이터를 관리
- 종속성과 중복성의 문제를 해결하기 위해 제안된 시스템으로 모든 응용 프로그램이 DB를 공용할 수 있도록 관리
- DB의 구성, 접근방법, 유지관리에 대한 모든 책임
기능[edit | edit source]
- 정의 기능(Definition Facility): 데이터의 형태, 구조 등 데이터베이스의 저장에 관한 여러 가지 사항을 정의하는 기능
- 조작 기능 (Manipulation Facility): 사용자가 이용할 수 있도록 요구에 따라 검색, 갱신, 삽입, 삭제 등을 지원하는 기능
- 제어 기능 (Control Facility): 데이터의 정확성과 안전성 유지를 위한 기능으로, 데이터 무결성 유지, 보안, 병행 제어 등을 제공
장·단점[edit | edit source]
- 데이터베이스 외 기존 파일·문서 시스템 대비 장단점
장점 | 단점 |
---|---|
|
|
관리[edit | edit source]
시스템 카탈로그[edit | edit source]
- 시스템 그 자체를 관리하기 위한 정보를 가지고 있는 시스템 데이터베이스
- DBMS가 스스로 생성하고 유지한다.
- 카탈로그에 저장된 정보를 메타 데이터(Meta-Data)라고 하며, 카탈로그를 자료 사전(Data Dictionary)라고도 한다.
- 실무적으로 시스템 카탈로그는 '시스템 DB', '시스템 테이블' 등으로 불린다.
- 일반 테이블과 마찬가지로 일반 사용자가 SQL문을 통해 제어 가능하다.
- 대부분의 테이블은 SELECT만 가능하며, 일부 테이블에 한해 INSERT, UPDATE, DELETE가 가능하다.
관리 언어[edit | edit source]
- 상세한 내용은 SQL 문서 보기
- 정의어 (DDL : Data Definition Language)
- 데이터베이스 구조를 정의 및 수정하기 위해 사용되는 언어
- 조작어 (DML : Data Manipulation Language)
- 데이터베이스 내의 자료를 검색, 삽입, 수정, 삭제하기 위해 사용되는 언어
- 제어어 (DCL : Data Control Language)
- 데이터베이스의 데이터 무결성 유지, 보안, 병행, 제어, 보호와 관리를 위한 언어
설계 시 고려사항[edit | edit source]
- 무결성 유지: 연산 후에도 데이터가 정해진 제약조건을 항상 만족해야 함
- 일관성 유지: 질의에 대한 응답이 처음부터 끝까지 변함없이 일정해야 함
- 회복성 유지: 장애 발생시 장애 발생 직전의 상태로 복구할 수 있어야 함
- 보안성 유지: 데이터 노출 또는 변경이나 손실로부터 보호할 수 있어야 함
- 효율성 유지: 응답시간 단축, 시스템의 생산성, 저장 공간의 최적화 등이 가능해야 함
- 확장성 유지: DB 운영에 영향을 주지 않고 지속적으로 데이터를 추가 할 수 있어야 함