공부법

컴활 1급 데이터베이스 일반, 단원별 비중과 공부 순서

데이터베이스 일반은 이론 과목일까

컴활 1급의 세 번째 과목인 데이터베이스 일반은 처음 보는 용어가 많아 막막하게 느껴지는 과목입니다. 스프레드시트는 엑셀을 써 본 경험으로 버틸 수 있지만, 액세스(Access)는 거의 처음 만져 보는 경우가 많습니다. 그래서 정규화나 키 같은 이론부터 붙잡는 수험생이 많은데, 실제 기출을 단원별로 나눠 보면 시험의 무게 중심은 다른 곳에 있습니다.

이 글의 숫자는 패스뱅크에 실린 컴활 1급 데이터베이스 일반 240문항(기출 11개 회차와 패스뱅크 자체 실전모의고사 1회분)과, 회원 풀이 기록(2026년 3월 25일~10월 13일, 이 과목 1,407건) 기준입니다. 단원은 문제 텍스트의 키워드로 자동 분류한 것이라 사람이 나눈 분류와는 경계가 조금 다를 수 있습니다. 최신 수치는 컴활 1급 통계에서 볼 수 있습니다.

단원별 비중과 정답률

단원 (자동 분류)문항 수비중회차당 평균회원 정답률
테이블·필드 속성6226%약 5문항65% (풀이 360)
폼·컨트롤5423%약 4.5문항61% (풀이 335)
보고서3916%약 3문항57% (풀이 229)
쿼리·SQL3816%약 3문항71% (풀이 196)
DB 개념·설계2912%약 2.5문항64% (풀이 179)
매크로·VBA·이벤트188%약 1.5문항77% (풀이 108)
과목 전체240100%20문항65%

표에서 세 가지가 읽힙니다. 첫째, 테이블·폼·보고서라는 액세스 개체 세 단원이 문항의 65%를 차지합니다. 데이터베이스 일반은 이론 과목이라기보다 액세스 사용법 과목에 가깝습니다. 둘째, 쿼리·SQL은 회차당 3문항 남짓입니다. "SQL이 매회 5~7문제"라는 말을 흔히 듣지만, 패스뱅크 기출 기준으로는 그보다 적습니다. 셋째, 정답률이 가장 낮은 단원은 보고서(57%)와 폼·컨트롤(61%)입니다. SQL은 어렵다는 인상과 달리 71%로 평균보다 높았습니다. 구조가 정해진 문법 문제는 연습하면 빨리 오르지만, 화면 구성과 속성 이름을 떠올려야 하는 폼·보고서 문제는 액세스를 만져 보지 않으면 계속 헷갈린다는 뜻으로 읽을 수 있습니다.

필기는 과목별로 100점 환산 40점 미만이면 과락이고, 세 과목 평균이 60점 이상이어야 합격합니다. 20문항 중 8문항을 맞히면 과락은 피하지만, 다른 과목 점수가 넉넉하지 않다면 12문항 이상을 목표로 잡는 편이 안전합니다. 합격 기준과 시험 구성은 바뀔 수 있으니 응시 전에 대한상공회의소 자격평가사업단 공지를 확인하고, 요약은 컴활 1급 시험 정보에 정리해 두었습니다.

테이블·필드 속성: 가장 큰 단원

테이블 단원은 필드의 데이터 형식, 기본키, 필드 크기, 형식, 입력 마스크, 유효성 검사 규칙, 기본값, 필수, 인덱스 같은 속성을 묻습니다. 속성마다 "무엇을 막고 무엇을 허용하는지"를 구분하는 것이 핵심입니다. 형식은 저장된 값을 어떻게 보여 줄지만 바꾸고, 입력 마스크는 입력하는 모양 자체를 제한합니다. 유효성 검사 규칙은 입력된 값이 조건을 만족하는지 검사하며, 0부터 100 사이만 받으려면 >=0 And <=100 또는 Between 0 And 100으로 씁니다. 규칙을 어겼을 때 띄울 문장은 유효성 검사 텍스트에 넣습니다.

입력 마스크 기호는 거의 매번 보기로 등장합니다.

기호뜻필수 여부
0숫자(0~9), 더하기·빼기 기호 불가필수
9숫자나 공백선택
#숫자, 공백, 더하기·빼기 기호선택
L / ?영문자나 한글L 필수 / ? 선택
A / a영문자, 한글, 숫자A 필수 / a 선택
& / C모든 문자나 공백& 필수 / C 선택
> / <뒤의 문자를 대문자 / 소문자로 변환—

