데이터베이스 관리 시스템의 등장 배경
● 파일 시스템
데이터를 파일로 관리하기 위해 파일을 생성, 삭제, 수정, 검색 기능을 제공하는 소프트웨어
응용 프로그램마다 필요한 데이터를 별도의 파일로 관리함
파일 시스템의 문제점
- 같은 내용의 데이터가 여러 파일에 중복 저장된다. (데이터의 일관성과 무결성을 유지하기 어렵다.)
- 응용 프로그램이 데이터 파일에 종속적이다. (데이터 종속성, 사용하는 파일의 구조를 변경하면 응용 프로그램도 같이 수정해야 한다.)
- 데이터 파일에 대한 동시 공유, 보안, 회복 기능이 부족하다. (데이터의 중복 가능성, 파일 수정 중 장애 발생시 회복 불가능, 파일 단위로 읽기, 쓰기, 실행 권한을 부여하여 데이터 접근을 통제한다.)
- 응용 프로그램 개발이 쉽지 않다.
● 데이터베이스 관리 시스템(DBMS)
- 파일 시스템의 문제를 해결하기 위해 제시된 소프트웨어
- 조직에 필요한 데이터를 데이터베이스에 통합하여 저장하고 관리함
- DBMS가 설치되어 데이터를 가진 쪽이 서버(server), 외부에서 데이터를 요청하는 쪽이 클라이언트(client)
- DBMS 서버가 파일을 다루며 데이터의 일관성 유지, 복구, 동시 접근 제어 등의 기능을 수행
- 데이터의 중복을 줄이고 데이터를 표준화하며 무결성을 유지함
● 데이터베이스 관리 시스템의 주요 기능 및 장단점
- 정의 기능 : 데이터베이스 구조를 정의하거나 수정할 수 있다.
- 조작 기능 : 데이터를 삽입, 삭제, 수정, 검색하는 연산을 할 수 있다.
- 제어 기능 : 데이터를 항상 정확하고 안전하게 유지할 수 있다.
● 파일 시스템 VS 데이터베이스 관리 시스템
구분 | 파일 시스템 | 데이터베이스 관리 시스템 |
데이터 정의 및 저장 | 데이터 정의 : 응용 프로그램 데이터 저장 : 파일 시스템 |
데이터 정의 : DBMS 데이터 저장 : 데이터베이스 |
데이터 접근 방법 | 응용 프로그램이 파일에 직접 접근 | 응용 프로그램이 DBMS에 파일 접근을 요청 |
사용 언어 | 자바, C, C++, | 자바, C, C++, SQL |
CPU/주기억장치 사용 | 적음 | 많음 |
● 데이터베이스 관리 시스템의 장점
구분 | 파일 시스템 | 데이터베이스 관리 시스템 |
데이터 중복 | 데이터를 파일 단위로 저장하므로 중복 가능 | DBMS를 이용하여 데이터를 공유하기 때문에 중복 가능성 낮음 |
데이터 일관성 | 데이터 중복 저장으로 일관성 결여 | 중복 제거로 데이터 일관성 유지 |
데이터 독립성 | 데이터 정의와 프로그램의 독립성 유지 불가능 | 데이터 정의와 프로그램의 독립성 유지 가능 |
관리 기능 | 보통 | 데이터 복구, 보안, 동시성 제어, 데이터 관리 기능 등을 수행 |
프로그램 개발 생산성 | 나쁨 | 짧은 시간에 큰 프로그램을 개발 가능 |
기타 장점 | 별도의 소프트웨어 설치 불필요 | 데이터 무결성 유지, 데이터 표준 준수 용이 |
● 데이터베이스 관리 시스템의 단점
- 비용이 많이 든다.
- 백업과 회복이 복잡
- 중앙 집중 관리로 인한 취약점 존재
● 데이터베이스 관리 시스템의 구성
- 일반 사용자 : 프로그래머가 개발한 프로그램을 이용하여 데이터베이스에 접근 일반인
- 응용프로그래머 : 일반 사용자가 사용할 수 있도록 프로그램을 만드는 사람
- SQL 사용자 : SQL을 사용하여 업무를 처리하는 IT부서의 담당자
- 데이터베이스 관리자(DBA) : 데이터베이스 운영 조직의 데이터베이스 시스템을 총괄하는 사람
데이터베이스 모델
● 데이터베이스 언어
- 데이터 정의어(DDL)
- 데이터 조작어(DML)
- 데이터 제어어(DCL)
● 데이터베이스 관리 시스템의 기능
- 데이터 정의 : 데이터 구조를 정의하고 데이터 구조에 대한 삭제 및 변경 기능을 수행함
- 데이터 조작 : 데이터를 조작하는 소프트웨어가 요청하는 데이터의 삽입, 수정, 삭제 작업을 지원함
- 데이터 추출 : 사용자가 조회하는 데이터 혹은 응용 프로그램의 데이터를 추출함
- 데이터 제어 : 데이터베이스 사용자를 생성하고 모니터링하며 접근을 제어함. 백업과 회복, 동시성 제어 등의 기능을 지원함
● 데이터베이스 모델
- 계층 데이터 모델 : 데이터 모델이 트리 형태로 이루어짐( 포인터를 사용하여 연결 )
- 네트워크 데이터 모델 : 데이터 모델들이 네트워크(망) 형태로 이루어짐( 포인터를 사용하여 연결 )
- 관계 데이터 모델 : (속성값을 사용하여 연결)
- 객체 데이터 모델 : (객체 식별자를 사용하여 연결)
- 객체-관계 데이터 모델 :
● 데이터베이스 관리 시스템의 발전 과정
- 1세대 : 네트워크 DBMS, 계층 DBMS
네트워크 DBMS : 데이터베이스를 그래프 형태로 구성
계층 DBMS : 데이터베이스를 트리 형태로 구성
- 2세대 : 관계 DBMS
관계 DBMS : 데이터베이스를 테이블 형태로 구성
ex) 오라클, MS SQL서버, 액세스(Access), 인포믹스
- 3세대 : 객체지향 DBMS, 객체관계 DBMS
객체지향 DBMS : 객체를 이용해 데이터베이스를 구성
ex) 오투(O2), 온투스, 젬스톤
객체관계 DBMS : 객체 DBMS + 관계 DBMS
- 4세대 : NoSQL, NewSQL DBMS
Unstructured된 방대항 데이터를 저장하기 적합
NoSQL DBMS : 비정형 데이터를 처리하는데 적합하고 확장성이 뛰어나다.
안정성과 일관성 유지를 위한 복잡한 기능을 포기
데이터 구조를 미리 정하지 않는 유연성
확장성이 뛰어나 여러 대의 서버 컴퓨터에 데이터를 분산하여 저장하고 사용
ex) 몽고디비, H베이스, 카산드라, 오리엔트DB
NewSQL DBMS : 관계 DEMS의 장점 + NoSQL의 확장성 및 유연성
ex) 구글 스패너, 볼트 DB, 누오 DB
'데이터베이스' 카테고리의 다른 글
데이터베이스 언어 SQL (0) | 2021.04.19 |
---|---|
관계 데이터 연산 (0) | 2021.04.19 |
데이터베이스 기본 개념 (0) | 2021.04.18 |
관계 데이터 모델 (0) | 2021.03.16 |
데이터베이스 시스템 (0) | 2021.03.16 |