병렬 DB(테이블의 데이터를 분할) VS 분산 DB (table 분할 시 vertical(세로분할)/horizontal(가로분할) partitioning을 통해 table 자체를 쪼개서 site에 할당,물리적 분할)
DDBMS(Distributed DBMS)
: 물리적으로 분산되어 존재하지만 논리적으로 하나의 데이터베이스 시스템
(즉 사용자는 분산 여부를 모르게 작업이 가능해야함)
: 각 site의 dbms가 동일 (e.g 전부 다 oracle 사용)
: 각 site의 dbms가 다를 수 있다 (e.g. oracle, db2, PostgreSQL~, 다르게 쓸 수 있음)
질의가 client로 들어오면 single site(server)로 보냄, 모든 질의 처리는 서버에서 수행됨
서버만 존재, 질의가 서버로 들어오면 여러 서버에서 나눠서 수행
Fragmentation
① Horizontal : 수평 분할
테이블의 튜플(데이터 레코드)을 기준으로 데이터 분할
② Vertical : 수직 분할
수직 분할은 테이블의 속성(열)을 기준으로 데이터 분할
Replication
① 동기 : force write to disk & poor response time
② 비동기 : 같은 value를 읽어와도 site별로 값이 다를 수 있음 & better response time
복제가 필요한 이유?
Increased availability
데이터를 지리적으로 분산된 위치에 복사함으로써 지역적인 데이터 접근을 가능하게함.
: 카탈로그는 분산된 데이터의 위치(site), 복제 정책, 데이터 파티셔닝 정보 등을 관리합니다. 카탈로그는 분산 데이터베이스 시스템의 구성 요소들 간에 정보를 공유하여 데이터의 일관성과 가용성을 보장
<local-name, birth-site> : 각 fragement의 복제의 정보
※ Distributed Database에서 질의를 어떻게 처리하고 join연산을 어떻게 효율적으로 수행하는가에 대해 Distributed Database-② 에 작성한다.