티스토리 뷰
1. SQL
- 정해진 스키마와 테이블 구조를 기반으로하며, 트랜잭션 안정성이 중요할 때 적합
- 테이블 간의 관계를 외래키로 연결(JOIN으로 연결해 한번에 조회 가능)
* 외래키란?
2. NoSQL
- 유연한 데이터 구조와 수평 확장성에 강점이 있어, 빠르게 변하는 데이터나 대규모 트래픽 환경에 적합
- 한 문서에 중첩 저장(내장관계)하거나, python 등의 코드를 사용해 결과를 합쳐서 사용(데이터를 문서 단위로 설계, 관계는 코드에서 처리, $loopup으로 join이 가능하지만, 성능이나 구조적인 제약 때문에 코드 기반 병합을 더 많이 사용)
# 1단계: user_id가 101인 주문 조회
orders = db.orders.find({"user_id": 101})
# 2단계: orders에서 user_id 뽑아서 사용자 정보 조회
user = db.users.find_one({"user_id": 101})
# 3단계: 결과를 코드로 합쳐서 보여줌
for order in orders:
print(f"{user['name']}님이 {order['amount']}원을 결제했습니다.")
- 성능과 유연성을 우선시해 초창기에는 트랜잭션이 제한적이었지만, 최근 MongoDB 등은 다중 문서 트랜잭션도 지원
구분 | SQL(관계형 DB) | NoSQL (비관계형 DB) |
언제쓸까? | 정형데이터+안정성이 중요할때 | 유연한 구조+대용량처리+빠른속도가 중요할때 |
스키마 | 고정 (설계 후 변경 어려움) | 유연함 (자유로운 구조 가능) |
데이터 구조 | 테이블기반(행/열) | 문서(mongoDB-json형식), 키-값(Redis), 그래프, 컬럼 등 다양 |
확장 | 수직확장(성능 좋은 서버로 업그레이드) | 수평확장(서버 여러 개로 분산) |
트랜잭션 | *ACID 보장(정합성, 안정성 강함) | 보장 약함, 대신 속도와 확장성 우위 |
쿼리언어 | SQL사용 | 각 DB마다 다름 (MongoDB는 JSON 스타일) |
대표제품 | MySQL, PostgreSQL, Oracle, SQL Server | MongoDB, Redis, Cassandra, DynamoDB |
활용분야 | 금융, ERP, 회계 등 정형 데이터 | 소셜미디어, IoT, 로그, 추천 등 비정형 데이터 |
*ACID 트랜잭션
- Atomicity(원자성): 트랜잭션은 모두 수행되거나, 전혀 수행되지 않아야 한다.
- Consistency(일관성): 트랜잭션 전후로 데이터의 규칙(제약조건)이 항상 유지되어야 한다.
- Isolation(격리성): 동시에 실행되는 트랜잭션끼리는 서로 영향을 주지 말아야 한다.
- Durability(지속성): 트랜잭션이 완료되면 그 결과는 영구히 보존되어야 한다.
3. Redis
- 아주 빠른 속도를 자랑하는 인메모리 데이터 저장소
- 빠르고 일시적인 데이터를 다룰 때 사용 (만료 시간(TTL)설정이 쉽다)
1) 언제쓸까?
- 느린 DB나 API 결과를 빠르게 보여줘야 할 때
- 세션관리(로그인 세션, 인증토큰 저장 등)
- 비동기 작업 큐(작업을 나중에 처리하거나 백그라운드로 실행할 때)
- 실시간 랭킹, 카운터(실시간 증가, 인기순위, 좋아요 수 등에 적합)
- Pub/Sub (발행/구독 시스템): 실시간 알림, 채팅방, 게임 등
'AI > SQL' 카테고리의 다른 글
[SQL] 윈도우 함수, 그룹 함수 (0) | 2025.04.18 |
---|---|
[SQL] 관계형대수, 계층형 질의, 재귀 (0) | 2025.04.17 |
[SQL] 인덱스와 뷰, JOIN (0) | 2025.04.17 |
[SQL] CAST, IN, ANY, ALL, 서브쿼리 (0) | 2025.04.13 |
[SQL] 이상 현상과 정규화 (0) | 2025.04.09 |
- Total
- Today
- Yesterday
- 기초
- 루틴
- 뉴스
- ChatGPT
- 경제
- 아침
- 운동
- IH
- 30분
- 습관
- 스크랩
- 실기
- 갓생
- 줄넘기
- SQL
- Ai
- 빅데이터 분석기사
- 프로그래머스
- 미라클모닝
- 오블완
- Python
- opic
- 고득점 Kit
- C언어
- llm
- 다이어트
- 아침운동
- 오픽
- 영어회화
- 티스토리챌린지
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |