본문 바로가기
도전기/SQLP

SQLD/SQLP_데이터 모델링 비교(RDBMS VS NoSQL)

by Qookoo 2024. 5. 23.
반응형

제1절 데이터 모델의 이해

 

Key Note_모델링 절차

데이터 모델링 단계 요약

  1. 요구사항 분석: 비즈니스 요구사항을 수집하고 이해합니다.
  2. 개념적 데이터 모델링: 엔터티, 속성 및 관계를 정의합니다. ERD를 생성합니다.
  3. 논리적 데이터 모델링: 개념 모델을 개선합니다. 키와 정규화를 정의합니다.
  4. 물리적 데이터 모델링: 논리적 모델을 물리적 스키마로 변환합니다. 테이블, 열, 제약 조건 및 인덱스를 정의합니다.

RDBMS와 NoSQL의 데이터 모델 정의 및 특성 비교

관계형 데이터베이스 관리 시스템(RDBMS)

데이터 모델 정의:

  1. 스키마 기반 구조: RDBMS는 고정된 스키마를 사용합니다. 즉, 데이터가 삽입되기 전에 데이터 구조가 정의됩니다.
  2. 테이블: 데이터는 행과 열로 구성된 테이블로 구성됩니다.
  3. 관계: 테이블은 외래 키를 통해 서로 연결될 수 있으므로 복잡한 쿼리와 데이터 무결성이 가능합니다.
  4. ACID 트랜잭션: 안정적인 트랜잭션이 필요한 애플리케이션에 중요한 트랜잭션의 원자성, 일관성, 격리 및 내구성을 보장합니다.

특징:

  1. 구조화된 데이터: 정의된 관계가 있는 구조화된 데이터에 적합합니다.
  2. 정규화: 중복성을 줄이고 데이터 무결성을 향상시키기 위해 정규화를 사용하는 경우가 많습니다.
  3. SQL 쿼리 언어: 데이터를 정의하고 조작하기 위해 SQL(구조적 쿼리 언어)을 사용합니다.
  4. 확장성: 일반적으로 수직으로 확장됩니다(기존 서버에 더 많은 성능 추가).
  5. 종류: MySQL, PostgreSQL, Oracle 데이터베이스, Microsoft SQL Server.

NoSQL 데이터베이스

데이터 모델 정의:

  1. 스키마 없는 또는 동적 스키마: NoSQL 데이터베이스에는 사전 정의된 스키마가 필요하지 않은 경우가 많으므로 유연하고 동적인 데이터 구조가 가능합니다.
  2. 다양한 데이터 모델: 다음과 같은 여러 유형의 데이터베이스를 포함합니다.
    • 문서 저장소: 데이터를 문서(예: JSON, BSON)에 저장합니다. 예: MongoDB, CouchDB.
    • 키-값 저장소: 데이터를 키-값 쌍으로 저장합니다. 예: Redis, DynamoDB.
    • 열군 저장소: 데이터를 행이 아닌 열에 저장합니다. 예: 카산드라, HBase.
    • 그래프 데이터베이스: 노드, 간선 및 속성이 포함된 그래프 구조에 데이터를 저장합니다. 예: Neo4j, OrientDB.
  3. 최종 일관성: 분산 시스템에 적합한 즉각적인 일관성보다 최종 일관성을 사용하는 경우가 많습니다.

특징:

  1. 비정형 또는 반정형 데이터: JSON 문서 또는 키-값 쌍과 같은 비정형 또는 반정형 데이터에 적합합니다.
  2. 수평적 확장성: 단일 서버의 성능을 늘리는 대신 더 많은 서버를 추가하여 확장할 수 있도록 설계되었습니다.
  3. 유연한 데이터 모델: 엄격한 스키마를 정의할 필요 없이 다양한 데이터 유형과 구조를 처리할 수 있습니다.
  4. CAP 정리: 일반적으로 CAP 정리(Consistency, Availability, Partition Tolerance)를 최적화하지만 세 가지를 모두 동시에 최적화하지는 않습니다. (A와 C 둘중 하나 선택, 필수)
  5. 사용 사례: 빅 데이터 애플리케이션, 실시간 분석, 콘텐츠 관리 등 고성능, 확장성, 유연성이 필요한 애플리케이션에 적합합니다.

비교 요약:

특징/측면RDBMSNoSQL

스키마 고정 스키마 동적 스키마 또는 스키마 없는
데이터 모델 테이블 기반(행 및 열) 문서, 키-값, 열군, 그래프
관계 정규화된 관계(외래 키와의 복잡한 관계) 비정규화된 관계(애플리케이션 수준 처리)
일관성 ACID 트랜잭션(즉각적 일관성) 최종 일관성(종종),
BASE(기본적으로 사용 가능, 소프트 상태, 최종 일관성)
확장성 수직(규모 확대) 수평(확장)
쿼리 언어 SQL 다양함(예: MongoDB 쿼리 언어, Cassandra용 CQL)
사용 사례 구조화된 데이터, 복잡한 쿼리, 트랜잭션 시스템 빅 데이터, 실시간 분석, 유연하고 진화하는 데이터 모델
MySQL, PostgreSQL, 오라클, SQL 서버 MongoDB, Redis, 카산드라, Neo4j

 

이 비교에서는 RDBMS 및 NoSQL 데이터베이스 중 요구 사항에 따라 올바른 유형의 데이터베이스를 선택 필요함

반응형