문제2) 데이터저장 측면에서 파일, 데이터베이스, 블록체인을 비교하시오
답)
1. 데이터의 저장 방식. 파일, 데이터베이스, 블록체인의 저장 측면 개념 비교
비교대상
|
아키텍처
|
정의
|
파일
|
|
- 컴퓨터에서 파일이나 자료를 쉽게 발견 및 접근 할 수 있도록 보관 또는 조직하는 체제
|
데이터베이스
|
|
- 여러 사람이 공유하여 사용할 목적으로 체계화해 통합, 관리하는 데이터의 집합
|
블록체인
|
|
- 트랜잭션을 기록하고, 자산을 추적하고, 신뢰를 구축하기 위한 불변 공유 원장
|
2. 데이터의 저장 방식. 파일, 데이터베이스, 블록체인의 저장 측면의 구조 비교
비교항목
|
파일
|
데이터베이스
|
블록체인
|
저장구조
|
- 컴퓨터에서 파일이나 자료를 쉽게 발견 및 접근할 수 있도록 보관또는 조직하는 체제
|
- 이진 트리를 확장해 하나의 노드가 가질 수 있는 자식 노드의 최대 숫자가 2보다 큰 B-Tree 구조
|
- 모든 자식 노드들이 암호학적 해시로 이뤄진 데이터 블록을 갖는 트리 형태의 자료 구조인 머클 트리
|
인프라 유형
|
|
|
|
구성요소
|
- 블록(Block), 데이터블록(DataBlock)
|
- Root, 브랜치(Branch), 리프(Leaf) 노드
|
- 모든 자식 노드들이 암호학적 해시로 이뤄진 데이터 블록을 갖는 트리 형태의 자료 구조인 머클 트리
|
종류
|
- FAT32, NTFS, EXT, EXT2,EXT4, XFS, NFS
|
|
- 비트코인(bitcoin)
- 이더리움(ethereum)
|
저장데이터의 접근제어
|
- 파일 또는 디렉토리 단위로 접근 권한 설정
- Linux의 경우 Owner,Group, Other로 읽기,쓰기, 실행 단위 권한제어
|
- 데이터베이스의 소유자와 접근 정책에 따라 접근 가능
|
- 블록체인 유형에 의존적
- Private의 경우 사전에 허가 받은 참여자만 접근 가능하지만, Public형의 경우 누구나 참여 가능
|
저장 데이터 소유 및 관리주체
|
- 파일 저장장치 소유자
- 파일시스템 소유자가 운영체제 통해서 관리
|
- 개인 혹은 기업 소유로 단일관리자 존재
- 데이터베이스 관리자가 데이터베이스 엔진을 통해 관리
|
- 관리자가 여려 명이 존재하며 각자 원장의 사본을 보유하고 관리
|
데이터 처리 속도
|
|
- 실제 하드디스크에 쓰는 시간과 데이터베이스의 처리 시간이 존재하나 상대적으로 빠름
|
- 합의 알고리즘을 위해 상대적으로 긴 시간이 필요
|
3. 데이터의 저장 방식. 파일, 데이터베이스, 블록체인의 저장 측면의 생성과 삭제 비교
비교항목
|
파일
|
데이터베이스
|
블록체인
|
저장단위
|
|
- 컬럼(column), 테이블(table) 단위
|
|
데이터 생성 방식
|
- 파일 시스템 드라이버통해 API 형식으로 지원
- 파일 시스템이 물리적 장치(device)의 유형을 지원 여부에 따라 생성
|
- DDL 언어를 이용하여 생성된 테이블에 DML 언어를 이용하여 insert query 통해 생성
|
- 합의 알고리즘(consensus algorithm)을 통해 노드 참여자의 승인하에 데이터 생성 후 연결 방식
|
저장 데이터의 공유
|
- 기본적으로 공유 미지원
- NFS(Network File System)으로 공유는 가능하나 매우 제한적
|
- 데이터베이스는 데이터를 여러 사용자에게 공유하기 위한 목적으로 사용
|
- 노드에 참여한 참여자는 공유된 정보를 자신의 체인에 추가함으로써 공유
|
생성 블록의 크기
|
- 운영체제와 파일시스템에 의존적
- 32bit Windows의 경우최대 약 4G까지 가능
|
- 데이터베이스에 따라 의존적
- MySQL의 경우 LONGTEXT 유형으로 약 4G 가능
|
- 각 블록 체인에 의존적
- 비트코인(bit-coin)의 경우 약1Mb로 제한, 이더리움은 평균적으로 20Kb에서 30Kb이며 최대 1Mb 가능
|
트랜잭션 처리
|
- 별도의 트랜잭션 미지원
- 저장 중 실패 발생 시 데이터 전체 손실
|
- 원자성(Atrocity), 일관성(Consistency), 고립성(Isolation), 지속성(Continuous) 보장
|
- 합의 알고리즘을 통해 트랜잭션이 처리되며 합의가 이뤄진 것만 원장에 저장
|
데이터 중복
|
|
- 데이터의 중복을 허용하지 않으나, 역정규화를 통해 일부 중복 허용
|
- 하나의 데이터가 여러 참여자에게 중복되어 저장
- 하나의 노드에는 데이터 중복이 최소가 되도록 저장
|
저장된 데이터의 공격
|
- 악의적 공격으로부터 접근 제어를 통해 일부 방어 가능
|
- 데이터베이스의 접근제어 정책을 통해 일부 방어 가능
|
- 악의적 데이터 조작 시도는 51% 공격을 통해 가능하며, 이 또한 다양한 방법으로 차단되어 현재는 사실상 불가능
|
데이터 삭제
|
|
|
- 비가역성으로 인해 삭제 불가능
- 삭제가 필요한 경우 삭제가 되었다는 항목을 추가하여 삭제
|
데이터 복구
|
- 손실된 데이터는 일반적 으로 복구가 곤란 RAID 등의 부가적 구성을 통해 복구 가능
|
- 장애 발생한 경우 데이터베이스 회복 메커니즘을 통해 데이터 복구
- 일부 데이터 손실 가능
|
- 손실된 데이터의 경우 복구가 불가능한 경우 발생
- 비트코인 지갑 분실, 손상발생 시 복구 난해
|
공감과 댓글은 아이티신비에게 큰 힘이 됩니다.
블로그 글이 유용하다면 블로그를 구독해주세요.♥