이 문제 세트는 실제 기출문제를 그대로 옮긴 것이 아닙니다. 국가평생교육진흥원이 공개한 독학학위제 4단계 데이터베이스 평가영역(출제기준) 중 함수적 종속·정규화·ER/EER 사상·SQL 고급 항목을 근거로, 다루는 개념·계산 유형·오답 구성 방식을 참고해 지문과 데이터를 모두 새로 구성한 예상문제입니다. 실제 회차의 문항 수·배점·시험 시간은 매 공고마다 달라질 수 있으므로 반드시 응시 회차의 공식 공고를 확인하시기 바랍니다. 이 편은 10·11편(ER 사상), 15·17편(FD·정규화), 13·14편(고급 SQL)에서 다룬 내용을 섞은 혼합 문제 22개로 구성했습니다.
정규화 문항은 폐포(closure) 계산과 분해 절차를 해설에 전부 풀어 두었고, SQL 문항은 실행 결과를 표의 데이터로 직접 검산할 수 있게 구성했습니다. 정답 번호만 확인하지 말고, 표의 데이터를 손으로 짚어 가며 검산하시기 바랍니다.
문항 배분
| 영역 | 문항 수 | 문항 번호 |
|---|---|---|
| 함수적 종속과 이상 현상 | 4 | 1–4 |
| 정규화 I(1NF–BCNF) | 5 | 5–9 |
| 정규화 II(4NF·5NF) | 2 | 10–11 |
| ER/EER → 관계 사상 | 5 | 12–16 |
| SQL 고급(그룹화·뷰·서브쿼리·DCL, Oracle 문법) | 6 | 17–22 |
| 합계 | 22 | 1–22 |
함수적 종속과 이상 현상 (1–4번)
다음 릴레이션은 1번부터 4번, 9번까지 정규화 문항에서 공통으로 사용합니다.
도서대출(대출번호, 회원번호, 회원이름, 도서번호, 도서명, 저자, 대출일)
| 대출번호 | 회원번호 | 회원이름 | 도서번호 | 도서명 | 저자 | 대출일 |
|---|---|---|---|---|---|---|
| L1 | M1 | 김하늘 | B01 | 데이터베이스개론 | 이일산 | 2024-03-02 |
| L2 | M1 | 김하늘 | B02 | 자료구조 | 박준서 | 2024-03-05 |
| L3 | M2 | 정수아 | B01 | 데이터베이스개론 | 이일산 | 2024-03-10 |
| L4 | M3 | 오지훈 | B03 | 운영체제 | 최민규 | 2024-03-12 |
| L5 | M2 | 정수아 | B03 | 운영체제 | 최민규 | 2024-03-15 |
이 릴레이션에는 다음 함수적 종속(FD) 집합 가 성립합니다.
정규화 I: 1NF~BCNF (5–9번)
정규화 II: 4NF·5NF (10–11번)
ER/EER → 관계 사상 (12–16번)
다음 EER 다이어그램 설명은 12번부터 16번까지 공통으로 사용합니다. “병원(강한 엔티티, 병원코드가 기본키)은 여러 의사를 고용한다(1:N, employs). 의사(강한 엔티티, 의사번호가 기본키)는 여러 환자를 진료하고 환자도 여러 의사에게 진료받을 수 있다(M:N, treats, 관계 속성으로 진료일·진단내용을 가짐). 환자(강한 엔티티, 환자번호가 기본키)는 보호자연락처(약한 엔티티, 부분 키는 연락처이름)를 가진다. 의료진(ISA 슈퍼클래스)은 의사와 간호사(ISA 서브클래스, 두 서브클래스는 서로 겹치지 않고 모든 의료진이 둘 중 하나에 반드시 속함)로 나뉜다.”
SQL 고급: 그룹화·뷰·서브쿼리·DCL (17–22번, Oracle 문법)
다음 두 테이블은 17번부터 22번까지 공통으로 사용합니다.
고객(고객번호, 고객명, 등급)
| 고객번호 | 고객명 | 등급 |
|---|---|---|
| C1 | 김도윤 | VIP |
| C2 | 이서준 | 일반 |
| C3 | 박서연 | VIP |
주문(주문번호, 고객번호, 상품코드, 수량, 단가)
| 주문번호 | 고객번호 | 상품코드 | 수량 | 단가 |
|---|---|---|---|---|
| O1 | C1 | P01 | 2 | 15000 |
| O2 | C1 | P02 | 1 | 30000 |
| O3 | C2 | P01 | 3 | 15000 |
| O4 | C3 | P03 | NULL | 20000 |
| O5 | C2 | P02 | 2 | 30000 |
O4는 아직 수량이 확정되지 않아 NULL로 남아 있는 주문입니다.
SELECT 고객번호
FROM 주문
GROUP BY 고객번호
HAVING SUM(수량 * 단가) > 60000;GRANT SELECT ON 주문 TO park WITH GRANT OPTION;
GRANT SELECT ON 주문 TO choi; -- (park이 choi에게 부여)
REVOKE SELECT ON 주문 FROM park;SELECT *
FROM 주문 O1
WHERE O1.수량 > (SELECT AVG(수량) FROM 주문 O2);