[DB] 그림으로 배우는 데이터베이스(2)

19·2022년 11월 26일
0

독서

목록 보기
2/3

2. 데이터의 보존 형식

데이터 모델

데이터베이스에는 일정한 규칙을 따라서 데이터가 저장되는데, 이렇게 저장되는 데이터의 구조를 데이터 모델이라고 한다.

계층형, 네트워크형, 관계형등이 있고, 가장 많이 사용되는 데이터 모델이 관계형 모델이다.


관계형 데이터베이스

관계형 모델로 데이터를 적재하는 데이터베이스를 관계형 데이터베이스라고 한다.

관계형 데이터베이스는 2차원 표 형식으로 데이터를 저장하며, 이 2차원 표를 테이블이라고 한다.
테이블을 통해 저장하려는 데이터의 종류별로 테이블을 생성해 데이터를 적재한다.

테이블의 열을 컬럼, 행을 레코드라고 부른다.

장점

  • 데이터베이스에 저장할 데이터 규칙을 설정할 수 있다. (데이터 스키마)
    • 숫자만 저장할 수 있다 or 빈칸으로 둘 수 없다 등등의 규칙
  • 복수의 테이블이 관련된 구성으로 데이터를 저장함으로써 데이터 중복을 허용하지 않는다

단점

  • 데이터가 방대해질수록 처리 속도가 느려지며 지연을 유발한다.
  • 분산하기 어렵다.
  • 비정형 데이터 (JSON등)를 저장하기 어렵다.

데이터 결합 (JOIN)

관계형 데이터베이스는 복수의 관련된 테이블끼리 조합해서 데이터를 취득할 수 있다.
데이터 결합(JOIN)을 하기 위해서는 관련된 테이블에 미리 테이블 간 연결을 위한 외래키(Foreign key)를 지정하고, 이를 통해 테이블을 결합해 마치 하나의 테이블처럼 출력할 수 있다.

관계형 데이터베이스는 데이터 결합(JOIN)을 통해 다양한 형식의 데이터를 표현할 수 있다.



NoSQL (Not Only SQL)

관계형 이외의 데이터베이스 관리 시스템을 의미한다.
빅데이터 같이 대용량 데이터를 취급하기 어려운 관계형의 문제를 해소하기 위해 등장했다.

장점

  • 처리가 신속하고 많은 양의 데이터를 다룰 수 있다.
  • 다양한 구조의 데이터를 저장할 수 있다.
  • 데이터를 분산해서 처리하는 것이 가능하다.

단점

  • 데이터 결합(JOIN)이 불가하다
  • 데이터 중복이 있을 수 있다.

이용 사례

NoSQL은 다양한 대용량 데이터를 고속으로 처리할 수 있어 데이터 해석이나, 실시간 처리가 요구되는 콘텐츠에 활용된다.
EX) 대규모 데이터 분석, 실시간 처리가 요구되는 콘텐츠(게임등)


NoSQL 종류

키 밸류형

  • key, value 데이터 쌍으로 묶은 것을 저장할 수 있는 모델
  • 간단한 구성으로 고속으로 읽고 쓰기가 가능하며, 정보 분산이 쉬움
  • ex) 접속 이력, 쇼핑 카트, 페이지 캐시등

컬럼 지향형

  • 하나의 행을 식별하는 key에 대해 여러 개의 key와 value 세트를 가질 수 있도록 구성된 모델
  • 행마다 형태가 정해지지 않은 데이터를 저장하는 것이 가능

Document 지향형

  • JSON등의 계층구조를 가진 형식의 데이터를 저장할 수 있는 모델
  • 미리 테이블 구조를 정해둘 필요 없이 자유로운 구조의 데이터를 그대로 저장하고 가져올 수 있음
  • MongoDB

그래프형

  • 관계성을 표현하는데 최적인 모델
  • 네트워크 구조의 데이터를 저장하는 데 유리
    • ex) 사용자 A(노드)가 B와 친구(릴레이션십)인데, B는 C, D와 친구인 경우, A -> B -> C,D로 연결
  • 노드/릴레이션십/프로퍼티로 구성
  • 어떤 노드의 릴레이션십을 통해 검색을 고속으로 할 수 있다
  • ex) 쇼핑 사이트의 추천 시스템, 효율적인 경로 탐색등



참고

그림으로 배우는 데이터베이스 - 사카가미 코오다이

profile
하나씩 차근차근

0개의 댓글