Database

Database. 1일차 - DBMS의 개념과 종류

머용? 2024. 1. 24. 18:30

DBMS(Datebase Management System)란?

: 데이터베이스 관리 시스템으로, 데이터의 저장, 검색, 업데이트, 관리를 위한 소프트웨어이다. 대용량 데이터의 효율적인 처리와 접근을 가능하게 하며, 데이터의 무결성, 보안, 백업 및 복구기능을 제공한다.

주요 DBMS 종류 및 특징

  1. Oracle Datebase
    • 용도 : 대형 기업이나 복잡한 애플리케이션에 적합하며, 고성능, 대규모의 트랜잭션 처리와 데이터 웨어하우징에 자주 사용된다.
    • 특징
    • 강력한 트랜잭션 관리, 높은 데이터 무결성 및 보안 기능을 제공
    • 확장성이 뛰어나며, 다양한 운영체제에서 실행된다.
    • PL/SQL 이라는 Oracle 전용 프로그래밍 언어 사용
    • 비싼 라이선스 비용이 있지만, 대규모 엔터프라이즈 환경에서의 신뢰성과 성능은 매우 높다.
  1. MySQL

    • 용도 : 주로 웹 어플리케이션 및 소규모에서 중간 규모의 프로젝트에 사용된다.
    • 특징 :
    • 오픈소스이며, 사용이 쉬워 소규모 애플리케이션에 인기가 많다.
    • PHP와의 통합이 용이하여 웹 개발에 자주 쓰인다.(LEMP Stack)
    • 비교적 가벼우면서도 성능이 좋으며, 다양한 운영체제를 지원한다.
    • 대규모 데이터베이스와 고급 기능이 필요한 환경에는 다소 제한적일 수 있다.
  2. Microsoft SQL server

    • 용도 : 주로 중대형 기업에서 사용되며, .NET과 같은 Microsoft 기술과 잘 통합된다.
    • 특징 :
    • Windows 기반 시스템에 최적화되어 있어, Microsoft 환경에서 뛰어난 성능을 발휘한다.
    • 사용자 친화적인 관리 도구와 강력한 보안 기능을 제공한다.
    • 데이터 웨어하우징, 비즈니스 인텔리전스, 데이터 분석에 유용한 기능을 포함하고 있다.
  3. PostgreSQL

    • 용도 : 복잡한 쿼리와 대규모 데이터베이스 관리가 필요한 경우에 적합하다.
    • 특징 :
    • 객체-관계형 DBMS로, 확장 가능한 고급 기능을 제공한다.
    • 오픈 소스이며, SQL 표준을 잘 준수한다.
    • 복잡한 데이터 타입과 사용자 정의 함수를 지원한다.
    • 거대한 데이터 세트와 복잡한 쿼리에 적합하며, 높은 확장성과 성능을 자랑한다.
  4. MongoDB

    • 용도 : 실시간 분석, 대규모 데이터 처리가 필요한 애플리케이션에 적합하다.
    • 특징 :
    • NoSQL 데이터베이스 중 하나로, 문서 지향적 구조를 가지고 있다.
    • 스키마가 없어 데이터 구조가 유연하고, 개발과 확장이 쉽다.
    • JSON 형식의 문서를 사용하여 데이터를 저장하며, 데이터 샤딩(분산기능)을 지원한다.
    • 대용량 데이터 처리와 실시간 분석에 최적화되어 있다.
  5. Redis (Remote Dictionary Server)

    • 용도 : 고성능 키-값 저장소로, 주로 캐싱, 세션 관리, 게임 리더보드, 실시간 어플리케이션 등에서 사용된다.
    • 특징 :
    • 인메모리 데이터 스토어로, 매우 빠른 읽기와 쓰기 속도를 제공한다.
    • 간단한 키-값 구조부터 리스트, 세트, 해시, 정렬된 세트 등 다양한 데이터 타입을 지원한다.
    • 데이터 지속성을 위해 디스크에 스냅샷을 저장하거나 변경사항을 기록한다.
    • 마스터-슬레이브 복제, 자동 파티셔닝 기능을 지원하여 확장성이 뛰어나다.
  6. ElasticSearch

    • 용도 : 분산 검색 엔진으로, 복잡한 검색, 데이터 분석, 로그 및 데이터 집계에 사용된다.
    • 특징 :
    • RESTful API를 통해 데이터 인덱싱, 검색, 분석 기능을 제공한다.
    • JSON 형식의 문서를 인덱싱하며, 풀 텍스트 검색기능이 강력하다.
    • 높은 확장성과 실시간 분석 능력을 갖고 있다.
    • ELK(Elasticsearch, Logstash, Kibana) 스택으로 널리 사용되며, 대용량 데이터에 적합하다.
  7. SQLite

    • 용도 : 경량, 자체 포함, 서버리스, 제로-구성 데이터베이스로, 임베디드 시스템 및 모바일 애플리케이션에 주로 사용된다.
    • 특징 :
    • 파일 기반의 데이터베이스로, 별도의 서버설정이 필요하다.
    • 작고 가볍지만, SQL 표준을 상당 부분 지원한다.
    • ACID(Atomicity, Consistency, Isolation, Durability) 트랜잭션을 지원한다.
    • 설치가 필요없으며, 매우 적은 리소스를 사용한다.
  8. Snowflake

    • 용도 : 클라우드 기반의 데이터 웨어하우스로, 대규모 데이터 저장, 분석 및 공유에 사용된다.
    • 특징 :
    • 클라우드에서 완전 관리되는 서비스로, 유연한 확장성을 제공한다.
    • 데이터 웨어하우징 및 빅데이터 분석에 최적화되어 있다.
    • 별도의 하드웨어나 소프트웨어 설치 없이 사용할 수 있다.
    • 고유한 아키텍처를 사용하여 저장, 컴퓨팅, 서비스 계층을 분리한다.
  9. Cassandra

    • 용도 : 대규모 분산 데이터베이스로, 큰 규모의 데이터를 관리하고, 높은 가용성과 확장성이 필요한 환경에서 사용된다.
    • 특징 :
    • NoSQL 데이터베이스로, 분산 환경에서 뛰어난 확장성과 성능을 제공한다.
    • 데이터는 여러 노드에 걸쳐 분산 저장되며, 하나의 노드가 실패해도 데이터 손실없이 운영된다.
    • 컬럼 기반의 데이터 스토리지 모델을 사용하며, 행의 각 열은 독립적으로 저장된다.
    • 높은 쓰기 및 읽기 처리량을 지원하며, 데이터 복제를 통해 고가용성을 보장한다.
    • 대규모 온라인 서비스, IoT, 시계열 데이터 등의 처리에 적합하다.
  10. MariaDB

    • 용도 : MySQL의 포크로, 웹 기반 애플리케이션, 데이터 웨어하우징, 개인 및 소규모 기업용 데이터베이스로 사용된다.
    • 특징 :
    • 오픈소스 관계형 데이터베이스 관리 시스템(RDBMS)이다.
    • MySQL과의 높은 호환성을 유지하면서도, 여러가지 새로운 기능과 최적화가 추가되었다.
    • 스토리지 엔진의 다양성을 지원하며, 성능과 보안 면에서 개선되었다.
    • 강력한 쿼리 최적화, 복제 및 샤딩 기능을 제공한다.
    • 커뮤니티 중심의 개발 모델을 따르며, MySQL 대비 개방적이고 확장성 있는 대안으로 자리잡고 있다.
  11. Apache Hive

    • 용도 : Hive는 Hadoop 위에 구축된 데이터 웨어하우스 시스템으로, 대규모 데이터 세트의 저장, 쿼리 및 분석에 사용된다.
    • 특징 :
    • Hadoop의 저장 시스템인 HDFS 위에서 작동한다.
    • SQL과 유사한 HiveQL 쿼리 언어를 제공하여, SQL 사용자가 Hadoop 데이터를 쉽게 쿼리할 수 있게 해준다.
    • Hive는 대량의 데이터를 처리할 수 있으나, 실시간 쿼리에는 최적화되어 있지 않다.
    • 배치 처리와 데이터 분석, 보고서 생성에 적합하다.
    • 데이터는 빅 데이터 환경에서의 병렬 처리를 위해 여러 노드에 분산 저장된다.
    • Hadoop 생태계의 일부로서 복잡한 배치 처리 작업에 적합하며, 자체 인프라 관리가 필요하다.
  12. Google BigQuery

    • 용도 : BigQuery는 Google Cloud Platform의 완전 관리형 엔터프라이즈 데이터 웨어하우스로, 대용량 데이터 분석 및 SQL 쿼리 실행에 사용된다.
    • 특징 :
    • 서버리스이며, 사용자는 인프라 관리에 대해 걱정할 필요가 없다.
    • 빠른 속도로 대규모 데이터 세트에 대한 SQL 쿼리를 실행할 수 있다.
    • 데이터 샤딩 및 복제를 자동으로 관리하며, 고가용성을 제공한다.
    • 대용량 데이터 세트에 대한 실시간 분석 및 인터랙티브한 데이터 탐색이 가능한다.
    • BigQuery ML을 통해 SQL 쿼리 내에서 머신러닝 모델을 생성하고 실행할 수 있다.
    • BigQuery는 완전 관리형 서비스로서 복잡한 인프라 관리 없이 즉각적인 분석을 가능하게 한다.