cloudwithbass

[서평단] SQL, 이렇게 하면 된다 본문

그 외

[서평단] SQL, 이렇게 하면 된다

cwb111 2026. 4. 13. 21:48

제이펍 출판사에게 책을 제공받아 작성하는 리뷰입니다.

 

제가 회사에서 하는 일 중 하나는 개발자가 작성한 쿼리를 튜닝하는 것입니다.

그렇다보니 쿼리를 인덱스에 태우는 방법에만 몰두하느라 이 책의 내용들이 생소했습니다.

이 책의 대부분에선 SQL이라는 언어의 특성과 그 특성을 활용하는 방법에 대해 소개하기 때문입니다.

(물론 쿼리 튜닝에 대한 내용도 11장에 짤막하게 있습니다.)

 

따라서 이 책을 아래와 같은 분들에게 추천합니다. (저입니다.)

  • SQL 기본 문법과 인덱스 정도만 아는 사람
  • 그 수준에서 다음 단계로 나아가고 싶은 사람

'집합론' 관점에서의 SQL

처음 SQL을 접했을 때, 프로그래밍 언어만 다루다가 SQL을 사용하니 아주 답답했습니다. 뭔지 모를 이질감이 느껴졌었는데요, 이 책을 읽고서야 그 이유를 깨달았습니다. SQL의 기초 이론 중 하나는 집합론이며, '집합 지향'으로 설계된 언어이기 때문입니다. 

SQL의 토대가 되는 이론 중 하나가 집합론이기 때문에 프로그래밍 언어와는 차이점이 있었습니다.

 

집합 지향 언어를 절차 지향 언어처럼 다루려 했으니 당연히 이질감이 들었을 것입니다. 이 책에서는 SQL 설계 의도에 맞춰 SQL을 강력하게 다루는 방법을 설명합니다. 하지만 이런 사고 방식에 미숙해서인지.. 아직은 집합 지향적으로 다루는 게 어렵습니다. 익숙해질 때까지 반복 학습해보려 합니다.

따라서 SQL 도서이지만, 의외로 '집합과 명제'에 관한 내용이 자주 등장합니다.

 

 

SQL의 역사

IT의 세계에선 역사를 아는 것이 중요하다고 생각합니다.

 

 

이 책의 파트 2에선 RDB의 역사를 배울 수 있습니다.

SQL이 어떠한 목적으로 설계되었는지, 어떤 과정을 거쳐 현재의 SQL이 되었는지 등을 알 수 있습니다.

이런 지식들은 당장엔 도움되지 않겠지만, SQL을 보는 시야를 넓혀줄 것이라고 생각합니다.

 

그 외 인상 깊은 내용들

이진 논리(True, False)만 지원하는 프로그래밍 언어들과 달리, SQL에서는 unknown이라는 세 번째 진리값을 갖는다는 점

따라서 NULL을 다룰 땐 결과가 직관적이지 않다는 점

그럼에도 엔지니어라면 이런 내용을 확실히 이해해야 한다는 점

그리고 WinMagic => 윈도 함수는 서브 쿼리를 대부분 대체할 수 있다는 점

 

 

SQL을 집합처럼 다루는 방법윈도 함수를 더 공부해야겠습니다.

 

 

 

 

'그 외' 카테고리의 다른 글

★ 도메인에 노션 페이지 배포기 (Fruition)  (3) 2024.07.14