본문 바로가기
IT 지식/데이터베이스

NoSQL(Not Only SQL)

by 다빈치코딩 2023. 12. 13.

목차

    반응형

    오라클, MySQL로 대표되는 RDBMS의 언어인 SQL을 사용하지 않는 데이터베이스 관리 시스템인 NoSQL에 대해 알아보겠습니다.

    NoSQL의 정의

    Not Only SQL의 약자인 NoSQL은 RDBMS의 한계를 벗어나, 고용량의 비정형 데이터를 효율적으로 처리할 수 있는 구조와 유연성을 가진 분산 DBMS 입니다. NoSQL의 정확한 정의는 없지만 NoSQL이라 불리는 데이터베이스들은 공통적인 특징이 있습니다. 

     

    NoSQL의 특징

    첫 번째로 일관성(Consistency)은 DB의 절대적인 요소가 아니라는 것입니다. 즉 일관성을 조금은 포기하고 확장성에 주의를 기울이는 것입니다. 일관성을 유지하기 위해 DB가 멈추는 것보다, 서비스 하던것은 계속 서비스를 진행하도록 하는 것입니다.

     

    두 번째로 분산 저장을 합니다. 많은 트래픽을 감당하기 위해서는 분산 처리하는 것이 좀 더 효율적입니다. 그렇다고 RDBMS가 분산 처리가 안되는 것은 아닙니다.

     

    세 번째로 스키마가 유연하게 동작합니다. DB를 완벽하게 만들 필요 없이 컬럼을 자유롭게 추가하거나 변경할 수 있습니다. 또한 관계를 정확하게 정의할 필요가 없습니다. NoSQL은 데이터간의 관계를 정의하지 않아도 됩니다.

    등장 배경

    데이터를 저장하는 방식이라고 하면 무조건 SQL을 사용해야 한다고 생각하던 때가 있었습니다. 그 때의 선택지는 상용화 되어있는 오라클이나, MSSQL이냐 오픈 소스인 MySQL이냐를 고르는 수준이였습니다. 결론적으로 데이터베이스를 다룰려면 SQL을 필수적으로 사용해야 했습니다. 하지만 점점 기술이 발전하면서 RDBMS를 유지하기에는 비용이 너무 많이 들게 됩니다. 웹 2.0 환경과 빅데이터로 인해 트래픽이 몰리다보면 많은 트래픽에도 성능을 유지하게 하기 위해서 더 좋은 데이터베이스를 사용해야 합니다. 

     

    예를 들어 100개의 트래픽이 들어왔을 때 100개를 한 번에 처리하는 DB가 1만원이라면, 10개의 트래픽을 처리하는 DB는 500원이면 살 수 있습니다. 계산해보면 100개짜리 1개보다 10개짜리 트래픽을 처리하는 DB 10개로 분산 저장하면 5천원이 들게 됩니다. 이렇게 일관성을 약간 포기하고 여러 대의 컴퓨터에 데이터를 분산하여 저장하는 방식을 사용하게 되었습니다. 

     

    NoSQL의 종류

    NoSQL은 크게 4가지 종류로 나눌 수 있습니다. 

    1. Key-Value 형태. 속도가 굉장히 빠르고 단순합니다. Amazon Dynamo DB가 이에 속합니다.
    2. Document 형태. Key-Value에서 한 단계 진화한 형태로 Key-Document 형태로 저장됩니다. 대표적으로 MongoDB가 있습니다.
    3. Column-Family 형태. 유연성이 극대화 되어 있습니다. 단점은 타 테이블과 조인이 되지 않습니다. HBase, Cassandra가 있습니다.
    4. Graph 형태. 개체와 관계를 그래프 형태로 표현한 모델입니다. 페이스북, 트위터 같은 SNS에 적합합니다. Neo4j가 있습니다.

    간단하게 NoSQL에 대해 알아보았습니다. 다음에는 NoSQL에 빠지지 않고 등장하는 CAP 이론에 대해 알아보겠습니다.

     

    반응형

    'IT 지식 > 데이터베이스' 카테고리의 다른 글

    PACELC 이론  (0) 2023.12.15
    CAP 이론  (0) 2023.12.14
    LOD(Linked Open Data)  (0) 2023.12.12
    데이터베이스 정규화  (0) 2023.12.10
    데이터 베이스 이상현상(Anomaly)  (1) 2023.12.07