DB란? RDBMS와 NoSQL

김진회·2022년 11월 22일
1

DB

목록 보기
1/8

DB (DataBase)

  • 특정 목적에 필요로 공유하여 사용할 수 있도록 통합해서 저장한 운영 데이터의 집합
    • 통합 데이터 : 최소의 중복과 통제 가능한 중복만 허용하는 데이터
    • 저장 데이터 : 사용자가 접근할 수 있는 매체에 저장된 데이터
    • 운영 데이터 :조직의 주요 기능을 수행하기 위해 필요한 데이터
    • 공용 데이터 : 여러 사용자가 함께 소유하고 이용할 수 있는 데이터

DBMS

사용자와 데이터베이스 사이에서 사용자의 요구에 따라 정보를 생성, 관리해주는 SW

사용자 -(데이터 명령)-> DBMS -(명령에 따라 처리)-> DB

RDBMS

  • Oracle, mysql, microsoft sql servaer, maria db, access, aurora..
  • 데이터를 테이블 형태(스키마라고 부른다)로 관리한다
  • 각 테이블끼리는 ERD 방식을 통해 관계를 형성할 수 있다.
  • 장점
    • 업무 변화에 대한 적응력이 높아 변화하는 업무에 쉽게 활용하며 유지보수 편리, 생산성 향상
    • 명확한 스키마가 정의되어 있고, 데이터 무결성을 보장
  • 단점
    • 다른 DBMS보다 더 많은 자원이 활용되어 시스템의 부하가 높다.
    • 설계 시 많은 노력이 필요하다.

NoSQL

  • 몽고db, Cassandra, redis
  • 데이터 간의 관계를 줄이는 대신 성능을 높이는데 목적으로 사용
  • 장점
    • 스키마가 없기에 유연하게 작성 가능
    • 수평 확장성(Scale-out)이 좋다.
    • 데이터가 애플리케이션이 필요로 하는 형태로 저장되어 읽는 속도가 빠르다
      RDBMS는 배열로 데이터를 저장하고 NoSQL은 HashMap 구조를 통해 데이터를 저장한다.
      배열은 데이터 형식을 미리 지정하고 탐색 시 모든 데이터를 가져와서 검색한다.
      NoSQL의 HashMap(key-value) 구조는 자료의 크기를 지정하지 않아도 자유로운 추가가 가능하다.
      또한, 모든 데이터를 가져오지 않아도 key값만 알면 빠른 검색이 가능하다.
  • 단점
    • 데이터가 여러 컬렉션에 중복 되어있어 수정해야하는 모든 컬렉션에서 수행해야 한다.
    • 특정 데이터를 가져오기가 RDBMS 비해 복잡하다.

관계형 vs 비관계형

  • 많은 IT 회사들은 RDBMS를 사용하지만, 프로젝트 특성에 따라 NoSQL 또한 많이 사용
  • 관계형 : 회원 정보 등 복잡한 데이터의 관계가 있는 경우, 변경이 잦을 경우 적합
  • 비관계형 : 로그 분석 등 단일 컬럼으로 사용할 수 있을 경우, 수평 확장이 될 수 있는 경우 적합
profile
SSAFY 7기. HMG. 협업, 소통, 사용자중심

1개의 댓글

comment-user-thumbnail
2024년 10월 24일

you make a valid point. I have been playing Sprunki recently, and it is quite interesting. You might want to give it a try.

답글 달기