반응형
💡 [DB] 관련 글 읽기
1. 관계형 데이터베이스(RDB, Relational Database)
- 데이터를 테이블(표) 형식으로 저장하는 데이터베이스.
- 행(Row)과 열(Column)로 데이터를 관리하며, 데이터 간의 관계를 정의하고 연결.
- 특징:
- 정해진 스키마를 기반으로 데이터를 저장.
- 데이터 중복을 최소화하기 위해 정규화를 사용.
- 강력한 트랜잭션 처리(ACID 특성)로 데이터 무결성을 보장.
2. NoSQL (Not Only SQL)
- 테이블 형식이 아닌 다양한 방식으로 데이터를 저장하는 데이터베이스.
- 정형화된 데이터뿐만 아니라 비정형 데이터(문서, JSON 등)를 저장 가능.
- 특징:
- 유연한 스키마로 데이터를 저장하므로 구조 변경이 용이.
- 대량의 데이터를 빠르게 읽고 쓰는 데 적합.
- 데이터의 중복을 허용하며, 데이터 업데이트 시 여러 컬렉션에서 수정이 필요할 수 있음.
3. 관계형 데이터베이스(RDB)와 NoSQL의 차이점
구분 | 관계형 데이터베이스(RDB) | NoSQL |
예시 | MySQL, PostgreSQL, Oracle | MongoDB, Cassandra, Redis |
스키마 | 고정된 스키마 (정형 데이터 저장) | 유연한 스키마 (정형, 비정형 데이터 모두 저장 가능) |
개발 목적 | 데이터의 무결성과 정확성 보장, 트랜잭션 중심 | 대규모 데이터 저장 및 빠른 조회 |
데이터 저장 모델 | 테이블 기반 (행과 열 구조) | 문서(Document), 키-값(Key-Value), 컬럼(Columnar) 등 |
장점 | 데이터 중복 최소화, 강력한 트랜잭션 지원 (ACID) | 확장성, 빠른 읽기/쓰기, 대규모 비정형 데이터 처리 가능 |
단점 | 확장성 한계, 대규모 데이터 처리에 성능 저하 | 데이터 중복, 트랜잭션 처리 미흡 |
적용 사례 | 금융, ERP, 재고 관리 | 소셜 미디어, 로그 데이터, 추천 시스템 |
- RDB는 데이터 무결성이 중요하고 데이터 수정이 빈번한 경우에 적합.
- NoSQL은 대규모 데이터를 빠르게 처리하고 저장해야 하는 상황에 유리.
4. 관계형 데이터베이스(RDB)와 NoSQL 예시 코드
4-1. RDB 예시 코드 (MySQL)
테이블 생성
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50)NOT NULL,
email VARCHAR(100) UNIQUE NOT NULL,
age INT );
데이터 삽입
INSERT INTO users (name, email, age)
VALUES ('Alice', 'alice@example.com', 25),
('Bob', 'bob@example.com', 30);
데이터 조회
SELECT * FROM users WHERE age > 25;
결과
id | name | age | |
2 | Bob | bob@example.com | 30 |
4-2. NoSQL 예시 코드 (MongoDB)
컬렉션 생성 및 데이터 삽입
db.users.insertMany([
{ name: "Alice", email: "alice@example.com", age: 25 },
{ name: "Bob", email: "bob@example.com", age: 30 }
]);
데이터 조회
db.users.find({ age: { $gt: 25 } });
결과
[
{
"_id": ObjectId("..."),
"name": "Bob",
"email": "bob@example.com",
"age": 30
}
]
반응형
'CS' 카테고리의 다른 글
[ DB - 3 ] 인덱싱(Indexing)이란? : 인덱싱을 하는 이유 (0) | 2025.02.20 |
---|---|
[ DB - 2 ] 트랜잭션(Transaction): 데이터 무결성이란 (0) | 2025.02.20 |
[Process와 Thread - 3] 멀티 프로세스와 멀티 스레드 비교 (0) | 2025.02.20 |
[Process와 Thread - 2] 프로세스와 스레드의 개념과 차이: 멀티스레드의 작동 원리 (0) | 2025.02.20 |
[Process와 Thread - 1] 프로세스의 구조와 동작 방식 (0) | 2025.02.20 |