1️⃣ 데이터베이스 관리 시스템의 등장 배경
🧡 파일 시스템
- 파일 시스템
- 데이터를 파일로 관리하기 위해 파일 생성, 삭제, 수정, 검색하는 기능을 제공하는 소프트웨어
- OS 와 함께 설치됨
- 응용 프로그램 별로 필요한 데이터를 별도의 파일로 관리
- 하나의 응용 프로그램 - 하나의 파일
- 데이터를 파일로 관리하기 위해 파일 생성, 삭제, 수정, 검색하는 기능을 제공하는 소프트웨어
🧡 파일 시스템의 문제점
- 같은 데이터가 여러 파일에 중복 저장 → 데이터 중복성
- 저장공간 낭비, 데이터 일관성, 무결성 유지 어려움
- 이를 해결하기 위한 데이터 통합 작업 but 불완전
- 응용 프로그램이 데이터 파일에 종속됨 → 데이터 종속성
- 사용하는 파일 구조 변경시, 응용 프로그램이 파일에 접근하는 방법도 변경해야 함
- 데이터 파일에 대한 동시공유 (응용 프로그램이 선점 중), 보안, 회복 기능 부족
- 응용 프로그램 개발 어려움
- 데이터 관리 작업 모두 응용 프로그램이 담당 + 데이터 CRUD 작업 전부 응용 프로그램으로 개발해야 함
→ 이를 해결하기 위해 DBMS 출시
2️⃣ 데이터베이스 관리 시스템의 정의
🧡 데이터베이스 관리 시스템
- DBMS
- 파일 시스템의 문제 (중복성, 종속성)를 해결할 소프트웨어
- 필요한 데이터를 DB에 통합하여 저장/관리
🧡 DBSM 데이터 관리
🧡 DBSM 주요 기능
- 정의 기능
- DB 구조를 정의/수정 가능
- 조작 기능
- 데이터 CRUD 가능
- 제어 기능
- 여러 사람이 공유해도 데이터의 정확/최신/안전 유지/무결성/보안/동시접근 가능하게 함
3️⃣ 데이터베이스 관리 시스템의 장•단점
🧡 장점
- 데이터 중복 통제 가능 (not 불허)
- DB에 데이터 통합 관리 → 데이터 중복 문제 해결
- 데이터 독립성 확보
- 데이터를 DBMS가 접근/관리 → 응용 프로그램과 DB 사이 독립성 확보
- 데이터 동시 공유 가능
- 동일한 데이터를 여러 응용 프로그램이 공유/동시접근 가능
- 데이터 보안 향상
- 중앙집중식 데이터 관리 → 효율적인 접근 제어 가능
- ex. 권한 없는 사용자 차단, 허용되지 않는 연산 차단
- 데이터 무결성 유지
- 데이터 연산 시, 유효성 검사 → 데이터 무결성(정확성) 유지
- 표준화 가능
- DBMS가 정한 표준화된 방식으로 DB 접근 가능
- ex. 데이터 접근 방식, 데이터 형식/구조 등 표준화
- 장애 발생시, 회복 기능
- 데이터 일관성/무결성 유지하며 장애 이전 상태로 복구
- 백업
- full : 자료 전체 백업
- increment: 변경된 부분만 백업
- DBMS는 checkpoint를 제공함
- 응용 프로그램 개발 비용 줄어듦
- 파일 시스템보다 데이터 관리 부담이 줆
- 개발/유지보수 비용 줄어듦
- Only DBMS만 바라보게 개발하면 됨
- 파일 시스템보다 데이터 관리 부담이 줆
🧡 단점
- 비용 높음
- 별도 구매 비용, 사용자수가 늘어날 수록 가격이 올라감
- 백업/회복 방법 복잡
- 장애 원인/상태 파악 어려움, 회복 복잡
- 중앙 집중 관리로 인한 취약점
- DB나 DBMS 장애 발생 → 전체 시스템 중단 (SPOF)
- DB 의존도가 높은 시스템일수록 가용성과 신뢰성에 치명적
4️⃣ 데이터베이스 관리 시스템의 발전 과정
🧡 1세대 : 네트워크 DBMS, 계층 DBMS
- 네트워크 DBMS : DB를 그래프 형태로 구성
- ex. IDS(Integrated Data Store)
- 계층 DBMS : DB를 트리 형태로 구성
- ex. IMS(Information Management System)
🧡 2세대 : 관계 DBMS
- 관계 DBMS : DB를 테이블 형태로 구성
- ex. 오라클(Oracle), MS SQL 서버, 액세스(Access), 인포믹스(Informix), MySQL, 마리아DB(MariaDB)
🧡 3세대 : 객체지향 DBMS, 객체관계 DBMS
- 객체지향 DBMS : 객체를 이용해 DB 구성
- ex. 오투(O2), 온투스(ONTOS), 젬스톤(GemStone)
- 객체관계 DBMS : 객체 지향 DBMS + RDBMS
🧡 4세대 : NoSql DBMS , NewSql DBMS
- NoSql DBMS : 비정형 데이터 처리 적합, 확장성 높음
- 안정성/일관성을 위해 복잡한 기능 포기
- 여러대의 컴퓨터에 데이터 분산 처리 → 분산 처리 환경
- ex. 몽고디비(MongoDB), H베이스(HBase), 카산드라(Cassandra), 레디스(Redis), 네오포제이(Neo4j), 오리엔트DB(OrientDB) 등
- NewSql DBMS : DB를 트리 형태로 구성
- 정형/비정형 데이터 처리 가능
- ex. 구글 스패너(Spanner), 볼트DB(VoltDB), 누오DB(NuoDB)
💻 Reference
'IT > 데이터베이스' 카테고리의 다른 글
[Chapter 05] 관계 데이터 모델 (0) | 2024.05.14 |
---|---|
[Chapter 04] 데이터 모델링 (1) | 2024.05.14 |
[Chapter 03] 데이터베이스 시스템 (0) | 2024.05.08 |
[Chapter 01] 데이터베이스 기본 개념 (0) | 2024.05.01 |