Study

DBMS - RDBMS, NoSQL

코딩하는토끼 2023. 11. 3. 11:02


RDBMS

RDB (Rerational DataBase) : 관계형 데이터베이스, 데이터를 2차원 테이블 형태로 저장

DBMS (DataBase Management System) : 데이터베이스 관리 시스템 

RDBMS (Rerational DataBase Management System) : 관계형 데이터베이스 관리 시스템

 

→ 대표적으로 MySQL, MariaDB, MS-SQL(Microsoft SQL Server), PostgreSQL, Oracle DB, IBM DB2 등이 있다.

 

✿ AWS RDS : Relational Database Service, 관계형 데이터베이스를 제공하는 AWS 서비스

사용하기 쉽도록 인프라를 자동화시켜주고 사용자는 엔트포인트로 접속할 수 있도록 함

이 서비스를 사용하면 데이터베이스을 간편하게 설정, 운영, 확장할 수 있다.

 

✿ 행 기반 데이터베이스 (row oriented database) : 데이터베이스는 행 기반인지 열 기반인지에 따라서도 분류할 수 있는데, 우리가 보편적으로 사용하는 rdbms 들은 행 기반 데이터베이스이다.

 


NoSQL

Not Only SQL

SQL 만을 사용하지 않는 데이터베이스 관리 시스템

(데이터를 저장하는 데에는 SQL 외에 다른 방법들도 있다)

 

No SQL 이라고 해서 꼭 No RDBMS 인 것은 아니다.

하지만 주로 No RDBMS 이다. 관계형 모델을 사용하지 않는다.

 

Schema-less 명시적으로 정의된 스키마 없이 동작한다.

데이터 구조를 미리 정의할 필요 없고, 변경이 쉽기 때문에 비형식적 데이터를 저장하는 데 용이하다.

(하지만 암묵적인 스키마는 존재, 데이터베이스가 이를 관리하지 않을 뿐)

무결성 검증을 개발자가 직접 해야한다.

 

ACID (Atomicity, Consistency, Isolation, Durability) 트랜잭션을 잃을 수 있다.

 

NoSQL 종류

대표적인 NoSQL 은 MongoDB

 

Document - MongoDB, CouchDB 등

Key-Value - Redis, AWS DynamoDB 등

Column Family - HBase, Cassandra 등

Graph - Neo4j 등

 


RDBMS vs NoSQL

테이블 간 연관관계가 있는 관계형 데이터, 정형화된 데이터라면 RDBMS 를 사용,

연관관계가 없는 데이터, 비정형 데이터, 유연하고 수평적 확장이 요구되는 데이터라면 NoSQL 을 사용한다