[문제 1] 1과목: 데이터 모델링의 이해
엔티티(Entity)의 속성(Attribute)에 대한 설명 중 가장 부적절한 것은?
① 엔티티가 관리하는 최소 단위의 데이터 항목이다.
② 하나의 속성은 인스턴스(행) 내에서 오직 하나의 값(Single Value)만 가져야 한다.
③ 속성도 엔티티와 마찬가지로 반드시 2개 이상의 인스턴스(데이터 행)를 가져야 의미가 있다.
④ 속성의 명칭은 해당 업무에서 사용하는 용어로 명확하고 중복되지 않게 부여해야 한다.
- 상세 해설:
- 인스턴스(행)를 가지는 주체는 엔티티입니다.
- 속성(Attribute)은 엔티티를 구성하는 '세로줄(컬럼/항목)' 개념이므로 "2개 이상의 인스턴스를 가져야 한다"는 속성 자체에 적용되는 설명이 아닙니다. (엔티티가 2개 이상의 인스턴스를 가져야 하는 것입니다.)
[문제 2] 1과목: 데이터 모델링의 이해
데이터베이스의 정규화(Normalization) 과정 중, **"테이블 내의 모든 일반 속성이 기본키(Primary Key) 전체에 완전히 종속되어야 하며, 기본키의 일부에만 종속되는 부분 함수 종속을 제거하는 정규화 단계"**는?
① 제1정규화 (1NF)
② 제2정규화 (2NF)
③ 제3정규화 (3NF)
④ 보이스-코드 정규화 (BCNF)
- 상세 해설:
- 제1정규화 (1NF): 모든 속성의 값이 원자값(Atomic Value)을 가지도록 분해 (다중값 제거).
- 제2정규화 (2NF): 기본키가 2개 이상의 컬럼으로 구성된 복합키일 때, 기본키의 일부에만 종속되는 '부분 함수 종속'을 제거하고 완전 함수 종속으로 만드는 단계.
- 제3정규화 (3NF): 기본키가 아닌 일반 속성 간의 종속 관계인 '이행적 함수 종속(A ➔ B, B ➔ C)'을 제거하는 단계.
[문제 3] 2과목: SQL 기본
다음 중 SQL문에서 WHERE 절에 사용하는 논리 연산자의 우선순위가 높은 것부터 낮은 순서대로 올바르게 나열된 것은?
① NOT ➔ AND ➔ OR
② OR ➔ AND ➔ NOT
③ AND ➔ OR ➔ NOT
④ NOT ➔ OR ➔ AND
- 상세 해설:
- SQL 논리 연산자의 우선순위는 NOT > AND > OR 순서입니다.
- 괄호 ()가 없다면 NOT이 가장 먼저 처리되고, 그 다음 AND, 마지막으로 OR가 평가됩니다.
[문제 4] 2과목: SQL 기본
다음 중 NULL 값의 처리 함수에 대한 설명으로 가장 올바르지 않은 것은? (Oracle/ANSI SQL 기준)
① NVL(A, B) : A가 NULL이면 B를 반환하고, A가 NULL이 아니면 A를 반환한다.
② NVL2(A, B, C) : A가 NULL이 아니면 B를 반환하고, A가 NULL이면 C를 반환한다.
③ NULLIF(A, B) : A와 B의 값이 같으면 NULL을 반환하고, 다르면 A를 반환한다.
④ COALESCE(A, B, C) : A, B, C 중 가장 작은 NULL 아닌 값을 반환한다.
- 상세 해설:
- COALESCE(A, B, C, ...): 크고 작음을 비교하는 함수가 아니라, 나열된 인자들 중 NULL이 아닌 '첫 번째' 값을 반환하는 ANSI 표준 함수입니다. (예: COALESCE(NULL, NULL, 30, 50) ➔ 30 반환)
[문제 5] 2과목: SQL 기본
아래의 학생 테이블에서 '전공'별로 학생 수가 3명 이상인 전공과 그 학생 수를 조회하고자 합니다. ( A )와 ( B )에 들어갈 키워드가 올바르게 짝지어진 것은?
SQLSELECT 전공, COUNT(*) FROM 학생 GROUP BY ( A ) ( B ) COUNT(*) >= 3;① (A) 전공, (B) WHERE
② (A) 전공, (B) HAVING
③ (A) 학번, (B) WHERE
④ (A) 학번, (B) HAVING
- 상세 해설:
- GROUP BY 전공: '전공' 컬럼을 기준으로 그룹화합니다.
- HAVING: GROUP BY로 그룹화된 결과에 조건을 걸 때는 WHERE가 아닌 HAVING 절을 사용해야 합니다. (WHERE 절에는 COUNT(*) 같은 집계 함수 조건을 쓸 수 없습니다.)
'Certificate Study > SQLD Study' 카테고리의 다른 글
| SQLD Day6 (0) | 2026.08.05 |
|---|---|
| SQLD Day 5 (0) | 2026.08.04 |
| SQLD Day 3 (0) | 2026.07.31 |
| SQLD Day 2 (0) | 2026.07.30 |
| SQLD Day 1 (0) | 2026.07.29 |