[DB] 데이터베이스의 종류

뚜비·2023년 7월 25일
0

DB

목록 보기
4/6

관계형 데이터베이스(RDBMS)

  • 행과 열을 가지는 표 형식 데이터를 저장하는 형태의 데이터베이스
  • SQL 언어를 사용해 조작
  • MySQL, PostgreSQL, Oracle, SQL Server, MSSQL
  • 관계형 DB의 경우 표준 SQL은 지키지만 각 제품에 특화시킨 SQL을 사용
    EX) Oracle → PL/SQL, SQL Server → T-SQL, MySQL → SQL

MySQL

  • 대부분의 운영체제와 호환

  • 현재 가장 많이 사용되고 있는 데이터베이스 (2021년 기준, Meta, Twitter 등 많은 기업이 사용)

  • C, C++로 만들어짐

  • MyISAM 인덱스 압축 기술, B-트리 기반의 인덱스, 스렏 기반의 메모리 할당 시스템, 매우 빠른 조인, 최대 64개의 인덱스 제공

  • 대용량 데이터베이스를 위해 설계되어 있고, rollback, commit, 이중 암호 지원 보안 등의 기능 제공

  • MySQL은 쿼리 캐시 지원해서 입력된 쿼리 문에 대한 전체 결과 집합을 저장
    → 사용자가 작성한 쿼리가 캐시에 있는 쿼리와 동일하면 서버는 단순히 구문 분석, 최적화 및 실행을 건너뛰고 캐시의 출력만 표시

  • MySQL 엔진 아키텍처

    Storage Engine
    : 데이터베이스의 심장
    : 모듈식 아키텍처로 쉽게 storage engine을 바꿀 수 있음
    : 데이터 웨어하우징, 트랜잭션 처리, 고가용성 처리에 강점
    : storage engine 위에 Connector API 및 서비스 계층을 통해 MySQL 데이터베이스와 쉽게 상호 작용할 수 있음


PostgreSQL

: 디스크 조각이 차지하는 영역을 회수할 수 있는 장치인 VACUUM이 특징
: 최대 테이블의 크기는 32TB
: SQL 뿐만 아니라 JSON을 이용해서 데이터에 접근할 수 있음
: 지정 시간에 복구하는 기능, 로깅, 접근 제어, 중첩된 트랜잭션, 백업 등을 할 수 있음



NoSQL 데이터베이스

: Not only SQL 이라는 슬로건에서 생겨난 DB, SQL을 사용하지 않는 데이터베이스


MongoDB

: JSON을 통해 데이터에 접근
: Binary JSON 형태(BSON)로 데이터가 저장
: 와이어드타이거 엔진이 기본 스토리지 엔진
: 키-값 데이터 모델에서 확장된 document 기반이 DB
: 확장성이 뛰어나며 빅데이터를 저장할 때 성능이 좋고
: 고가용성과 샤딩, 레플리카셋을 지원
: 스키마를 정해 놓지 않고 데이터를 삽입할 수 있어 다양한 도메인의 데이터베이스를 기반으로 분석하거나 로깅 등을 구현할 때 강점


: MongoDB는 document를 생성할 때마다 다른 Collection에서 중복된 값을 갖지 않는 유니크한 값이 ObjectId가 생성
: 기본키로 유닉스 시간 기반 타임스탬프(4바이트), 랜덤값(5바이트), 카운터(3바이트)로 이루어짐


redis

: 인메모리 데이터베이스
: 키-값 데이터 모델 기반의 데이터베이스
: 기본적인 데이터 타입은 string(문자열) 최대 512MB까지 저장
: set, hash 등을 지원
: pub/sub 기능을 통해 채팅 시스템, 다른 데이터베이스 앞단에 두어 사용하는 캐싱 계층, 단순한 키-값이 필요한 세션 정보 관리, 정렬된 셋(sorted set) 자료 구조를 이용한 실시간 순위표 서비스에 사용



😎 참고자료

면접을 위한 전공지식
Overview of MySQL Storage Engine Architecture
Quick Start: BSON Data Types - ObjectId

profile
SW Engineer 꿈나무 / 자의식이 있는 컴퓨터

0개의 댓글