데이터베이스
3. DBMS(Database management system)
기존 파일 시스템의 문제점
과거에는 시스템 마다 각자의 파일 시스템을 사용했다.
이는 아래와 같은 문제를 야기했다.
데이터 종속성(data dependency)
- 데이터가 다른 프로그램에서는 사용될 수 없다.
- 데이터의 구성, 접근방법이 변경될 때 해당되는 응용프로그램도 변경되어야한다.
데이터 중복성(data redundancy)
- 같은 내용의 데이터도 프로그램마다 저장되어 중복이 된다.
데이터 중복성이 나쁜 이유
중복성은 아래의 문제를 일으킨다.
- 일관성(consistency)
- 데이터간의 내용 불일치
- 데이터가 갱신될때마다 모든 파일시스템을 갱신..? 어렵다.
- 보안성(security)
- 같은 데이터에 대한 같은 수준의 보안 유지가 어렵다.
- 경제성(economics)
- 데이터가 중복 저장되니, 그 만큼의 저장공간이 필요하다.
- 일관성을 유지하기 위해 관련된 모든 데이터를 수정해야하니 인력이 추가로 든다.
- 무결성(integrity)
DBMS란
파일시스템은 중복성, 종속성의 문제가 있다.
그래서 이를 해결하기위해 제안된 시스템이 DBMS이다.
- 다양한 프로그램이 필요로 하는 데이터베이스를 정의,생성,조작,공유할 수 있는 기능을 제공하는 소프트웨어 시스템
- 응용 프로그램은 DBMS를 통해 데이터베이스를 이용 가능하다.
- 데이터베이스의 구성, 접근방법, 관리유지에 대한 모든 책임을 DBMS가 진다.
DBMS가 DB를 관리한다!
DBMS의 필수 기능
정의, 조작, 제어 기능이 있다.
- 정의(definition)
- DB 구조를 정의할 수 있다.
- 데이터 정의 언어(DDL)을 사용한다
- 조작(manipulation)
- DB에 접근, 조작할 수 있다.
- 데이터 조작 언어(DML)을 사용한다.
- 데이터 검색, 삽입, 삭제 등 연산 작업을 수행하도록 지원
- 제어(control)
- 정확성, 안정성을 유지할 수 있다.
- 데이터 제어 언어(DCL)을 사용한다.
- 갱신을 정확하게
- 허가된 사용자만 데이터에 접근 가능하게 보안
- 병행 제어를 제공(concurrency control)
DBMS의 장단점
장점
- 중복의 최소화
- 데이터의 공유
- 일관성 유지
- 중복을 줄임으로써, 데이터의 변경이 일어날때, 데이터의 불일치를 최소화할 수 있다.
- 무결성 유지
- 보안 보장
- 표준화 용이
- 독립성 제공
단점
- 운영비 증대
- 자료 처리 방법의 복잡성
- 데이터는 다른 데이터 타입들이 존재 가능하고, 이를 이해하기 위해선 고급 프로그래머가 필요하다.
- 백업, 회복기법의 난이도 상승
- 장애가 발생될 때 이를 처리하기 위한 백업, 회복 기법이 복잡하다.
- 시스템 취약성
- 중앙관리에 의한 데이터 관리의 효율성은 있지만, 장애가 발생하면 시스템이 마비될 수 있다.
데이터 독립성
데이터베이스의 데이터 독립성이란, 데이터의 논리적인 구조나, 물리적인 구조가 변경되어도 응용 프로그램에는 영향을 주지 않는 것을 뜻한다.
- 논리적 데이터 독립성(logical data independency)
- 논리적 구조를 변경하더라도 기존 프로그램에는 영향을 주지 않음
- 물리적 데이터 독립성(physical data independency)
- 저장장치나 새로운 기법의 개발로 인해 물리적 구조를 변경해도, 응용프로그램에는 영향을 주지 않음
- 이를 지원한다면 저장 장치의 효율적 개발이 가능하다.
하나의 논리적 구조로부터 여러가지 다양한 물리적 구조를 지원할 수 있는 사상(맵핑)능력이 필요하다는 것을 의미한다.
DBMS 발전 과정
- 1세대 DBMS
- 2세대
- 3세대