SQLD 시험 내용
(a) 데이터 모델링의 이해 (출제 비중 20% : 10문제, 20점)
- 데이터 모델링의 이해 : 데이터모델의 이해 / 엔터티 / 속성 / 관계 / 식별자
- 데이터 모델과 성능 : 정규화와 성능 / 반정규화와 성능 / 대용량 데이터에 따른 성능 / DB 구조와 성능 / 분산 DB 데이터에 따른 성능
(b) SQL 기본 및 활용 (출제 비중 80% : 40문제, 80점)
- SQL 기본 : 정보 요구 사항 / DDL / DML / TCL / WHERE / FUNCTION / GROUP BY, HAVING / ORDER BY / JOIN
- SQL 활용 : 표준 조인 / 집합 연산자 / 계층형 질의 / 서브쿼리 / 그룹함수 / 윈도우 함수 / DCL / 절차형 SQL
- SQL 최적화 기본 원리 : 옵티마이저와 실행 계획 / 인덱스 기본 / 조인 수행 원리
1. 계층형 질의와 셀프 조인
- 계층형 쿼리 : 테이블에 계층형 데이터가 존재하는 경우, 계층형 쿼리를 사용하면 계층 정보와 함께 데이터 조회 가능
* 계층형 데이터란 데이터 간에 상하위 관계(부모-자식)을 가진 데이터를 말한다
계층형 데이터를 가지도록 설계된 모델을 순환 관계 데이터 모델이라고 한다. (ex. 조직도, 제품군, 메뉴트리)
- 순환 관계 데이터 모델 : 계층형 데이터를 가지도록 설계된 모델을 순환 관계 데이터 모델이라고 한다.
- 셀프 조인(JOIN) : 동일한 테이블을 조인하는 것
SELECT a.empno, a.mgr, b.ename
FROM emp a, emp b
WHERE a.mgr is null
and b.mgr = a.mgr
- 계층형 쿼리 : START WITH절과 CONNECT BY절은 WHERE절과 GROUP BY절 사이에 기술한다.
START WITH : 루트 노드를 생성하기 위한 조건을 기술
CONNECT BY : 루트 노드의 하위 노드를 생성하기 위한 조건 기술
WHERE 조건
START WITH a.mgr is NULL
CONNECT BY a.mgr = PRIOR a.empno;
--PRIOR : 바로 직전에 구한
동작 원리
1) START WITH절을 수행하여 루트 노드 생성한 후
2) CONNECT BY 절의 결과가 없을 때까지 부모 노드의 결과로 CONNECT BY절 (JOIN)을 반복 수행
순방향 전개 : 부모 노드 -> 자식 노드
역방향 전개 : 자식 노드 -> 부모 노드
분기 제거 (branch) : 중간 노드에 해당하는 행이 제외되면, 그 하위 노드들도 모두 결과에서 제거된다.
노드 제거 (node) : 조건을 만족하지 않는 특정 노드만 결과에서 제외될 뿐 그 하위 노드는 무관하다.
'# Work > Data' 카테고리의 다른 글
[SQLD] GROUP BY절 : SQL 기본 및 활용 / SQL 기본 (0) | 2023.02.21 |
---|---|
[SQLD] SQL 기본 구조 : SQL 기본 및 활용 / SQL 기본 (0) | 2023.02.21 |
[SQLD] 그룹 함수 : SQL 기본 및 활용 / SQL 활용 (0) | 2023.02.20 |
[SQLD] 윈도우 함수 : SQL 기본 및 활용 / SQL 활용 (0) | 2023.02.20 |
[SQLD] SQLD 데이터 자격증 준비 (0) | 2023.02.18 |