본문 바로가기

ComputerScience/Database 이론

[Database] 2. 데이터베이스 관리 시스템(DBMS) 개념 정리

 

안녕하세요. CS지식 정리도 할 겸, 학교에서 배운 데이터베이스 개념 + "데이터베이스 개론-IT COOKBOOK" 의 책을 공부하며 알게 된 내용을 정리하려고 합니다.  지난 포스트 "데이터베이스 정의"에 이어 이번에는 DBMS 개념을 정리해보려고 합니다. 주관적으로 작성된 글이기에 틀린 내용이 있을 수 있습니다.(댓글로 알려주시면 감사합니다.)

 

1. 왜 DBMS를 사용하는가?

DBMS를 사용하기 이전에는 file system을 통해 데이터를 관리했습니다. (TMI: 아!! 저는지금 iOS앱 개발을 하고 있는데 휴대폰 내 로컬 file system도 자주 이용합니다: )

 

파일 시스템을 사용해서 데이터를 관리한다는 뜻은 데이터의 생성, 삽입, 수정 등을 파일 안에서 하는 것을 의미합니다. 데이터를 관리할 때 디렉터리의 파일 안에 데이터를 저장할 경우 서로 다른 파일에서 같은 데이터가 중복으로 저장되는 경우가 있습니다. 

 

 

이 경우 중복된 데이터를 업데이트 하려면 두개의 파일 안에 똑같은 데이터를 찾아서 수정해주어야 합니다.(수작업..) 전부 업데이트 하지 못할 경우 일관성, 무결성을 보장받지 않기 때문에 데이터를 관리할 효율적인 수단이 필요했습니다.

 

물론 iOS앱 개발을 하며 로컬 파일 시스템을 애용하는 이유중 하나는 DB 에서 query로 데이터를 가져오는 것 보다 빠르다?는 장점이 있습니다.(+ 진짜 간편합니다,,)

 

파일 시스템을 사용하면 단점으로 응용프로그램이 file system의 특정 File에 종속적입니다. 또한 동시공유, 보안, 회복 기능이 부족합니다. 그저 파일에 저장했기 때문입니다..

DBMS 장점

  • 데이터 중복 통제
  • 데이터 독립성 확보
  • 데이터 동시 공유
  • 데이터 보안 향상(TMI: iOS의 keychain은 저장된 데이터를 암호화하고, 필요할 때 복호화해서 준다는..)
  • 데이터 무결성
  • 표준화(SQL)
  • 장애 가능시 회복 가능
  • 응용 프로그램 개발 비용 low

DBMS 단점

  • 비용이 많이 든다
  • 백업, 회복 방법이 복잡
  • 중앙 집중 관리로 인한 취약점

2. DBMS(DataBase Management System 정의

위에서 언급한 이슈를 해결하고자 DataBase(data set)을 만들고 이를 관리해주는 시스템이 등장했습니다. 이 시스템은 db에 대해서 DDL, DML, DCL을 주로 지원합니다. 이로 인해 이전 파일 시스템의 단점이었던 무결성, 일치성 보장 어려움 해결. 동시 공유 가능하고, 장애 발생 시 트랜잭션과 commit, rollback을 통한 회복이 가능합니다. 표준화 가능합니다.

 

DDL(Data Definition Language): 데이터 베이스 구조 정의 수정 [명령어_ CREATE, ALTER, DROP ...]

DML(Data Manipulation Language): 데이터 삽입, 삭제, 수정, 검색 연산 [명령어 _ SELECT, INSERT, UPDATE, DELETE]

DCL(Data Control Language): db 접근 권한, 객체 사용권한, 회수 권한 등 [명령어_ GRANT, REVOKE]

1세대 DBMS

- 네트워크 DBMS: graph형식 

- 계층  DBMS: tree 형식 

 

이들을 사용할 경우 전자는 간선을 통해 데이터 관계 표현으로 db구조가 복잡하고 변경하기 어렵습니다. 후자는 복잡한 현실 데이터를 부모 자식의 트리형태로 표현하기가 힘들다는 단점과 구조변경이 어렵다는 단점이 있습니다.

2세대 DBMS

관계 DBMS: db를 table 형태로 구성. 정형데이터, 반 정형데이터 처리에 좋습니다.

  ex) Oracle, MySQL, MariaDB ...

3세대 DBMS

- 객체지향 DBMS: 객체를 이용해 DB구성 ( SQL미지원 )

 

- 객체 관계 DBMS: 관계 데이터 모델 + 객체지향 개념 도입한 객체 관계 데이터 모델을 사용(객체 DBMS + 관계 DBMS)

4세대 DBMS

요즘 SNS를 많은 사람들이 이용하면서 비정형 데이터(사진, 동영상, 검색로그 등)를 대량으로 관리할 수 있어야 합니다. 관계DBMS는 이런 비정형 데이터 처리에 비효율적이라고 해서 NoSQL DBMS가 등장했습니다.

 

- NoSQL DBMS: 관계 DB model 처럼 미리 정형화 된 스키마 모델링보다 유연하게 데이터 구조를 동적으로 정의할 수 있습니다(비 관계형 데이터베이스).
- NewSQL DBMS: 관계 DBMS + NoSQL. ACID특성 + SQL쿼리 지원 + NoSQL과 같이 확장성을 가지고 있습니다.

 

A(Atomicity-원자성)C(Consistency-일관성)I(Isolation-고립성)D(Durability-고립성)

 

 

틀린 부분 발견 시 댓글로 남겨주시면 정말 감사합니다.