SQL 액세스 테이블 컴활 1급

컴활 1급 필기 3과목(데이터베이스 일반)의 도입부임. 액세스 객체 6종 + 테이블 설계 + SQL 묶음. 출제 비중은 매회 4~5문제

 

함수 다음으로 큰 영역. 액세스를 거의 안 써본 사람도 데이터 형식·기본키·관계 종류·SELECT 구문 같은 개념 위주로 시험에 출제됨. 본 글은 그 핵심만 추림.

Access 테이블편 -- 객체·데이터형식·관계·SQL 10 토픽

액세스 객체 6종 -- 데이터베이스의 부품

액세스는 하나의 .accdb 파일 안에 6개 종류의 객체를 담음.

객체
역할
테이블
실제 데이터 저장 (엑셀의 시트와 비슷)
쿼리
데이터 검색·필터·집계 (SELECT 문 GUI 버전)
데이터 입력·수정 UI
보고서
인쇄용 출력물
매크로
작업 자동화 (VBA 없이 클릭으로 작성)
모듈
VBA 코드 작성 영역

핵심 관계: 테이블 = 데이터 저장 → 쿼리 = 가공 → = 입력 → 보고서 = 출력. 시험에서 "~을 저장하는 객체는?" / "~를 인쇄용으로 출력하는 객체는?" 식의 매칭 문제가 자주 나옴.


데이터 형식 -- 테이블 필드 10종

테이블의 각 필드(열) 는 데이터 형식을 미리 지정해야 함. 이게 액세스의 제1 함정.

테이블 데이터 형식 10종 -- 텍스트·숫자·날짜·통화·일련번호·예아니오·OLE·하이퍼링크·첨부·계산
짧은 텍스트
용도 최대 255자
크기 1~255
긴 텍스트
용도 메모형, 최대 약 65,535자
크기 가변
숫자
용도 정수·실수
크기 Byte/Integer/Long/Double 등 선택
큰 숫자
용도 매우 큰 정수 (8 바이트)
크기 -2^63 ~ 2^63
날짜/시간
용도 1900~9999년
크기 8 바이트
통화
용도 소수점 4자리 정확 (반올림 오차 X)
크기 8 바이트
일련번호
용도 자동 증가 정수 (Auto Number)
크기 4 바이트
예/아니요
용도 True/False (Yes/No)
크기 1 비트
OLE 개체
용도 그림·문서 파일 임베드
크기 최대 1GB
하이퍼링크
용도 URL·이메일·파일 경로
크기 가변
첨부 파일
용도 여러 파일 첨부 (액세스 2007~)
크기 가변
계산
용도 다른 필드 값으로 자동 계산 (쿼리 X, 테이블에 직접)
크기 8 바이트
조회 마법사
용도 다른 테이블에서 값 가져오기
크기 --

함정 1: 통화 형식반올림 오차가 없어서 금액 계산에 필수. 일반 숫자(Double) 으로 금액을 저장하면 1원 단위 오차 발생.

함정 2: 일련번호는 자동 증가 정수 — 직접 입력 불가, 삭제 후 재사용 X. 한번 부여된 번호는 영구 결번.

함정 3: 예/아니요True / False, 0 / -1 로 저장됨 (참은 -1).


필드 속성 -- 형식·기본값·유효성

각 필드에는 데이터 형식 외에도 세부 속성을 지정할 수 있음.

속성
동작
필드 크기
텍스트 최대 길이, 숫자 형식 선택
형식
화면 표시 형식 (yyyy-mm-dd, 0.00 등)
입력 마스크
입력 패턴 강제 (000-0000-0000 전화번호)
캡션
폼·보고서에서 표시할 별명
기본값
새 레코드 추가 시 자동 입력값
유효성 검사 규칙
입력 가능 값 조건 (>0, Between 1 And 100)
유효성 검사 텍스트
규칙 위반 시 표시할 메시지
필수
빈 값 허용 여부 (Yes / No)
빈 문자열 허용
빈 문자열 "" 허용 여부
인덱스
검색 속도 향상 (예/중복 허용/중복 안 함)

함정: 인덱스는 검색은 빨라지지만 입력·수정 속도는 느려짐. 외래키 필드에 자주 거는 게 권장.


기본키 (Primary Key) -- 레코드 유일 식별자

