[공부]RDB와 NoSQL의 차이점

allnight5·2023년 4월 6일
0

기술공부

목록 보기
17/33

목차
1RDB와 NoSQL
1. RDB란?
2. RDB의 장단점
3. NoSQL란?
4. NoSQL의 장단점
5. RDB와 NoSQL의 차이점

1. RDB(Relational Database)란?
목차로 이동
데이터를 데이터를 테이블 형태로 저장한다.
RDB는 관계형 데이터 베이스로 Primary Key와 foreign key를 사용하여 테이블간의 join을 통해 관계를 형성하여 관리 할 수 있다는게 특징입니다.

쉽게 생각하면 엑셀 표에 데이터를 저장하는 것과 동일하다고 보면됩니다.

실제로 각 데이터 항목들은 행(row)에 저장되고, 항목의 속성은 열(column)이라고 표현한다. 열은 항목의 속성인 만큼 입력되는 데이터의 유형이 정해진다.

용어 정리

  • 열(column) : 필드(field) 라고도 부르며, 항목의 속성(명칭)을 나타낸다. 필드 마다 각각 정수, 텍스트 같은 데이터 유형을 정할 수 있다.
    |
  • 행(row) : 레코드(record) 라고도 부르며, 각 데이터 항목을 저장한다.
    |
  • 스키마(schema) : 필드는 데이터 유형뿐만 아니라 제약사항도 지정할 수 있는데 이러한 제약사항을 스키마라고 부른다. 예를들어 필드는 중복 값을 해당 행에 저장할 수 없다거나, 반드시 값을 가져야 한다(not null)는 조건 등을 걸 수 있다.

관계형 데이터베이스는 왜 관계라는 이름이 붙여졌을까?

결론부터 말하자면 각 테이블의 행과 행이 연결되는 관계를 맺을 수 있기 때문이다.
테이블 간의 관계는 일 대 일(1:1), 일 대 다(1:N), 다 대 다(N:N) 의 관계가 있다.

관계형 데이터베이스 모델에서는 테이블을 분리하여 행과 행을 연결할 수 있다.

테이블을 분리하고 관계를 형성해 데이터를 효율적으로 관리할 수 있다.
( 테이블을 분리하고 중복 데이터를 제거하는 과정을 정규화 라고 한다.)

. SQL은 RDBMS에서 사용하는 프로그래밍 언어라고 보면 된다. SQL을 통해 RDBMS에서 데이터를 검색하고, 추가하고, 업데이트하고, 삭제하는 작업 등 데이터를 관리한다.

SQL의 종류로는 데이터 정의 언어, 데이터 조작 언어, 데이터 제어 언어 가 있는데 결국 RDBMS를 다루려면 모두 알아야하기 때문에 종류가 나뉘어 진다라는 정도만 알면 될 것 같다.

트랜잭션(transaction)이란
트랜잭션은 데이터베이스 관리시스템(DBMS)에서 하나의 작업의 단위이다.

트랜잭션의 기능을 제대로 수행하기 위해서는 네 가지 특성을 만족해야하는데 ACID 특성이라고 부른다.

원자성 (Atomicity) : 원자성이란 트랜잭션이 수행하는 연산들을 모두 정상적으로 처리하거나 모두 처리하지 않아야 한다는 all-or-nothing 방식을 의미한다.

일관성 (Consistency) : 일관성은 트랜잭션이 성공적으로 수행된 이후에도 데이터베이스의 데이터는 일관된 상태를 유지해야 한다는 의미이다.

격리성 (Isolation) : 격리성은 하나의 트랜잭션이 완료될 때까지 다른 트랜잭션이 간섭하지 못하도록 하여 각각의 트랜잭션이 독립적으로 수행되어야 한다는 의미이다.

지속성 (Durability) : 지속성은 트랜잭션이 성공적으로 완료된 이후에 데이터베이스의 데이터들이 영구적으로 보존되어야 한다는 의미이다.

2. RDB의 장단점
목차로 이동

RDB 장점

  • 데이터의 분류, 정렬, 탐색 속도가 빠르다.
  • 스키마가 명확하게 정의되어 있다.
  • 오래 사용된 만큼 신뢰성이 높고, 어떤 상황에서도 데이터의 무결성을 보장한다.
  • 데이터를 중복 없이 한 번만 저장할 수 있다.
  • 유지보수가 편하다.
  • 정형 정보에 접근하는 가장 효율적이고 유연한 방법이다.

