관리 메뉴

♠개발자의 작은 서재♠

RDBMS와 NoSQL의 차이점 본문

IT 면접 질문 총정리!!/데이터베이스

RDBMS와 NoSQL의 차이점

♠디지털 모험일지♠ 2024. 10. 29. 20:03

1. RDBMS (Relational Database Management System)

  • 구조 (Structure):

    • RDBMS는 관계형 데이터베이스로, 데이터를 테이블 형태로 저장합니다. 이때, 테이블 간의 관계를 설정할 수 있어 서로 연결된 데이터를 쉽게 조회할 수 있습니다.
    • 데이터를 행과 열로 정리하며, 특정 규칙에 맞게 정해진 구조(스키마)를 따라야 합니다. 예를 들어, 사용자 정보를 저장하는 테이블을 만들 때 이름, 이메일, 생년월일과 같은 열을 정하고, 모든 데이터가 이 구조에 맞아야 합니다.
  • SQL을 이용한 질의 (Querying):

    • RDBMS는 SQL(Structured Query Language)이라는 표준 언어를 사용해 데이터를 조회하고, 추가, 수정, 삭제할 수 있습니다. 예를 들어, SQL을 사용해 특정 사용자의 데이터를 조회할 수 있습니다.

      SELECT * FROM users WHERE username = 'john_doe';

    이 코드의 의미는 users 테이블에서 username이 "john_doe"인 사용자의 모든 정보를 가져오라는 것입니다.

  • 스키마와 제약조건 (Schema and Constraints):

    • RDBMS는 스키마가 고정되어 있으며, 모든 데이터가 이 스키마를 따라야 합니다. 예를 들어, users 테이블에 "주소"를 추가하려면 테이블의 구조를 변경해야 하며, 이미 추가된 데이터에도 해당 열을 추가해야 합니다.
    • 제약 조건을 통해 데이터 무결성을 유지합니다. 예를 들어, 이메일 열이 비어있을 수 없도록 "NOT NULL" 제약 조건을 설정할 수 있습니다.
  • 트랜잭션과 ACID 특성:

    • RDBMS는

      ACID

      특성을 따릅니다.

      • 원자성 (Atomicity): 트랜잭션 내 모든 작업이 성공해야만 최종적으로 반영됩니다.
      • 일관성 (Consistency): 트랜잭션 완료 후 데이터가 일관된 상태를 유지합니다.
      • 고립성 (Isolation): 여러 트랜잭션이 동시에 실행될 때 서로 간섭하지 않습니다.
      • 지속성 (Durability): 트랜잭션이 성공하면 시스템 오류가 나도 데이터가 유지됩니다.
  • 사용 사례: 은행, ERP 시스템, 재고 관리 시스템 등 정해진 구조와 높은 데이터 일관성이 필요한 시스템에서 많이 사용됩니다.

  • 쉽게 설명: RDBMS는 데이터를 테이블처럼 "엑셀 시트"에 정리하는 방식입니다. 모든 데이터가 정해진 구조(스키마)에 따라 저장되므로 데이터의 일관성이 높습니다.


2. NoSQL (Not Only SQL)

  • 구조 (Structure):

    • NoSQL은 테이블 기반이 아닌 문서(Document), 키-값(Key-Value), 컬럼(Column), 그래프(Graph) 등 여러 형태로 데이터를 저장할 수 있습니다. 이 때문에 더 유연하게 데이터 구조를 바꿀 수 있습니다.

    • NoSQL은 스키마가 없거나 유연해 데이터를 추가할 때 형식에 구애받지 않고 자유롭게 저장할 수 있습니다.

      예를 들어, MongoDB와 같은 문서형 데이터베이스에서는 JSON 형식의 데이터를 그대로 저장합니다.

      {
        "username": "john_doe",
        "email": "john@example.com",
        "address": {
          "city": "Seoul",
          "country": "South Korea"
        }
      }

    이 예에서 "address" 필드는 하나의 값으로 묶여 있지만, 또 다른 필드 구조를 포함할 수 있어 복잡한 데이터를 간단하게 저장할 수 있습니다.

  • 다양한 데이터 모델 지원:

    • 문서 지향(Document-oriented): JSON 형태로 데이터를 저장합니다. MongoDB가 대표적인 예입니다.
    • 키-값(Key-Value): 키를 통해 값을 저장하는 방식입니다. Redis, DynamoDB 등이 이에 속합니다.
    • 컬럼 지향(Column-oriented): 특정 열 중심으로 데이터를 관리하여 빠른 조회가 가능합니다. Cassandra가 대표적입니다.
    • 그래프 지향(Graph-oriented): 데이터가 서로 연결된 관계를 그래프 구조로 저장합니다. Neo4j 같은 그래프 DB가 이에 해당합니다.
  • 수평적 확장 (Horizontal Scaling):

    • NoSQL은 데이터를 여러 서버로 쉽게 나누어 저장할 수 있어 큰 규모의 데이터를 처리할 때 유리합니다. 이 때문에 대규모 트래픽과 데이터 처리가 필요한 시스템에서 자주 사용됩니다.
  • 트랜잭션과 일관성:

    • NoSQL은 대부분의 경우 ACID 대신 CAP 이론을 따릅니다. CAP 이론은 일관성(Consistency), 가용성(Availability), 분산 허용성(Partition Tolerance) 중 두 가지를 보장하며, 나머지 하나는 포기합니다.
    • 일부 NoSQL 데이터베이스는 트랜잭션을 지원하지 않으며, 데이터의 일관성보다는 빠른 읽기와 쓰기에 초점을 맞춥니다.
  • 사용 사례: SNS, IoT, 게임, 실시간 데이터 분석 등 다양한 형태의 데이터를 유연하게 저장하고 빠르게 접근해야 하는 시스템에서 주로 사용됩니다.

  • 쉽게 설명: NoSQL은 데이터를 정해진 틀 없이 "박스 안에 자유롭게 담아두는" 방식입니다. 즉, 추가할 데이터가 정해진 틀에 맞지 않아도 쉽게 저장할 수 있어 다양한 형태의 데이터를 다루기 편리합니다.


3. RDBMS와 NoSQL의 주요 차이점 정리

특징 RDBMS (관계형 데이터베이스) NoSQL (비관계형 데이터베이스)
데이터 구조 테이블 형식 (행과 열 구조) 문서, 키-값, 컬럼, 그래프 등 다양한 구조
스키마 고정된 스키마 필요 유연한 스키마
질의 언어 SQL (표준화된 쿼리 언어) SQL이 아닌 각 DB의 특화된 질의 방식 사용
확장성 수직적 확장 (하드웨어 업그레이드 필요) 수평적 확장 (서버 추가 가능)
트랜잭션 ACID 준수 (높은 데이터 무결성) 대부분 CAP 이론 기반 (빠른 데이터 처리와 유연성 중시)
사용 사례 은행, ERP, 재고 관리 등 고정된 구조의 데이터가 필요한 경우 SNS, IoT, 게임 등 데이터의 구조가 다양하고 빠른 처리가 필요한 경우

RDBMS와 NoSQL은 각각의 장단점이 있어서, 데이터의 일관성과 구조가 중요한 경우 RDBMS를, 데이터의 구조가 자유롭고 대규모 데이터를 빠르게 처리해야 하는 경우 NoSQL을 선택하는 것이 일반적입니다.

Comments