이번에는 RDB(Relational DataBase)와 NoSQL DataBase에 대해 알아보고자 한다.
RDB
관계형 데이터베이스라고 불리는 RDB는 말그대로 관계형 모델을 기반으로 하는 데이터베이스를 의미한다. 이를 유지하고 관리하는 시스템을 RDBMS(Management System)이라고 부른다. 이러한 RDBMS는 주로 SQL(Structured Query Lang)을 이용해 데이터를 조회, 관리하게 된다.
관계형 데이터 베이스의 특징은 아래와 같다.
- 2차원 데이터로 표현한다. (행과 열)
- 상호 관련성을 가진 테이블의 집합으로 구성된다.
- 테이블 사이의 관계를 외래키로 나타낸다.
- 스키마의 변경이 어렵다.
RDB는 매우 정교한 설계아래 만들어진다. 테이블 사이에 서로 의존성이 있고 쳇바퀴처럼 맞물려 돌아가기에 데이터 타입을 바꾼다던지, 새로운 열을 추가한다던지 하는 작업은 실제 프로덕션 환경에서 사실상 불가능하다. 따라서 보통 기존 테이블을 복제해서 거기에 수정을 가한 뒤, 기존 테이블과 교체하는 방식을 택한다. - SQL을 사용하여 데이터를 질의한다.
- 사용 요금이 비싸다.
- ACID 성질을 갖는다.
ACID(원자성 Atomicity, 일관성 Consistency, 고립성 Isolation, 지속성 Durability)는 데이터 베이스 트랙잰션의 성질을 나타 낸다.
NOSQL DB
관계형이 아닌 데이터 모델을 총칭하는 말이며, 도큐먼트 모델 / 키-값 모델 / 그래프 모델 / 와이드 컬럼 모델 등 다양한 데이터 모델이 있다. NoSQL DB의 특징은 아래와 같다.
- 다양한 방식으로 데이터를 표현한다.
- 도큐먼트 모델 : 레코드 하나를 오브젝트(도큐먼트)형식으로 표현한다. 자유로운 스키마 구조를 가지며 구조가 확정되지 않은 데이터를 밀어넣고, 자유롭게 작업하기 좋다. mongoDB와 ArangoDB가 대표적인 예이다.
- 그래프 모델 : 데이터를 버텍스와 엣지로 그래프에 표현하는 방식이다 데이터 사이의 유기적인 관계를 표현하기에 적합하다. 대표적인 예로는 Neo4j와 ArangoDB가 그 예이다.
- 키/값 모델 : 하나의 키에 값을 맵핑하는 해시 구조의 데이터 모델이다. 빠르게 데이터에 접근할 수 있는 장점이 있다. 대표적인 예로 redis가 있다.
- 와이드 컬럼 모델 : 테이블 형태를 취하지만 행 마다 갖는 컬럼의 형태가 고정되어 있지 않는 데이터 모델을 의미한다.
- 테이블 사이에 딱히 명시된 제약이나 규칙이 없다.
- 스키마가 고정적이지 않아 매우 유연하다.
- 연산이 빠르고 빅테이터, 실시간 연산에 적합하다.
- 비용이 저렴하고, 오픈소스 데이터가 많다.
RDB vs NoSQL 비교
'Computer Theory > Web' 카테고리의 다른 글
Transaction과 ACID (0) | 2023.12.09 |
---|---|
ORM(Object Ralational Mapping) (0) | 2023.12.09 |
브라우저 작동 방식 (0) | 2023.12.09 |
HTTP 와 HTTP Request/Response 구조 (0) | 2023.12.09 |
인터넷의 역사와 작동방식 (0) | 2023.12.09 |