Home > 기타 > 데이터베이스 시스템

데이터베이스 시스템
database storage

데이터베이스 시스템

  • 데이터베이스 시스템 : 데이터를 저장하고 관리하는 모든 시스템

  • 데이터베이스 시스템 구성 요소
    1. 데이터베이스 : 구조화된 데이터 집합
    2. DBMS : 데이터베이스를 관리하는 소프트웨어 도구 집합
    3. 하드웨어 : 데이터베이스 시스템에서의 물리적 장치(CPU, 네트워크, 저장 장치 등)
    4. 클라이언트 : 데이터베이스에 접근하는 개인 또는 소프트웨어

데이터베이스(DB, Database)

  • 데이터베이스 : 데이터의 효율적인 검색 및 갱신 등을 위해 구조화된 데이터의 집합
    • 데이터베이스는 서로 관련 있는 데이터의 집합이다.
  • 데이터베이스의 사전적인 의미는 구조화된 데이터의 집합이지만, 데이터베이스는 아래와 같이 여러가지 의미로 쓰인다.
    1. 구조화된 데이터 집합
    2. DBMS
    3. 구조화된 데이터가 저장되는 저장 장치(스토리지)

-> 일반적으로, “DBMS” 의미로 자주 쓰인다. 해당 게시글에서는 1의 의미로 정리하였다.

데이터베이스 관리 시스템(DBMS, Database Management System)

  • DBMS : 데이터베이스 시스템의 핵심 부분으로, 사용자가 데이터베이스 내의 데이터를 접근할 수 있도록 해주는 소프트웨어 도구의 집합
    • DBMS는 데이터 관리(CRUD 등), 성능 최적화, 보안 및 권한 관리, 백업 및 복구 등의 작업을 수행한다.
    • DBMS마다 다양한 쿼리 언어(SQL 등)를 지원한다.

  • DBMS 구성 요소
    1. 데이터베이스 엔진(= 스토리지 엔진) : 데이터의 실제 저장 및 관리하는 역할
    2. 쿼리 언어 인터페이스, 쿼리 옵티마이저 등

  • DBMS 종류
    • RDBMS(Relational DBMS) : 스키마 필요
      • Table 형태로 데이터 저장
      • SQL 지원
      • ex) MySQL, PostgreSQL, SQLite, SQLServer, Oracle 등

    • NoSQL : 스키마가 없거나 유연한 스키마
      • Document 형태
        • 파일(문서) 안에 JSON 형태로 데이터 저장
        • ex) MongoDB, Cloud Firestore
      • Key-Value 형태
        • Key-Value 형태로 데이터 저장
        • ex) Redis, DynamoDB
      • Column Family 형태
        • Table 등의 형태이지만, 유연하게 데이터 저장
        • ex) Cassandra, Hbase
      • Graph 형태
        • Node 안에 데이터와 Node 간의 관계 저장
        • ex) Neo4j
  • DBMS는 데이터베이스 서버 소프트웨어라고 할 수 있다. 즉, 데이터베이스 서버는 DBMS가 실행되는 컴퓨터 시스템(물리적 또는 가상적 환경)을 말한다.
    -> 데이터베이스 서버는 DBMS 설치, 초기 설정, 외부 연결 허용 등의 단계를 거쳐 구축된다.
    -> 데이터베이스 서버는 클라이언트로부터 데이터베이스 요청을 수신하고, 해당 요청을 처리하여 결과를 반환한다.

데이터베이스 시스템에서의 스토리지

  • 일반적으로, 스토리지는 데이터를 저장하고 있는 저장 장치를 의미한다.
    • 데이터베이스 시스템에서 스토리지란, 구조화된 데이터(데이터베이스)를 저장하고 있는 저장 장치를 의미한다.
  • 데이터베이스 서버에서는 데이터베이스를 서버의 저장 장치에 직접 저장하거나 Cloud Storage에 저장한다.
    -> 일반적으로, 개인 PC에서 데이터베이스 서버를 가동하면, 데이터베이스는 개인 PC의 저장 장치(HDD나 SSD)에 저장된다.
    -> 일반적으로, AWS EC2 인스턴스에서 데이터베이스 서버를 가동하면, 데이터베이스는 Cloud Storage(ex) AWS EBS)에 저장된다.
  • 데이터베이스 시스템에서 이미지와 같은 파일을 저장하는 방법
    1. 파일 자체를 데이터베이스 시스템의 스토리지에 저장
      -> 파일을 데이터베이스 필드에 이진 데이터 형태로 저장한다.
    2. 파일 자체를 다른 스토리지에 저장
      -> 파일을 다른 스토리지(ex) AWS S3)에 저장한 후, 저장된 파일의 위치(URI)를 데이터베이스 필드에 저장한다.
      -> 일반적으로, 2의 방법이 효율적이다.

참고 자료

https://ko.wikipedia.org/wiki/데이터베이스_시스템 https://ko.wikipedia.org/wiki/데이터베이스_관리_시스템 https://survey.stackoverflow.co/2022 https://terms.tta.or.kr/dictionary/dictionaryView.do?subject=데이터베이스 https://jaemunbro.medium.com/nosql-데이터베이스-특성-비교-c9abe1b2838c chatgpt