[컴퓨터활용능력 1급 필기] 11년 3회차 시험지 PDF 다운로드
11년 3회차
한글 Windows XP 검색 결과 창의 고급 옵션(다른 검색 옵션)에는 숨김 파일 및 폴더 검색, 대/소문자 구분, 하위 폴더 검색, 시스템 폴더 검색, 테이프 백업 검색 등의 항목이 제공된다.
이와 달리 포함하는 문자열은 별도의 고급 옵션 항목이 아니라, 검색창 자체에 파일 이름의 일부나 전체를 입력하는 기본 검색 방식에 해당하므로 고급 옵션으로 제시하는 것은 옳지 않다.
멀티미디어는 텍스트·그림·소리·동영상 등 다양한 데이터를 통합적으로 처리하며, 사용자가 정해진 순서와 상관없이 정보를 선택적으로 이용할 수 있는 비선형성(Non-Linear)을 특징으로 한다.
따라서 데이터 처리가 선형적이라는 설명은 멀티미디어의 특징과 반대되는 내용이다.
데이터의 디지털화, 데이터 전달의 쌍방향성, 정보의 통합성은 모두 멀티미디어의 대표적인 특징에 해당한다.
각 패킷마다 수신측 주소를 포함시켜 독립적으로 전송하고, 패킷들이 서로 다른 경로를 거쳐 전달될 수 있어 도착 순서가 송신 순서와 반드시 일치하지 않는 교환 방식을 데이터그램 패킷 교환 방식이라 한다.
이와 달리 가상회선 패킷 교환 방식은 통신 전에 정해 둔 하나의 경로(가상회선)를 따라 순서대로 전송되므로 수신 순서가 송신 순서와 일치한다는 점에서 차이가 있다.
윈도우키+M은 열려 있는 모든 창을 최소화하는 바로가기 키가 맞다.
윈도우키+E는 [실행] 대화상자가 아니라 탐색기(내 컴퓨터)를 열고, 윈도우키+R은 [탐색기]가 아니라 [실행] 대화상자를 열며, 윈도우키+F1은 유틸리티 관리자가 아니라 도움말을 여는 기능이므로 나머지 연결은 옳지 않다.
같은 프린터라도 이름을 다르게 지정하여 여러 번 설치할 수 있으므로, 다른 이름으로 다시 설치할 수 없다는 설명은 옳지 않다.
한 대의 컴퓨터에 여러 개의 로컬 프린터를 설치할 수 있고 이를 네트워크로 공유할 수 있다는 점, 기본 프린터는 1대만 지정되며 네트워크 프린터도 기본 프린터로 설정할 수 있다는 점은 실제 Windows XP의 프린터 관리 내용과 일치한다.
하드디스크를 파티션으로 나누면 각 파티션에 서로 다른 운영체제를 설치하여 멀티 부팅 구성을 할 수 있으므로, 하나의 물리적인 하드디스크가 하나의 운영체제만 사용할 수 있다는 설명은 옳지 않다.
하나의 하드디스크를 여러 논리 파티션으로 나눌 수 있다는 점, 하나의 파티션에는 하나의 파일 시스템만 사용한다는 점, 파티션에 기본 파티션과 확장 파티션이 있다는 점은 모두 맞는 설명이다.
로컬 영역 연결을 사용 안 함으로 설정하는 기능은 [로컬 영역 연결 속성] 창 안이 아니라, [네트워크 연결] 폴더에서 해당 연결 아이콘을 마우스 오른쪽 버튼으로 클릭했을 때 실행되는 기능이다.
반면 TCP/IP 등 네트워크 구성 요소 설치, 작업 표시줄 알림 영역 표시 여부 설정, 연결에 사용된 장치 확인은 [로컬 영역 연결 속성] 창에서 할 수 있는 항목이다.
e-Mail, USENET, WWW는 모두 인터넷의 대표적인 서비스이다.
반면 POST는 HTTP 통신에서 클라이언트가 서버로 데이터를 전송할 때 사용하는 방식(메서드)의 이름이지, 인터넷 서비스의 명칭이 아니므로 옳지 않다.
DHCP(Dynamic Host Configuration Protocol) 서버는 네트워크에 접속하는 컴퓨터에 IP 주소를 자동으로 할당해 주는 역할을 한다.
DNS 서버는 도메인 이름을 IP 주소로 변환해 주는 역할을 하므로, IP 주소를 자동 할당하는 기능과는 구분된다.
플래시 메모리(Flash Memory)는 EEPROM의 일종으로 전원이 꺼져도 저장된 데이터가 유지되는 비휘발성 메모리이다.
이러한 특성 때문에 휴대용 컴퓨터나 디지털카메라 등의 보조기억장치로 널리 사용된다.
범용(디지털) 컴퓨터는 디지털 데이터를 처리하며 연산 정밀도가 높다는 것이 특징이고, 오히려 물리량을 직접 다루는 아날로그 컴퓨터 쪽이 정밀도가 제한적이다. 따라서 범용 컴퓨터가 아날로그 데이터를 취급하기 때문에 정밀도가 제한적이라는 설명은 옳지 않다.
아날로그 데이터가 시간에 따라 연속적으로 변한다는 점, 하이브리드 컴퓨터가 디지털과 아날로그 데이터를 모두 처리할 수 있다는 점, 디지털 데이터가 복호화 과정을 거쳐 아날로그 데이터로 변환될 수 있다는 점은 옳은 설명이다.
비밀키(대칭키) 암호화 방식은 암호화와 복호화에 같은 키를 사용하는 대칭 키 방식이며, 알고리즘이 비교적 단순하고 처리 속도가 빠른 것이 특징이다. 따라서 이를 비대칭 키 방식이라 설명하는 것은 옳지 않다.
사용자가 늘어날수록 관리해야 하는 키의 수가 상대적으로 많아진다는 점, DES가 대표적인 알고리즘이라는 점, 암호화·복호화 속도가 빠르다는 점은 비밀키 암호화의 올바른 특징이다.
채널(Channel)은 CPU를 대신하여 입출력 작업을 관리함으로써, 처리 속도가 빠른 중앙처리장치(CPU)와 상대적으로 느린 입출력장치 사이의 속도 차이로 인한 문제를 해결하기 위해 사용된다.
시스템 구성 편집기(Sysedit)는 win.ini, config.sys, autoexec.bat 등 텍스트 기반의 시스템 설정 파일을 편집하는 도구이다.
admin.dll은 실행에 필요한 라이브러리 파일로, Sysedit로 편집할 수 있는 텍스트 설정 파일에 해당하지 않는다.
Anonymous FTP는 사용자 ID로 anonymous를 사용하고 비밀번호 입력이 생략되거나 형식적으로만 요구된다는 점이 특징일 뿐, 접속하려는 FTP 서버의 주소는 일반 FTP와 마찬가지로 반드시 입력해야 한다.
따라서 서버 주소를 입력할 필요가 없다는 설명은 옳지 않다.
VOD(Video On Demand)는 다양한 영상 정보를 데이터베이스로 구축해 두고, 사용자가 원하는 시점에 원하는 영상을 선택하여 시청할 수 있도록 하는 서비스이다.
OSI 7계층 중 네트워크 계층은 송신지에서 수신지까지 데이터가 전달될 경로를 설정하는 라우팅(경로 설정) 기능과, 정보 교환 및 중계 기능을 담당하는 계층이다.
[내 컴퓨터]는 파일, 폴더, 프로그램 등을 관리하고 제어하는 곳으로 시스템의 전반적인 정보를 나타낸다.
[내 최근 문서]는 기본적으로 최대 15개까지 표시되며, 최근 실행한 프로그램 목록은 개수를 변경하거나 삭제할 수 있고, [검색]은 파일이나 폴더를 찾는 기능이지 프로그램을 실행하는 기능이 아니므로 나머지 설명은 옳지 않다.
- 클래스가 존재하지 않으며 변수선언도 필요 없다.
- 소스코드가 HTML 문서에 포함되어 있다.
- 사용자의 웹 브라우저에서 직접 번역되고 실행된다.
제시된 세 가지 특성 — 클래스가 없고 변수 선언이 필요 없음, 소스 코드가 HTML 문서 안에 포함됨, 사용자의 웹 브라우저에서 직접 번역·실행됨 — 은 모두 클라이언트 측 스크립트 언어의 전형적인 특징이며, 이에 해당하는 것이 자바 스크립트입니다.
자바 스크립트는 컴파일 없이 브라우저의 해석기가 한 줄씩 번역해 실행하는 인터프리터 방식이고, 변수의 자료형을 미리 선언하지 않아도 되는 점에서 클래스와 자료형 선언이 필수인 자바(Java)와 구별됩니다. HTML 문서 안 스크립트 영역에 코드를 그대로 적어 넣습니다.
나머지 보기는 실행 위치나 용도가 다릅니다. CGI와 ASP는 웹 서버에서 실행되어 결과만 브라우저로 보내는 서버 측 기술이고, XML은 사용자가 태그를 정의해 데이터의 구조와 의미를 기술하는 확장형 마크업 언어일 뿐 브라우저에서 실행되는 프로그래밍 언어가 아닙니다.
운영체제의 목적 중 반환시간(Turnaround Time)은 작업을 요청한 시점부터 완료될 때까지 걸리는 시간을 의미하며, 운영체제는 이를 단축(감소)시키는 것을 목표로 한다.
따라서 반환시간을 증가시키는 것이 목적이라는 설명은 옳지 않다. 처리능력, 신뢰도, 사용가능도는 모두 증가시키는 것이 운영체제의 목적에 해당한다.
SUMPRODUCT는 배열의 대응하는 원소끼리 곱한 값을 모두 더하는 함수이다.
SUMPRODUCT({2,3,4},{7,8,9})는 2×7 + 3×8 + 4×9 = 14 + 24 + 36 = 74로 계산된다.
추세선이 추가된 데이터 계열의 차트를 3차원 차트로 변경하면 추세선은 자동으로 삭제되어 더 이상 표시되지 않는다. 따라서 3차원으로 바꾸어도 추세선이 그대로 표시된다는 설명은 옳지 않다.
추세선의 종류가 선형·로그·다항식·거듭제곱·지수·이동 평균의 6가지라는 점, 하나의 데이터 계열에 두 개 이상의 추세선을 동시에 사용할 수 있다는 점, 방사형·원형·도넛형 차트에는 추세선을 사용할 수 없다는 점은 모두 맞는 설명이다.
매크로를 기록할 때 선택한 셀을 무시하고 실행 시점에 선택된 셀을 이용하는 동작은 상대 참조로 기록했을 때의 특징이지, 절대 참조의 특징이 아니다. 따라서 절대참조로 기록되기 때문에 그렇게 동작한다는 설명은 개념이 뒤바뀌어 옳지 않다.
Excel을 실행할 때마다 매크로를 사용하려면 저장 위치를 개인용 매크로 통합 문서로 지정해야 한다는 점, 절대 참조로 기록하도록 설정하면 매크로가 항상 지정된 셀을 그대로 선택한다는 점, 상대 참조 단추를 선택하면 다시 클릭하거나 종료할 때까지 상대 참조로 기록된다는 점은 옳은 설명이다.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | 성명 | 필기 | 자격증 | 면접 |
| 2 | 김유식 | 85 | 60 | 90 |
| 3 | 고광식 | 75 | 80 | 90 |
| 4 | 김순식 | 90 | 80 | 80 |
| 5 | 마현명 | 80 | 95 | 70 |
| 6 | 박문길 | 85 | 100 | 80 |
이름 '점수'가 가리키는 범위는 [B2:D6] 으로, 필기·자격증·면접 점수가 들어 있는 5행 3열 영역입니다. 이 범위 안의 값은 85·60·90, 75·80·90, 90·80·80, 80·95·70, 85·100·80 입니다.
INDEX(점수, 2, 1) 은 이 범위에서 2번째 행, 1번째 열에 있는 값을 돌려줍니다. 범위의 첫 행이 2행(김유식)이므로 2번째 행은 3행(고광식)이고 1번째 열은 B열이므로 결과는 75 입니다. 워크시트의 행 번호가 아니라 범위 안에서 몇 번째인지로 세는 것이 핵심입니다.
MAX(점수) 는 [B2:D6] 전체에서 가장 큰 값이므로 박문길의 자격증 점수인 100 입니다. 마지막으로 AVERAGE 가 두 값의 평균을 구하므로 (75 + 100) ÷ 2 = 87.5 가 최종 결과가 됩니다.
- 이율 [B4]은 5.60%
- 기간 [B5]은 3년
- 정기적립금액 [B3]은 100,000
| A | B | |
|---|---|---|
| 1 | 만기금액 구하기 | |
| 2 | 주택적금 | |
| 3 | 정기적립금액 | 100000 |
| 4 | 이율 | 5.60% |
| 5 | 기간(년) | 3 |
| 6 | 만기금액 | ₩3,910,166 |
워크시트를 보면 정기적립금액 [B3]=100000, 연이율 [B4]=5.60%, 기간 [B5]=3(년)이고, 만기금액 [B6]에는 ₩3,910,166이 계산되어 있다. 매 기간 일정액을 적립했을 때 만기에 받게 될 금액이므로 미래가치 함수 FV를 사용한다.
FV의 인수는 FV(이율, 기간, 정기납입액, 현재가치, 납입시점) 순서다. 적립이 월 단위로 이루어지므로 연이율은 12로 나누어 B4/12로, 연 단위 기간은 12를 곱해 B5*12(36개월)로 반드시 단위를 맞춰야 한다. 납입액은 통장에서 빠져나가는 지출이므로 -B3처럼 음수로 넣어야 결과가 양수로 나오고, 현재가치는 없으므로 비워 두며 마지막 0은 기말 납입을 뜻한다.
실제로 이 되어 [B6]의 값과 정확히 일치한다. 이율을 연 이율 그대로 두거나 기간을 개월로 바꾸지 않으면 값이 크게 달라지고, 납입액 자리에 셀 참조 대신 상수 3을 넣으면 적립금액 자체가 반영되지 않는다.
틀 고정은 원하는 위치에서 [창]-[틀 고정] 메뉴를 실행하여 설정하는 기능으로, 마우스로 해당 위치를 더블클릭한다고 설정되는 기능이 아니다.
데이터 양이 많을 때 특정 행·열을 고정해 화면에 항상 표시할 수 있다는 점, 화면상의 틀 고정은 인쇄에는 적용되지 않는다는 점, 틀 고정을 수행하면 셀 포인터의 왼쪽과 위쪽에 고정선이 표시된다는 점은 옳은 설명이다.
엑셀에서 찾기 및 바꾸기 대화상자를 여는 바로가기 키는 Ctrl+H이며, Shift+H는 바꾸기 기능과 연결되어 있지 않으므로 옳지 않다.
찾기는 Ctrl+F(또는 Shift+F5), 함수마법사는 Shift+F3, 이름정의는 Ctrl+F3으로 연결되는 것이 올바른 설명이다.