키와 무결성도 테이블 단원과 함께 공부하면 효율적입니다. 슈퍼키는 유일성만 만족하는 속성 집합이고, 후보키는 유일성과 최소성을 모두 만족합니다. 후보키 중 하나를 골라 기본키로 정하고, 나머지는 대체키가 됩니다. "슈퍼키는 최소성을 만족한다"는 단골 오답 문장입니다. 기본키는 NULL이나 중복 값을 가질 수 없는데, 이것이 개체 무결성입니다. 외래키는 다른 테이블의 기본키를 참조하며, 참조하는 쪽의 값은 참조되는 테이블에 실제로 있는 값이거나 NULL이어야 합니다. 이것이 참조 무결성입니다. 관계 설정에서 참조 무결성을 켜면 관련 레코드가 남아 있는 상위 레코드를 지울 수 없게 되는 것도 같은 원리입니다.

폼·컨트롤: 화면을 떠올려야 풀린다

폼 문제는 폼의 종류, 보기 방식, 컨트롤 종류와 속성을 묻습니다. 2024년 상시03 46번은 분할 표시 폼에 대한 설명 중 틀린 것을 고르는 문제였고, 패스뱅크 회원 정답률이 42%(풀이 12건)에 그쳤습니다. 분할 표시 폼은 하나의 데이터 원본을 폼 보기와 데이터시트 보기로 동시에 보여 주며, 두 보기는 항상 동기화되고 양쪽 모두에서 데이터를 고칠 수 있습니다. [만들기] 탭의 [폼] 그룹에서 [기타 폼] → [폼 분할]로 만듭니다. 틀린 보기는 "일대다 관계가 설정된 두 테이블의 데이터를 한 화면에 표시할 수 있다"였습니다. 그것은 하위 폼의 역할입니다. 하위 폼은 기본 폼에 '일' 쪽 테이블을, 하위 폼에 '다' 쪽 테이블을 두고 기본 필드 연결과 하위 필드 연결 속성으로 두 폼을 이어 줍니다.

컨트롤은 바운드, 언바운드, 계산 컨트롤로 나눠 기억하면 정리가 쉽습니다. 컨트롤 원본에 필드 이름이 있으면 바운드, 비어 있으면 언바운드, =로 시작하는 식이 있으면 계산 컨트롤입니다. 레이블은 고정된 글자만 표시하므로 계산 결과를 보여 줄 수 없습니다. 콤보 상자와 목록 상자는 행 원본, 바운드 열, 열 개수, 열 너비 속성이 함께 출제되며, 콤보 상자는 목록 값만 허용 속성이 "아니요"이면 목록에 없는 값도 직접 입력할 수 있다는 점이 목록 상자와 다릅니다. 폼이나 보고서에서 다른 테이블의 값을 가져올 때는 도메인 함수를 씁니다. =DLookUp("고객명", "고객", "고객번호=1")은 고객 테이블에서 고객번호가 1인 레코드의 고객명을, DCount("*", "주문", "수량>=10")은 조건에 맞는 레코드 개수를 돌려줍니다. 인수 순서는 필드, 테이블(또는 쿼리), 조건입니다.

보고서: 정답률이 가장 낮은 단원

보고서 단원은 영역 구분, 그룹화와 정렬, 누적 합계, 페이지 번호 식을 묻습니다. 영역부터 정확히 잡아야 합니다. 보고서 머리글은 첫 페이지 맨 위에 한 번, 페이지 머리글은 모든 페이지 맨 위에, 그룹 머리글과 그룹 바닥글은 그룹이 바뀔 때마다, 페이지 바닥글은 모든 페이지 아래에, 보고서 바닥글은 마지막 페이지에 한 번 출력됩니다.

2024년 상시04 57번은 보고서 그림을 보고 틀린 설명을 고르는 문제로, 1급 회원 정답률이 30%(풀이 10건)였습니다. 맞는 설명은 세 가지였습니다. 제목이 페이지 머리글에 있다는 것, 거래처별로 그룹을 만들고 날짜 기준 내림차순으로 정렬했다는 것, 순번은 컨트롤 원본에 =1을 넣고 누적 합계 속성을 "그룹"으로 설정했다는 것입니다. 누적 합계를 "그룹"으로 두면 그룹마다 1, 2, 3으로 다시 세고, "모두"로 두면 보고서 끝까지 이어서 셉니다. 틀린 설명은 페이지 번호를 레이블로 만들었다는 보기였습니다. 페이지 번호처럼 바뀌는 값은 텍스트 상자에 식을 넣어야 합니다. =[Page] & "/" & [Pages]는 "1/5"처럼 현재 페이지와 전체 페이지를, =Format([Page], "000")은 "001"처럼 표시합니다.