단점

  • 시스템이 커질 경우 JOIN문이 많은 복잡한 쿼리가 만들어질 수 있습니다.
  • 성능 향상을 위해서는 서버의 성능을 향상 시켜야하는 Scale-up만을 지원합니다.
    이로 인해 비용이 기하급수적으로 늘어날 수 있습니다.
  • 스키마로 인해 데이터가 유연하지 못합니다. 나중에 작성된 스키마가 변경 될 경우 번거롭고 어렵습니다.
  • 다른 DB에 비해 많은 자원이 활용되어 시스템 부하가 높다.

3. NoSQL란?
목차로 이동
RDBMS에 단점인 성능을 향상시키기 위해서는 장비가 좋아야 하는 Scale-Up의 특징이 비용을 기하급수적으로 증가시키기 때문에 데이터 일관성은 포기하되 비용을 고려하여 여러 대의 데이터에 분산하여 저장하는 Scale-Out을 목표로 등장하였습니다.
NoSQL은 데이터 테이블은 그냥 하나의 테이블이며 테이블 간의 관계를 정의하지 않아 일반적으로 테이블 간 Join도 불가능합니다.

NoSQL에서는 스키마가 없기 때문에 유연하며 자유로운 데이터 구조를 가질 수 있습니다. 언제든 저장된 데이터를 조정하고 새로운 필드를 추가할 수 있습니다.
데이터 분산이 용이하며 성능 향상을 위한 Saclue-up 뿐만이 아닌 Scale-out 또한 가능합니다.

4. NoSQL의 장단점
목차로 이동
NoSQL의 장점

RDBMS에 비해 저렴한 비용으로 분산처리와 병렬 처리 가능
비정형 데이터 구조 설계로 설계 비용 감소
Big Data 처리에 효과적
가변적인 구조로 데이터 저장이 가능
데이터 모델의 유연한 변화가 가능
NoSQL의 단점

  • 데이터 업데이트 중 장애가 발생하면 데이터 손실 발생 가능
  • 많은 인덱스를 사용하려면 충분한 메모리가 필요. 인덱스 구조가 메모리에 저장
  • 데이터 일관성이 항상 보장되지 않음(데이터 중복이 발생할 수 있으며 중복된 데이터가 변경 될 경우 수정을 모든 컬렉션에서 수행을 해야 합니다.)
  • 스키마가 존재하지 않기에 명확한 데이터 구조를 보장하지 않으며 데이터 구조 결정가 어려울 수 있습니다.

5. RDB와 NoSQL의 차이점
목차로 이동

  • RDB는 관계형 데이터를 저장하지만, NoSQL은 그렇지 않습니다.
  • RDB는 스키마자 정적이지만, NoSQL은 유연한 스키마 구조를 갖는다.
  • RDB는 수직 확장이 용이하고, NoSQL은 수평 확장이 용이하다
    (즉, RDB는 서버 용량을 늘리는게 쉽고, NoSQL은 서버를 여러대 늘리는 게 쉽다)
  • RDB는 확장시 다운 타임이 있을 수 있지만, NoSQL은 거의 없다.
  • RDB는 복잡한 쿼리와 Join연산이 가능하다.NoSQL은 구조화된 쿼리언어가 없는 경우도 많고 일반적으로 Join이 없다.
  • RDB는 OLTP에 적합하고, NoSQL은 OLAP에 적합하다
    (즉, RDB는 트랜잭션 처리에 용이하고, NoSQL은 분석 처리에 용이하다)

❗스키마(Schema)란?
목차로 이동
스키마는 데이터베이스의 구조와 제약조건에 관한 전반적인 명세를 기술한 것이다. 스키마는 데이터베이스를 구성하는 데이터 개체(Entity), 개체의 특성을 나타내는 속성(Attribute), 개체 사이에 존재하는 관계(Relationship) 및 데이터 조작 시 데이터 값들이 갖는 제약 조건 등에 관하여 기술한다.

📌쉽게 말해 DB 내에 데이터가 어떤 구조로 저장되는가를 나타내는 데이터베이스 구조를 스키마라고 한다.

참조 자료

RDB
인생의 로그캣
RDB와 NOSQL의 차이점
율이맨

profile
공부기록하기

0개의 댓글