제시된 [목표값 찾기] 대화상자는 수식 셀(E), 찾는 값(V), 값을 바꿀 셀(C) 세 개의 입력란과 [확인]·[취소] 단추로만 구성되어 있다. 원하는 결과를 미리 정해 놓고 그 결과가 나오도록 입력값 하나를 거꾸로 찾아 주는 기능이다.
이때 값을 바꿀 셀은 반드시 하나만 지정할 수 있다. 미지수가 하나인 방정식을 푸는 것과 같은 원리여서 두 개 이상의 셀을 동시에 조정하도록 지정할 수 없고, 그렇게 여러 변수를 함께 조정해야 하는 문제는 해 찾기(Solver)로 해결해야 한다. 따라서 바꿀 셀에 하나 이상을 넣을 수 있다는 설명은 옳지 않다.
나머지 설명은 모두 맞다. 수식 셀에는 값을 바꿀 셀을 참조하는 수식이 들어 있는 셀을 지정해야 하며, 찾는 값에는 도달하고자 하는 목표 결과를 숫자 상수로 직접 입력해야 하므로 셀 주소나 수식은 넣을 수 없다.
ROUND(2.3, 0)은 2.3을 소수점 없이 반올림한 2가 되고, SQRT(4)는 2이므로, POWER(2, 2)는 4가 되어야 한다. 그런데 이 결과를 9로 제시했으므로 이 연결은 옳지 않다.
ABS(INT(-7.9))는 INT(-7.9)가 -8이 되어 절대값 8이 되고, SUM(TRUNC(45.6), MOD(32, 3))은 TRUNC(45.6)=45와 MOD(32, 3)=2를 더한 47이 되며, CHOOSE(3, SUM(10, 10), INT(30.50), 50)은 세 번째 인수인 50을 반환하므로 모두 제시된 값과 일치한다.
Sub 더하기()
Range("A1").Select
ActiveCell.FormulaR1C1 = "1"
Range("A2").Select
ActiveCell.FormulaR1C1 = "4"
Range("A3").Select
ActiveCell.FormulaR1C1 = "=R[-2]C+R[-1]C"
Range("A4").Select
End Sub
프로시저는 [A1]에 1, [A2]에 4를 입력한 뒤 [A3]에 수식 =R[-2]C+R[-1]C를 넣고 마지막으로 [A4]를 선택하고 끝난다. 개체(Range, ActiveCell)에 점을 찍어 Select 같은 메서드나 FormulaR1C1 같은 속성을 지정하는 전형적인 매크로 기록 코드다.
여기서 R1C1 참조 방식의 대괄호 안 숫자는 현재 셀을 기준으로 한 상대적인 이동량이며, 음수는 위쪽(행)·왼쪽(열)을 뜻한다. 따라서 R[-2]C는 두 행 위의 같은 열, R[-1]C는 한 행 위의 같은 열이다. 활성 셀이 [A3]이므로 이 수식은 [A1]과 [A2]를 더하라는 뜻이 되어 결과는 5가 되며, '두 행 아래쪽과 한 행 아래쪽을 더한다'는 설명은 방향을 반대로 말한 것이라 옳지 않다.
나머지 설명은 옳다. Range("A1")은 셀 개체이고 Select는 그 개체에 동작을 지시하는 메서드이며, ActiveCell은 개체·FormulaR1C1은 그 개체의 속성이다. 또 마지막 줄이 Range("A4").Select이므로 실행이 끝난 뒤 셀 포인터는 [A4]에 놓인다.
Sub Macro1()
Range("A1:D3").Select
Selection.ClearFormats
End Sub
이 매크로는 Range("A1:D3").Select로 [A1]부터 [D3]까지를 선택한 뒤, 그 선택 영역에 Selection.ClearFormats를 실행한다.
ClearFormats는 선택 영역에 적용된 서식만 지우는 메서드다. 글꼴·색·테두리·맞춤·표시 형식 등이 기본 상태로 되돌아가지만 셀에 입력된 값과 수식은 그대로 남는다.
내용만 지우려면 ClearContents, 내용과 서식과 메모를 한꺼번에 지우려면 Clear를 사용한다. 또한 대상이 [A1:D3]로 한정되어 있으므로 워크시트 전체가 영향을 받지 않으며, 영역 선택은 서식을 지우기 위한 중간 단계일 뿐 매크로의 최종 결과가 아니다.
외부 데이터를 가져올 위치로 이미 값이 입력되어 있는 셀을 지정하면, 그 위치의 데이터가 곧바로 외부 데이터로 바뀌는 것이 아니라 기존 데이터를 덮어쓸 것인지 확인하는 경고가 표시되며, 확인하지 않으면 가져오기가 정상적으로 수행되지 않는다. 따라서 기존 데이터가 가져온 외부 데이터로 자동 변경된다는 설명은 옳지 않다.
메뉴에서 [데이터]-[외부 데이터 가져오기]-[새 쿼리 만들기]로 MS Access Database를 선택해 진행하는 방법, 테이블 내 원하는 필드만 골라 가져올 수 있는 점, 쿼리를 이용해 조건에 맞는 레코드만 가져올 수 있는 점은 모두 옳은 설명이다.
Sub for_i()
Dim i As Integer
For i = 1 to 10
i = i + i
Next
End Sub
프로시저는 For i = 1 To 10 반복문 안에서 i = i + i로 반복 변수 자신을 두 배로 만든다. Next에는 증가값이 생략되어 있으므로 한 번 돌 때마다 i가 1씩 증가하고, 그 값이 10을 넘는 순간 반복이 끝난다.
값을 차례로 따라가 보면, i=1로 시작해 본문에서 1+1=2가 되고 Next에서 1이 더해져 3이 된다. 3은 10 이하이므로 다시 실행되어 3+3=6, Next에서 7. 7도 10 이하이므로 7+7=14가 되고 Next에서 15가 된다. 15는 10보다 크므로 여기서 반복문을 빠져나온다.
For 문을 정상적으로 종료하면 반복 변수에는 종료 조건을 처음으로 넘어선 값이 그대로 남으므로 최종 i는 15다. 이처럼 반복 본문에서 반복 변수를 직접 고치면 반복 횟수와 최종값이 예상과 크게 달라진다.
[데이터]-[표] 기능으로 계산된 결과는 하나의 배열 수식 형태로 입력되므로, 결과 범위 중 일부분만 따로 수정하거나 삭제할 수 없고 전체 범위를 한꺼번에 수정·삭제해야 한다. 따라서 일부분만 수정하거나 삭제할 수 있다는 설명은 옳지 않다.
수식이 입력될 범위를 먼저 설정한 후 표 기능을 실행해야 한다는 점, 참조하는 셀의 데이터가 바뀌면 결과가 자동으로 갱신된다는 점, 참조 데이터가 하나의 열에 있을 때는 '열 입력 셀'만 지정한다는 점은 모두 옳은 설명이다.
공유 통합 문서에서는 입력된 데이터를 편집하는 것과 같은 기본적인 작업은 가능하다.
반면 조건부 서식 추가, 워크시트 보호, 피벗 테이블 보고서 추가와 같은 작업은 공유 상태에서는 제한되어 수행할 수 없다.
한 열에 입력되어 있는 데이터를 쉼표나 탭 같은 구분 기호, 또는 일정한 너비를 기준으로 나누어 각 셀에 입력하는 기능은 텍스트 나누기이다.
'국어'라는 이름이 [A1:A4]처럼 여러 셀로 이루어진 범위를 가리킬 때, 이를 그대로 산술 연산(+)에 사용하면 정상적으로 합계가 계산되지 않으므로 '=국어+A5'로 A1부터 A5까지의 합을 구할 수 있다는 설명은 옳지 않다. 여러 셀의 합으로 활용하려면 SUM(국어)+A5처럼 함수로 감싸야 한다.
이름 상자에 이름을 입력하고 Enter를 눌러 지정하는 방법, 메뉴의 이름 정의 대화상자를 이용하는 방법, 이름이 문자나 밑줄 등으로 시작해야 하며 숫자로는 시작할 수 없다는 규칙은 모두 옳은 설명이다.
묶은 세로 막대형 차트는 특정한 시점에 여러 항목 간의 값을 비교하고자 할 때 작성하는 차트이다.
꺾은선형 차트는 대개 하나의 데이터 계열을 하나의 선으로 나타내어 시간에 따른 추세를 보여 주고, 분산형 차트는 선이 아니라 점으로 두 변수 간의 관계를 표시하며, 방사형 차트는 3차원으로 작성할 수 없으므로 나머지 설명은 옳지 않다.
통합 문서 중 몇 개의 시트만 인쇄하려면 해당 시트들을 그룹으로 지정한 뒤 인쇄 대상을 '선택한 시트'로 설정해야 한다. '선택 영역'은 하나의 시트 안에서 지정한 셀 범위만 인쇄할 때 사용하는 옵션이므로, 여러 시트를 인쇄할 때 선택 영역으로 설정한다는 설명은 옳지 않다.
반복할 행을 페이지 설정의 시트 탭에서 지정하는 점, 인쇄 영역이 설정되어 있으면 그 범위만 인쇄되는 점, 머리글/바닥글은 페이지 상단·하단에 출력되지만 반복할 행/열은 본문 영역에 출력되는 점은 모두 옳은 설명이다.
셀 값에 100을 곱하여 백분율 기호와 함께 표시하는 것은 회계 서식이 아니라 백분율(%) 표시 형식의 특징이므로, 회계 서식을 사용하면 그렇게 표시된다는 설명은 옳지 않다.
0의 값이 회계 표시 형식에서 '-'로 표시되는 점, '*' 표시 형식이 뒤에 오는 문자를 셀 너비만큼 반복해서 채우는 점, yyyy.mmm 형식이 '2009.Jul'과 같은 형태로 표시되는 점은 모두 옳은 설명이다.
인덱스를 설정하면 검색·조회 속도는 빨라지지만, 데이터를 추가·수정·삭제할 때마다 인덱스 정보도 함께 갱신해야 하므로 오히려 갱신(수정) 속도는 느려질 수 있다. 따라서 조회는 물론 갱신 속도까지 빨라진다는 설명은 옳지 않다.
자주 검색하는 필드에 인덱스를 설정하는 것이 바람직하다는 점, 한 테이블에서 여러 개의 인덱스를 만들 수 있다는 점, 중복 불가능한 인덱스를 설정하면 동일한 값이 중복 입력될 수 없다는 점은 옳은 설명이다.
SELECT DISTINCT COUNT(성명)
FROM 회원;
[회원] 테이블
| 회원번호 | 성명 |
|---|---|
| 1 | 이 |
| 2 | 김 |
| 3 | |
| 4 | 이 |
[회원] 테이블에는 회원번호 1~4에 성명이 각각 '이', '김', <null>, '이'로 들어 있다.
집계 함수 COUNT에 특정 필드를 인수로 주면 그 필드가 <null>인 행은 세지 않는다. 따라서 성명이 비어 있는 세 번째 행이 빠지고 '이', '김', '이' 세 건만 집계되어 결과는 3이 된다. 같은 값 '이'가 두 번 있어도 COUNT는 중복을 제거하지 않으므로 2로 줄어들지 않는다.
앞에 붙은 DISTINCT는 출력되는 결과 행의 중복을 없애는 것인데, 집계 결과는 한 행뿐이라 값에 아무 영향을 주지 않는다. 참고로 COUNT(*)를 썼다면 <null>인 행까지 포함해 4가 되고, 성명이 빈 문자열("")이었다면 그것은 값이 있는 것으로 취급되어 집계에 포함된다.
특정 필드에 지정된 값들만 입력되도록 제한하려면 In 연산자를 사용하여 in(1, 2, 3)과 같이 유효성 검사 규칙을 작성한다.
이렇게 설정하면 1, 2, 3 이외의 값은 해당 필드에 입력할 수 없게 된다.
보고서의 조건부 서식은 여러 조건 중 두 개 이상이 동시에 참이 되어도, 그 중 가장 먼저 만족하는 조건 하나의 서식만 적용되고 나머지는 무시된다. "조건이 참인 서식이 모두 적용된다"는 설명은 틀리다.
조건부 서식은 특정 조건을 만족할 때만 서식을 다르게 적용하는 기능이며, 텍스트 상자처럼 값을 표시하는 컨트롤에 설정할 수 있고, 여러 조건을 지정해 조건마다 다른 서식을 부여할 수 있다는 설명은 모두 옳다.
INSERT INTO 학생(학번,이름,학년) ( ⓐ )
("200878","정몽주","1");
테이블에 새 레코드를 넣는 삽입문의 기본 형식은 INSERT INTO 테이블명(필드1, 필드2, …) VALUES (값1, 값2, …); 이다. 앞부분에서 어느 필드에 넣을지를 밝히고, 뒷부분에서 어떤 값을 넣을지를 나열하는 구조다.
제시된 문장은 INSERT INTO 학생(학번,이름,학년)까지 필드 목록이 끝났고 그 뒤에 ("200878","정몽주","1") 이라는 값 목록이 이어진다. 두 목록을 이어 주는 자리이므로 빈칸에는 VALUES가 들어가야 하며, 필드와 값은 순서와 개수가 일대일로 대응해 학번에 "200878", 이름에 "정몽주", 학년에 "1"이 저장된다.
INTO는 이미 앞에 쓰였으므로 중복될 수 없고, WHERE는 조건을 지정해 기존 레코드를 골라내는 절이라 새 레코드를 만드는 삽입문에는 쓰이지 않는다. FROM은 데이터를 가져올 원본 테이블을 지정하는 절로 SELECT나 DELETE에서 쓰인다.
연속 폼에서 폼 머리글과 폼 바닥글은 폼 전체에서 각각 한 번만 표시되며, 레코드마다 반복해서 표시되는 것은 본문(세부) 구역이다. "매 레코드마다 폼 머리글과 폼 바닥글이 표시된다"는 설명이 틀리다.
단일 폼이 한 번에 한 레코드만 표시한다는 것, 연속 폼이 현재 창을 채울 만큼 여러 레코드를 표시한다는 것, 데이터시트 형식이 행과 열로 필드를 표시한다는 설명은 옳다.
#,##0[파랑];#,##0[빨강];"0";"NULL"
사용자 지정 표시 형식은 세미콜론으로 구역을 나누며, 네 구역이 모두 있으면 순서대로 양수;음수;0;텍스트에 적용된다. 제시된 형식은 양수에 #,##0[파랑], 음수에 #,##0[빨강], 0에 "0", 텍스트에 "NULL"을 지정한 것이다.
주의할 곳은 음수 구역이다. 이 구역의 서식 코드 #,##0에는 음수 부호가 들어 있지 않다. 표시 형식은 지정한 코드대로만 그려 주므로 -50을 입력하면 빨간색으로 50만 표시되고 마이너스 기호는 나타나지 않는다. 부호까지 보이게 하려면 음수 구역을 -#,##0[빨강]처럼 직접 적어 주어야 한다.
나머지 설명은 옳다. 양수 1050은 양수 구역의 천 단위 구분 기호가 적용되어 파란색 1,050으로 표시되고, 0은 세 번째 구역에 큰따옴표로 묶인 문자 그대로 0이 표시되며, 숫자가 아닌 문자열을 입력하면 네 번째 구역에 따라 NULL이 표시된다.
폼에서 특정 레코드만을 대상으로 하려면 폼의 레코드 원본(쿼리·필터 조건)을 통해 지정해야 하며, 필드에 연결된 컨트롤을 표시하는 것과는 관련이 없다. 이 설명이 틀리다.
폼이 데이터를 시각적으로 보기 좋게 하고, 여러 테이블·쿼리의 데이터를 편리하게 입력·수정하게 하며, 데이터 연결 여부에 따라 바운드 폼과 언바운드 폼으로 구분된다는 설명은 옳다.
컨트롤 원본을 비워 두면 해당 컨트롤은 언바운드 상태가 되어 값을 입력하거나 수정하는 것 자체는 가능하다. 다만 테이블의 데이터와 연동되지 않아 저장되지 않을 뿐이므로, "수정할 수는 없다"는 설명이 틀리다.
컨트롤 원본을 '=[필드명]' 식으로 설정하거나, 폼의 편집가능 속성을 아니오로 지정하거나, 컨트롤의 잠금 속성을 예로 지정하면 실제로 값을 수정할 수 없게 되므로 이들 설명은 옳다.
하위 폼/하위 보고서 컨트롤에서 표시할 폼(개체)의 이름을 지정하는 것은 원본 개체 속성이며, 기본 필드연결(LinkMasterFields) 속성은 상위 폼과 하위 폼을 연결할 필드를 지정하는 역할을 한다. 따라서 이 속성으로 폼 이름을 지정한다는 설명이 틀리다.
하위 폼이 상위 폼의 레코드와 관련된 다수의 레코드를 표시하는 데 적합하고, 이력성 데이터를 하위 폼에 두는 것이 좋으며, 특정 필드를 기준으로 상위 폼과 연결해 관련 데이터를 표시한다는 설명은 옳다.
특정 컨트롤에 대해 Requery를 실행하면 그 컨트롤의 데이터 원본만 다시 조회되어 최신 상태로 갱신될 뿐, 폼 전체의 레코드 포인터가 첫 레코드로 이동하는 것은 아니다. 이 설명이 틀리다.
CopyObject로 데이터베이스 개체를 다른 이름으로 복사하고, OpenReport로 보고서를 디자인보기·미리보기로 열거나 인쇄까지 할 수 있으며, OpenQuery로 저장된 실행 쿼리를 실행한다는 설명은 옳다.
VBA에서 한 줄에 여러 명령문을 이어 쓸 때 구분 기호로 사용하는 것은 콜론(:)이며, 세미콜론(;)을 사용한다는 설명이 틀리다.
프로시저가 연산·계산을 위한 명령문과 메서드로 구성된다는 것, 이벤트 프로시저를 다른 프로시저에서도 호출해 실행할 수 있다는 것, Function 프로시저가 Function 문으로 시작해 End Function 문으로 끝난다는 설명은 옳다.
비디오(비디오코드, 영화제목, 출시일)
대여(고객번호, 비디오코드, 대여일, 반납일, 대여금액)
비디오(비디오코드, 영화제목, 출시일)
비디오(비디오코드, 영화제목, 출시일)
대여(고객번호, 대여일, 반납일, 대여금액)
비디오(비디오코드, 고객번호, 영화제목, 출시일)
고객과 비디오는 서로 다대다 관계이므로, 고객과 비디오를 각각 독립된 테이블로 두고 두 기본키를 함께 포함하는 별도의 연결 테이블(대여)에 대여일·반납일·대여금액과 같은 관계 종속 속성을 저장하는 설계가 정규화 원칙에 맞다.
다른 설계들은 고객 정보를 대여 테이블에 중복 저장하거나 비디오 테이블에 고객번호를 넣는 등 다대다 관계를 잘못 표현하고 있어 데이터 중복과 갱신 이상이 발생한다.

