SQL/NoSQL

2021. 3. 15. 23:53·Tech/Worklog

SQL

  1. 장점/특징
    • 명확하게 정의된 스키마 (필드 이름과 데이터 유형. 구조에 맞는 레코드만 추가)
    • 데이터 무결성 보장  (정확성, 일관성)
    • 데이터 중복 피하기 위해 관계 이용
    • 대체로 수직적 확장 지원
      • 수평적 확장(데이터베이스 서버 성능 향상 (ex.CPU 업그레이드)
      • 수직적 확장(더 많은 서버 추가. 데이터베이스가 전체적으로 분산(하나의 데이터베이스에서 작동하나 여러 호스트에서 동작
  2. 단점
    • 덜 유연함. 데이터 스키마를 사전에 계획하고 알려야 함
    • 관계를 맺고 있어 조인문이 많은 복잡한 쿼리가 만들어질 수 있음
  3. 사용하면 좋은 경우
    • 관계 맺고 있는 데이터가 자주 변경되는 애플리케이션의 경우 (nosql의 경우 해당 데이터가 있는 모든 컬렉션 수정해야해 비효율적)
    • 변경될 여지가 없고, 명확한 스키마가 사용자와 데이터에 중요한 경우

NoSQL

  1. 장점/특징
    • 스키마도, 관계 없음 -> 언제든 저장된 데이터 조정/추가 가능. 유연함
    • 조인 개념이 없고 필요한 모든 것을 같은 문서를 작성
      • 조인이 필요할 땐? : 컬렉션을 통해 데이터를 복제하여 각 컬렉션 일부분에 속하는 데이터를 정확하게 산출하도록. 이 경우 데이터가 중복되어 영향을 줄 수 있으므로 조인을 잘 사용하지 않고 자주 변경되지 않는 데이터일 때 nosql쓰면 효과적
    • 다른 구조의 데이터를 같은 컬렉션에 추가 가능
    • 수직 및 수평적 확장 지원 
  2. 단점
    • 유연성으로 인해 데이터 구조 결정을 미루게 될 수 있음
    • 데이터 중복을 계속 업데이트 해야함
    • 데이터가 여러 컬렉션에 중복되어 있어 수정 시 모든 컬렉션에서 수행해야
  3. 사용하면 좋은 경우
    • 정확한 데이터 구조를 알 수 없거나 변경/확장 될 수 있는 경우
    • 읽기를 자주 하나 변경은 자주 없는 경우
    • 데이터베이스를 수평으로 확장해야 하는 경우 (데이터 양이 많은 경우)

**sql을 선택해 복잡한 JOIN문을 만들지 않도록 설계해 단점 없앨 수도 있고,

  Nosql 선택해 중복 데이터를 줄이는 방법으로 설계해 단점 없앨 수도 있음

 

*reference

https://siyoon210.tistory.com/130

https://github.com/gyoogle/tech-interview-for-developer

'Tech > Worklog' 카테고리의 다른 글

[JPA] insert 시 DB Default 값 적용 (@ DynamicInsert, @ ColumnDefault)  (0) 2022.07.17
Spring boot h2 연동  (0) 2021.09.14
ORM / Spring Data JPA  (0) 2021.08.05
'Tech/Worklog' 카테고리의 다른 글
  • [JPA] insert 시 DB Default 값 적용 (@ DynamicInsert, @ ColumnDefault)
  • Spring boot h2 연동
  • ORM / Spring Data JPA
sooomni
sooomni
  • sooomni
    Dev Log
    sooomni
  • 전체
    오늘
    어제
    • 분류 전체보기 (20)
      • Tech (20)
        • TIL (2)
        • Worklog (4)
        • DB (4)
        • Docker (6)
        • Cloud (3)
        • 책 리뷰 (0)
        • 이펙티브자바 (1)
      • 이직기 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    SQL
    NoSQL
    cloud
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
sooomni
SQL/NoSQL
상단으로

티스토리툴바