SQL (Structured Query Language)
: SQL 은 RDBMS(관계형 데이터베이스 관리 시스템) 의 데이터를 관리하기 위해 설계된 프로그래밍 언어로, NoSQL 보다 오래전부터 사용되어 왔으며 MySQL, PostgreSQL 등이 있다.
- SQL 에서는 엄격한 스키마(데이터 저장 구조)를 원칙으로 하기 때문에 스키마에 맞지 않는 형식의 데이터는 저장할 수 없다.
- SQL 은 데이터 사이의 관계를 지정하기 쉬워 각 테이블 간의 관계 지정을 통해 테이블에 접근할 수 있고, 중복 없이 해당 데이터만을 다룰 수 있다.
- SQL 은 일반적으로 수직정 확장(vertical scale)만을 지원해서, 하드웨어를 업그레이드 하거나 추가하여 서버의 성능을 향상시킬 수 있다.
NoSQL(Not Only Structured Query Language)
: NoSQL 은 SQL 보다 덜 제한적인 모델을 이용해 데이터의 저장 및 검색 매커니즘을 제공하고 mongoDB, redis 등이 있다.
- NoSQL 은 스키마가 없기 때문에 다른 구조의 데이터를 추가할 수 있다.
- NoSQL 은 하나의 컬렉션(SQL 에서의 테이블)에 관련 데이터를 모두 작성하기 때문에 중복된 데이터가 생겨서, 업데이트 시 주의해야 한다.
- NoSQL 에서는 수평적 확장(horizontal scale)이 가능하여 서버를 추가하면서 데이터베이스를 분산할 수 있다.
'CS 지식' 카테고리의 다른 글
멀티 프로세스와 멀티 스레드의 차이 (0) | 2023.01.15 |
---|---|
프로세스(Process)와 스레드(Thread)의 차이 (0) | 2023.01.15 |
교착상태(Dead Lock) (0) | 2023.01.08 |
트랜잭션(Transaction) (0) | 2023.01.02 |
정규화(Normalization) (0) | 2023.01.02 |