이번 블로깅에 대해선 데이터베이스의 종류
에 대해 넓고 얕게 알아보자.
데이터베이스의 종류는 크게 관계형 데이터베이스
와 NoSQL 데이터베이스
로 나뉘는데 이에 대해 넓고 얕게 각각 알아보자.
관계형 데이터베이스(RDBMS)
는 행과 열을 가지는 표 형식 데이터를 저장하는 형태의 데이터베이스를 가리킨다. 이는 SQL
이라는 언어를 가지고 조작한다.
여기에는 MySQL, PostgreSQL, 오라클, SQL Server, MSSQL 등이 있다. 중요한 것에 대해 각각 알아보자.
이는 대부분의 운영체제와 호환되며 현재 가장 많이 사용되는 데이터베이스
이다.
C,C++로 만들어졌으며, MyISAM 인덱스 압축 기술, B-트리 기반의 인덱스. 스레드 기반의 메모리 할당 시스템 등 을 제공한다.
대용량의 데이터베이스를 위해 설계되어 있고 롤백, 커밋, 이중 암호 지원 등의 기능을 제공하여 많은 서비스에서 사용한다.
MySQL의 스토리지 엔진 아키텍처는 다음과 같다.
데이터베이스의 심장과도 같은 것이 바로 스토리지 엔진
인데, 모듈식 아키텍처로 쉽게 스토리지 엔진을 바꿀 수 있으며 데이터 웨어하우징, 트랜잭션 처리, 고가용성 처리에 강점을 두고 있다.
이는 MySQL다음으로 개발자들이 선호하는 데이터베이스 기술로 널리 인정받고 있다.
디스크 조각이 차지하는 영역을 회수할 수 있는 장치인 VACUUM
이 특징이다. 최대 테이블 크기는 32TB이며 SQL뿐만 아니라 JSON을 이용해서 데이터에 접근할 수 있다. 지정 시간에 복구하는 기능, 로깅, 접근 제어, 중첩된 트랜잭션, 백업 등을 할 수 있다.
NoSQL(Not only SQL)
이라는 슬로건에서 생겨난 데이터베이스이다. SQL을 사용하지 않는 데이터베이스
를 말하며, 대표적으로 MongoDB와 redis 등이 있다. 이에 대해 알아보자.
이는 JSON을 통해 데이터에 접근
할 수 있고, Binary JSON 형태
로 데이터가 저장되며 와이어드타이거 엔진이 기본 스토리지 엔진으로 장착된 키-값 데이터 모델에서 확장된 도큐먼트 기반의 데이터베이스
이다.
확장성이 뛰어나며, 빅데이터를 저장할 때 성능이 좋고 고가용성과 샤딩, 레플리카셋을 지원한다. 또한 스키마를 정해 놓지 않고 데이터를 삽입할 수 있기 때문에 다양한 도메인과 데이터베이스를 기반으로 분석하거나 로깅 등을 구현할 때 강점을 보인다.
이는 인메모리 데이터베이스
이자 키-값 데이터 모델 기반
의 데이터베이스이다.
기본적인 데이터 타입은 문자열이며, 최대 512MB까지 저장할 수 있다. 이외에 해시(hash), 셋(set)등을 지원한다.
pub/sub 기능을 통해 채팅 시스템, 다른 데이터베이스 앞단에 두어 사용하는 캐싱 계층, 단순한 키-값이 필요한 세션 정보 관리, 정렬된 셋 자료구조를 이용한 실시간 순위표 등에 사용된다.
이번 블로깅에선 데이터베이스의 종류
에 대해 알아보았다. 이 블로깅의 목적은 깊게 배우는 것이 아니라 개발자 대회에 낄 정도의 넒고 얕은 지식을 목표로 하고 있다. 이 블로깅을 통해서 전체적인 데이터베이스의 종류
에 대해 잡았으면 좋겠다. 그리고 감을 잡았고 좀 더 깊게 배우고 싶다면 이 블로깅의 키워드를 길로 잡아서 하나씩 공부해 나간다면 매우 도움이 될 것이라고 생각한다.