안드로이드 SQL vs NOSQL ✍

푸른하늘·2021년 10월 17일
0
post-thumbnail

일반적인 데이터 관계베이스에 이 그림이 익숙하신 분은 있을것이다.

SQL

일반적 DB 그림

But

  • 포함 되는 데이터 유형에 대한 매우 엄격한 규칙이 존재합니다.
  • 규칙 때문에 DataBase에 표 하나 당 하나의 유형의 객체를 저장하게 됩니다.
  • 다른 객체와 연관(JOIN) 지으려면 다른 표에 있는 각 엔트리에 대한 ID 컬럼값을 포함하는 외부키를 생성하면 됩니다.

Example

한 번 식당 리뷰 앱을 만든다고 생각해봅시다.

One-> 식당 / 리뷰 표현하는 뷰 / 사용자를 위한 표가 필요합니다.
Then ->특정 식당에 대한 리뷰를 보려고 한다고 가정을 하면

Two -> 리뷰 표에서 식당 외부 키를 이용
WhY -> 특정 리뷰가 어떤 식당에 대한 것인지 보여주기 위해서

Three -> 나중에 식당 정보 화면을 보여주고 싶다면

  • 식당표에서 식당에 대한 정보 + 리뷰표에서 리뷰 정보가 필요하다.

fourth -> 사용자 ID가 리뷰에 대한 사용자 외부 키과 사용자 ID가 동일한 사용자들을 확인하게 된다.

꽤 단순하게 말했지만 관련 데이터베이스는 각 데이터안에 있는 스키마를 일일이 서로 연결시켜서 가져오기가 개발자에게는 쉽지는 않다.

NOSQL

  • 데이터 모델에 따라 값에 매핑되는 필드를 포함하는 문서에 데이터가 저장됩니다.
  • 모든데이터가 한 공간에 준비 되어있다.
  • 데이터베이스 읽기 작업이 매우 빨라진다.
  • 아주 쉽게 여러 기계에 데이터를 배포할 수 있다.

NoSQL
-문서와 집합체로 되어있어 JSON 오브젝트와 유사하지만
이러한 삼층형 중첩 구조는 처음 시작할 때 어려움으로 다가올 수 있지만
트리 안에 일부 요소를 검색하면 자동으로 모든 사항을 검색해준다.

일반적인 SQL (JSON 트리형식)

if) 리뷰어의 이름과 프로필 사진을 보고 싶을 때

모든 단일 리뷰에 대한 개별 데이터베이스 요청을 해야하는데
이렇게 하면 시간과 매번 요청해야 하는 작업이 번거롭다.

간단히 비교해보았지만 각각의 장단점이 존재한다.

일단 개발을 처음하시는 분이라면
-처음에 일단 평혐한 SQL로 시작하여 최대한 해보고 , 차후에 나중에 필요하면 그때! NOSQL로 넘어가는 것을 추천한다.

profile
Developer-Android-CK

0개의 댓글