반응형
SQL
정의
SQL은 Structured Query Language의 약자이다.
SQL 데이터베이스는 구조화된 데이터를 관계형 모델로 관리하는 데이터베이스 시스템으로, SQL을 사용해 데이터를 정의하고 조작한다.
특징
- 스키마 기반. 정해진 스키마에 따라 데이터 저장
- 관계형 데이터 모델로, 테이블 간 관계를 통해 데이터 분산
- ACID 준수 : 트랜잭션은 원자성(Atomicity), 일관성(Consistency), 고립성(Isolation), 지속성(Durability)을 보장
- SQL이라는 표준화된 쿼리 언어를 사용. 복잡한 쿼리를 지원
- 주로 수직적 확장 가능.
수평적 확장이 어려워 데이터 양이 크게 증가하면 성능 저하 발생할 수 있음
DBMS 예시
Mysql : 오픈 소스 RDBMS.
Oracle : 상용 RDBMS. 대규모 엔터프라이즈 환경에서 많이 사용.
PostgreSQL : 고급 오픈 소스 RDBMS. ACID 특성을 잘 지원함.
NoSQL
정의
NoSQL은 Not Only SQL을 말한다.
NoSQL 데이터베이스는 비관계형 데이터 모델을 사용하는 데이터베이스 시스템이다. 다양한 데이터 모델(문서, Key-Value, graph, Column-Family 등)을 지원하며, 스키마가 없거나 유연한 스키마를 갖고 있다.
특징
- 유연한 스키마로 필요에 따라 동적으로 스키마를 변경 가능
- 데이터를 여러 서버로 분산시켜 저장함으로써 대규모 데이터 처리와 확장이 용이
- 다양한 데이터 모델을 지원
- CAP 이론: 일관성(Consistency), 가용성(Availability), 파티션 내구성(Partition Tolerance) 중 두 가지 특성을 보장할 수 있음
- 일관성 유지가 어려울 수 있음. 데이터가 여러 컬렉션에 중복되어 있기 때문에 수정 시 모든 컬렉션에서 작업을 수행해야함
ㄴ 이러한 단점을 BASE 원칙을 통해 최소화.
ㄴ BASE원칙 : 일관성 대신 고가용성과 성능을 우선. 일시적인 데이터 불일치를 허용하되 최종적으로는 일관성을 보장함. - 수평적 확장이 가능.
- SQL에 비해 쿼리 기능이 제한적. JOIN 연산 지원 안하는 경우가 많음.
DBMS 예시
- MongoDB: 문서 지향. JSON과 유사한 BSON 형식의 문서 저장.
- Redis: key-value 저장소. 매우 빠른 성능을 제공하며 캐시, 세션 저장 등에 사용.
- Cassandra: 컬럼 패밀리 저장소. 높은 확장성과 가용성 제공.
SQL vs NoSQL
비교
특성 | SQL | NoSQL |
데이터모델 | 관계향 | 비관계형 |
스키마 | 고정 | 유연 |
확장성 | 주로 수직적 | 수평적 |
쿼리 언어 | SQL | 데이터베이별로 다양함 |
일관성 | 강한 일관성 | 최종 일관성 |
선택 가이드
SQL 데이터베이스를 선택해야 하는 경우
- 데이터 무결성과 일관성이 중요한 경우
ex) 금융, 거래 시스템, 회계 시스템 등. - 복잡한 관계형 데이터를 다루는 경우
ex)ERP 시스템, 공급망 관리 시스템 등. - 고도로 구조화된 데이터와 고정된 스키마가 필요한 경우
ex) 기업 내부 데이터베이스, 정부 데이터베이스 등.
NoSQL 데이터베이스를 선택해야 하는 경우
- 데이터 구조가 유연하고 자주 변경되는 경우
ex) 소셜 미디어 플랫폼, 콘텐츠 관리 시스템 등. - 대규모 데이터를 수평적으로 확장하여 처리해야 하는 경우
ex) 빅 데이터 애플리케이션, 클라우드 기반 애플리케이션 등. - 실시간 데이터 처리 및 빠른 응답 시간이 중요한 경우
ex) 실시간 분석 시스템, 캐시 시스템, IoT 애플리케이션 등.
728x90
반응형
'Computer Science > Database' 카테고리의 다른 글
이상현상(Anomaly) (0) | 2024.11.26 |
---|---|
정규화 (0) | 2024.11.25 |
SQL injection 종류와 방지 (0) | 2024.11.23 |
조인(JOIN) - ANSI SQL, MySQL, Oracle 예 (0) | 2024.11.22 |
트랜잭션(Transaction) & 트랜잭션 격리성 (0) | 2024.11.18 |