실무에서 SQL을 다루는 기술
카테고리: 도서 리뷰
한빛미디어 서평단 <나는리뷰어다> 활동을 위해서 책을 협찬 받아 작성된 서평입니다.
윈도 함수나 재귀 CTE를 배워야 할 것 같은데 공식 문서를 보면 머리가 아픈 개발자를 위한 책
필요한 선수 지식
- 요구 학력 : 관련학과 대졸 이상(실무에 관련된 내용)
- 예제 코드 : SQL
- 난이도 : ★★★☆☆
책의 구성 중 마음에 들었던 주제
Chapter 02 테이블 디자인 작업
샘플 데이터베이스 구조를 통해 정규화의 필요성과 원칙을 단계별로 짚어준다. town
, state
, postcode
처럼 서로 의존적인 주소 필드를 예시로 들어, 다중 값을 어떻게 분해·정규화하여 테이블과 컬럼을 설계할지 구체적인 과정을 보여 준다.
Chapter 06 뷰와 관련 도구 활용하기
이 책에서 설명한 뷰와 관련 도구는 크게 뷰(View)·테이블‑값 함수(TVF)·계산 열과 임시·공통 테이블, 권한·인덱스 전략의 세 축으로 구성된다. 공통 로직을 모듈화해 코드 재사용성과 가독성을 높이고, 복잡한 계산 결과를 메모리에 저장하여 성능을 끌어올리는 방법을 집중적으로 설명한다.
Chapter 09 공통 테이블 표현식(CTE) 더 알아보기
보통 학부생 시절에 배웠던 데이타베이스 시스템과 같은 개념서에서는 CTE라는 말 대신 서브쿼리
라고 쓰여있던 것 같다. CTE를 임시 변수처럼 활용해 다단계 계산과 조건 분기를 깔끔하게 분리하고, 복잡한 로직을 순차적으로 읽히는 SQL로 재구성하는 실전 기법을 제시한다.
APPENDIX B DBMS별 차이
표준 SQL에서 벗어난 각각의 DBMS에서 사용하는 사투리들을 정리해서 알려준다. SELECT 제한(LIMIT vs TOP), 자동 PK(AUTO_INCREMENT vs SERIAL/IDENTITY) 같은 대표 차이를 표로 정리하고, 날짜·문자·윈도 함수, NULL 정렬, 따옴표 규칙 등 주요 호환성 쟁점을 짚어 준다.
읽고 난 후
추천 지수 : ★★★★☆
백엔드 프로그래밍과 DBMS는 떼려야 뗄 수 없는 관계다. 실무에서 사용하는 DBMS가 다양(PostgreSQL, MariaDB/MySQL, MSSQL, SQLite, Oracle)한 만큼 책상위에는 Oracle 서적 하나, MySQL 서적 하나씩 구비해둔다. 일반적인 SQL 서적은 특정 DBMS를 겨냥하여 해당 내용들을 설명한다. 하지만 이 책은 같은 결과를 다른 DBMS에서 어떻게 구현하는지 설명하는 몇 안되는 책이다.