포도가게의 개발일지
SQL vs. NoSQL 본문
반응형
SQL(RDBMS 관계형 데이터 베이스)?
- 서로 관련된 데이터 포인트에 대한 액세스를 저장 및 제공하는 데이터베이스 유형입니다.
특징
- 데이터는 정해진 데이터 스키마에 따라 테이블에 저장된다.(각 테이블마다 명확하게 정의된 구조가 있다. )
*스키마? 개체의 특성을 나타내는 속성(attribute), 속성들의 집합인 개체(entity), 개체의 관계에 대한 정의와 제약조건/
* 데이터베이스의 구조와 제약조건에 관해 전반적인 명세를 기술한 것 - 데이터는 관계를 통해 여러 테이블에 분산된다.
- 데이터의 중복을 피하기 위해 '관계'를 이용한다.(중복된 데이터가 없기때문에 데이터 수정에 용이하다)
- 테이블끼리 관계를 가지여하기 때문에 수평적 확장(즉 증설)이 어렵다
- 보통 수직적 확장을 하는 편
- table안에 레코드(record가 스크마를 벗어날수없다.)를 기록한다.(용어)
NoSQL(문자 그대로는 sql(Structured Query Language) 가 없는것을 의미한다.)
특징
- 강력한 스키마가 없기 때문에 서로 다른형식에 데이터를 저장할 수 있다.(프로젝트 초기 스키마가 명확하지 않을 때 좋다.)
- 관계를 가지지 않기 때문에 중복된 데이터가 존재한다(이건 추후 데이터 수정시 많은 데이터를 바꿔줘야되는것을 의미한다.)
- collection끼리 관계를 가지지 않기 때문에 수평적 확장에 매우 용이하다.(비용이 덜 든다)
- collection안에 document를 기록한다.(용어)
SQL | NoSQL |
관계형 데이터베이스 관리 시스템 | 분산형 데이터베이스 관리 시스템 |
수직적 확장 | 수평적 확장 |
스키마에 의해 선정의 되어 있음 | 스키마가 없거나 다이나믹함(유연함) |
견고하고 단단함! 부하를 잘 견딤 | SQL보다 일반적으로 빠른 경향이 있음 |
역사가 깊은만큼 설치/설정이 쉬워 시간이 절약됨 | 처음 모델링 자체가 요구되지 않아서 시간이 절약됨 |
꾸준한 속도를 보여줌 | 때때로 응답속도가 느릴 수 있음 |
여러 테이블을 조인하는 등 복잡한 쿼리 사용가능 | 테이블간 관계가 없어복잡한 쿼리사용 |
'DB' 카테고리의 다른 글
[DB] MongoDB[1] (0) | 2022.04.03 |
---|---|
DB Index?(업데이트 필요) (0) | 2022.02.07 |
SQL query 구문 연습 (0) | 2021.12.23 |
Mongoose DB value 값 구조 (0) | 2021.12.18 |
Mysql query 작성 (0) | 2021.11.07 |
Comments