DB 종류와 특징

carlkim·2024년 1월 5일
0

시스템엔지니어링

목록 보기
30/35

데이터베이스(Database, DB)는 데이터를 구조화하고 저장하는 시스템으로서, 다양한 종류와 특징을 가지고 있다.

1. 관계형 데이터 베이스(RDB)

행(Column)과 열(Row)를 가지는 표 형식 데이터를 저장하는 형태의 데이터베이스

왜 관계형이라 부르는가?

-- 각 테이블은 행들이 서로 연결되는 관계 (1:1, 1:N, N,M)을 가질 수 있다.
-- 각 테이블은 Primary Key 라는 고유한 값을 통해 식별될 수 있다.

장점:
1. 데이터 일관성과 정확성이 유지,
2. 복잡합 쿼리 작성이 가능(JOIN 등의 연산 지원)

단점:
1. 테이블 간 관계 맺는 과정이 복잡하다
2. 대량 데이터 입력/조회시 성능이 저하된다.
3. 테이블 구조 변경시 많은 패널티가 따른다.

  1. 릴레이션(==테이블)
    -- Entity, Table 과 대응되는 용어로 속성(column)과 튜플(row)로 구성되어 있다.

-- 논리 데이터 모델에서 Entity(==table), 관계형 데이터베이스에서는 Table, 관계형 모델이론에서는 Relation이라 부른다.

  1. Attribute (속성)
    -- entity를 구성하는 논리적 단위, 열(세로)
    -- 파일 구조상에서 데이터 항목 / 데이터 필드를 의미, 테이블에서는 하나의 컬럼에 대응.

  2. 튜플
    -- 테이블에 있는 행(가로)를 의미한다.

RDB 종류

Oracle, Mysql, Postgresql, MariaDB 등이 있다.

2. NoSQL(Not Only SQL) 데이터베이스

등장배경

빅데이터가 등장하면서 RDB가 데이터 처리하는데 필요한 비용이 증가하기에
비효율성을 해결하기 위해 등장.
데이터의 일관성을 포기하는 대신, 여러 대의 컴퓨터에 데이터를 분산하여 저장하는 것을 목표로 등장

정의

: Not Only SQL 의 약자. RDBMS와 같은 관계형 DB가 아닌 다른 형태의 데이터 저장 기술.
: 많은 양의 데이터의 처리 속도를 향상시키기 위해 임시 저장공간에 데이터를 저장, 응답하는 방법과 단순 저장작업에 있어 매우 최적화된 키 값 저장 기법을 사용한다.

-- Key - Value의 형태로 저장되는 데이터베이스, 키를 사용해 데이터 관리 및 접근.

-- 스키마 없고, 관계도 없다.

장점 : 확장성이 용이하며, 다양한 데이터 형식을 다룰 수 있다.

단점 : 일부 경우에서 데이터 일관성이 상대적으로 낮을 수 있다.

특징
1. 데이터 간에 관계를 정의하지 않는다. (테이블 간에 연결해서 조회할 수 있는 JOIN 기능이없다)
2. 데이터 속성들을 동적으로 정의
3. 데이터 조회를 위해서는 비 SQL 인터페이스롤 통해 접근해야한다.

-- NoSQL은 비정형 데이터(메신저 텍스트, 음성, 이미지 등)를 다룰 수 있음
-- 수평 확장이 가능하여 분산형 컴퓨팅(클라우드)에 적합

몽고디비, 레디스

3. 그래프 데이터베이스

정향 데이터 위주 처리만 가능한 관계형 데이터베이스 보환하기 위해 등장.
NoSQL 계열의 데이터베이스이다.

  1. GDB는 데이터를 노드와 엣지로 표현하는 데이터 베이스
  2. 노드는 개체(ENTITY)를 나타내고 엣지는 노드 간의 관계로 표현
  3. 노드 및 엣지는 그래프로 구성
  4. 높은 성능을 가지고 있고 복잡한 쿼리 처리 가능
  5. 대규모의 데이터와 복잡한 관계를 가진 데이터 처리에 적합
  6. 보통 네트워크 관련 데이터에 많이 활용.

GDB 종류

NEO4J

4. 시계열 데이터베이스(TSDB, Time Series Database)란?

시계열 데이터란 시간이 흐름에 따라 발생하는 데이터를 의미한다.
(SAR 로 축적한 데이터, 시간이 흐름에 따라 변하는 온도, 풍향, 주가 같은 데이터가 시계열 데이터)
시계열 데이터는 기본적으로 데이터의 양이 방대하고 끊임없이 증가한다.
기록되는 각각의 데이터들은 시간 종속성을 가진다는 특성이 있다.
RDB, NoSQL로 시계열을 다루기에 큰 불편함이 있기 때문에 시계열 데이터가 따로 생기게 되었다.

시계열 데이터베이스(TSDB)는 시계열 데이터를 효율적으로 다루기위해 고안된 데이터베이스입니다.

시간이 흐름에 따라 많은 양의 데이터가 끊임없이 쌓이기 때문에 쓰기 성능에 최적화가 되어있습니다.
RDB는 인덱스가 걸려있으면 데이터의 양이 커질수록 쓰기 성능은 점점 저하되지만 TSDB의 인덱스는 이런 경우에도 성능이 떨어지지 않도록 만들어졌습니다.
TSDB는 시간에 따라 저장공간을 분리하고 시간으로 쿼리를 할 수 있습니다.

TSDB는 쓰기와 조회에 대해서는 고도의 최적화를 했습니다. 반면 업데이트와 삭제에 대한 성능은 포기할 수밖에 없습니다. 하지만 이것은 그리 큰 문제가 되지 않습니다.

시계열 데이터 베이스 종류

influxDB

influxDB의 구조

  1. 메모리기반 데이터베이스

인메모리 DB는 기존 데이터베이스가 디스크에 데이터를 관리하는 반면,
메모리에 데이터를 업로드하여 사용하는 데이터베이스를 말합니다.
대용량 데이터의 증가와 맞물려 실시간 트랜잭션의 증가로 고성능 처리 요구에 대응하기 위학 목적으로 만들어졌습니다.
데이터베이스의 기본적인 기능과 실시간 시스템 기술의 결합으로 Real Time Constraint와 DB Operation 기능을 함께 제공합니다.
단 메모리에 저장하는 만큼 주기억장치의 휘발성으로 인해 오류 복구가 주요 해결 과제입니다.

profile
기본부터 가면 됩니다.

0개의 댓글

관련 채용 정보