11회 전부에 나온 묶음이다. 용어의 정의를 정확한 낱말로 적고, 표를 보고 정규형과 연산 결과를 판정한다
왜 이걸 하나 — 11회 중 11회 전부에 나왔다. 빠진 적이 없는 묶음은 이것뿐이다.
11회분 220문항 중 이 장의 기출은 20문항이다. 회차마다 1~3문항, 2025년 2회에는 3문항이 나왔다. SQL 조회 13 · 정의 6 과 합치면 SQL·DB 묶음 39문항이 된다.
| 꼴 | 몇 문항 | 무엇을 적나 | 보기 |
|---|---|---|---|
| 용어 정의 · 매칭 | 13 | 튜플 · 카디널리티 · 외부 스키마 · 참조 무결성 · 후보키 같은 낱말 | 2023-1회 12번 · 2024-3회 10번 · 2025-1회 8번 |
| 순서 나열 | 2 | 설계 4단계 | 2023-2회 3번 · 2026-1회 4번 |
| 관계대수 | 3 | 기호 · π 결과 · ÷ 결과 | 2023-3회 19번 · 2025-2회 20번 · 2025-3회 16번 |
| 정규형 판정 | 2 | 표를 보고 3NF 인지 | 2024-1회 6번 · 2026-2회 20번 |
→ 20문항 중 13문항이 낱말 문제다. 같은 것을 다른 말로 묻는다 — 「행에 해당하는 것」은 튜플, 「튜플의 개수」는 카디널리티, 「속성의 개수」는 디그리(차수). 2023년 1회 12번과 2025년 3회 18번은 같은 문제다.
판정 문제는 3종뿐이고 전부 절차가 있다. 정규형은 검문 3개를 차례로 통과시키고, 관계대수는 연산 기호가 행을 고르는지 열을 고르는지를 보고, 무결성 위반은 기본키 · 외래키 · 값의 범위 셋을 따로 검사한다. 03절이 그 절차다.
문항 수는 이 노트의 문제 데이터에서 ch=E10 인 것을 센 값이다(2026-09-14). 2024-1회 6번 · 2025-2회 20번 · 2025-3회 16번의 표는 grandlife.co.kr 복원에서 옮겼다.
왜 이걸 하나 — 낱말 문제 13개는 이 절의 카드에서 나온다. 답안 표기 그대로 적었다.
왜 이걸 하나 — 낱말은 02절로 되지만 판정 3종은 절차가 있어야 표가 바뀌어도 푼다.
정규화는 한 표에 섞인 사실을 떼어 내는 일이고, 정규형 판정은 그 표가 어느 검문소까지 통과했나를 보는 일이다. 검문소는 순서가 있어 앞을 통과하지 못하면 뒤는 볼 필요가 없다.
| 검문 | 무엇을 보나 | 통과 못 하는 표 |
|---|---|---|
| 1NF | 모든 값이 원자값인가(한 칸에 값 하나) | 한 칸에 「영어, 수학」처럼 둘 |
| 2NF | 기본키가 복합키일 때, 키의 일부에만 매달린 속성이 없나(부분 함수 종속) | (학번, 과목코드) 가 키인데 학생이름이 학번에만 종속 |
| 3NF | 키 아닌 속성끼리 A → B → C 로 이어진 것이 없나(이행 함수 종속) | 학번 → 학과 → 학과장 |
| BCNF | 모든 결정자가 후보키인가 | 강사번호 → 강좌명 인데 강사번호가 후보키가 아님 |
2026년 2회 20번(2024년 1회 6번과 같은 표)을 이 순서로 통과시켜 보자. 값은 전부 원자값이라 1NF 통과, 기본키 (고객아이디, 강좌명) 의 일부에만 매달린 속성이 없어 2NF 통과, 키 아닌 속성이 강사번호 하나뿐이라 이행 종속이 없어 3NF 통과. 그런데 표에서 강사번호 → 강좌명 이 성립하고(P001 은 늘 영어회화) 강사번호는 후보키가 아니므로 BCNF 에서 막힌다. 그래서 답은 제3정규형이다.
→ 판정의 핵심은 표에서 함수 종속을 읽어 내는 것이다. X 의 값이 같은 행끼리 Y 도 늘 같으면 X → Y 다. 강사번호 P001 인 두 행의 강좌명이 둘 다 영어회화라 강사번호 → 강좌명, 반대로 영어회화인 세 행의 강사번호가 P001 · P001 · P003 이라 강좌명 → 강사번호 는 아니다.
훈련 1번은 2NF 에서 막히는 표다. (학번, 과목코드) 가 키인데 학생이름은 학번에만, 과목명은 과목코드에만 매달린다. 이것이 부분 함수 종속이고, 답은 「1NF, 부분 함수 종속을 제거」다.
여덟 연산 중 시험에 나오는 것은 넷이다. σ(셀렉트)는 조건에 맞는 행을, π(프로젝트)는 지정한 열을 고른다. ⋈(조인)은 두 릴레이션을 공통 속성으로 잇고, ÷(디비전)은 「S 의 값을 전부 가진 것」만 남긴다.
결과는 언제나 집합이다. 그래서 π 직급 (employee) 에서 대리가 두 번 있어도 한 번만 남고(2025년 2회 20번), SQL 로 옮기면 SELECT DISTINCT 가 된다. 이 「중복 제거」를 빠뜨리면 행이 하나 많아져 틀린다.
÷ 은 말로 풀면 「모든 …을 가진」이다. R(A, B) ÷ S(B) 는 S 의 B 값 전부와 짝지어진 A 만 남기고, 결과 열은 R 의 열에서 S 의 열을 뺀 A 다. 2025년 3회 16번에서 a1 은 b1 · b2 를 다 갖고 a2 는 b1 만 가져 a1 만 남는다. SQL 로는 NOT EXISTS 두 겹으로 쓴다.
기호 문제(2023년 3회 19번)는 넷을 그림으로 외운다. σ 는 시그마 s 로 select, π 는 파이 p 로 project, ⋈ 는 나비넥타이 모양의 join, ÷ 은 나눗셈 division. 집합 연산 ∪ ∩ − × 는 수학 기호 그대로다.
무결성은 「표가 지켜야 할 약속」이고, 위반 판정은 약속 셋을 각각 대조한다. 기본키 열에 NULL 이나 중복이 있으면 개체 무결성 위반, 외래키 값이 부모 표에 없으면 참조 무결성 위반, 값이 정의된 범위 밖이면 도메인 무결성 위반이다. 한 표에 셋이 동시에 있을 수 있어(훈련 3번) 하나 찾았다고 멈추지 않는다.
정의 문제는 낱말의 짝을 잡는다. 「NULL · 중복 불가」가 보이면 개체, 「참조 · 일치 · 부모」가 보이면 참조, 「범위 · 형식 · 도메인」이 보이면 도메인이다. 2024년 3회 13번과 2025년 1회 2번이 이 낱말 그대로 나왔다.
장애가 나면 로그를 보고 트랜잭션마다 둘 중 하나를 한다. 커밋 기록이 있으면 디스크에 못 썼을 수 있으니 로그대로 다시 실행(REDO), 커밋 기록이 없으면 반쯤 쓴 것을 되돌린다(UNDO). 즉시 갱신 기법은 커밋 전에도 디스크에 쓰므로 둘 다 필요하고, 지연 갱신은 커밋 뒤에만 쓰므로 REDO 만 필요하다.
병행 제어의 로킹 단위는 크기와 비용의 저울이다. 단위가 크면(테이블 단위) 로크 수가 적고 관리가 쉽지만 여러 트랜잭션이 동시에 못 들어와 병행성이 떨어진다. 단위가 작으면(행 단위) 반대다. 예상 2회 13번이 이 저울을 빈칸으로 물었다.
왜 이걸 하나 — 낱말 문제는 정답표 표기로 적는 연습이고, 판정 문제는 03절 절차를 대 보는 연습이다.
낱말 문제는 답을 한글 정식 명칭으로 적는다(영문을 요구하면 영문). 「튜플」을 「행」이라 적거나 「카디널리티」를 「튜플 수」라 적으면 틀렸다를 누른다.
관계형 DB 용어: ① 릴레이션의 행(Row)에 해당하는 것 ② 실제 저장된 값(튜플)들의 집합 ③ 튜플의 개수
스키마 3계층: ① 사용자 관점의 뷰 ② 조직 전체의 논리적 구조 ③ 물리적 저장 구조
데이터베이스 설계 4단계를 순서대로 나열하시오: (개념적 설계 / 물리적 설계 / 논리적 설계 / 요구사항 분석)
관계대수 연산 기호 매칭: ① Join ② Project ③ Select ④ Division
외래키의 값은 참조하는 릴레이션의 기본키 값과 일치하거나 NULL이어야 한다는 무결성 제약조건은?
다음 릴레이션이 만족하는 제1~제3정규형 중 가장 높은 정규형을 쓰시오. 기본키는 (고객아이디, 강좌명)이며, 강사번호는 기본키 전체에만 함수 종속된다고 가정한다.
강좌신청
| 고객아이디 | 강좌명 | 강사번호 |
|---|---|---|
| apple | 영어회화 | P001 |
| banana | 기초토익 | P002 |
| carrot | 영어회화 | P001 |
| carrot | 기초토익 | P004 |
| orange | 영어회화 | P003 |
| orange | 기초토익 | P004 |
조인 유형 매칭: ① 비교 연산자(=, >, < 등)를 사용하는 일반 조인 ② =만 사용하는 조인 ③ 동등 조인에서 중복 속성을 제거한 조인
정규화된 데이터 모델을 성능 향상을 위해 의도적으로 통합·중복·분리하는 데이터 모델링 기법은?
튜플 5개, 속성 4개인 릴레이션의 카디널리티와 디그리는?
키 매칭: ① 다른 릴레이션의 기본키를 참조 ② 유일성+최소성을 만족 ③ 후보키 중 기본키를 제외한 나머지 ④ 유일성만 만족하는 속성 집합
"기본키는 NULL 값을 가질 수 없고 중복될 수 없다"는 무결성 제약조건은?
무결성 3종 빈칸: ① 속성 값은 정의된 범위의 값이어야 한다 ② 기본키는 NULL·중복 불가 ③ 외래키는 참조하는 기본키와 일치하거나 NULL
관계형 DB 용어 매칭: ① 속성의 개수 ② 튜플의 개수 ③ 다른 릴레이션의 기본키를 참조하는 키 ④ 속성이 가질 수 있는 값들의 범위 (영문으로)
테이블의 레코드를 빠르게 검색·접근하기 위해 별도로 구성하는 데이터 구조(색인)는?
데이터베이스에서 개체(Entity)의 특성이나 상태를 나타내는 구성 요소는? (영문)
다음 employee 릴레이션에 관계대수의 프로젝트 연산 π를 적용해 직급 열을 추출한 결과 릴레이션을 테이블 형태로 쓰시오.
employee
| 사번 | 이름 | 직급 |
|---|---|---|
| 101 | 김하늘 | 부장 |
| 102 | 이바다 | 대리 |
| 103 | 박노을 | 과장 |
| 104 | 최새벽 | 차장 |
| 105 | 정구름 | 대리 |
다음 관계대수 연산의 결과 릴레이션을 테이블 형태로 쓰시오. 관계 R과 S가 다음과 같을 때 R ÷ S의 결과를 구하시오.
R
| A | B |
|---|---|
| a1 | b1 |
| a1 | b2 |
| a2 | b1 |
S
| B |
|---|
| b1 |
| b2 |
관계형 DB 용어: ① 행에 해당 ② 실제 값들의 집합 ③ 튜플의 개수
데이터베이스 설계 순서를 나열하시오 (요구사항 분석 / 구현 / 논리적 설계 / 개념적 설계 / 물리적 설계)
관계형 데이터 모델에서는 데이터 중복으로 인한 이상 현상을 방지하고 데이터의 일관성과 정확성을 유지하기 위해 정규화를 수행한다. 속성명 아래에 밑줄이 그어진 고객아이디와 강좌명은 함께 기본키를 구성한다. 다음 [강좌신청] 릴레이션이 만족하는 가장 높은 정규형을 [보기]에서 고르시오.
[강좌신청]
| 고객아이디 | 강좌명 | 강사번호 |
|---|---|---|
| apple | 영어회화 | P001 |
| banana | 기초토익 | P002 |
| carrot | 영어회화 | P001 |
| carrot | 기초토익 | P004 |
| orange | 영어회화 | P003 |
| orange | 기초토익 | P004 |
[보기]
제1정규형 · 제2정규형 · 제3정규형 · 제4정규형 · 제5정규형 · BCNF
릴레이션 R(학번, 과목코드, 성적, 학생이름)에서 기본키는 (학번, 과목코드)이고 함수 종속이 다음과 같다: (학번, 과목코드) → 성적, 학번 → 학생이름. 이 릴레이션에 존재하는 함수 종속의 문제점과, 이를 제거하면 도달하는 정규형은?
트랜잭션의 특성: ① 연산이 전부 반영되거나 전혀 반영되지 않아야 한다 ② 성공적으로 완료된 트랜잭션의 결과는 시스템 장애가 발생해도 영구적으로 반영되어야 한다. 각각의 명칭은?
정규화하지 않은 테이블에서 데이터 중복 때문에 발생하는 이상(Anomaly) 현상 3가지를 쓰시오.
로킹(Locking) 단위가 커질수록: 로크의 수는 ( ① ), 병행성(동시성) 수준은 ( ② ), 관리 오버헤드는 ( ③ ). 괄호에 증가/감소(높아짐/낮아짐)를 쓰시오.
왜 이걸 하나 — 이 장은 아는데 낱말이 어긋나서 깎이는 자리가 가장 많다.
| 자리 | 새는 꼴 | 적는 법 | 기출 |
|---|---|---|---|
| 비슷한 낱말 | 튜플 대신 행, 속성 대신 열, 카디널리티 대신 튜플 수 | 문제의 낱말 체계를 따른다. 「릴레이션」이라 부르면 튜플 · 속성 · 카디널리티로 | 2023-1회 12번 · 2024-2회 4번 |
| 영문 요구 | 영문을 요구하는데 한글로 | 「영문으로」가 있으면 degree · cardinality · attribute 처럼 소문자 원어 | 2025-1회 8번 · 2025-2회 2번 |
| 순서 | 설계 단계에서 개념과 논리를 바꾼다 | 요구 → 개념 → 논리 → 물리 → 구현. 보기에 구현이 있으면 끝에 붙인다 | 2023-2회 3번 · 2026-1회 4번 |
| 정규형 이름 | 「3NF」만 적거나 「제3정규화」라 적는다 | 제3정규형(3NF). 정규화는 과정, 정규형은 상태 | 2024-1회 6번 · 2026-2회 20번 |
| 관계대수 결과 | 중복을 남기거나 열 이름을 뺀다 | 결과는 집합 — 중복 제거, 열 이름 줄부터 | 2025-2회 20번 · 2025-3회 16번 |
| 키 이름 | 대체키와 후보키를 바꾼다 | 후보키 = 유일성 + 최소성, 대체키 = 후보키 − 기본키, 슈퍼키 = 유일성만 | 2024-3회 10번 |
| 무결성 이름 | 개체와 참조를 바꾼다 | 기본키 이야기면 개체, 외래키 이야기면 참조, 값의 범위면 도메인 | 2024-3회 13번 · 2025-1회 2번 |
매칭 문제는 소문항마다 부분 점수가 있다. 넷 중 셋만 알아도 셋을 적고, 모르는 하나는 남은 보기 중 가장 그럴듯한 것을 적는다. 빈칸은 0점이고 틀린 답도 0점이라 적는 쪽이 손해가 없다.
왜 이걸 하나 — 판정 3종을 기출에 없던 표로 한 번 더 돌린다.
5문항은 2NF 에서 막히는 표, 자연 조인과 σ 의 행 수, 무결성 3종이 한꺼번에 깨진 표, ACID 의 나머지 둘, REDO · UNDO 다. 조인과 σ 는 sqlite 로 행 수를 확인했다.
릴레이션 수강(학번, 과목코드, 성적, 학생이름, 과목명)의 기본키는 (학번, 과목코드)이고 함수 종속은 다음과 같다. 이 릴레이션이 만족하는 가장 높은 정규형과, 다음 정규형으로 가기 위해 제거해야 할 함수 종속의 종류를 쓰시오.
(학번, 과목코드) → 성적
학번 → 학생이름
과목코드 → 과목명
다음 두 릴레이션에 대해 R ⋈ S(자연 조인)의 결과 튜플 수와, σ 학년=3 (R)의 결과 튜플 수를 각각 쓰시오.
R
| 학번 | 이름 | 학년 | 학과코드 |
|---|---|---|---|
| 1 | 김 | 3 | C |
| 2 | 이 | 2 | E |
| 3 | 박 | 3 | C |
| 4 | 최 | 1 | M |
S
| 학과코드 | 학과명 |
|---|---|
| C | 컴퓨터 |
| E | 전자 |
다음 학생 테이블에서 위반된 무결성 제약조건을 모두 쓰시오. 학번은 기본키, 학과코드는 학과 테이블의 학과코드(C, E, M 만 있음)를 참조하는 외래키이며, 학년은 1~4 사이여야 한다.
학생
| 학번 | 이름 | 학년 | 학과코드 |
|---|---|---|---|
| 1 | 김 | 3 | C |
| 2 | 이 | 5 | E |
| 2 | 박 | 2 | C |
| 4 | 최 | 1 | Z |
트랜잭션의 네 특성 중 다음 설명에 해당하는 것을 각각 쓰시오.
① 여러 트랜잭션이 동시에 실행돼도 각각 혼자 실행되는 것과 같은 결과를 내야 한다.
② 트랜잭션이 끝나면 데이터베이스는 모순 없는 상태를 유지해야 한다.
장애 발생 후 회복할 때, 로그를 보고 다음 두 트랜잭션에 각각 적용할 회복 연산을 쓰시오.
① 장애 전에 COMMIT 기록이 로그에 남아 있는 트랜잭션
② 시작 기록은 있으나 COMMIT 기록이 없는 트랜잭션
왜 이걸 하나 — 아래를 안 보고 적을 수 있어야 낱말 문제 13개가 끝난다.