[관계 편집] 대화상자를 보면 [상품]의 '상품번호'와 [매출내역]의 '상품번호'가 연결된 일대다 관계이고, [항상 참조 무결성 유지]만 체크되어 있으며 [관련 필드 모두 업데이트]와 [관련 레코드 모두 삭제]는 해제되어 있다. 즉 '일' 쪽인 [상품]이 기본 테이블, '다' 쪽인 [매출내역]이 외래 키로 참조하는 테이블이다.
이 상태에서 기본 테이블인 [상품]에 새 레코드를 추가하는 것은 아직 아무도 참조하지 않는 값을 하나 더 만드는 일일 뿐이므로 참조 무결성을 위배하지 않는다. 참조 무결성이 깨지는 상황은 참조되는 값이 사라지거나 바뀌는 경우, 또는 없는 값을 참조하는 레코드를 넣는 경우다.
[관련 필드 모두 업데이트]가 꺼져 있으므로 [상품]의 '상품번호'를 고치면 [매출내역] 쪽이 따라 바뀌는 것이 아니라 변경 자체가 거부된다. 마찬가지로 [관련 레코드 모두 삭제]가 꺼져 있어 [매출내역]이 참조 중인 [상품] 레코드는 삭제할 수 없다.
반대로 '다' 쪽인 [매출내역]의 레코드는 기본 테이블에 딸린 자식일 뿐이므로 전부 삭제해도 참조 무결성은 깨지지 않는다.
그룹 머리글의 컨트롤이 새 페이지가 시작될 때마다 반복해서 표시되게 하려면 그룹 속성에서 별도의 설정(반복 실행 구역 등)이 필요하며, 기본값으로는 자동으로 반복 표시되지 않는다. "별도의 설정 없이" 표시된다는 설명이 틀리다.
특정 필드로 그룹화하면 해당 필드로 정렬되어 표시되고, 필드나 식을 기준으로 데이터를 구분하거나 표시 순서를 지정하며, 그룹 머리글·바닥글에 요약 정보를 표시할 수 있다는 설명은 옳다.
데이터베이스의 핵심 장점은 여러 응용 프로그램이 데이터를 공유하고 특정 프로그램에 종속되지 않고 독립적으로 관리·유지 보수할 수 있다는 점이다. 특정 응용 프로그램에 가장 적합하고 효율적으로 데이터를 관리한다는 것은 오히려 프로그램 종속적인 전통적 파일 처리 방식의 특징에 가까우므로, 이는 데이터베이스의 장점으로 볼 수 없다.
페이지를 강제로 구분하려는 위치에는 [페이지 나누기] 컨트롤을 삽입해 사용할 수 있다.
[Page]/[Pages]는 문자열 연결이 아니라 나눗셈이 먼저 계산되므로 1/5 = 0.2가 되어 "0.2페이지"처럼 표시될 뿐 "1/5 페이지"가 되지 않는다. 또 Pages는 전체 페이지 수인 5이므로 Format([Pages], "000")의 결과는 "005"이지 "001"이 아니다. 모든 페이지 아랫부분에 페이지 번호를 반복 출력하려면 보고서 바닥글이 아니라 페이지 바닥글을 사용해야 한다.
SELECT A FROM 갑 UNION
SELECT A FROM 을;
UNION은 두 SELECT문의 결과를 세로로 이어 붙이는 합집합 연산자다. 이때 양쪽 질의의 열 개수와 자료형이 서로 맞아야 하며, 결과에서 중복되는 행은 자동으로 제거된다.
'갑'의 속성 A에서 나오는 값은 1, 2, 3, 4, 5이고 '을'의 속성 A에서 나오는 값은 0, 2, 3, 4, 6이다. 이 둘을 합치면 2, 3, 4가 양쪽에 겹치므로 한 번씩만 남아 최종 결과는 0, 1, 2, 3, 4, 5, 6이 된다.
양쪽에 공통으로 있는 2, 3, 4만 얻으려면 교집합인 INTERSECT를, 한쪽에만 있는 값을 얻으려면 차집합 개념을 써야 한다. 또 중복을 제거하지 않고 겹치는 행까지 모두 남기려면 UNION ALL을 사용한다.
보고서는 데이터를 인쇄·출력하기 위한 개체로, 텍스트 상자 컨트롤을 사용하더라도 화면에서 데이터를 입력하거나 수정하는 용도로는 사용할 수 없다. 이 설명이 틀리다.
보고서가 출력용 개체라는 것, 레코드 원본에 SQL 문을 지정해 질의 결과를 대상으로 보고서를 작성할 수 있다는 것, 컨트롤 원본으로 특정 필드에 바운드시킬 수 있다는 설명은 옳다.
SQL 문은 SELECT ~ FROM ~ WHERE ~ ORDER BY의 순서로 작성해야 하며, 조건은 WHERE절에, 정렬 기준은 ORDER BY절에 지정한다. 나이가 많은 순, 즉 내림차순으로 정렬해야 하므로 ORDER BY 나이 DESC를 써야 한다. 따라서 WHERE 주소='인천' 다음에 ORDER BY 나이 Desc가 오는 질의문이 옳다.
ORDER BY를 WHERE보다 앞에 쓴 것들은 구문 순서가 잘못되어 오류가 나고, Asc로 정렬한 것은 나이가 적은 순이 되어 조건에 맞지 않는다.