훌륭해요!
정답률 80%
문제별 결과
SQL에서 Window Function(OVER)은 GROUP BY 없이 집계를 수행할 수 있다.
ROW_NUMBER() OVER(PARTITION BY dept ORDER BY salary DESC)처럼 그룹핑 없이 각 행에 집계값을 추가합니다.
SQL에서 Deadlock은 두 트랜잭션이 서로의 잠금을 기다리는 상태이다.
T1이 A를 잠그고 B를 기다리고, T2가 B를 잠그고 A를 기다리면 교착 상태가 발생합니다.
SQL에서 CHAR와 VARCHAR의 저장 방식은 동일하다.
CHAR는 고정 길이로 남은 공간을 패딩하고, VARCHAR는 가변 길이로 실제 데이터만큼만 저장합니다.
SQL에서 정규화(Normalization)는 데이터 중복을 줄이기 위한 설계 기법이다.
1NF, 2NF, 3NF 등의 정규형으로 데이터 중복과 이상 현상을 줄입니다.
SQL에서 트랜잭션의 ACID는 Atomicity, Consistency, Isolation, Durability를 의미한다.
원자성, 일관성, 격리성, 지속성으로 트랜잭션의 안정성을 보장합니다.
SQL에서 트랜잭션의 ISOLATION LEVEL은 성능에 영향을 주지 않는다.
높은 격리 수준은 더 많은 잠금을 필요로 하여 성능이 저하됩니다. READ UNCOMMITTED가 가장 빠르지만 더티 리드가 발생합니다.
SQL에서 Prepared Statement는 성능상 이점이 없다.
Prepared Statement는 쿼리 파싱과 실행 계획을 캐시하여 반복 실행 시 성능이 향상됩니다. SQL Injection 방지도 됩니다.
SQL에서 EXPLAIN으로 쿼리 실행 계획을 확인할 수 있다.
EXPLAIN SELECT ...로 쿼리가 어떤 인덱스를 사용하고 어떤 방식으로 실행되는지 확인합니다.
SQL에서 Clustered Index와 Non-Clustered Index는 동일하다.
Clustered Index는 테이블 데이터의 물리적 순서를 결정하며 테이블당 하나만 가능합니다. Non-Clustered는 별도 구조로 여러 개 가능합니다.
SQL에서 CTE(Common Table Expression)는 WITH 절로 정의한다.
WITH cte AS (SELECT ...) SELECT * FROM cte 형태로 복잡한 쿼리를 가독성 있게 작성합니다.