쿼리·SQL: 실제 기출로 보는 문법

SQL 문제는 복잡한 쿼리를 새로 짜게 하기보다, 주어진 문장을 읽고 결과를 판단하게 합니다. 절의 순서는 SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY이고, WHERE는 그룹으로 묶기 전에, HAVING은 묶은 뒤에 거릅니다. 정렬 방향을 쓰지 않으면 오름차순(ASC)입니다. 아래는 패스뱅크에 실린 1급 기출입니다.

WHERE와 ORDER BY의 순서 (2024년 상시04 47번)

근무년수 3 이상인 직원을 나이가 많은 순서로, 같은 나이면 급여 오름차순으로 조회하는 문장을 고릅니다. 정답은 select * from 직원 where 근무년수 >= 3 order by 나이 desc, 급여 asc입니다. ORDER BY가 WHERE 앞에 온 보기는 문법 오류이고, order by 나이, 급여만 쓴 보기는 나이까지 오름차순이 되어 조건과 맞지 않습니다.

여러 행을 돌려주는 서브쿼리 (2025년 상시04 50번)

과목명이 '영작문'인 과목의 교수명을 구하는데, 과목 테이블에 영작문이 두 개(교수번호 111, 222) 있습니다. 서브쿼리가 두 행을 돌려주므로 =로는 비교할 수 없고 IN을 써야 합니다. 정답은 Select 교수명 From 교수 Where 교수번호 In (Select 교수번호 From 과목 Where 과목명 = "영작문")입니다. 바깥 쿼리의 FROM이 교수명이 없는 과목 테이블인 보기는 그 자체로 틀립니다.

LIKE와 와일드카드 (2026년 상시01 49번)

주소가 "서울시 ○○구 합정동" 형태로 들어 있을 때, 서울시이면서 합정동이고 이름이 "이"로 시작하는 회원을 찾습니다. 정답은 where 주소 like "서울*" and "*합정동*" and 이름 like "이*"입니다. 액세스에서 여러 글자를 대신하는 와일드카드는 *, 한 글자는 ?입니다. 표준 SQL에서는 각각 %와 _를 씁니다. 별표의 위치가 앞이면 "끝나는", 뒤면 "시작하는", 양쪽이면 "포함하는" 값이 됩니다. 정답 문장은 두 번째 조건에서 필드명(주소 like)을 다시 쓰지 않아 엄밀한 문법으로는 어색하지만, 보기 가운데 세 조건을 모두 AND로 묶고 별표 위치까지 맞는 것은 이것뿐입니다.

IN과 BETWEEN (2025년 상시05 49번)

판매량이 100에서 200 사이인 제품을 찾는 문장 중 틀린 것은 WHERE 판매량 IN (100, 200)입니다. IN은 목록에 있는 값과 정확히 같은 것만 고르므로 100과 200만 나옵니다. >=100 AND <=200, BETWEEN 100 AND 200, NOT(판매량 < 100 OR 판매량 > 200)은 모두 같은 범위입니다. 마지막 것은 드모르간 법칙으로 풀면 앞의 두 문장과 같아집니다.

외부 조인은 기준 테이블부터 정한다

조인 문제는 어느 테이블의 레코드를 모두 남기는지부터 확인합니다. 거래처 테이블에 1 갑을상사, 2 영광상회, 3 갑자무역이 있고, 매출 테이블에 (1, 거래처1), (2, 거래처2), (3, 거래처1), (4, 거래처 없음)이 있다고 해 봅시다. 매출을 왼쪽에 두고 LEFT JOIN 하면 매출 네 건이 모두 나오고, 4번 매출의 거래처 필드는 NULL로 채워지며, 매출이 없는 3번 거래처는 나오지 않습니다. 거래처를 왼쪽에 두면 1번 거래처가 두 번, 2번이 한 번, 매출이 없는 3번 거래처가 NULL과 함께 한 번 나와 역시 네 건이 되지만, 이번에는 4번 매출이 빠집니다. INNER JOIN이라면 양쪽이 모두 맞는 세 건만 남습니다. 같은 두 테이블이라도 조인 종류와 방향에 따라 레코드 수와 빠지는 행이 달라진다는 점을 손으로 그려 보며 익히면 됩니다.

