분산 데이터베이스 투명성
분산 데이터베이스 투명성은 분산 특성을 숨겨 단일 DB처럼 쓰게 하는 성질이다. 사용자는 데이터가 어디 있는지, 몇 벌인지, 어떻게 쪼개졌는지 알 필요가 없다. 투명성의 종류는 여섯 가지이며 다음 장면에서 하나씩 본다. 투명성은 분할, 위치, 지역사상(명명), 중복,…
주요 장면
대본
정의
분산 데이터베이스 투명성은 분산 특성을 숨겨 단일 DB처럼 쓰게 하는 성질이다.
사용자는 데이터가 어디 있는지, 몇 벌인지, 어떻게 쪼개졌는지 알 필요가 없다.
투명성의 종류는 여섯 가지이며 다음 장면에서 하나씩 본다.
여섯 가지 투명성
투명성은 분할, 위치, 지역사상(명명), 중복, 장애, 병행의 여섯 가지다.
분할 투명성은 릴레이션이 단편으로 나뉘어도 원래 릴레이션처럼 질의하게 한다.
위치 투명성은 저장 위치를 명시하지 않아도 접근하게 한다.
중복 투명성은 같은 데이터의 복제본이 있어도 사용자가 알 필요가 없게 한다.
장애 투명성은 구성요소에 장애가 나도 트랜잭션의 원자성을 유지한다.
병행 투명성은 동시에 실행되는 트랜잭션의 결과가 일관되게 유지되게 한다.
구조와 질의 처리
분산 DB는 사용자의 질의를 전역 스키마 기준으로 받는다.
분산 질의 처리기는 질의를 단편 질의로 바꾸고, 카탈로그에서 사본 위치를 찾아 사이트를 고른다.
사이트별 부분 질의를 실행한 뒤 결과를 합쳐 사용자에게 돌려준다.
갱신은 복제본 전체에 반영되며, 커밋은 2단계 커밋으로 확정한다.
예시로 보기
가상의 예로 고객 테이블 Customer가 서울과 부산 두 사이트에 수평 분할되어 있다고 하자.
사용자는 Customer를 한 개의 테이블로 보고, 사이트 위치를 지정하지 않는다.
시스템은 카탈로그에서 코드 3이 서울 단편에 있음을 찾아 서울 사이트에만 질의를 보낸다.
Region 조인은 로컬 사본을 쓰고, 서울 사이트가 장애를 일으키면 복제 사이트가 응답한다.
이 예에서도 질의 경로는 감춰지지만 전송과 동기화 비용은 여전히 남는다.
헷갈리는 점
가장 흔한 실수는 위치 투명성과 명명 투명성을 같은 뜻으로 쓰는 것이다.
위치 투명성은 저장 위치를 몰라도 접근하는 성질이고, 명명 투명성은 고유 이름으로 식별하는 성질이다.
분할 투명성과 중복 투명성도 혼동하기 쉽다. 단편화와 복제본은 각각 따로 가려지는 성질이다.
답안에는 여섯 가지 투명성을 빠짐없이 쓰고, 구현 수단까지 함께 적는다.
정리
정리하면 분산 데이터베이스 투명성은 사용자가 분산을 의식하지 않게 하는 성질이다.
투명성이 높을수록 편의성과 이식성은 좋아지지만 성능 오버헤드가 커진다.
병행 투명성은 타임스탬프와 분산 2단계 로킹으로 구현한다.
시험에서는 여섯 가지 종류와 구현 수단, 2단계 커밋의 역할을 함께 쓴다.