SQL 성능 튜닝의 바탕은 물리적 설계 단계에서 실제 성능과 효율을 최적화하는 관점이다. 물리적 설계는 응답 시간, 저장 공간 효율화, 트랜잭션 처리도를 고려하는 단계로 본다. 스키마 평가와 정제는 논리적 설계에서 모델의 타당성을 검증하는 작업으로 구분한다.
물리적 설계의 범위에는 저장 레코드 양식 설계, 레코드 집중 분석, 접근 경로 설계가 포함된다. 트랜잭션 인터페이스 설계는 사용자나 시스템과의 상호작용을 정하는 논리적 설계의 업무로 구분한다. 따라서 저장 구조와 접근 방식의 선택을 물리적 영역으로 보고, 구조와 상호작용의 설계를 논리적 영역으로 나누어 판단한다.
무결성과 보안은 보호 대상이 다르다. 무결성은 권한 있는 사용자가 잘못된 데이터를 입력하는 것을 방지하는 성질로 본다. 보안은 권한 없는 사용자가 데이터베이스에 접근하거나 데이터를 변조하는 것을 막는 성질로 본다.
분산 데이터베이스에서는 데이터의 실제 저장 위치를 알 필요 없는 성질을 위치 투명성이라고 한다. 장애 투명성, 병행 투명성, 중복 투명성은 각각 장애, 동시성, 중복과 관련된 별개의 성질로 구분한다. 분산 데이터베이스는 신뢰성과 가용성, 확장성, 지역 자치성을 높이는 대신 동기화와 분산 트랜잭션 처리의 복잡성으로 개발 및 유지보수 비용이 증가한다.
병행 제어의 로킹 단위가 작아지면 잠금 대상이 세분화되어 공유도는 증가한다. 그러나 관리해야 할 잠금의 수가 늘어나 로킹 오버헤드는 증가한다. 이때 공유도와 오버헤드의 방향을 함께 판단해야 한다.
예제
물리적 설계의 고려 사항을 묻는 자리에서 스키마 평가를 성능 요소로 넣으면 논리적 설계와 물리적 설계의 경계가 흐려진다. 트랜잭션 인터페이스 설계를 물리적 설계로 묶는 설명도 같은 이유로 어긋난다. 무결성은 권한 있는 사용자의 오류 방지로, 보안은 권한 없는 사용자의 접근 차단으로 구분해야 한다. 분산 데이터베이스의 위치 투명성을 장애나 중복의 성질과 바꾸어 설명하는 것도 함정이 된다. 분산 데이터베이스가 비용을 감소시킨다고 하거나, 로킹 단위가 작아질 때 오버헤드가 감소한다고 하면 원리와 반대가 된다.
대표 기출 3문항
병행제어의 로킹(Locking) 단위에 대한 설명으로 옳지 않은 것은?
데이터베이스, 파일, 레코드 등은 로킹 단위가 될 수 있다.
로킹 단위가 작아지면 로킹 오버헤드가 감소한다.
로킹 단위가 작아지면 데이터베이스 공유도가 증가한다.
한꺼번에 로킹 할 수 있는 객체의 크기를 로킹 단위라고 한다.
정답과 해설 보기
정답 ② · 데이터베이스 병행제어 기법인 로킹의 단위와 그에 따른 특성을 묻는 문제이다. 로킹 단위는 한 번에 잠글 수 있는 객체의 크기를 의미하며, 데이터베이스, 파일, 레코드, 필드 등이 모두 단위가 될 수 있다.
로킹 단위가 작아지면 동시성(공유도)은 증가하지만, 관리 대상이 늘어나 오버헤드는 증가한다.
데이터베이스 무결성과 보안의 차이점에 대한 설명 중 옳은 것은?
무결성은 권한이 있는 사용자로부터 데이터베이스를 보호하는 것이고, 보안은 권한이 없는 사용자로부터 데이터베이스를 보호하는 것이다.
무결성은 권한이 없는 사용자로부터 데이터베이스를 보호하는 것이고, 보안은 권한이 있는 사용자로부터 데이터베이스를 보호하는 것이다.
무결성과 보안은 모두 권한이 있는 사용자로부터 데이터베이스를 보호하는 것이지만, 보안은 사용자 계정과 비밀번호를 관리한다.
무결성과 보안은 모두 권한이 없는 사용자로부터 데이터베이스를 보호하는 것이지만, 무결성은 DBMS가 자동적으로 보장해 준다.
정답과 해설 보기
정답 ① · 문제는 무결성(integrity)과 보안(security)의 차이를 묻고 있다. 무결성은 권한 있는 사용자의 실수나 잘못된 입력으로부터 데이터의 정확성과 일관성을 보호하는 것을 의미하고, 보안은 권한이 없는 사용자의 불법적 접근으로부터 데이터베이스를 보호하는 것을 의미한다.
무결성은 권한 있는 사용자로부터의 오류 방지, 보안은 권한 없는 사용자로부터의 보호이므로 ①이 옳다.
분산 데이터베이스의 목표 중 접근하고자 하는 데이터베이스의 실제 위치를 인지 할 필요가 없는 것과 관계되는 것은?
장애 투명성
병행 투명성
중복 투명성
위치 투명성
정답과 해설 보기
정답 ④ · 분산 데이터베이스의 투명성 목표 중 데이터의 실제 저장 위치를 사용자가 인지할 필요 없게 하는 것을 묻는 문제이다. 위치 투명성은 데이터가 물리적으로 어느 사이트에 저장되어 있는지 사용자에게 숨겨주는 특성이다.
사용자가 데이터가 물리적으로 어디에 저장되어 있는지 알 필요 없는 특성을 위치 투명성이라고 합니다.