RDB와 NoSQL
RDB
(Relational Database)
데이터를 테이블형태로 저장하고, 테이블 간의 관계를 정의하여
데이터를 구조화하는 데이터베이스 시스템
가장 널리 사용된다.
특징
- 테이블
✔ RDB에서 데이터는 테이블 형태로 저장된다.
✔ 각 테이블은 행(row)과 열(column)으로 구성되어 있으며, 각 행은 레코드(record)를 나타내고, 각 열은 속성(attribute)을 나타낸다. - 스키마
✔ RDB는 스키마를 사용하여 데이터 구조를 정의한다.
✔ 테이블의 이름, 속성들의 이름과 데이터 타입, 테이블간의 관계등을 정의
➜ 데이터의 일관성과 무결성을 보장한다.
➜ 기존에 작성한 스키마는 수정하기가 어렵다. - SQL
✔ RDB는 SQL(Structured Query Language)을 사용하여 데이터를 관리하고 조작한다.
➜ SQL 언어 종류
- DDL(Data Definition Language) : 데이터 정의어, 관계형 데이터베이스의 구조를 정의한는 단어.
CREATE, ALTER, DROP, RENAME문이 있다.
- DML(Data Manipulation Language) : 데이터 조작어, 테이블에서 데이터를 입력, 수정, 삭제, 조회한다.
INSERT, UPDATE, DELETE, SELECT문이 있다.
- DCL(Data Control Language) : 데이터 제어어, 데이터베이스 사용자에게 권한을 부여하거나 회수한다.
GRANT, REVOKE, TRUNCATE문이 있다.
- TCL(Transaction Control Language) : 트랜잭션을 제어하는 명령이다.
COMMIT, ROLLBACK, SAVEPOIN문이 있다. - ACID
✔ 원자성(Atomicity), 일관성(Consistency), 고립성(Isolation), 지속성(Durability)을 바탕으로 데이터의 안정성과 신뢰성을 보장한다.
RDB로는
Oracle, MySQL, PostgreSQL, MariaDB, SQLite 등이 있다.
NoSQL
(Not Only SQL)
SQL만을 사용하지 않는 데이터베이스 관리 시스템(DBMS)을 지칭하는 단어.
데이터의 일관성을 약간 포기한 대신 여러 대의 컴퓨터에 데이터를
분산하여 저장하는 것을 목표로 등장
RDB의 한계를 극복하고 대량의 분산데이터를 처리하고 저장하는데 적합하다.
특징
- 스키마 유연성
✔ NoSQL은 스키마를 미리 정의하지 않고, 유연한 데이터 모델을 사용한다.
➜ 데이터베이스에 저장되는 데이터의 구조를 변경하거나 확장하기가 편리하며, 데이터 모델을 쉽게 수정할 수 있다. - 확장성
✔ 수평적인 확장을 지원하여 대량의 데이터를 분산저장하고 처리하는데 용이하다.
✔ 데이터베이스 시스템을 여러 노드에 분산시키면서 성능을 확장할 수 있다. - 다양한 데이터 모델
✔ NoSQL은 다양한 데이터 모델을 지원한다.
➜ 문서형 데이터베이스, 키 - 값(Key-Value) 데이터베이스, 와이드 칼럼 데이터베이스, 그래프 데이터베이스 등 - 분산 데이터 처리
✔ 대량의 데이터를 분산 처리하고 저장하는데 특화되어 있으며, 빅데이터와 실시간 데이터 처리 등에 높은 성능을 보인다.
NoSQL로는
MongoDB, Cassandra, Couchbase, Redis, Neo4j 등이 있다.
'데이터베이스 탐구' 카테고리의 다른 글
데이터베이스) JDBC 와 MyBatis(SQL Mapper) (0) | 2024.07.12 |
---|---|
데이터베이스) 트랜잭션 (0) | 2023.07.26 |
SQL) DROP, TRUNCATE, ALTER (0) | 2023.05.01 |
MySQL) 인텔리제이에서 테이블 만들어보기 (0) | 2023.05.01 |
프로그래머스) (mySQL) 가장 비싼 상품 구하기 (0) | 2023.04.30 |