업데이트:

SQL

SQL은 Structured Query Language의 약자로, 관계형 데이터베이스와 상호작용 할 때 사용되는 언어이다. 관계형 데이터베이스라는 의미로도 사용된다고 한다.

관계형 데이터베이스


관계형 데이터베이스의 큰 특징 두 가지는 엄격한 스키마관계이다.

✅ 정해진 데이터 스키마에 따라 테이블에 데이터를 저장한다.

✅ 관계를 통해 연결된 여러 테이블에 데이터가 분산된다.

즉, 정해진 구조에 맞지 않는다면 레코드를 추가할 수 없고 관계라는 것을 이용해 데이터의 중복을 방지한다.

관계형 데이터베이스 관리 시스템, RDBMS


▪️ MySQL ▪️ Oracle ▪️ PostgreSQL ▪️ Microsoft SQL Server

NoSQL

앞서 살펴봤던 관계형 데이터베이스의 반대 개념으로 스키마와 관계가 없다. NoSQL에서는 레코드를 문서, 테이블을 컬렉션이라 부른다. SQL과 다르게 NoSQL에서는 다른 구조의 데이터를 같은 컬렉션에 추가할 수 있다.

비관계형 데이터베이스


✅ 유연성 — 스키마가 없어 필드의 추가, 삭제가 자유롭다.

✅ 확장성 — 수직, 수평 확장이 용이하다.

✅ 고성능 — 대용량 데이터를 처리하는데 뛰어나다.

✅ 가용성 — 여러 대의 백업 서버 구성이 가능해 서버 중단 없이 서비스할 수 있다.

확장, Scaling


▪️ 수직적 확장 : 데이터베이스 서버 성능 향상 ex. CPU 업그레이드

▪️ 수평적 확장 : 더 많은 서버가 추가되고 데이터베이스가 전체적으로 분산됨

데이터베이스


▪️ MongoDB ▪️ BigTable ▪️ Redis ▪️ RavenDB Cassandra ▪️ HBase ▪️ Neo4j ▪️ CouchDB

비교

. SQL NoSQL
데이터베이스 관계형 비관계형
스키마 O X
데이터 중복 X O
확장성 대체로 수직적 확장 수직 및 수평 확장 가능
적합 케이스 - 관계를 맺고 있는 데이터가 자주 변경되는 경우
- 명확한 스키마가 사용자와 데이터에게 중요한 경우
- 데이터베이스의 ACID 성질을 준수해야 하는 경우
- 정확한 데이터 구조를 알 수 없을 경우
- 데이터 구조가 자주 업데이트 되는 경우
- 읽기는 잦지만 데이터 변경은 거의 없는 경우
- 데이터베이스를 수평으로 확장해야 하는 경우

댓글남기기