ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • RDMNS와 NoSQL
    cs (컴퓨터 사이언스) 2023. 8. 16. 23:21

    RDMNS

    DMNS란

    DataBase Management System의 약자이다.

     

    DataBase는 여러사람에 의해 공유되어 사용될 목적으로 통합관리하는 데이터의 집합

     

    R 은 Relational의 약자이다.

    두개를 합쳐 RDMNS 즉, 관계형 데이터베이스를 뜻한다.

     

    그리고 이 곳에서 데이터를 활용하기위해 사용하는 언어가 SQL 이다.

     

    RDMNS를 사용하다 보면 스키마라는 것이나오는데

    데이터베이스를 구성하는 객채(Entity), 속성(Attribute), 관계(Relationship) 및 제약조건 등에

    관하여 전박적으로 정의한 메타데이터의 집합이다.

     

    메타데이터는 시간이 지남에 따라 많은 양의 데이터를 수집, 저장, 분석할 수 있도록

    일관된 방식으로 구조화된, 다른 데이터를 설명하는 데이터이다.

     

    저장방식은 SQL에 의해 저장되며, 정해진 스키마에 따라 데이터를 저장해야한다.

    저장된 데이터간의 관계를 나타내기위해 외래 키(foreign key)라는 것을 사용하는데

     

    이러한 테이블간의 관계에서 외래 키를 이용한 테이블 간 join이 가능하다는 것이 장점이다.

     

    하지만, 스키마 하나의 필드를 수정하면 다른 필드와의 관계를 다시 고려하여야하기때문에

    데이터베이스를 수정해야할 수도 있는 것이 단점이다.

     

    성능을 향상시키는 방법이 Scale-up 만을 지원한다.

     

    NoSQL

    Not only SQL 의 약자이다.

     

    정해진 스키마가 없어 자유롭게 데이터를 저장할 수 있다.

    RDMNS와 달리 테이블간의 관계를 정의하지 않는 것이 특징이다.

    테이블간의 관계가 정의되지 않아서 일반적으로 테이블간의 Join이 불가능하다.

     

    RDBMS로는 관리하기 힘든 복잡하고 용량이 큰 데이터를 관리할 수 있도록 등장했다.

     

    Key-Value Database

    데이터가 Key와 Value의 쌍으로 저장된다.

    key값은 어떠한 형태의 데이터도 담을 수 있다.(이미지, 동영상도 가능하다고 한다.)

    간단한API를 제공하는 만큼 속도가 빠른편이다.

     

    하지만 데이터의 중복이 발생할 수있으며,

    중복된 데이터가 변경 될 경우 수정을 모든 컬렉션에서 수행해야한다.

     

    Scale-up밖에 되지않는 RDBMS대신 데이터의 일관성은 포기하더라도  비용을 고려하여 Scale-out을 목표로 등장 하였다.

    (NoSQL은 Scale-up도 사용 가능하다.)

     

    Scale-up 

    기존의 서버보다 높은 사양으로 업그레이드 시켜 주는 것이다.

     

    간단한 예로 성능이나 용량증강을 목적으로 하나의 서버에 디스크를 추가하거나,

    CPU나 메모리를 업그레이드 시키는 것이다.

     

    성능 향상에 한계가 있으며, 향상에 따른 비용부담이 크며,

    서버 한 대가 부담하는 양이 많아 지는데, 다양한 이유로 서버에 문제가 생길시 큰 타격을 입게된다.

     

    Scale-out

    장비를 추가해서 서버를 확장하는 방식이다.

     

    기존서버의 용량, 성능의 한계에 도달했을 때, 비슷한 사양의 서버를 연결하여 처리하는 것이다.

    처리할 수 있는 데이터 용량이 증가하며, 기존 서버의 부하를 분담해 성능 향상을 기대할 수 있다.

     

    서버를 필요한 만큼 도입하는 방식이므로 확장이 용의하다.

    하지만 여러 노드를 연결해 병렬 컴퓨팅 환경을 구성하고 유지하려한다면.

    서버의 수가 늘어날수록 관리가 힘들어지는 것은 당연하다.

    'cs (컴퓨터 사이언스)' 카테고리의 다른 글

    프로세스와 스레드  (1) 2023.11.06
    의존성 주입이란  (0) 2023.08.29
    브라우저의 작동방식은?  (0) 2023.08.24
    http 메소드  (0) 2023.08.23
    동기와 비동기  (0) 2023.06.22
Designed by Tistory.