다시 도전!
정답률 40%
문제별 결과
SQL에서 트랜잭션의 ACID는 Atomicity, Consistency, Isolation, Durability를 의미한다.
원자성, 일관성, 격리성, 지속성으로 트랜잭션의 안정성을 보장합니다.
SQL에서 DECIMAL과 FLOAT는 동일한 정밀도를 가진다.
DECIMAL은 정확한 소수점 계산을 보장하고, FLOAT는 부동소수점으로 근사값을 저장합니다. 금액 계산에는 DECIMAL을 사용합니다.
SQL에서 EXPLAIN으로 쿼리 실행 계획을 확인할 수 있다.
EXPLAIN SELECT ...로 쿼리가 어떤 인덱스를 사용하고 어떤 방식으로 실행되는지 확인합니다.
SQL에서 정규화(Normalization)는 데이터 중복을 줄이기 위한 설계 기법이다.
1NF, 2NF, 3NF 등의 정규형으로 데이터 중복과 이상 현상을 줄입니다.
SQL에서 Deadlock은 두 트랜잭션이 서로의 잠금을 기다리는 상태이다.
T1이 A를 잠그고 B를 기다리고, T2가 B를 잠그고 A를 기다리면 교착 상태가 발생합니다.
SQL에서 Window Function(OVER)은 GROUP BY 없이 집계를 수행할 수 있다.
ROW_NUMBER() OVER(PARTITION BY dept ORDER BY salary DESC)처럼 그룹핑 없이 각 행에 집계값을 추가합니다.
SQL에서 Prepared Statement는 성능상 이점이 없다.
Prepared Statement는 쿼리 파싱과 실행 계획을 캐시하여 반복 실행 시 성능이 향상됩니다. SQL Injection 방지도 됩니다.
SQL에서 EXPLAIN은 쿼리를 실제로 실행한다.
EXPLAIN은 쿼리 실행 계획만 보여주며 실제로 쿼리를 실행하지 않습니다(일부 DB는 EXPLAIN ANALYZE로 실행).
SQL에서 Clustered Index와 Non-Clustered Index는 동일하다.
Clustered Index는 테이블 데이터의 물리적 순서를 결정하며 테이블당 하나만 가능합니다. Non-Clustered는 별도 구조로 여러 개 가능합니다.
SQL에서 서브쿼리는 항상 JOIN보다 느리다.
서브쿼리의 성능은 상황에 따라 다릅니다. 옵티마이저가 서브쿼리를 JOIN으로 변환하기도 하며, 때로는 서브쿼리가 더 빠를 수 있습니다.