명령어 분류도 1문항 정도씩 나옵니다. 테이블 구조를 만들고 바꾸는 CREATE, ALTER, DROP은 정의어(DDL), 데이터를 다루는 SELECT, INSERT, UPDATE, DELETE는 조작어(DML), 권한과 트랜잭션을 다루는 GRANT, REVOKE, COMMIT, ROLLBACK은 제어어(DCL)입니다. 쿼리 종류로는 선택 쿼리, 매개 변수 쿼리, 요약 쿼리, 크로스탭 쿼리, 그리고 데이터를 바꾸는 실행 쿼리(업데이트·추가·삭제·테이블 만들기)를 구분해 두세요.

DB 개념·설계와 매크로

개념 단원은 회차당 2~3문항으로, 정의를 정확히 구분하는 수준이면 충분한 경우가 많습니다. 정규화는 중복으로 생기는 삽입·삭제·갱신 이상을 없애기 위해 테이블을 나누는 과정입니다. 제1정규형은 모든 속성 값이 더 나눌 수 없는 원자값인 상태, 제2정규형은 부분 함수 종속을 없앤 상태, 제3정규형은 A→B, B→C처럼 이어지는 이행 함수 종속을 없앤 상태, BCNF는 모든 결정자가 후보키인 상태입니다. 성능을 위해 일부러 중복을 허용하는 것은 반정규화라고 합니다. ER 다이어그램에서는 사각형이 개체, 마름모가 관계, 타원이 속성입니다.

매크로·VBA·이벤트는 비중이 8%로 작고 정답률도 77%로 가장 높았습니다. 다만 풀이 수가 108건으로 적어 숫자가 흔들릴 수 있습니다. OpenForm, OpenReport, GoToRecord 같은 매크로 함수의 이름과 하는 일 정도는 알고 들어가는 편이 좋고, 이 부분은 실기에서 다시 쓰이므로 컴활 실기 준비 가이드와 함께 보면 이어서 익힐 수 있습니다.

처음 1주일 계획

위 비중을 기준으로 처음 일주일을 짜면 다음과 같습니다. 이론을 먼저 끝내고 액세스로 넘어가는 순서보다, 비중이 큰 테이블과 폼을 앞에 두고 SQL은 중반에 몰아서 보는 순서입니다. 액세스를 설치할 수 있다면 2~4일차에는 실제로 테이블과 폼, 보고서를 하나씩 만들어 보세요. 폼과 보고서 문제는 화면을 떠올릴 수 있느냐에서 갈립니다.

일차범위이날 확인할 것
1일차기본 용어, 키와 무결성DBMS, 테이블·레코드·필드, 슈퍼키와 후보키 구분
2일차테이블·필드 속성데이터 형식, 형식과 입력 마스크 차이, 마스크 기호, 유효성 검사
3일차폼·컨트롤분할 표시 폼과 하위 폼, 바운드·언바운드·계산 컨트롤, 도메인 함수
4일차보고서영역별 출력 위치, 그룹화·정렬, 누적 합계, =[Page]·=[Pages]
5일차SQL 기초절 순서, WHERE와 HAVING, LIKE·IN·BETWEEN
6일차SQL 응용, 개념, 매크로서브쿼리, 조인 방향, DDL·DML·DCL, 정규화, 매크로 함수
7일차기출 1회 풀이20문항 중 몇 개인지 확인, 틀린 문제의 단원 표시

7일차에 12문항 이상이면 기출 회독으로 넘어가도 됩니다. 8문항 아래라면 틀린 문제가 어느 단원에 몰렸는지 보고 그 단원을 하루 더 봅니다. 회차별 해설은 컴활 1급 기출 해설집에서 볼 수 있고, 틀린 문제를 다시 푸는 방법은 기출 회독과 오답노트 활용에 정리했습니다. 1급 전체 일정이 필요하다면 컴활 1급 독학 가이드를, 스프레드시트 함수는 기출에 나온 스프레드시트 함수를 참고하세요.

출처: 대한상공회의소 컴퓨터활용능력 종목 안내 (2026-10-14 확인)

데이터베이스 일반을 실제 기출로 풀어 보세요

컴활 1급 시작하기 →1급 기출 해설집 보기 →
← 목록으로 컴활 문제 풀러가기 →