NoSQL vs RDBMS

금은체리·2024년 1월 5일
0

면접

목록 보기
1/15
  1. NoSQL과 RDBMS의 특징과 차이점에 대해서 장, 단점을 들어 설명해주세요.
    • 답변
      1. RDBMS : 관계형 데이터베이스 Schema Table SQL
        • SQL을 사용하면 RDBMS에서 데이터를 저장, 수정, 삭제 및 검색 할 수 있습니다.
        • 관계형 데이터베이스의 핵심적인 두 가지 특징
          1. 데이터는 정해진 데이터 스키마에 따라 테이블에 저장됩니다.
          2. 데이터는 관계를 통해 여러 테이블에 분산됩니다.
        • 데이터는 테이블에 레코드로 저장되는데, 각 테이블마다 명확하게 정의된 구조가 있습니다.
        • 해당 구조는 필드의 이름과 데이터 유형으로 정의됩니다.
        • 따라서 스키마를 준수하지 않은 레코드는 테이블에 추가할 수 없습니다.
        • 즉, 스키마를 수정하지 않는 이상은 정해진 구조에 맞는 레코드만 추가가 가능한 것이 관계형 데이터베이스의 특징 중 하나 입니다.
        • 또한, 데이터의 중복을 피하기 위해 '관계'를 이용합니다.

      • SQL 장점

        1. 명확하게 정의된 스키마, 데이터 무결성 보장
        2. 관계는 각 데이터를 중복없이 한번만 저장합니다.

        • SQL 단점

          1. 덜 유연합니다. 데이터 스키마를 사전에 계획하고 알려야 합니다. (나중에 수정하기 힘듦)
          2. 관계를 맺고 있어서 조인문이 많은 복잡한 쿼리가 만들어질 수 있습니다.
          3. 대체로 수직적 확장만 가능합니다.

        SQL 데이터베이스 사용이 더 좋을 때

        1. 관계를 맺고 있는 데이터가 자주 변경되는 애플리케이션의 경우
          • NoSQL에서는 여러 컬렉션을 모두 수정해야 하기 때문에 비효율적
        2. 변경될 여지가 없고, 명확한 스키마가 사용자와 데이터에게 중요한 경우
      1. NoSQL : 대용량데이터 비규격화 Key,Value
        • NoSQL은 비관계형 DB이고, 말 그대로 관계형 DB의 반대 입니다.
          • 스키마도 없고, 관계도 없습니다.
        • NoSQL에서는 레코드를 문서(documents)라고 부릅니다.
          • 레코드(Record) : 레코드란 여러 가지 데이터 타입을 가질 수 있는 복합형 구조의 데이터 타입
        • SQL과 차이: NoSQL에서는 다른 구조의 데이터를 같은 컬렉션에 추가가 가능합니다.
          (SQL은 정해진 스키마를 따르지 않으면 데이터 추가가 불가능합니다.)
        • 문서(documents)는 Json과 비슷한 형태로 가지고 있습니다.
        • 관계형 데이터베이스처럼 여러 테이블에 나누어담지 않고, 관련 데이터를 동일한 컬렉션에 넣습니다.
          • 컬렉션: 다양한 데이터 타입을 가질 수 있는 동시에, 여러 로우에 해당하는 데이터를 가질 수 있는 자료형
        • 따라서 여러 테이블에 조인할 필요없이 이미 필요한 모든 것을 갖춘 문서를 작성하는 것이 NoSQL입니다. (NoSQL에는 조인이라는 개념이 존재하지 않음)

        • NoSQL 장점

          1. 스키마가 없어서 유연하고, 언제든지 저장된 데이터를 조정하고 새로운 필드를 추가 가능합니다.
          2. 데이터가 애플리케이션이 필요로하는 형식으로 저장됩니다.
            • 데이터 읽어오는 속도가 빨라집니다.
          3. 수직 및 수평 확장이 가능해서 애플리케이션이 발생시키는 모든 읽기/쓰기 요청 처리가 가능합니다.
        • NoSQL 단점

          1. 유연성으로 인해 데이터 구조 결정을 미루게 될 수도 있습니다.
          2. 데이터 중복을 계속 업데이트 해야합니다.
          3. 데이터가 여러 컬렉션에 중복되어 있기 때문에 수정 시 모든 컬렉션에서 수정해야 합니다.
            (SQL에서는 중복 데이터가 없으므로 한번만 수행이 가능

          NoSQL 데이터베이스 사용이 더좋을 때

          1. 정확한 데이터 구조를 알 수 없거나 변경/확장 될 수 있는 경우
          2. 읽기를 자주 하지만, 데이터 변경은 자주 없는 경우
          3. 데이터베이스를 수평으로 확장해야 하는 경우 (막대한 양의 데이터를 다뤄야 하는 경우)
profile
전 체리 알러지가 있어요!

0개의 댓글