SQL vs NoSQL 차이점 심화

eeeeu·2023년 1월 6일
0

데이타베이스

목록 보기
2/11

지난 포스팅에서 SQL과 NoSQL에 대해 짚고 넘어갔었다.

그런데,, NoSQL은 무결성이 보장되는 것인가? 트랙젝션 수행시 ACID 는 그럼 어떻게 되는건가? 에 대한 답변을 스스로 완벽하게 할 수 없어서 이 부분에 대해서 더 공부해보았다.

기억해야할 점

  • sql 사용시,

    • 데이터는 정해진 데이터 스키마에 따라 테이블에 저장됨 ( = 스키마를 준수하지 않은 레코드는 테이블에 추가할 수 없음)
    • 데이터는 관계를 통해 여러 테이블에 분산됨
  • NoSQL은,

    • 스키마도 없고 관계도 없음

    • 다른 구조의 데이터를 같은 컬렉션에 추가 가능함

    • 수평적 확장이 용이함

1) 관계형 데이터베이스는 어떠한 상황에서도 무결성(integrity)을 보장해준다; (데이터의 정확성과 일관성을 유지하고 보증하는 것)

무결성(integrity) 은 데이터에 결함이 없는 상태, 즉 데이터를 정확하고 유효하게 유지하는 것이다. 데이트베이스가 삽입, 삭제, 수정, 연산으로 상태가 변하더라도 무결성 제약조건은 반드시 지켜져야 한다.

→ 관계형 데이터 모델의 주요 제약 조건

  • Entity 무결성
  • Key 무결성
  • 참조 무결성
  • domain 무결성
  • 등등

2) RDBMS에는 데이터베이스 트랜잭션이 정상적으로 처리되기 위한 4가지 필수 속성이 있다. (ACID)

트랜잭션이란 데이터베이스의 상태를 변화시키는 하나의 작업단위를 의미한다. DB의 상태는 딱 Rollback과 Commit으로 이루어져 있다.

트랜잭션이 필요한 이유에는 여러가지가 있지만 두가지 정도를 말해보자면,,

  1. 데이터 무결성을 유지하기(보호하기) 위함이다.
  2. 직렬화 기능으로 작업을 하나씩 순차적으로 진행하기 위함이다.

ACID

원자성(Atomicity) : 트랜젝션의 작업이 부분적으로 실행되거나 중단되지 않는 것을 보장함

방법 : Commit 과 Rollback

일관성(Consistency) : 트랜잭션이 성공적으로 완료되면 일관적인 DB상태를 유지하는 것을 말함

방법 : 데이터 모델의 모든 제약 조건(기본키,외래키,도메인 제약 조건 등)

격리성(Isolation) : 트랜잭션 수행시 다른 트랜색션의 작업이 끼어들지 못하도록 보장함 (즉, 트랜젝션끼리는 서로 간섭 불가함)

방법 : lock 방식

지속성(Durability) : 성공적으로 수행된 트랜잭션은 영원히 반영이 됨

3) BASE: 성능과 가용성 등을 위해서 ACID의 C와 I의 속성을 포기하고 분산 시스템에 더 적합하다고 생각되는 성질이다.


도움받은 참고자료

전체적인 RDMBS의 특징과 NoSQL의 간략한 차이를 이해하고 싶다면 아래 링크를 추천함
[Database] RDBMS/NoSQL

NoSQL의 BASE/CAP 이론이 궁금하다면 아래 링크를 추천함
NoSQL에 대해서 간단히 알아보자!

트랜젝션의 ACID 성질에 대해 알아보고싶다면 아래 링크를 추천함
[데이터베이스] 트랜잭션의 ACID 성질

profile
라따뚜이 인생이란

0개의 댓글

관련 채용 정보