본문으로 바로가기

RDBMS 와 NoSQL의 차이

category 개발지식 2022. 6. 10. 19:53
반응형

1. 데이터베이스 ?

 - 데이터를 저장하고 관리

 - 구조화된 정보 및 데이터의 체계적인 집합

 

2. DBMS (DataBase Management System) ?

 - 사용자와 데이터베이스 사이에서 사용자의 요구에 따라 정보를 생성해주고 DB를 관리해주는 소프트웨어

 

3. SQL (Structured Query Language)?

 - 관계형 데이터베이스 관리 시스템에 저장된 데이터를 관리하기 위해 설계된 프로그래밍 언어

 

4. RDBMS (Relational DataBase Management System)

 - 관계형 데이터베이스 관리 시스템을 의미

 - 관계형 데이터베이를 관리하며 관계형 데이터 모델을 기초로 두고 모든 데이터를 2차원 테이블 형태로 표현

 - 테이블 간 관계를 가질 수 있다는 것이 가장 큰 특징 (Join)

 

4.1 RDBMS 장단점

 장점

  - 테이블에 따라 데이터를 저장하여야 하므로 명확한 데이터 구조를 보장 (데이터 무결성)

  - 관계는 각 데이터를 중복없이 한 번만 저장

 

 단점

  - 테이블간 관계를 맺고 있어 시스템이 커질 경우 JOIN문이 많은 복잡한 쿼리가 만들어질 수 있음

  - 성능 향상을 위해 서버의 성능을 향상 시켜야 하는 Scale-up만 지원

  - 스키마로 인해 데이터가 유연하지 못함, 스키마가 변경될 경우 번거롭고 어려움

 

이럴 때 RDBMS 사용

  - 관계를 맺고 있는 데이터가 자주 변경이 이루어지는 시스템에 적합

  - 변경될 여지가 없고, 명확한 스키마가 사용자와 데이터에게 중요한 경우

 

 

5. NoSQL (Not Only Sql) ?

   - 테이블 간 관계를 정의하지 않기 때문에 테이블간 관계를 맺을 수 없음

   - 다른형태의 데이터를 저장

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

   - 데이터를 동일한 컬렉션에 넣음

 

5.1 NoSQL 장단점

 장점

   - 스키마가 없어서 유연하며 자유로 데이터 구조 저장된 데이터를 조정하고 새로운 필드 추가 가능

   - 데이터는 시스템이 필요로 하는 형식으로 저장

   - 수직 및 수평 확장이 용이

  

 단점

  - 스키마가 존재하지 않기에 명확한 데이터 구조를 보장하지 않음

  - 유연성으로 인해 데이터 구조 결정을 미루게 될 수 있음

  - 데이터가 여러 컬렉션에 중복되어 있기에 변경 시 모든 컬렉션에서 수정해줘야 함

 

이럴 때 NoSQL 사용

  - 정확한 데이터 구조를 알 수 없고 데이터가 변경/확장이 될 수 있는 경우

  - 읽기는 하지만, 데이터 변경이 자주 없는 경우

  - 데이터베이스를 수평으로 확장해야 하는 경우 (많은 양의 데이터를 다룰 경우)

 

 

 

   

 

 

반응형

'개발지식' 카테고리의 다른 글

[AWS]Elastic Load Balancer(로드밸런서) Sticky Sessions  (0) 2022.06.14
Redis 란  (0) 2022.06.11
PHP란 무엇인가 ?  (0) 2022.06.10
WebServer, WAS 의 차이  (0) 2022.06.09
동기와 비동기 방식 / 블로킹과 논블로킹  (0) 2022.05.30