SQL(RDBMS)

  • 관계형 데이터베이스 특징
    • 데이터는 정해진 데이터 스키마에 따라 테이블에 저장
    • 관계에 따라 여러 테이블에 분산된다.
    • 데이터의 중복을 피하기 위해 관계를 이용
  • 구조
    • 필드의 이름
    • 데이터의 유형

 

NoSQL

  • 비관계형 데이터베이스 사용
  • 스키마와 관계 사용 X
  • documents(도큐먼트) : SQL의 record
    • JSON과 비슷한 형태
    • ex. SQL : ORDER_TB, USERS_TB, PRODUCT_TB
    • ex. NoSQL : ORDER_TB에 모두 저장 -> JOIN을 하지 않는다.(데이터의 중복)
  • NoSQL은 다른 구조의 데이터를 같은 컬렉션에 추가 가능 <-> SQL는 정해진 스키마를 따라야 데이터 추가 가능
  • 대량의 분산 데이터를 저장하고 조회에 특화
    • 메모리나 임시 파일에 저장 후 클라이언트에 먼저 응답하는 방법을 지원. 스케일 아웃 지원
  • 가용성을 보장하기 위해 데이터 복제(Replication) 사용
    • 동일한 데이터를 다중 노드에 중복 저장하고, 다른 노드가 고장나도 데이터가 유실되지 않게 하는 방법
    • Master slave, Peer to Peer

 

SQL, NoSQL 

  • 수직적 확장 : 물리적 서버 성능 향상(CPU 업그레이드) -> SQL
  • 수평적 확장 : 분산된 데이터베이스와 서버 추가  -> NoSQL
  • SQL 장단점
    • 장점 : 명확한 스키마, 데이터 무결성, 관계 사용으로 데이터 중복 X
    • 단점 : 유연성 X, 번거로운 스키마 정의, 복잡한 JOIN문 발생 위험, 수직적 확장의 한계
  • NoSQL 장단점
    • 장점 : 스키마가 없어서 유연함, 빠른 데이터 조회, 수직 및 수평 확장 가능
    • 단점 : 유연성으로 인해 데이터 구조 결정을 미루게 될 수 있다. 데이터 중복을 계속 업데이트 해야 한다. 데이터 수정 시 모든 컬렉션에서 수행

+ Recent posts