[AIoT] 데이터 베이스란?

    출처:https://medium.com/pipedrive-engineering/database-architecture-using-one-database-schema-per-customer-42b841efe23b

    Database(DB)

    Database는 한마디로 정의하면 "데이터의 집합"입니다.
    일상 대부분의 정보가 저장되고 관리되는 곳이기도 하죠.
    최근 저장하는 역할을 넘어 시스템의 동작, 통신 및 연동과 이를 관리 업무 프로세스의 중심 툴로 의미가 확장되었습니다.

    설계

    DB에서 가장 중요한 파트는 설계입니다.

    예를 하나 들어볼게요.
    런칭한 서비스가 성공적으로 기능을 하고 있는 와중에 사용자들이 원하는 기능이 있어 추가하려 합니다.
    그런데! 현재 DB의 구조에는 직접 추가할 수 없어 구조 변경이 필요한 상황입니다. 
    제공 중인 서비스를 모두 일시 정지하고 작업을 해야 한 다는 뜻이죠. 😱

    이렇듯 단순 Table을 만드는 것이 아니라 여러 기능과 성능, 서비스와 확장성까지 고려한 설계가 필요합니다.
    설계가 잘못되면 유지보수에도 문제가 있지만, 확장성에도 문제가 발생합니다.
    그래서 데이터의 생성/발생, 처리, 저장 등을 고려해 데이터 흐름도를 작성한 후 설계를 하죠.
    이런 이유로 전체 시스템을 파악하고 있는 개발자가 설계하는 것이 좋습니다.

     


    Database 유형

    Database의 유형은 정말 다양해요.
    Data의 사용방식에 따라 적합한 Database가 다르죠.

    간단하게 소개할게요.

    • 관계형 DB
      • 관계형 DB는 1980년대에 많이 쓰인 DB입니다.
      • 열과 행이 있는 테이블 집합으로 구성되죠.
      • 정형 정보에 엑세스하는 가장 효율적이고 유연한 방법을 제공합니다.
    • 객체 지향 DB
      • 객체 지향 DB의 ㅈ어보는 객체 지향 프로그래밍과 마찬가지로 객체 형태로 표현됩니다.
    • 분산 DB
      • 분산 DB는 서로 다른 사이트에 위치한 둘 이상의 파일로 구성됩니다.
      • 물리적으로 동일한 위치에 있는 여러 컴퓨터에 저장되거나 다른 네트워크에 분산될 수 있습니다.
    • Data Warehouse
      • Data Warehouse는 데이터의 중앙 저장소입니다.
      • 빠른 쿼리 및 분석을 위해 특별히 설계된 DB 유형입니다.
    • Graph DB
      • Graph DB는 Entity 및 Entity 간의 관계 측면에서 데이터를 저장해요.
    • Open-Source DB
      • Open-Source DB System은 Source code가 Open-Source인 Systme으로
      • SQL 또는 NoSQL DB가 여기에 해당됩니다.
        • NoSQL DB (비관계형 DB)
          • NoSQL DB를 사용하면 비정형 및 반정형 데이터를 저장하고 조작할 수 있어요.
          • 웹 애플리케이션이 보다 보편화되고 복잡해지면서 NoSQL DB의 인기가 높아졌다고 해요.
    • Cloud DB
      • Cloud DB는 Private, Public, Hybrid Cloud Computing Platform에 상주하는 정형, 비정형 데이터의 모음입니다.
      • Cloud DB 모델 유형으로는 기존의 서비스형 데이터베이스(DBaaS)가 있습니다.
    • 다중 모델 DB
      • 다중 모델 DB는 서로 다른 유형의 DB 모델을 단일 통합 백엔드로 결합합니다.
      • 다양한 데이터 유형을 수용할 수 있다는 의미죠!
    • 문서/JSON DB
      • 문서 DB는 문서 지향 정보를 저장, 검색 및 관리하도록 설계되었어요.
      • 행과 열이 아닌 JSON 형식으로 데이터를 저장하는 최신 방식입니다.

     

     

    참고

    SQL(Structured Query Language)

    Database와 함께 SQL이라는 용어를 많이 보셨을 거예요.
    SQL은 프로그래밍 언어입니다.
    데이터를 쿼리, 조작 및 정의하고 액세스 제어를 제공하기 위해 거의 모든 관계형 DB에서 사용되죠.

     

    DBMS(Database Management System)

    DB에는 일반적으로 DBMS로 알려진 포괄적인 DB SW 프로그램이 필요합니다.
    DBMS는 DB와 최종 사용자 또는 프로그램 간의 인터페이스 역할을 하죠.
    사용자가 정보의 구성 및 최적화 방법을 검색, 업데이트 및 관리할 수 있게 해 줍니다.
    또한 DBMS는 DB의 감독 및 제어가 용이해서 다양한 관리 작업이 가능합니다.

     

    MySQL

    MySQL은 SQL 기반의 오픈소스 관계형 DB 관리 시스템입니다.
    웹 애플리케이션용으로 설계 및 최적화되어서 모든 플랫폼에서 실행할 수 있죠.
    MySQL은 수백만 건의 질의와 수천 건의 트랜잭션을 처리하도록 설계되었습니다.
    그래서 자금 이체를 관리하는 전자상거래 기업에게 인기가 높다고 하네요.


    여기까지 "Database"에 대해 알아봤어요.
    글이 도움이 되셨다면 공감 버튼 눌러주세요. 😊

    댓글

    Designed by JB FACTORY