2026. 3. 2. 15:58ㆍ(학습자료)컴활 1급
출제 비율: 20문항 | 핵심: DB 이론, 테이블 설계, SQL, 폼/보고서, 쿼리
3-1 데이터베이스 기초 이론
데이터베이스 개념
| 개념 | 설명 |
| 정의 | 여러 사용자가 공유하여 사용하기 위한 데이터의 집합 |
| 특징 | 실시간 처리, 지속적 변화, 동시 공유, 위치 참조 |
| 독립성 | 데이터 독립성(논리적·물리적) → 프로그램과 데이터 분리 |
| 중복 최소화 | 같은 데이터를 여러 곳에 저장하지 않음 |
| DBMS | 데이터베이스 관리 시스템 / Oracle, MySQL, SQL Server, Access |
| 무결성 | 데이터의 정확성, 일관성, 유효성 보장 |
데이터베이스 관계 모델
| 용어 | 설명 |
| 릴레이션(테이블) | 2차원 표 형태의 데이터 구조 |
| 튜플(레코드/행) | 릴레이션의 한 행 |
| 속성(필드/열) | 릴레이션의 한 열 |
| 도메인 | 속성이 가질 수 있는 값의 범위 |
| 기본키(PK) | 각 레코드를 고유하게 식별, NULL 불가, 중복 불가 |
| 외래키(FK) | 다른 테이블의 기본키를 참조하는 필드 |
| 참조 무결성 | 외래키 값은 참조 테이블의 기본키 값과 동일해야 함 |
| 후보키 | 기본키가 될 수 있는 속성(들), 유일성+최소성 만족 |
| 대리키(대체키) | 후보키 중 기본키가 되지 않은 나머지 |
| 슈퍼키 | 유일성만 만족 (최소성 불필요) |
★ 참조 무결성 = 외래키 값이 참조 테이블의 기본키와 항상 동일해야 하는 규칙
★ 기본키: NULL 불가 + 중복 불가 / 외래키: NULL 가능 + 중복 가능
스키마 (Schema)
| 스키마 | 설명 |
| 외부 스키마 | 사용자 관점의 스키마, 개인별 뷰(View) |
| 개념 스키마 | 데이터베이스 전체의 논리적 구조 (전체 뷰), 하나만 존재 |
| 내부 스키마 | 물리적 저장 구조, 저장장치 관점 |
★ 개념 스키마 = 전체 DB의 논리적 구조를 보여주는 스키마 (자주 출제)
정규화 (Normalization)
| 정규형 | 설명 |
| 목적 | 데이터 중복 제거, 이상현상 방지, 데이터 무결성 보장 |
| 1NF | 모든 속성의 도메인이 원자값(Atomic Value)으로만 구성 |
| 2NF | 1NF + 부분 함수적 종속 제거 (완전 함수 종속) |
| 3NF | 2NF + 이행적 함수 종속 제거 |
| BCNF | 3NF + 결정자가 모두 후보키 |
| 4NF | BCNF + 다치 종속 제거 |
| 5NF | 4NF + 조인 종속 제거 |
| 비정규화 | 성능을 위해 의도적으로 중복 허용 |
★ 1NF = 원자값(Atomic Value)만으로 구성된 릴레이션 (자주 출제)
3-2 SQL (구조적 질의 언어)
DDL (데이터 정의어)
| 명령 | 기능 |
| CREATE TABLE | 테이블 생성 |
| ALTER TABLE | 테이블 수정 (컬럼 추가·변경·삭제) |
| DROP TABLE | 테이블 삭제 |
| CREATE INDEX | 인덱스 생성 |
| CREATE VIEW | 뷰(가상테이블) 생성 |
DML (데이터 조작어)
| 명령 | 기능 |
| SELECT | 데이터 조회 |
| INSERT | 데이터 삽입 |
| UPDATE | 데이터 수정 |
| DELETE | 데이터 삭제 |
SELECT 문 구조
SELECT → FROM → WHERE → GROUP BY → HAVING → ORDER BY 순서
| 구문 | 설명 |
| SELECT 필드명 | 출력할 필드 지정 / * = 전체 |
| FROM 테이블명 | 데이터 원본 테이블 |
| WHERE 조건 | 조건으로 행 필터링 |
| GROUP BY 필드 | 그룹화 (집계함수와 함께) |
| HAVING 조건 | GROUP BY 후 그룹에 대한 조건 (WHERE는 그룹 전 조건) |
| ORDER BY 필드 [ASC/DESC] | 정렬 (ASC=오름차순 기본, DESC=내림차순) |
| DISTINCT | 중복 제거 |
| TOP n | 상위 n개만 조회 |
| LIKE "패턴" | 패턴 매칭 / *=여러문자, ?=한문자 (Access 기준) |
| IN (값1,값2) | 목록 중 하나에 해당 |
| BETWEEN A AND B | A이상 B이하 |
| IS NULL | NULL 값 확인 |
★ WHERE는 그룹 전 조건 / HAVING은 그룹화(GROUP BY) 후 조건
집계 함수
| 함수 | 설명 |
| COUNT(*) | 전체 행 수 |
| COUNT(필드) | NULL 제외 행 수 |
| SUM(필드) | 합계 |
| AVG(필드) | 평균 |
| MAX(필드) | 최대값 |
| MIN(필드) | 최소값 |
SQL 예제 - 자주 출제 패턴
예제 1: 2회 이상 주문한 고객의 주문번호, 주문횟수, 주문금액합계
SELECT 고객번호, Count(주문번호), Sum(주문금액)
FROM 주문
GROUP BY 고객번호
HAVING Count(주문번호) >= 2;
★ HAVING Count(주문번호) >= 2 → WHERE 아닌 HAVING에 집계함수 조건
예제 2: 학생의 과목별 점수 합계 (여러 레코드 그룹화)
SELECT 학생명, SUM(점수) AS 합계
FROM 성적
GROUP BY 학생명;
3-3 Access 테이블 설계
필드 데이터 형식
| 데이터 형식 | 설명 |
| 짧은 텍스트 | 최대 255자 텍스트 |
| 긴 텍스트(메모) | 65,535자 이상, 메모용 |
| 숫자 | 정수, 실수 / 바이트·정수·장정수·통화·단정밀도·배정밀도 |
| 날짜/시간 | 날짜·시간 데이터 |
| 통화 | 소수점 4자리까지, 재무 계산 |
| 일련번호 | 자동으로 1씩 증가, 기본키로 주로 사용 |
| 예/아니오 | 논리형, True/False, Yes/No |
| OLE 개체 | 이미지·스프레드시트 등 OLE 개체 삽입 |
| 하이퍼링크 | URL 또는 파일 경로 |
| 첨부 파일 | 파일 첨부 |
| 계산 | 필드 간 계산식 결과 저장 |
| 조회 마법사 | 다른 테이블/값 목록에서 값 선택 |
필드 속성 및 제약조건
| 속성 | 설명 |
| 기본키 | NULL 불가, 중복 불가, 테이블당 하나 |
| 필수(Required) | NULL 값 허용 여부 |
| 인덱스 | 검색 속도 향상 / 예(중복 있음)/예(중복 없음)/아니요 |
| 유효성 검사 규칙 | 입력 조건 제한 (예: >=0 AND <=100) |
| 기본값 | 새 레코드 입력 시 자동으로 채워지는 값 |
| 입력 마스크 | 입력 형식 제한 (예: 전화번호 형식) |
| 캡션 | 필드명 대신 표시될 레이블 |
| 외래키 설정 | 다른 테이블 참조 → 참조 무결성 설정 가능 |
관계(Relationship) 설정
| 관계 | 설명 |
| 1:1 관계 | 양쪽 테이블에서 고유한 값끼리 연결 |
| 1:N 관계 | 한 레코드가 여러 레코드와 연결 (가장 일반적) |
| M:N 관계 | 중간 연결 테이블을 통해 구현 |
| 참조 무결성 | 관련 테이블에 존재하지 않는 외래키 값 입력 방지 |
| 연속 업데이트 | 기본키 변경 시 관련 외래키 자동 변경 |
| 연속 삭제 | 기본키 삭제 시 관련 레코드 자동 삭제 |
3-4 Access 쿼리
| 쿼리 종류 | 설명 |
| 선택 쿼리 | 조건에 맞는 레코드 조회 (가장 기본) |
| 크로스탭 쿼리 | 행·열 기준으로 데이터 요약 (피벗 형태) |
| 업데이트 쿼리 | 기존 레코드의 값 일괄 수정 |
| 추가 쿼리 | 다른 테이블에 레코드 추가 |
| 삭제 쿼리 | 조건에 맞는 레코드 삭제 |
| 테이블 만들기 쿼리 | 쿼리 결과로 새 테이블 생성 |
| 매개변수 쿼리 | 실행 시 조건값을 입력받아 처리 |
| 통합 쿼리 | 두 테이블의 SELECT 결과를 합침 (UNION) |
쿼리 조건식
| 조건식 | 설명 |
| Like "김*" | "김"으로 시작하는 값 (*=여러문자) |
| Like "?이*" | 두 번째 자리가 "이"인 값 |
| Between #2024-01-01# AND #2024-12-31# | 날짜 범위 |
| Is Null | NULL 값인 레코드 |
| Is Not Null | NULL이 아닌 레코드 |
| In ("서울","경기") | 목록 중 하나 |
| >=100 And <=200 | 100이상 200이하 |
| >100 Or <0 | 100초과 또는 0미만 |
| Not "남성" | "남성" 제외 |
3-5 폼(Form)과 보고서(Report)
폼 구성 및 특징
| 구성 | 설명 |
| 목적 | 데이터 입력·편집을 위한 사용자 인터페이스 |
| 열 형식 | 각 필드가 레이블과 함께 행별로 나타남, 컨트롤 크기 개별 조정 불가 |
| 테이블 형식 | 레코드가 행으로, 필드가 열로 표시 (스프레드시트처럼) |
| 데이터시트 | 데이터시트 뷰로 데이터 표시 |
| 맞춤 | 각 필드 크기를 개별 조정 가능 |
| 분할 폼 | 위쪽은 폼 뷰, 아래쪽은 데이터시트 뷰 |
| 폼 마법사 | 열/테이블/데이터시트/맞춤 형식 선택 |
★ 열 형식 = 생성 직후 컨트롤 레이아웃 설정, 크기 개별 조정 불가
컨트롤 종류
| 컨트롤 | 설명 |
| 텍스트 상자 | 데이터 입력·표시, 바운드/언바운드/계산 컨트롤 |
| 레이블 | 설명 텍스트, 읽기 전용 |
| 명령 단추 | 클릭 시 매크로나 VBA 실행 |
| 콤보 상자 | 목록에서 선택 또는 직접 입력 |
| 목록 상자 | 목록에서만 선택 (직접 입력 불가) |
| 확인란 | 예/아니오 값 선택 |
| 옵션 그룹 | 여러 옵션 중 하나 선택 |
| 탭 컨트롤 | 탭 형태로 여러 페이지 구성 |
| 하위 폼/보고서 | 폼 내에 다른 폼/보고서 삽입 |
보고서
| 항목 | 설명 |
| 목적 | 데이터를 인쇄용 형태로 출력 |
| 그룹화 | 필드 기준으로 데이터 그룹화, 그룹 머리글/바닥글 |
| 정렬 | 여러 필드 기준 정렬 |
| 집계 | 그룹별/전체 합계·평균·카운트 |
| 보고서 구역 | 보고서 머리글, 페이지 머리글, 그룹머리글, 본문, 그룹바닥글, 페이지바닥글, 보고서 바닥글 |
| 인쇄 미리보기 | 출력 전 레이아웃 확인 |
3-6 기타 Access 기능
| 기능 | 설명 |
| 데이터베이스 압축/복구 | 파일 크기 최적화, 손상된 DB 복구 |
| 가져오기/내보내기 | Excel·CSV·XML·ODBC 등 외부 데이터 연동 |
| 연결 테이블 | 외부 파일을 원본으로 연결 (복사 X) |
| 분석 도구 | 성능 분석기, 테이블 분석기 |
| 데이터베이스 암호화 | 파일 수준 암호 설정 |
| 탐색 창 | 테이블·쿼리·폼·보고서·매크로·모듈 관리 |
'(학습자료)컴활 1급' 카테고리의 다른 글
| 컴활 1급 필기 요약 - 함수 (0) | 2026.03.02 |
|---|---|
| 컴활 1급 필기 요약 - 스프레드시트 일반 (Excel) (0) | 2026.03.02 |
| 컴활 1급 필기 요약 - 컴퓨터 일반 (0) | 2026.03.02 |