16차시

기본키·인덱스·관계 설정과 외부 데이터

Part 3. 데이터베이스 일반 · 출제 빈도 ★★☆

이 차시를 공부하는 이유

참조 무결성은 3과목 이론의 핵심 중 핵심입니다. '부모(기본 테이블)에 없는 값을 자식(관계 테이블)에 넣을 수 없다'는 한 문장만 정확히 이해하면 응용 문제까지 풀 수 있습니다.

1급에서 처음 배우는 내용

1급 전용 과목입니다. 엑셀 VLOOKUP으로 두 표를 연결하던 개념이 Access에서는 '관계'가 됩니다.

학습 목표

기본키와 인덱스의 설정 규칙과 효과를 설명할 수 있다.
테이블 간 관계의 종류와 설정 방법을 이해한다.
참조 무결성 규칙과 연쇄 업데이트·삭제 옵션의 동작을 설명할 수 있다.
외부 데이터 가져오기·연결하기·내보내기의 차이를 구분한다.

핵심 개념

1. 기본키 (Primary Key)
  • 각 레코드를 고유하게 식별하는 필드(또는 필드 집합)입니다. 디자인 보기에서 필드 앞에 열쇠 아이콘이 표시됩니다.
  • 기본키 필드에는 중복 값이나 Null을 입력할 수 없고, 이미 중복·Null 값이 있는 필드는 기본키로 지정할 수 없습니다.
  • 여러 필드를 묶어 기본키로 지정할 수 있지만 기본키 자체는 테이블당 하나입니다. 종류: 일련번호 기본키, 단일 필드 기본키, 다중 필드 기본키
  • OLE 개체, 첨부 파일, 계산 형식 필드에는 기본키를 설정할 수 없습니다.
  • 기본키를 지정하면 인덱스가 자동으로 '예(중복 불가능)'로 설정됩니다.
  • 기본키 없이도 관계를 설정할 수는 있지만, 관계가 설정된 테이블의 기본키는 해제할 수 없으므로 관계를 먼저 제거해야 합니다.
2. 인덱스 (색인)

장점

데이터 검색·정렬·그룹화 속도가 빨라집니다. 데이터가 많을수록 효과가 큽니다.

단점

레코드를 추가·수정·삭제할 때마다 인덱스도 갱신되므로 속도가 느려집니다.

인덱스 속성 값의미
아니요인덱스를 설정하지 않음
예(중복 가능)인덱스를 설정하고 같은 값 입력 허용
예(중복 불가능)인덱스를 설정하고 같은 값 입력 불가 (기본키 지정 시 자동)
  • 한 테이블에 최대 32개 인덱스, 하나의 인덱스에 최대 10개 필드를 사용할 수 있습니다.
  • 기본적으로 오름차순으로 정렬되며, 중복 값이 적은 필드에 설정할수록 효과적입니다.
  • OLE 개체, 첨부 파일, 계산 형식에는 인덱스를 설정할 수 없습니다.
시험 함정 포인트
'인덱스를 많이 만들수록 모든 작업이 빨라진다'는 오답입니다. 검색은 빨라지지만 입력·수정은 느려집니다.
3. 관계 설정과 참조 무결성

[데이터베이스 도구]→[관계]에서 기본 테이블의 기본키를 관련 테이블의 외래키로 드래그해 관계를 만듭니다. 두 필드의 데이터 형식이 같아야 하며(일련번호↔숫자(정수 Long)는 가능), 관계의 종류(1:1, 1:N)는 필드 조건에 따라 자동으로 결정됩니다.

관계 예시: <학과> 1 ─── N <학생>
<학과> (기본 테이블) <학생> (관련 테이블) 학과코드(PK) | 학과명 학번(PK) | 이름 | 학과코드(FK) D01 | 경영 26001 | 김하늘 | D01 D02 | 전산 26002 | 이바다 | D02 26003 | 박산들 | D02 ▶ 참조 무결성 적용 시 <학생>에 학과코드 'D09'는 입력 불가 (학과에 없음) ▶ <학과>의 D02는 학생이 있으므로 그냥 삭제·변경 불가
'관계 편집' 옵션효과
항상 참조 무결성 유지① 기본 테이블에 없는 값을 관련 테이블 외래키에 입력 불가 ② 관련 레코드가 있으면 기본 테이블 레코드 삭제 불가 ③ 관련 레코드가 있으면 기본키 값 변경 불가
관련 필드 모두 업데이트기본 테이블의 기본키 값을 바꾸면 관련 테이블의 외래키 값도 자동 변경
관련 레코드 모두 삭제기본 테이블의 레코드를 지우면 관련 테이블의 레코드도 자동 삭제
  • 조인 유형도 관계 편집 창의 [조인 유형]에서 지정합니다(내부 조인, 왼쪽·오른쪽 외부 조인 → 17차시).
  • 관련 테이블에 외래키 값이 Null인 레코드는 참조 무결성을 위반하지 않습니다.
