상세 컨텐츠

본문 제목

[TIL#30] Study] RDBMS vs NoSQL

개인 공부

by DK9 2024. 1. 8. 09:09

본문

1. RDBMS 

  • Relational Database Management System의 약자로 관계형 데이터베이스를 관리하는 프로그램이라고 할 수 있다. 관계형 데이터베이스는 키(key)와 값(value)들의 간단한 관계를 테이블화 시킨 매우 간단한 원칙의 전산정보 데이터베이스이다.
  • RDBMS데이터 베이스에 데이터를 열(Column)과 행(Row)의 테이블 형태로 저장하고, 테이블 형태의 스키마를 지켜야 한다. 가장 대표적인 RDBMS는 Oracle사의 Oracle, Microsoft사의 MS-SQL Server, Oracle사의 MySQL, IBM의 DB2 등이 있다. 관계형 데이터 베이스를 다루기 위한 언어를 SQL 이라고 한다.
    • 장점
      • 정해진 스키마에 따라서 데이터를 저장하기 때문에 명확한 데이터 구조를 보장한다. 데이터 일관성을 보증.
      • 정규화에 따른 갱신 비용 최소화
      • 데이터의 분류, 정렬, 탐색의 속도가 빠르다.
      • SQL을 사용하여 데이터를 다룰 수 있다.
      • 다양한 용도로 사용이 가능 (범용적)
    • 단점
      • 반드시 스키마 규격에 맞춰야 함 즉, 갱신 발생 테이블은 인덱스 생성과 스키마 변경이 요구됨
      • 작업 부하의 분산이 어려움
      • 객체와 관계의 mapping layer 복잡가능성
      • Join이 필요한 경우 확장성이 제약됨
      • 테이블에 가변성이 있는 데이터 저장이 어려움
    • 스키마 : 데이터 베이스의 테이블 구조 및 형식, 관계 등의 정보를 형식 언어(formal language)로 기술한 것용어 설명

2. NoSQL

  • NoSQLNot Only SQL 혹은 Non-Relational Operational DataBase의 약자로 비관계형 데이터베이스를 지칭한다.데이터 간의 관계를 정의하지 않으며 Key-Value 형태로 저장되기에 Join 연산이 불가능하다.분산형 구조로 설계되어 있어 서버에 데이터를 분산 저장하기에 특정 서버에 장애가 발생해도 데이터 유실 혹은 서비스 중지가 발생하지 않는다.
  • RDBMS에 비해 대용량의 데이터를 저장할 수 있다.
  • 대량의 분산된 비정형 데이터를 저장하고 조회하는데 특화된 데이터베이스로 스키마 없이 사용하거나 느슨한 스키마를 제공하는 저장소. 
    • 장점
      • RDBMS(관계형데이터베이스)에 비해 저렴한 비용으로 분산처리와 병렬 처리가 가능하다.
      • 비정형 데이터 구조 설계로 설계 비용이 감소한다.
      • Big Data 처리에 효과적이다.
      • 가변적인 구조로 데이터 저장이 가능하다.
      • 데이터 모델의 유연한 변화가 가능하다.
    • 단점
      • 데이터 업데이트 중 장애가 발생하면 데이터 손실 발생 가능
      • 인덱스 구조가 메모리에 저장되기 때문에 많은 인덱스를 사용하려면 충분한 메모리가 필요.
      • 데이터 일관성이 보장되지 않음.

3. 결론

  • RDBMS : 명확한 스키마를 보장하는 경우. 정형화 된 데이터를 사용하는 경우. 관계를 맺고 있는 데이터가 자주 변경되는 경우.
  • NoSQL : 정확한 데이터 구조를 알 수 없는 경우. 데이터 구조가 자주 변경/확장 되는 경우.

'개인 공부' 카테고리의 다른 글

[TIL#31] Study] Github Action을 이용한 CI  (1) 2024.01.10

관련글 더보기