[DB] Distributed Database

양현지·2023년 5월 17일
1

DB

목록 보기
4/15

병렬 DB(테이블의 데이터를 분할) VS 분산 DB (table 분할 시 vertical(세로분할)/horizontal(가로분할) partitioning을 통해 table 자체를 쪼개서 site에 할당,물리적 분할)

1. Distributed Database란?

DDBMS(Distributed DBMS)
: 물리적으로 분산되어 존재하지만 논리적으로 하나의 데이터베이스 시스템

  • 사용자는 자기 데이터가 어디 위치한지 알 필요가 업음
  • 사용자는 여러 사이트에 access하는 트랜잭션을 마치 로컬 트랜잭션처럼 수행할 수 있어야함

(즉 사용자는 분산 여부를 모르게 작업이 가능해야함)

2. Types of Distributed DB

1) Homogeneous

: 각 site의 dbms가 동일 (e.g 전부 다 oracle 사용)

2) Heterogeneous

: 각 site의 dbms가 다를 수 있다 (e.g. oracle, db2, PostgreSQL~, 다르게 쓸 수 있음)

3. Distributed DBMS Architecture

1) Client-Server

질의가 client로 들어오면 single site(server)로 보냄, 모든 질의 처리는 서버에서 수행됨

2) Collaborating-Server

서버만 존재, 질의가 서버로 들어오면 여러 서버에서 나눠서 수행

4. Storing Data

  • Fragmentation
    ① Horizontal : 수평 분할

    테이블의 튜플(데이터 레코드)을 기준으로 데이터 분할

    ② Vertical : 수직 분할

    수직 분할은 테이블의 속성(열)을 기준으로 데이터 분할

  • Replication
    ① 동기 : force write to disk & poor response time
    ② 비동기 : 같은 value를 읽어와도 site별로 값이 다를 수 있음 & better response time

    복제가 필요한 이유?
    Increased availability
    데이터를 지리적으로 분산된 위치에 복사함으로써 지역적인 데이터 접근을 가능하게함.

5. Distributed Catalog Management

: 카탈로그는 분산된 데이터의 위치(site), 복제 정책, 데이터 파티셔닝 정보 등을 관리합니다. 카탈로그는 분산 데이터베이스 시스템의 구성 요소들 간에 정보를 공유하여 데이터의 일관성과 가용성을 보장

<local-name, birth-site> : 각 fragement의 복제의 정보

  • site catalog ★
    : site 정보 관리. 어떤 site가 어떤 object(fragments, replicas)를 가지고 있는가를 알고 관리해줘야함
    => 릴레이션을 찾을 때 birth-site 카탈로그를 가지고 찾을 수 있음

※ Distributed Database에서 질의를 어떻게 처리하고 join연산을 어떻게 효율적으로 수행하는가에 대해 Distributed Database-② 에 작성한다.

0개의 댓글