시험 함정 포인트
'참조 무결성을 설정하면 관련 테이블의 레코드를 삭제할 수 없다'는 오답입니다. 막히는 것은 기본(부모) 테이블 쪽의 삭제·변경입니다.
4. 레코드 추가·삭제
  • 새 레코드는 항상 마지막에 추가됩니다. 단축키 Ctrl++, 탐색 단추의 '새 레코드'
  • 레코드 삭제는 Ctrl+- 또는 Delete. 삭제 확인 메시지가 나오며, 삭제한 레코드는 되살릴 수 없습니다.
  • 필드 삭제 시 그 필드의 모든 데이터도 함께 지워지며 복원할 수 없습니다.
5. 외부 데이터: 가져오기·연결·내보내기
구분가져오기연결하기
결과원본 데이터를 복사해 새 Access 테이블을 만듦 (기존 테이블에 추가도 가능)원본은 그대로 두고 연결 테이블만 만듦
원본과의 관계가져온 뒤에는 서로 영향 없음연결 테이블을 수정하면 원본도 변경, 원본 변경도 반영
삭제 시Access 테이블만 삭제연결 테이블을 지워도 원본은 삭제되지 않음
구조 변경가능연결 테이블의 필드 추가·삭제 등 구조 변경 불가
  • 가져올 수 있는 형식: Access, Excel, 텍스트, XML, HTML, ODBC 데이터베이스, dBASE, SharePoint 목록, Outlook 폴더 등. Excel·텍스트·HTML은 가져올 필드를 제외할 수 있습니다.
  • 엑셀에서 가져올 때는 워크시트 단위로 가져오며, 첫 행을 필드 이름으로 쓸지 선택합니다.
  • 내보내기: Access, Excel, Word RTF, 텍스트, XML, HTML, ODBC, dBASE, PDF/XPS 등. 쿼리·폼·보고서도 내보낼 수 있습니다.

확인 문제

1 / 5
문제 1
Access의 기본키에 대한 설명으로 옳지 않은 것은?
①
기본키 필드에는 Null 값을 입력할 수 없다.
②
여러 필드를 묶어 하나의 기본키로 지정할 수 있다.
③
OLE 개체 형식 필드도 기본키로 지정할 수 있다.
④
기본키로 지정하면 인덱스가 '예(중복 불가능)'로 설정된다.
💡 정답 ③ 해설: OLE 개체, 첨부 파일, 계산 형식의 필드에는 기본키를 설정할 수 없습니다.
문제 2
<학과> 테이블(기본)과 <학생> 테이블(관련)에 참조 무결성이 설정되어 있을 때 발생할 수 없는 상황은?
①
<학생> 테이블에 <학과>에 있는 학과코드로 새 학생을 추가한다.
②
소속 학생이 없는 학과를 <학과> 테이블에서 삭제한다.
③
<학생> 테이블에 <학과>에 없는 학과코드로 새 학생을 추가한다.
④
<학생> 테이블에서 학생 레코드를 삭제한다.
💡 정답 ③ 해설: 참조 무결성이 설정되면 기본 테이블에 없는 값을 관련 테이블의 외래키에 입력할 수 없습니다.
문제 3
인덱스(색인)에 대한 설명으로 옳은 것은?
①
한 테이블에 인덱스는 하나만 만들 수 있다.
②
인덱스를 설정하면 데이터 추가·수정 속도가 빨라진다.
③
검색과 정렬 속도를 높이기 위해 사용하며 기본적으로 오름차순 정렬된다.
④
OLE 개체 형식 필드에 인덱스를 설정하면 검색이 빨라진다.
💡 정답 ③ 해설: 인덱스는 테이블당 최대 32개, 검색·정렬은 빨라지지만 추가·수정은 느려지며 OLE 개체에는 설정할 수 없습니다.
문제 4
'관계 편집' 대화상자에서 기본 테이블의 레코드를 삭제할 때 관련 테이블의 해당 레코드도 자동으로 함께 삭제되도록 하는 옵션은?
①
항상 참조 무결성 유지
②
관련 필드 모두 업데이트
③
관련 레코드 모두 삭제
④
조인 유형
💡 정답 ③ 해설: '관련 레코드 모두 삭제'를 선택하면 기본 테이블에서 레코드를 지울 때 관련 레코드도 자동 삭제됩니다.
문제 5
외부 데이터 '연결하기'로 만든 연결 테이블에 대한 설명으로 옳지 않은 것은?
①
연결 테이블의 데이터를 수정하면 원본 데이터도 변경된다.
②
연결 테이블을 삭제하면 원본 데이터 파일도 함께 삭제된다.
③
연결 테이블에서는 필드를 추가하거나 삭제하는 구조 변경을 할 수 없다.
④
원본 데이터가 변경되면 연결 테이블에도 반영된다.
💡 정답 ② 해설: 연결 테이블을 삭제해도 연결 정보만 없어질 뿐 원본 데이터는 삭제되지 않습니다.
0/5
훌륭합니다!
모든 문제를 정확히 풀었습니다.

16차시 문제 더 풀기

확인문제와 실전 모의고사에서 이 차시 범위 문제만 모아 해설과 함께 볼 수 있습니다.

주제별 문제 보기
이전 차시
15차시. 테이블 설계·필드 속성
다음 차시
17차시. 쿼리·SQL