반응형
SQL Database
- SQL(Structed Query Language)은 구조화 된 쿼리 언어를 의미
- RDBMS에서 데이터 저장, 수정, 삭제 및 검색 가능
- 엄격한 스키마: 데이터는 table에 record로 저장되며 table에 들어갈 수 있는 데이터와 그렇지 않은 데이터 필드로 구분
- 관계: 데이터의 중복을 피하기 위해 여러 table에 저장
NoSQL
- table → Collection / record → documents
- 다른 구조의 데이터를 같은 컬렉션에 추가할 수 있음
- JSON 데이터와 비슷한 형태
- 일반적으로 관련된 데이터를 동일 컬렉션에 넣음 복잡한 조인문을 작성하지 않아도 됨
수직 및 수평 스케일링
- 수직확장(Vertical Scaling): 단순히 서버 성능 향상 → SQL
- 수평확장(Horizontal Scaling): 더 많은 서버가 추가되고 데이터베이스가 전체적으로 분산됨 → NoSQL
SQL과 NoSQL의 장단점
- SQL의 장점
- 명확하게 정의된 스키마, 데이터 무결성 보장
- 데이터의 중복 X
- NoSQL 의 장점
- 유연성이 높음 → 새로운 필드 추가가 자유로움
- 데이터를 가져오는 속도 빠름
- 수직/수평 확장 가능 → 읽기 쓰기 요청처리 가능
- SQL의 단점
- 데이터 스키마는 미리 알고 계획해야함 → 데이터베이스 설계 수업을 듣는 이유
- 복잡한 join문
- 수직 확장만 가능 → 처리 능력에 한계
- NoSQL의 단점
- 데이터 구조 결정이 늦어짐
- 데이터변경시 여러 콜렉션과 문서를 수정해야함
무엇을 선택해야하는지
앱의 여러부분에서 데이터가 자주 변경되거나 구조가 극적으로 변경되지 않을 경우 SQL
정확한 데이터 요구사항을 알 수 없거나 관계를 맺는 데이터가 자주 변경되는경우, 한번의 변경으로 많은 문서를 수정할 필요가 없는 경우, 데이터 양이 많고 읽기,쓰기 처리량이 큰 경우 NoSQL
반응형
'개인 공부 > 나의 궁금증' 카테고리의 다른 글
[궁금증] 다국적 기업의 임원 직책명 정리 (0) | 2021.06.25 |
---|---|
[파이썬] python3 vs pypy3 (0) | 2021.04.05 |
[파이썬/Python3] 입력 받는 방법(input() vs sys.stdin.readline()) (0) | 2021.04.05 |