테이블의 각 행을 유일하게 식별하는 필드. 시험 단골 4 특성:

  1. 유일성 (Unique) — 같은 값 2개 가질 수 없음
  2. NOT NULL — 비워둘 수 없음 (필수)
  3. 테이블당 1개 — 여러 필드면 복합키로 묶임
  4. 자동 인덱스 — 기본키 지정 시 인덱스가 자동 생성됨

기본키 후보

  • 일련번호 (가장 흔함) — 자동 증가, 충돌 없음
  • 사번·학번·주민번호 같은 자연 유일값
  • 두 필드 묶음 (예: 학번+과목코드 = 수강 기본키) — 복합 기본키

함정: 기본키는 수정도 가능하지만 권장 안 함. 다른 테이블에서 외래키로 참조 중이면 연쇄 업데이트가 일어남.


외래키와 관계 종류 -- 1:1 / 1:N / N:M

외래키(FK)는 다른 테이블의 기본키를 참조하는 필드. 두 테이블을 연결.

관계 3종 -- 1:1 / 1:N / N:M 다이어그램
1 : 1
의미 한쪽 1건 ↔ 다른쪽 1건
예시 사람 ↔ 주민등록증
1 : N
의미 한쪽 1건 ↔ 다른쪽 N건
예시 학과 ↔ 학생
N : M
의미 양쪽 모두 다수
예시 학생 ↔ 과목 (수강 관계)

함정 1: N:M 관계는 액세스에서 직접 표현 못 함. 반드시 중간 테이블(연결 테이블, 예: 수강)을 두고 1:N + 1:N 으로 분해.

함정 2: 1:1 관계는 두 테이블의 기본키끼리 연결되는 형태. 실무에서는 거의 안 쓰고 테이블 분할 용도.


관계 설정 옵션 -- 참조 무결성·연쇄 업데이트·연쇄 삭제

관계를 만들 때 체크하는 3 가지 옵션.

옵션
동작
항상 참조 무결성 유지
외래키가 반드시 부모 테이블 기본키 값 만 가지도록 강제
관련 필드 모두 업데이트
부모 기본키가 바뀌면 자식의 외래키도 자동으로 따라 바뀜
관련 레코드 모두 삭제
부모 레코드 삭제 시 자식 레코드도 자동 삭제

함정 1: 참조 무결성을 켜야 나머지 두 옵션을 켤 수 있음. 무결성 OFF면 연쇄 업데이트·삭제도 비활성.

함정 2: 부모 테이블에 존재하지 않는 값을 자식 외래키에 입력하면, 참조 무결성 ON일 때 오류가 남.

함정 3: 연쇄 삭제 (Cascade Delete) 가 켜져 있으면, 부모 레코드 삭제 시 연결된 모든 자식 레코드가 사라짐. 실수 한 번에 데이터 대량 손실 가능 — 시험에서 위험성을 묻는 보기 단골.


정규화 -- 1NF · 2NF · 3NF

테이블을 중복 없이 효율적으로 설계하는 절차.

단계
목표
1NF (1차 정규형)
각 필드가 원자값 (한 셀에 값 하나)
2NF (2차 정규형)
부분 함수 종속 제거 (복합키의 일부에만 종속되는 필드 분리)
3NF (3차 정규형)
이행 함수 종속 제거 (A→B→C 같은 간접 종속 분리)
BCNF·4NF·5NF
더 엄격한 형태 (실무·시험 빈도 낮음)

핵심: 정규화는 중복 제거저장 공간 절약 + 갱신 이상 방지. 단, 너무 잘게 쪼개면 JOIN이 많아져 속도 저하 — 실무는 보통 3NF 까지.


SQL 명령 분류 -- DDL · DML · DCL

SQL 명령 분류 -- DDL·DML·DCL 카탈로그
DDL (Data Definition)
명령 CREATE, ALTER, DROP
용도 테이블·구조 정의
DML (Data Manipulation)
명령 SELECT, INSERT, UPDATE, DELETE
용도 데이터 조회·수정
DCL (Data Control)
명령 GRANT, REVOKE
용도 권한 관리
TCL (Transaction Control)
명령 COMMIT, ROLLBACK
용도 트랜잭션 처리

함정: SELECTDML(데이터 조회), 흔히 헷갈리는 DDL이 아님.

DDL 예시

