비관계형 데이터베이스
실시간 웹 애플리케이션, 빅데이터에 사용된다.
저장 또는 검색 시 데이터 변환의 필요성이 적어진다
- 장점
- 높은 확장성, 가용성
- 사전에 스키마 (테이블, 행의 유형)을 정의하지 않아도 저장될 수 있다.
- 하나의 저장소 내에서 다양한 형식의 데이터를 쉽게 처리할 수 있다.
- 데이터 양이나 트래픽이 증가할 때 유용하다.
- 단점
- 데이터 변형, 중복을 막기 위한 데이터 사용 시 부적합하다
- 쿼리의 복잡성이 높아질 경우 다루기 어렵다
- 복잡한 조인 / 하위 쿼리 / WHERE 절의 중첩 질의 지원하지 않음
- Update가 잦은 프로젝트에는 부적합하다
관계형 데이터베이스
테이블 간의 관계 / 스키마를 지정해야 한다.
2차원 구조 모델 (엑셀 표를 생각하자!)
테이블 간의 관계를 나타내기 위해 외래키를 사용한다.
- 장점
- 데이터의 업데이트가 빠르다.
- 복잡한 데이터를 다루기 쉽다.
- 트랜잭션을 통한 안정적인 데이터 관리에 용이하다.
- 단점
- 정해진 스키마 규격에 맞춰 데이터를 다뤄야 한다
- 성능을 향상 시키기 위해서 할 수 있는 (Scale-Up, 수직적 확장)는 높은 비용이 든다. (낮은 유연성)
데이터, 트래픽 증가 시 데이터 처리를 위해 성능을 개선하는 방식
수직적 확장
수평적 확장
피드백 : 면접 시 바로 답변할 수 있을 만한 구어체의 3~4 줄 짜리 답변을 작성하자 / 모르는 단어는 찾아서 내 것으로 만들자!
NoSQL은 Not Only SQL의 약자로, 비관계형 데이터베이스를 의미합니다. 사전에 스키마를 정의하지 않아도 된다는 장점이 있습니다. 따라서 하나의 저장소 내에서 다양한 형식의 데이터를 쉽게 처리할 수 있습니다. 또한 Scale-out이 가능하여 확장성과 유연성이 높습니다. 하지만 스키마를 정의하지 않는다는 특징 때문에 데이터 변형, 중복을 막기 위한 데이터 사용 시에는 부적합합니다.
RDBMS는 관계형 데이터베이스로, 테이블 간의 관계나 스키마를 지정해야 합니다. 장점으로는 복잡한 데이터를 다루기 쉽고, 트랜잭션을 통한 안정적인 데이터 관리에 용이하다는 점입니다. 단점으로는 유연성이 낮아 성능을 향상 시키기 위해서는 Scale-Up만 가능하기 때문에 높은 비용이 든다는 것입니다.