투로드
Coder ToLoad
투로드
전체 방문자
오늘
어제

블로그 메뉴

  • 홈
  • 알고리즘
  • CS
  • GITHUB
  • 태그
  • 분류 전체보기 (69)
    • Toy Project (0)
      • EternalSNS (0)
    • Algorithm (46)
      • BaekJoon (38)
      • Programmers (7)
      • Code Tree (1)
    • Computer Science (13)
      • JAVA (7)
      • DataBase (4)
    • Backend (7)
      • Spring (2)
      • JPA (2)
      • Django (3)
    • Mobile (2)
      • Android (2)
    • Unity (1)

인기 글

최근 글

hELLO · Designed By 정상우.
투로드

Coder ToLoad

[DB] RDB(관계형 데이터베이스)와 NoSQL
Computer Science/DataBase

[DB] RDB(관계형 데이터베이스)와 NoSQL

2022. 1. 4. 22:46

2022년 새해가 밝았다.

2021년은 개인적으로 이런저런 일들도 많았지만, 개발자가 되어가는 입장에서 본다면 많은 발전이 있었던 해였던 것은 확신할 수 있다.

작년은 확장에만 중심을 두었다면, 이제 겉핥기 식으로 배운 것들을 조금 더 구체화해가는 한 해가 되었으면 좋겠다.

 

저번 글에서 DBMS의 종류들에 대해 간단히 살펴볼 때 두 가지의 데이터베이스 종류가 있었다.

관계형 데이터베이스와 NoSQL이었는데 그 두 개가 정확히 무엇인지 궁금해서 추가적으로 알아보고자 한다.


 

Relational DataBase (관계형 데이터베이스)

 

개요

  • 현재 가장 많이 사용되고 있는 데이터베이스의 한 종류
  • 테이블(table)로 이루어져 있으며, 테이블은 키(key)와 값(value)으로 나타냄.
  • 데이터 종속성을 관계(Relationship)로 표현하는 것이 큰 특징

 

특징

  • 데이터의 분류, 정렬, 탐색 속도가 빠름
  • 신뢰성인 높고, 어떠한 상황에서도 데이터의 무결성을 보장
  • 기존에 작성된 스키마를 수정하기가 어려움
  • 데이터베이스의 부하를 분석하는 것이 어려움

 

관계

이름에 들어있는 관계형에서의 관계는 뭘 의미하는 걸까?

그것은 각 테이블의 행과 행이 연결되는 관계를 의미한다.

 

테이블 간 관계는 일대일(1:1), 일대다(1:N), 다대다(N:N)의 관계가 있다.

각 테이블들은 기본키(Primary key)와 외래키(Foreign key)를 통해 맺어지는데,

하나의 테이블과 다른 하나의 테이블만 연결된 것을 일대일이라고 한다.

 

일대다는 부모와 자식 관계를 예로 들어 설명을 많이 하는데, 선생과 학생으로 예를 들 수 있다.

각 반에는 한 명의 담임선생님과 여러 명의 학생이 존재하게 되는데, 이 한 명의 담임선생님께 속한 학생들은 일대다라고 할 수 있다.

 

다대다는 음... 동아리를 여러 개 가입할 수 있다고 하자.

그러면 여러 동아리는 각자 여러 명의 회원을 가지고 있을 것이고, 같은 사람이 여러 개의 동아리에 가입하기도 하였을 것이다.

이런 동아리와 여러 회원들의 관계를 테이블로 표현한다면 다대다가 될 것이다.

 

이러한 관계 구조가 관계형 데이터베이스를 나타내는 대표적인 특징이다.

 


 

NoSQL

 

개요

  • Not only SQL로 SQL만을 사용하지 않는 데이터베이스라고 함
  • 많은 양의 데이터를 효율적으로 처리해야 함에 따라 분산처리 시스템을 가진 NoSQL이 등장

 

특징

  • 분산형 구조로 여러 곳에 데이터를 분산 저장함
  • 테이블의 스키마가 유동적이다.

 

유형

NoSQL은 4가지의 대표적인 유형이 있다.


문서

  • JSON 객체와 비슷한 문서에 데이터를 저장
  • 각 문서에는 필드와 값의 쌍이 포함
  • 대량의 데이터를 수용하도록 수평 스케일아웃이 가능

 

대표적인 문서 데이터베이스 : MongoDB

 

Key-Value

  • NoSQL에서도 키값 데이터베이스가 존재함
  • 대량의 데이터를 저장해야 하지만 검색을 위해 복잡한 쿼리를 수행할 필요가 없는 경우 사용
  • 사용자 선호도 저장 또는 캐싱에서 사용

 

대표적인 Key-Value 데이터베이스 : Redis, DynanoDB

 

Wide-column store

  • 테이블, 행 및 동적 열에 데이터 저장
  • 각 행이 동일한 열을 가질 필요가 없다는 점에서 RDB에 비해 뛰어난 유연성을 제공
  • 대량의 데이터 저장에 적합
  • IOT 데이터와 사용자 프로필 데이터 저장 시 사용

 

대표적인 Wide-column store 데이터베이스 : Cassandra, HBase

 

그래프

  • 소셜 네트워킹, 추천 엔진 등에서 사용
  • 정점과 간선에 데이터를 저장
  • 정점에는 사람, 장소 및 사물에 대한 정보가 저장
  • 간선에는 정점과의 관계에 대한 정보가 저장

 

대표적인 그래프 데이터베이스 : Neo4j

 

 

 


 

RDB vs NoSQL

테이블 구조가 정해져 있고, 내부 데이터 수정이 빈번할 때 -> RDB

테이블 구조가 정확히 잡혀있지 않고(추가적으로 수정이 될 가능성이 높을 때) 대량의 데이터를 처리할 때 -> NoSQL

 

이렇게 생각할 수 있는 것 같다.

이번 자료조사를 통해 NoSQL에 대해 상세하게 알게 되어 좋다.

 

 

 

자료 출처

http://www.tcpschool.com/mysql/mysql_intro_relationalDB

https://www.mongodb.com/ko-kr/nosql-explained

저작자표시 (새창열림)

'Computer Science > DataBase' 카테고리의 다른 글

[DB] DBMS 종류별 간단 정리  (0) 2021.12.30
[DB] 데이터베이스 변수 명명법  (0) 2021.12.22
[DB] ER다이어그램 작성시 세부사항  (0) 2021.12.21
    'Computer Science/DataBase' 카테고리의 다른 글
    • [DB] DBMS 종류별 간단 정리
    • [DB] 데이터베이스 변수 명명법
    • [DB] ER다이어그램 작성시 세부사항
    투로드
    투로드
    훌륭한 프로그래머가 되어가는 과정을 담아보는 중입니다.

    티스토리툴바