데이터베이스 기본 용어들과 RDBMS와 NoSQL의 차이점에 대해 알아보자.
Database, DBMS, SQL
Database
Database는 컴퓨터 시스템에 구조화된 정보 또는 데이터를 전자적으로 저장하며 체계적인 데이터 모음이다.
DBMS
DBMS는 DataBase Management System으로 사용자와 DB 사이에서 사용자 요구에 따라 정보 생성 및 DB 관리를 위한 소프트웨어이다.
SQL
SQL은 Structured Query Language로 관계형 데이터베이스 관리 시스템의 데이터 추출 및 조작 등 데이터를 관리하기 위해 설계된 프로그래밍 언어이다. 자료 검색 및 관리, DB Schema 생성 및 수정, DB 객체 접근 조정 관리 등을 위해 사용된다.
RDBMS
- DBMS 앞에 R이 붙은 RDBMS는 Relational이 붙어 관계형 데이터베이스 관리 시스템을 말한다.
- RDB라는 관계형 데이터 모델을 활용하여 데이터를 2차원 테이블로 표현한다.
- RDBMS의 테이블은 서로 연관이 되어 있으므로 일반 DBMS보다 효율적인 데이터 관리가 가능하다.
- 정규화를 거쳐 데이터 중복성 최소화를 통해 트랜잭션을 수행하기에 용이하다.
- 데이터 원자성, 일관성, 격리, 내구성 유지로 무결성을 높일 수 있다.
- ex) MySQL, PostgreSQL, MariaDB, Microsoft SQL Server, Oracle Database
NoSQL
- Not Only SQL로 RDBMS와 다르게 테이블 간의 간계를 정의하지 않는다.
- 데이터 테이블은 그냥 전체 1개의 테이블이며 테이블 간 Join도 당연히 불가능하다.
- 점차 방대한 데이터의 양으로 빅데이터와 같이 기하급수적인 트래픽 증가로 등장했다.
- 데이터 일관성보다는 데이터 분산을 위해 수평적 확장성인 Scale-Out에 초점이 맞춰져 있다.
- ex) Redis, Hadoop, MongoDB, Firebase, HBase, Apache Cassandra
RDBMS와 NoSQL의 장단점
RDBMS | NoSQL | |
장점 | 1. 명확한 데이터 구조 보장이 된다. 2. 데이터 중복성 방지를 해준다. |
1. 스키마가 없어 데이터 구조가 자유로워 항상 데이터 조정 및 추가가 가능하다. 2. 데이터 분산 용이하여 Scale-Up과 Sclae-Out 모두 가능하다. |
단점 | 1. 시스템이 커지면서 Join이 많아지면 쿼리가 복잡해질 수 있다. 2. Scale-Up으로 서버 성능 향상만을 지원하여 비용이 커질 수 있다. 3. 스키마 변경 시 번거로워진다. |
1. 데이터 중복 발생이 가능하여 중복된 데이터 변경 시 모든 컬렉션에서 수정을 해야 한다. 2. 스키마가 없어 명확한 데이터 구조 보장이 되지 않아 구조 결정이 어렵다. |
RDBMS와 NoSQL 중, 어느 것을 사용할까?
RDBMS는 명확한 스키마가 중요한 경우, 데이터가 자주 변경되는 경우 적합하다. 데이터 구조가 명확하기 때문에 변경되지 않으며, 데이터 무결성이 보장되어 있기 때문에 중복된 데이터가 없다.
NoSQL은 데이터 변경 및 확장이 일어날 경우 사용하면 좋다. 수정이 자주 이루어지지 않는 시스템이 적합하며, 막대한 데이터를 활용하여 Scale-Out이 필요하다면 선택한다.
'Database' 카테고리의 다른 글
[Database] 카디널리티(Cardinality) 2가지 의미 (0) | 2024.05.19 |
---|---|
[Database] 식별자 관계 vs 비식별자 관계 (1) | 2024.05.18 |
[Database] 데이터베이스 모델링(Database Modeling), ERD(ER Diagram), 엔터티(Entity), 제약조건(Constraint) (0) | 2024.05.17 |
[Database] Rocky Linux에 MariaDB 설치 방법 (0) | 2024.05.16 |