스터디 - NoSQL

정상화·2023년 4월 5일
0

스터디

목록 보기
4/10

관계형 데이터베이스


관계형 데이터베이스에서는 관계(테이블)을 기반으로 데이터를 저장한다. 연관된 데이터를 조회하기 위해선 테이블을 조인해야 한다.

관계형 데이터베이스에 명령을 할 땐 SQL을 이용한다.

NoSQL


NoSQL은 SQL을 사용하지 않는 명령어이다.
애초에 데이터를 테이블로 저장하지 않으므로 SQL을 사용할 필요가 없다.

종류

  • MongoDB
  • Cassandra
  • HBase 등

RDBMS와 다르게 NoSQL에선 스키마가 없기 때문에 데이터의 형태가 고정돼있지 않다. 마치 DB에 객체를 저장하고 조회하듯 사용 가능하다.

비교

RDBMSNoSQL
스키마고정스키마다른 구조의 데이터처리 가능
속도중간빠름
확장성중간확장에 유리
성능중간대량데이터&분산처리 가능
안정성안정적RDBMS에 비해 떨어짐

성능/기능의 복잡도에 따른 db사용빈도

복잡한 기능이 필요할 때는 RDBMS가 유리하지만 기능이 비교적 단순할 경우 NoSql의 성능이 웃도는 것을 볼 수 있다.

Document 모델


document는 객체와 메타데이터를 저장하는 하나의 레코드이다.

예시

{
     "_id": 1,
     "first_name": "Tom",
     "email": "tom@example.com",
     "cell": "765-555-5555",
     "likes": [
        "fashion",
        "spas",
        "shopping"
     ],
     "businesses": [
        {
           "name": "Entertainment 1080",
           "partner": "Jean",
           "status": "Bankrupt",
           "date_founded": {
              "$date": "2012-05-19T04:00:00Z"
           }
        },
        {
           "name": "Swag for Tweens",
           "date_founded": {
              "$date": "2012-11-01T04:00:00Z"
           }
        }
     ]
  }
 {
     "_id": 2,
     "first_name": "Donna",
     "email": "donna@example.com",
     "spouse": "Joe",
     "likes": [
        "spas",
        "shopping",
        "live tweeting"
     ],
     "businesses": [
        {
           "name": "Castle Realty",
           "status": "Thriving",
           "date_founded": {
              "$date": "2013-11-21T04:00:00Z"
           }
        }
     ]
  }

위의 두 document는 구조가 비슷하지만 완전히 같진 않다. RDBMS와는 달리 데이터의 스키마가 고정돼있지 않다는 것이 NoSql과 RDBMS의 가장 큰 차이이다.

위의 예시와 같이 비슷한 document의 집합체를 Collection이라고 한다.
Collection 의 document들의 필드구조는 꼭 같지 않아도 된다.

document 모델의 장점

  • 개발자가 작업하기에 쉽고 빠른 직관적인 데이터 모델이다
  • 스키마의 가변성은 애플리케이션의 변화에 유연하게 대처할 수 있다.
  • 수평적인 확장이 가능하다

자료출처

NoSQL (Not only SQL) 용어설명
몽고db 공식 소개글

profile
백엔드 희망

4개의 댓글

comment-user-thumbnail
2023년 4월 6일

document 에 대해 접해보는 거에 비해서 잘 모르고 있었는데 알아 볼 수 있어 좋았습니다.

답글 달기
comment-user-thumbnail
2023년 4월 6일

Document 모델을 잘 몰랐지만 이해하기 쉽게 작성해주셔서 좋았습니다!

답글 달기
comment-user-thumbnail
2023년 4월 6일

NoSql과 RDBMS의 차이에 대해서 확실히 알고가는것 같아요! 👍😊

답글 달기
comment-user-thumbnail
2023년 4월 6일

항상 RDBMS만 사용해서 NoSQL에 대한 지식이 별로 없었는데 이번 기회에 알게되어 좋았습니다.

답글 달기