DataBase/DB
SQL 과 NOSQL - 개념과 차이점
민돌v
2021. 9. 19. 13:55
스파르타 내일배움캠프를 진행하면서 MongoDB를 배웠다.
Mysql이 아닌 db를 처음 배우는 것이기에 깊이 들어가기전에 내가 배우고 있는 것이 무엇인지 파악하고 가야겠다.
DataBase
- 쉽게 쉽게, 데이터 저장소 | 즉, 데이터를 모아둔 것을 의미한다.
- 예전 미국 전시상황에서, 데이터를 모아두어 도서관처럼 사용하기 시자한 것에서 유례되었다고 한다.
DBMS (Database Management System)
- 데이터베이스 내의 데이를 접근하고, 정보를 제어하도록 해주는 소프트웨어 도구의 집합이다.
- 데이터를 점점 디저털로 바꿔서 저장하면서, 방대한 데이터를 효율적으로 관리하기 위한 도구이다.
DBMS 종류 (흔히 사용하는 큰 줄기 2가지만)
- SQL
- 관계형 데이터베이스(RDBMS)
- 행(Column) 과 열(row)로 구성된 Table 구조를 가진다.
- 테이블 구조를 먼저 구성하고, 테이블에 맞춰 데이터를 쌓는 정형화된 방식이다.
- NoSQL - (Not only Sql)
- 관계형 데이터베이스보다 덜 제한적인 일관성 모델을 이용하는 데이터저장 메커니즘을 제공한다. (비 관계형 DB)
- 키(key) - 값(Value)의 데이터 형식으로 저장된다.
- Table 구조 대신 Document형식을 가진다. Document는 키(key) 와 값(value)로 이루어져 있는 동적 스키마이다.
- 컬렉션은 Document의 그룹이며, RDBMS(sql) 의 테이블과 유사한 개념이다.
- 컬렉션 안의 document는 일반적으로 유사한 데이터를 모은다.
SQL 과 NOSQL의 차이점
SQL
- 명확하게 정의된 스카마구조를 가지며, 데이터 무결성을 보장한다.
- 유연하지 못하고, 데이터 스크마를 사전에 계획하고 그에 맞춰서 데이터를 쌓아야한다.
- 쿼리문을 사용해서 관계를 맺고 데이터를 뽑고해야해서 다소 복잡한 쿼리문이 만들어 질 수 있다.
SQL 데이터베이스 사용이 더 좋을 때
- 관계를 맺고 있는 데이터가 자주 변경되는 애플리케이션 경우
- 변경될 여지가 없고, 명확한 스키마가 사용자와 데이터에게 중요한 경우
NoSQL
- 스키마가 없다 -> 유연하다.
- 고로 데이터 테이블(Document)간의 관계를 정의하지 않는다. 테이블은 하나의 테이블이며 유사한 데이터를 모아놓은 것일 뿐이다. (테이블 간 조인 불가)
- 데이터의 일관성이 지켜지지 않는다
- 수평적 확장에 용이하다.
NoSQL 데이터베이스 사용이 더 좋을 때
- 정확한 데이터 구조를 알 수 없거나, 변경/확장이 될 수 있는 경우
- 읽기를 자주 하지만, 데이터 변경이 잦지 않은 경우
- 막대한 양의 데이터를 다뤄야 하는 경우
참고
https://ko.wikipedia.org/wiki/%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4
https://ko.wikipedia.org/wiki/NoSQL
https://khj93.tistory.com/entry/Database-RDBMS%EC%99%80-NOSQL-%EC%B0%A8%EC%9D%B4%EC%A0%90