CREATE TABLE 학생(학번 INT PRIMARY KEY, 이름 TEXT(20));
ALTER TABLE 학생 ADD 학과 TEXT(20);
DROP TABLE 학생;

DML 예시

INSERT INTO 학생 VALUES (1, '홍길동', '컴퓨터');
UPDATE 학생 SET 학과='경영' WHERE 학번=1;
DELETE FROM 학생 WHERE 학번=1;

SELECT 구문 -- 6 절 해부

가장 자주 출제되는 명령. 절(clause)의 순서·역할을 외워둬야 함.

SELECT 구문 6절 -- SELECT · FROM · WHERE · GROUP BY · HAVING · ORDER BY
SELECT 학과, COUNT(*) AS 인원
FROM 학생
WHERE 입학년도 >= 2024
GROUP BY 학과
HAVING COUNT(*) > 10
ORDER BY 인원 DESC;
SELECT
역할 출력할 열 선택
처리 순서 5
FROM
역할 가져올 테이블
처리 순서 1
WHERE
역할 행 단위 조건
처리 순서 2
GROUP BY
역할 그룹화 기준
처리 순서 3
HAVING
역할 그룹 단위 조건
처리 순서 4
ORDER BY
역할 정렬
처리 순서 6

함정 단골 3종

  • WHERE는 행 단위 조건, HAVING은 그룹 단위 조건 — 위치도 다름
  • ORDER BY 는 기본 오름차순(ASC), 내림차순은 DESC 명시
  • * (애스터리스크)전체 필드SELECT * FROM 학생 은 학생 테이블의 모든 열

JOIN 예시

SELECT 학생.이름, 학과.학과명
FROM 학생 INNER JOIN 학과 ON 학생.학과코드 = 학과.코드;

INNER JOIN은 양쪽 다 있는 행만, LEFT JOIN은 왼쪽 기준, RIGHT JOIN은 오른쪽 기준.


⚠️ 이 챕터 함정 BEST 7

  1. N:M 관계 → 액세스에서 직접 X. 중간 테이블로 1:N + 1:N 분해
  2. 기본키 = 유일성 + NOT NULL → 둘 다 만족해야 함
  3. 연쇄 삭제 ON → 부모 삭제 시 자식 다 사라짐 (위험)
  4. 일련번호 → 자동 증가, 삭제 후 재사용 X, 영구 결번
  5. 통화 형식 → 반올림 오차 없음, 금액 계산 필수
  6. SELECT는 DML → DDL이 아님 (CREATE·ALTER·DROP이 DDL)
  7. WHERE vs HAVING → 행 단위 vs 그룹 단위 / GROUP BY 전후 위치

✅ 셀프 체크 7

  • [ ] 액세스 객체 6종(테이블·쿼리·폼·보고서·매크로·모듈)을 외운다
  • [ ] 통화 형식이 숫자 형식과 다른 이유(반올림 오차)를 안다
  • [ ] 기본키의 4 특성(유일성·NOT NULL·테이블당 1개·자동 인덱스)을 말한다
  • [ ] N:M 관계를 중간 테이블로 분해할 수 있다
  • [ ] 참조 무결성을 켰을 때 연쇄 업데이트/삭제가 어떻게 동작하는지 안다
  • [ ] DDL·DML·DCL 명령을 구분한다 (SELECT는 DML)
  • [ ] SELECT 6절의 순서와 WHERE vs HAVING 차이를 안다

한눈에 정리

SQL·Access 테이블 10토픽 + 함정 5선
영역
핵심
객체 6종
테이블·쿼리·폼·보고서·매크로·모듈
데이터 형식
통화=반올림 없음 / 일련번호=자동·재사용 X
기본키
유일성 + NOT NULL + 1개 + 자동 인덱스
관계
1:1 · 1:N · N:M(중간 테이블)
무결성
참조 무결성 켜야 연쇄 옵션 활성
SQL 분류
DDL · DML · DCL · TCL
SELECT
SELECT-FROM-WHERE-GROUP BY-HAVING-ORDER BY

기출 패턴 풀어보기 3선

컴활 1급 필기는 2021년 상시검정 전환 이후 기출문제 공식 비공개임. 아래 3문제는 5개년 기출 출제 패턴(기본키·관계·SQL 명령 분류)을 바탕으로 공식 시험과 동일 형식으로 만든 변형 문제임. 출처는 시나공·EBS 문제은행·전자문제집 CBT 패턴 분석.

