포도가게의 개발일지

SQL vs. NoSQL 본문

DB

SQL vs. NoSQL

grape.store 2022. 2. 7. 01:00
반응형

 

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