RDB와 NoSQL

won·2023년 1월 12일
0

RDB(Relational Database)
관계형 데이터 베이스이다.
데이터가 중복되지 않도록 테이블의 역할이 명확하게 구분되어 있다.

특징

  • SQL 쿼리 언어를 사용한다.

  • 테이블마다 스키마(Schema)를 정의해야한다.

  • 데이터 타입과 제약으로 데이터의 정확성이 보장된다.

  • 속도보다 트렌젝션 시의 ACID가 중요하다.
    ACID
    Atomicity(원자성) : 트렌젝션이 중간에 중단되지 않고 처음부터 끝까지 수행하는 것

    Consistency(일관성) : 트랜잭션이 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 유지하는 것

    Insolation(격리성) : 트렌젝션 처리 중에 간섭하지 못하도록 하는 것

    Durability(지속성) : 하나의 트렉젝션이 발동하면 하드디스크에 영구히 저장되는 것

  • 수직적 확장(Scale up)에 적합하다

  • 데이터 중복이 없어 쓰기 속도가 빠르다

  • 비용이 많이 들어 확장성이 좋지 않다.

  • Undo와 Redo를 제공한다.

  • MariaDB, MySQL, Oracle 등이 있다.

NoSQL(Not Only SQL)
비관계형 데이터베이스의 형태
데이터 중복이 가능하여 object안에 object를 넣을 수 있다.

특징

  • SQL 쿼리 언어를 사용하지 않는다.
  • 스키마를 반드시 정의하지 않아도 된다.(Schema-less)
  • 사용 목적에 따라 ACID가 중요하지 않을 수 있다.
  • RDB의 확장성 이슈를 해결하기 위해 나온 데이터베이스 모델이다.
  • key-value방식으로 데이터를 관리한다.
  • 수평적 확장(Scale out)에 적합하다.
  • 데이터 중복이 가능해 읽기 속도가 빠르다.
  • Undo와 Redo를 제공하지 않는다.
  • 트렌젝션 관리가 안된다.
  • MongoDB, redies 등이 있다.
profile
어찌저찌 굴러가는 개발자

0개의 댓글