Q1. 기본키 · 난이도 ★★☆ (중)

테이블의 기본키(Primary Key) 에 대한 설명으로 옳지 않은 것은?

① 기본키 값은 유일해야 한다 (중복 불가).
② 기본키 필드에는 Null 값을 입력할 수 없다.
③ 한 테이블에는 기본키를 여러 개 설정할 수 있다.
④ 기본키로 지정하면 인덱스가 자동으로 생성된다.


Q2. 관계 종류 · 난이도 ★★★ (상)

다음 중 N:M 관계를 액세스에서 표현하는 올바른 방법은?

① 두 테이블의 기본키를 직접 1:1 로 연결한다.
② 두 테이블 사이에 중간(연결) 테이블을 만들어 1:N + 1:N으로 분해한다.
③ 한쪽 테이블의 외래키를 다른쪽의 기본키로 변경한다.
④ 액세스는 N:M 관계를 자동으로 처리하므로 따로 설정할 필요가 없다.


Q3. SQL 명령 분류 · 난이도 ★★☆ (중)

다음 SQL 명령 중 DML(Data Manipulation Language) 에 해당하지 않는 것은?

SELECT
INSERT
UPDATE
CREATE

💡 답을 보기 전에 먼저 풀어보세요. 정답·해설은 글 맨 아래에 있음.


✅ 정답 · 해설

Q1 정답 : ③

보기별 해설

  • ① 유일성 ✓ 기본키의 제1 특성
  • ② NOT NULL ✓ 비워두면 식별 불가
  • 여러 개 설정 가능 ✗ 한 테이블에 기본키는 1개. 여러 필드를 묶으면 복합 기본키로 하나로 취급
  • ④ 자동 인덱스 ✓ 기본키 지정 시 인덱스 자동 생성, 검색 속도 향상

출제 경향 — "기본키를 여러 개 설정할 수 있다" 식 오답 보기가 5년간 매년 단골. 복합 기본키(여러 필드 묶음)와 여러 개 기본키는 다른 개념. 한 테이블당 기본키는 1개의 개념적 단위 라는 점이 핵심.

→ 본문 § 기본키 (Primary Key) -- 레코드 유일 식별자 다시 보기


Q2 정답 : ②

보기별 해설

  • ① 1:1 연결 ✗ 그건 1:1 관계, 다대다 표현 못함
  • 중간 테이블 + 1:N + 1:N ✓ 정답. 예: 학생-과목 다대다 → 학생-수강-과목 (수강이 중간 테이블)
  • ③ 외래키→기본키 변경 ✗ 의미 불명
  • ④ 액세스가 자동 처리 ✗ N:M은 반드시 분해해야 함

출제 경향 — N:M 관계 처리는 매년 1문제 단골. 다대다는 직접 표현 못 한다 → 중간 테이블이 답 한 줄로 외울 것. 시험 보기에 "연결 테이블", "교차 테이블" 등 용어가 다양하게 나와도 같은 개념.

→ 본문 § 외래키와 관계 종류 -- 1:1 / 1:N / N:M 다시 보기


Q3 정답 : ④

보기별 해설

  • ① SELECT ✓ 데이터 조회 = DML
  • ② INSERT ✓ 데이터 삽입 = DML
  • ③ UPDATE ✓ 데이터 수정 = DML
  • CREATE ✗ 테이블 구조 정의 = DDL (Data Definition Language)

출제 경향 — SQL 명령 분류는 매년 단골. DML 4 종(SELECT·INSERT·UPDATE·DELETE) vs DDL 3 종(CREATE·ALTER·DROP) vs DCL 2 종(GRANT·REVOKE) 한 줄로 외울 것. 특히 SELECT가 DML이라는 점이 자주 헷갈림 (조회는 데이터 조작에 포함).

→ 본문 § SQL 명령 분류 -- DDL · DML · DCL 다시 보기


다음 글: [Ch3-액세스2] 쿼리·폼·보고서편 -- 쿼리 종류·폼 컨트롤·보고서 구역을 정리함.


컴활 1급 필기, 혼자 정리하기 막막하다면? jit.camp 에서 GA4 데이터 분석 강의로 시험 합격 이후의 실력까지 한 번에 가져가세요.