
정답사용자는 저장 구조를 몰라도 질의(query)만으로 튜플에 접근한다는 설명이 물리적 데이터 독립성에 부합합니다.
핵심 개념
물리적 데이터 독립성(physical data independence)
물리적 데이터 독립성은 파일 구조·인덱스·저장 위치 같은 내부 스키마가 바뀌어도 개념 스키마와 응용 프로그램은 영향을 받지 않는 성질을 말합니다. 3단계 스키마 구조에서 개념 스키마와 내부 스키마 사이의 사상(mapping)이 이를 보장해 줍니다. 핵심은 사용자가 '데이터가 어느 파일에 어떤 형태로 저장되어 있고 인덱스가 있는지'를 전혀 몰라도 SQL 같은 선언적 질의만으로 원하는 데이터를 얻을 수 있다는 점입니다. 반대로 특정 저장 구조나 접근 경로를 사용자가 반드시 알아야 한다면 그것은 물리적 독립성이 깨진 상태입니다.
선지별 해설
①DBMS는 내부적으로 B+트리 포인터, 레코드 식별자(TID) 같은 포인터를 자유롭게 사용해 저장 구조를 구현합니다. 포인터 사용 여부는 시스템 내부 구현의 문제일 뿐이며, 이를 금지하는 것이 물리적 독립성의 조건도 아니므로 틀렸습니다.
②한 릴레이션의 튜플을 어느 파일에 저장할지는 전적으로 구현에 달려 있습니다. 파티셔닝으로 여러 파일에 나누어 저장하거나 다중테이블 클러스터링으로 다른 릴레이션과 같은 파일에 섞어 저장할 수도 있으므로 단정할 수 없습니다.
③인덱스는 성능 향상을 위한 선택적 접근 경로일 뿐이고, 인덱스가 없으면 전체 테이블 스캔으로도 접근합니다. '반드시 인덱스를 사용한다'면 오히려 사용자가 물리적 접근 경로에 종속되는 셈이라 틀렸습니다.
④사용자는 저장 파일 구조나 접근 경로를 알 필요 없이 SQL 질의로 '무엇을' 원하는지만 명시하고, '어떻게' 찾을지는 DBMS가 결정합니다. 이것이 물리적 데이터 독립성이 실현된 전형적인 모습이므로 옳습니다.

정답외래키 값은 참조된 릴레이션에 실제로 존재하는 값이거나 NULL이어야 한다는 것이 참조 무결성의 정의입니다.
핵심 개념
외래키(foreign key)와 참조 무결성(referential integrity)
외래키는 어떤 릴레이션의 애트리뷰트(집합)로서, 다른(또는 같은) 릴레이션의 기본키를 참조하는 값을 갖는 애트리뷰트입니다. 참조 무결성 제약은 '외래키 값은 참조되는 릴레이션의 기본키 값 중에 반드시 존재하거나, 아니면 NULL이어야 한다'는 규칙으로, 존재하지 않는 개체를 가리키는 미아 튜플(dangling tuple)을 막아 줍니다. 이를 위해 외래키와 참조되는 기본키는 같은 도메인이어야 하며, 이름은 달라도 무방합니다. 반면 릴레이션 내 튜플을 유일하게 식별하고 기본키에 NULL을 허용하지 않는 규칙은 개체 무결성으로, 참조 무결성과 구분해야 합니다.
선지별 해설
①외래키가 동시에 기본키가 되는 경우는 흔합니다. 약한 개체 타입의 식별자나 1:1 관계를 합친 테이블, 다대다 관계를 푼 교차 테이블의 복합 기본키 구성 요소가 모두 외래키이면서 기본키이므로 틀렸습니다.
②값을 비교해 존재 여부를 따져야 하므로 외래키와 참조되는 기본키는 반드시 같은 도메인(자료형·의미)이어야 합니다. 애트리뷰트 이름은 달라도 되지만 도메인은 일치해야 하므로 이 선지는 틀렸습니다.
③참조 무결성 제약의 정의 그대로입니다. 외래키 값은 참조되는 릴레이션의 기본키 값 집합에 존재해야 하고, 아직 관계가 정해지지 않았다면 NULL을 가질 수 있습니다. 따라서 옳은 설명입니다.
④릴레이션 내 튜플을 유일하게 식별하는 것은 기본키의 역할이며 이를 규정한 것은 개체 무결성입니다. 참조 무결성은 릴레이션 '사이'의 참조 관계가 깨지지 않도록 보장하는 제약이므로 틀렸습니다.