Database
데이터베이스 관리 시스템(Database Management System)
vinedpillar
2022. 6. 13. 15:52
데이터베이스 관리 시스템(DataBase Management System)
DBMS의 정의
- 데이터베이스를 생성하고, 데이터를 저장, 수정, 삭제 등 데이터베이스를 관리할 수 있는 응용 프로그램
DBMS의 주요 기능
- 중복 제어: 동일한 데이터가 여러 위치에 중복해서 저장되는 것을 방지하여 데이터의 일관성을 유지
- 무결성 제약 조건: 데이터의 무결성 제약조건을 정의/검사 하는 기능을 통해 데이터의 무결성을 유지
- 접근 통제: 사용자마다 다른 접근 권한을 부여하여 데이터의 접근을 제어함으로써 보안성을 유지
- 인터페이스 제공: CLI, GUI 등의 데이터베이스를 다룰 수 있는 인터페이스 제공
- 관계 표현: 서로 다른 데이터간의 다양한 관계를 표현할 수 있는 기능 제공
- 백업: 데이터의 복제본을 저장해두어 만일의 사태에 복구할 수 있는 기능 제공
DBMS의 구분
- 관계형 데이터베이스 기반의 관리 시스템
- 데이터 저장(Storage): SQL을 활용하여 데이터를 제어
- 스키마(Schema): 테이블의 구조와 데이터 타입 등을 사전에 정의하고, 정의된 내용에 맞는 데이터만 삽입 허용
- 쿼리(Query): 테이블간의 관계에 맞춰 데이터를 요청
- 확장성(Scalability): 데이터를 수직적으로 확장하며, 높은 컴퓨팅 자원(메모리, CPU)을 필요로 함
- 데이터베이스의 트랜잭션 안정성을 반드시 유지해야 하거나, 사용하는 데이터가 구조적이고 일관적인 서비스에 적합
- 비관계형 데이터베이스 기반의 관리 시스템
- 데이터 저장(Storage): SQL외의 다양한 방법을 통해 데이터를 제어하는 방식(Not Only SQL)
- 스키마(Schema): 각 DBMS 별로 각기 다른 방식으로 데이터를 제어하며, 크게 4가지로 분류할 수 있음
- Key-Value 방식: Key와 Value를 쌍으로 나타내는 배열의 형태로 데이터를 저장
- Document 방식: 데이터를 테이블이 아닌 문서 형식으로 저장
- Column-Family(Wide Column): 방식: 키에서 필드를 결정하는 방식
- Graph 방식: 데이터를 연속적인 노드, 관계, 특성의 형태로 저장
- 쿼리(Query): 데이터 그룹 자체를 조회하는 것에 초점을 두고 있으며, 구조화되지 않은 쿼리로도 데이터 요청 가능(UnSQL)
- 확장성(Scalability): 데이터를 수평적으로 확장하며, 확장 비용이 낮아 대용량의 데이터나 트래픽을 보다 효과적으로 관리 가능
- 데이터의 구조가 거의, 혹은 전혀 없는 데이터를 사용하거나, 데이터 구조를 자주 업데이트 해야하는 서비스에 적합
(혹은 클라우드 서비스같이 저장 공간을 최대한 활용해야 하는 경우에도 활용)
주요 DBMS
- 관계형 데이터베이스 관리 시스템(SQL)
- Oracle DB: 오라클에서 만든 데이터베이스로 가장 많이 사용되고 있는 DB
- MySQL: 오픈소스 데이터베이스로 현재는 오라클에 인수되었음
- MS SQL: 마이크로소프트가 서비스하는 데이터베이스
- Postgres SQL: 오픈소스 데이터베이스로 엄격한 타입체크와 트랜잭션 기능을 가짐
- SQLite: SQL을 사용하여 DB를 파일로 저장하는 DBMS
- Maria DB: MySQL의 오라클 인수 이후 MySQL 기술진이 나와서 만든 데이터베이스
- 비관계형 데이터베이스 관리 시스템(NoSQL)
- Dynamo: 아마존에서 서비스하는 완전관리형 데이터베이스 시스템, 키-값 방식 활용
- Mongo DB: 도큐먼트 방식으로 데이터를 관리하는 데이터베이스 시스템
- Redis: 키-값 방식으로 데이터를 관리하는 데이터베이스 시스템
- Casandra: 아파치에서 서비스하는 분산형 데이터베이스 시스템으로 대용량 데이터를 처리하기 위해 개발