[문제 1] 1과목: 데이터 모델링의 이해
데이터베이스 설계 시 테이블 간의 관계(Relationship)에 대한 설명으로 가장 부적절한 것은?
① 관계는 엔티티와 엔티티 간의 연관성을 의미한다.
② 두 엔티티 간에 존재할 수 있는 관계의 수(차수)에는 1:1, 1:N, M:N 등이 있다.
③ M:N (다대다) 관계는 실제 물리적 데이터베이스로 구현하기 쉬우므로 별도의 변환 없이 그대로 테이블을 생성한다.
④ 외래키(Foreign Key)는 다른 테이블의 기본키(PK)를 참조하여 두 테이블 간의 관계를 형성한다.
- 핵심 해설:
- M:N(다대다) 관계의 한계: RDB 구조상 M:N 관계를 직접 구현하면 양쪽에 무한한 중복 데이터가 발생하여 조인이 불가능해집니다.
- 해결 방법: 논리 설계 단계에서 중간에 수강신청 같은 '교차 엔티티(조인 테이블)'를 두고 1:N, N:1 관계 두 개로 쪼개서 구축해야 합니다.
[문제 2] 1과목: 데이터 모델링의 이해
성능 데이터 모델링 기법 중 하나로, 정규화된 데이터 모델에 대해 조인(JOIN) 횟수를 줄여 조회 성능을 향상시키기 위해 의도적으로 중복을 허용하거나 테이블을 합치는 작업을 의미하는 용어는?
① 정규화 (Normalization)
② 반정규화 / 비정규화 (De-normalization)
③ 인덱싱 (Indexing)
④ 파티셔닝 (Partitioning)
- 성능 향상 기법 핵심 차이점:
- 정규화: 중복 제거를 위해 테이블을 계속 쪼개는 작업 (조인 증가 ➔ 조회 성능 저하 가능)
- 반정규화: 조인이 많아 느려지니 의도적으로 다시 합치는 작업
- 인덱싱: 테이블 구조 변경 없이 빠른 검색을 위한 목차 페이지를 만드는 기법
- 파티셔닝: 대용량 테이블을 월별/연도별 물리적 조각으로 나누어 저장하는 기법
[문제 3] 2과목: SQL 기본
다음 중 SQL 문에서 WHERE 절 조건 작성 시 NULL 값을 검색하기 위한 올바른 문법은?
① WHERE 전화번호 = NULL
② WHERE 전화번호 == NULL
③ WHERE 전화번호 IS NULL
④ WHERE 전화번호 EQUAL NULL
- 핵심 해설:
- NULL은 '값이 없음/알 수 없음'을 뜻하는 특별한 상태이므로, 오직 IS NULL (또는 IS NOT NULL) 연산자로만 비교할 수 있습니다.
- = 연산자를 쓰면 비교 연산 결과가 거짓(Unknown)이 되어 조회가 되지 않습니다.
[문제 4] 2과목: SQL 기본
다음 중 두 개 이상의 테이블에서 공통된 컬럼을 기준으로 행을 조인할 때, 양쪽 테이블에 모두 존재하는 일치하는 데이터만 추출하는 가장 기본적인 조인(JOIN) 방식은?
① INNER JOIN
② LEFT OUTER JOIN
③ RIGHT OUTER JOIN
④ FULL OUTER JOIN
- 조인(JOIN) 종류별 핵심 차이점:
- INNER JOIN: 조건에 맞는 양쪽 교집합 데이터만 추출
- LEFT OUTER JOIN: 왼쪽 테이블 전체 기준 (오른쪽에 일치하는 데이터 없으면 NULL)
- RIGHT OUTER JOIN: 오른쪽 테이블 전체 기준 (왼쪽에 일치하는 데이터 없으면 NULL)
- FULL OUTER JOIN: 양쪽 테이블 전체 합집합
[문제 5] 2과목: SQL 기본
아래 사원 테이블에서 급여가 200 이상 500 이하인 사원을 조회하려고 합니다. ( A )와 ( B )에 들어갈 적절한 키워드가 순서대로 올바르게 짝지어진 것은?
SELECT 사원명, 급여 FROM 사원 WHERE 급여 ( A ) 200 ( B ) 500;① (A) IN, (B) OR
② (A) BETWEEN, (B) AND
③ (A) LIKE, (B) AND
④ (A) EQUAL, (B) TO
- 조건 연산자별 핵심 차이점:
- BETWEEN A AND B: A 이상 B 이하 범위 전체 지정 (급여 >= 200 AND 급여 <= 500과 완벽 동일)
- IN (200, 500): 범위가 아닌 딱 200이거나 500인 특정 값만 지정
- LIKE: 숫자가 아닌 문자 패턴 검색
'Certificate Study > SQLD Study' 카테고리의 다른 글
| SQLD Day 7 (0) | 2026.08.06 |
|---|---|
| SQLD Day6 (0) | 2026.08.05 |
| SQLD Day 4 (0) | 2026.08.03 |
| SQLD Day 3 (0) | 2026.07.31 |
| SQLD Day 2 (0) | 2026.07.30 |