데이터베이스 설계는 요구사항 분석, 개념적 설계, 논리적 설계, 물리적 설계의 순서로 흐른다. 물리적 설계 단계에서는 저장 레코드의 양식을 정하고, 레코드 집중을 분석·설계하며, 접근 경로를 설계한다. 반면 스키마의 평가와 정제, 트랜잭션 인터페이스 설계처럼 구조와 관계를 다루는 일은 논리적 설계의 몫이고, 트랜잭션 모델링은 한 단계 앞인 개념적 설계에서 다룬다.
물리적 설계에서 챙기는 성능 기준은 응답 시간, 저장 공간의 효율, 트랜잭션 처리량이다. 저장 레코드의 양식을 설계할 때는 데이터의 타입, 값이 퍼져 있는 분포, 접근 빈도를 본다. 트랜잭션 모델링은 물리적 설계의 고려 사항이 아니므로 여기에 끼워 넣으면 오답이 된다.
DBMS를 구성하는 요소 가운데 인덱스는 테이블과 클러스터에 딸려 있으면서도 저장 공간은 따로 가진다. 데이터베이스에 쌓인 자료를 더 빨리 찾아보게 하는 것이 역할이다. 트랜잭션은 작업의 단위이고, 역정규화는 성능을 위해 중복을 남기는 설계 기법이며, 트리거는 특정 사건이 생기면 저절로 돌아가는 프로시저라 인덱스와 구분된다.
병행제어는 여러 사용자가 데이터베이스를 함께 쓸 때 문제가 없게 조율하는 기술이다. 목적은 시스템 활용도를 높이고, 응답 시간을 줄이며, 공유는 최대한 키우면서도 일관성을 지키는 것이다. 로킹은 데이터에 자물쇠를 채우는 대표 기법으로, 잠그는 단위가 커지면 관리 부담은 줄어들지만 함께 접근할 수 있는 폭이 좁아져 공유도가 낮아진다. 단위가 작아지면 오버헤드는 커지고 공유도는 높아진다. 타임스탬프 기법은 트랜잭션마다 시간 값을 부여해 처리 순서를 미리 정하는 직렬화 방식이고, 검증 기법은 실행을 마친 뒤에 확인한다.
장애로 망가진 데이터베이스를 이전의 정상 상태로 되돌리는 작업이 복구(Recovery)다. 커밋은 작업을 확정하는 명령이고, 어보트는 중단이며, 리스타트는 시스템을 다시 켜는 행위라 복구와 다르다. 장애는 트랜잭션 장애, 시스템 장애, 미디어 장애로 나눈다. 트랜잭션 장애는 논리적인 오류이므로 저장 매체에 상처를 주지 않아 복구 과정에서 데이터가 다치는 위험이 가장 작고, 미디어 장애는 디스크 자체가 망가지는 물리적 손상이라 가장 위험하다.