RDB
- RDB 정의
RDB(Relational Database)란 관계형 데이터 모델에 기초를 둔 데이타베이스이다.
관계형 데이터 모델이란 데이타를 구성하는데 필요한 방법 중 하나로 모든 데이터를 2차원의 테이블 형태(속성-값)로 표현한다.
관계형 데이터 모델의 개념은 표현 개체의 외부개념 관례를 적용한 것으로, 데이터 간의 상관관계에서 개체간의 관계를 표현한 것이라고 할 수 있다.
RDB는 데이터의 독립성이 높고, 고수준의 데이터 조작언어(DML-Data Manipulation Language)을 사용하여 결합, 제약, 투영 등의 관계 조작에 의해 비약적으로 표현능력을 높일 수 있고, 또한 이들의 관계 조작에 의해 자유롭게 구조를 변경할 수 있다는 것이 RDB의 특징이다.
그렇다면 RDBMS(Relational Database Management System) 란?
: RDBMS는 관계형 데이터베이스를 생성하고 수정하고 관리할 수 있는 소프트웨어이다.
- RDB 장단점
☞ 장점
- 명확하게 정의된 스키마, 데이터 무결성 보장
- 관계를 통해 각 데이터를 중복없이 한번만 저장 가능
☞ 단점
- 상대적으로 덜 유연, 데이터베이스 스키마를 미리 알고 계획해야한다. (나중에 수정하는 것이 어렵거나 불가능)
- JOIN문이 많은 매우 복잡한 쿼리가 만들어질 수 있음
- 수평확장이 어렵고 보통 수직확장만 가능, 즉 어느 시점에서 처리량/처리 능력과 관련하여 약간의 성장 한계에 직면할 수 있음
NoSQL
- NoSQL 정의
Not Only SQL의 의미로, 데이터 저장 기술, 테이블 간 관계를 정의하지 않는다.
데이터 테이블은 그냥 하나의 테이블이며 따라서 일반적으로 테이블 간 Join 불가능, 데이터의 일관성은 포기하되 비용을 고려하여 여러 대의 데이터에 분산하여 저장하는 Scale-Out을 목표로 등장. 정확한 데이터 구조를 알 수 없고 데이터가 변경/확장이 될 수 있는 경우에 사용하는 것이 좋다. update가 많이 이루어지지 않는 시스템에 좋다. 막대한 데이터를 저장해야 되는 시스템에 적합하고, JSON 파일을 빠르게 저장한다.
- NoSQL 장단점
☞ 장점
- 유연성 높음. 즉 저장된 데이터를 언제든지 조정하고 새로운 필드 추가 가능
- 데이터는 애플리케이션에서 필요한 형식으로 저장. (조회 속도 향상)
- 수직 및 수평확장이 가능하므로 데이터베이스가 애플리케이션에서 발생시키는 모든 읽기 쓰기 요청을 처리할 수 있음
☞ 단점
- 유연성 때문에 데이터 구조 결정이 늦어질 수 있음 (바로 계획 결정하는 것이 아니기 때문)
- 복사된 데이터가 변경되면 여러 컬렉션(테이블)과 문서를 수정해야함
RDB / NoSQL 사용 예
- RDB를 사용하면 좋은 예)
- RDB는 데이터 구조가 명확하여 변경될 여지가 없는 경우, 또 데이터 중복이 없으므로 데이터 update가 잦은 시스템에서 사용하면 좋다.
- 명확한 스키마가 중요하며, 데이터 구조가 극적으로 변경되지 않는경우
- 데이터의 일관성, key를 기준으로 쿼리를 작성하는게 중요, join, FK, index 체크 시
- NoSQL를 사용하면 좋은 예)
- NoSQL은 정확한 데이터 구조가 정해지지 않은 경우, 데이터 update가 자주 이루어지지 않고, 조회가 많은 경우, 또 scale-out이 가능하므로 데이터 양이 매우 많은 경우에 사용하면 좋다.
- 정확한 데이터 요구사항을 알 수 없는 경우
- 읽기(read)처리를 자주하지만, 데이터를 자주 변경하지 않는 경우
- 구매 내역, 게임 로드 등 수정될 일이 거의 없는 경우
RDB vs NoSQL

'woncoding > TIL' 카테고리의 다른 글
| TIL | 1.30.월 [CS 기초지식 | DB JOIN] (0) | 2023.02.01 |
|---|---|
| TIL | 1.27.금 [CS 기초지식 | TCP(3-Way Handshake)] (0) | 2023.02.01 |
| TIL | 1.25.수 [CS 기초지식 | Stack / Queue / Array / Linked List] (0) | 2023.01.26 |
| TIL | 1.24.화 [CS 기초지식 | Semaphore / Mutex / Cookie] (0) | 2023.01.25 |
| TIL | 1.23.월 [CS 기초지식 | CORS] (0) | 2023.01.25 |