데이터를 기반으로

김상형의 SQL 정복 본문

도서 리뷰/빅데이터&IT

김상형의 SQL 정복

이노후 2022. 5. 24. 15:56
728x90
반응형

도서명 : 김상형의 SQL 정복

출판사 : 한빛미디어

 

지은이 : 김상형

 

독서 기간 : 2022-05-12 ~ 2022-05-24

 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

 

책 표지

SQL 을 실무에서 많이 쓰이는데 실질적으로 DB 구조 부터 시작해 제대로 알고 시작하지 못하는 경우가 많다.

바로 내가 그런 케이스였는데, 해당 책을 기반으로 DB에 대한 기초부터 다시 제대로 시작하고자 해당 책을 신청하여 리뷰를 진행하게 되었다.

 

실무에서 많이 겪는 어려움들이 존재하는데 해당 교재에도 그러한 어려움들을 해결할 수 있도록 잘 설명되어 있었다.

 

SQL 및 DB의 교재로 해당 책을 삼고 공부하고 실무를 이어나갈 계획이다.

 

목차는 총 19장으로 구성되어 있다.

 

1. 데이터베이스

2. 오라클

3. SQL SERVER와 MARIA DB

4. SELECT

5. 데이터 집계

6. 데이터 관리

7. 제약

8. 모델링

9. 서브쿼리

10. 조인

11. 함수

12. 뷰

13. 분석과 통계

14. 테이블 관리

15. 제어문

16. 프로시저

17. 커서

18. 트리거

19. 트랜잭션

 

부록 - DBeaver 설치 및 MARIA DB 연결 등

 

으로 구성되어 있다.

 

나는 데이터 분석가로 업무를 하고 있어 13번을 위주로 보고 싶었지만, 요근래 느낀 부분은 생각보다 분석가가 DB 구조나 DB에 관련된 많은 사항들을 알고 있어야 한다고 생각했다. 그렇기에 1장 부터 천천히 읽어 나가기 시작했다.

 

1장에서는 DB의 기초적인 정보들이 적혀있었다. 데이터 타입, 테이블 구조, DB 구조 등 다양한 설명들이 존재했고, 2장 오라클에서는 처음에는 오라클 설치부터 시작해 아주 간단한 테이블 생성, 조회 쿼리 등 데이터를 직접 조회하고 테이블을 생성하는 기초적인 부분이 기재되어 있었다.

 

3장은 SQL SERVER를 설치하고 셋팅하는 과정이 담겨져 있었다. 그리고 추가적으로 MARIA DB를 설치하는데 해당 도서에서는 에디터는 HEIDI SQL을 사용하였다. 현재는 DBeaver라는 에디터를 사용하고 있고 이전 회사에서는 heidisql을 사용해봤기에 조금 반가운 에디터였다. 

 

4장 부터는 기본적인 쿼리에 관련된 내용이 나오기 시작했다. 1장 부터 3장은 기초적인 부분과 셋팅 위주의 내용들이라면 4장 부터가 쿼리 등 실무에서 데이터를 조회하거나 조작하는 것을 중점적으로 내용들이 시작되었다. 중간 중간에 퀴즈형식으로 어떤 조건으로 데이터를 뽑으려면 쿼리를 어떻게 작성해야하는지 보여주는 부분이 있는데, 쿼리를 실제로 작성해보지 않은 초보자들에게 좋은 교육 포인트가 될 것 같다.

 

5장은 집계함수로 GROUP BY를 위주로 설명이 진행되었다. GROUP BY의 기본적인 방법과 예제들로 구성이 되어 있었고 기초적인 부분이 많아 초보자가 보기 좋은 예시들이 많았다. 

 

6장은 데이터 관리로 삽입 / 삭제 / 수정(갱신) 으로 구성되어 있다. 아는 사람은 알겠지만 INSERT / DELETE / UPDATE 로 설명이 이어질 것이라고 알 수 있다. 커밋(COMMIT)을 할때 오류 발생 케이스들도 중간 중간에 설명되어 있어서 좋았습니다.

 

7장 부터 저는 개인적으로 제가 약하고 잘 모르는 부분이라고 생각했습니다. 매번 테이블 생성하고 데이터 관리 및 조작만 진행해 왔기에 제약이라는 말 자체가 생소했었습니다. 물론 정보처리기사를 준비하며 제약성, 정규화 등 공부를 하긴 했지만 실질적으로 사용을 해본적도 없고 깊게 공부하지 못했기에 이번 기회를 통해 공부를 해보고자 합니다.

제약에서는 정보처리기사에서 가장 많이 보였던 무결성에 대해서 이야기를 시작하고 있습니다. 

 

무결성을 검증하기 위한 작업과 PK, 외래키 등 키 값 선정하는 조건과 방법 등이 설명되어 있고 마지막으로는 시퀀스에 대한 설명이 진행되어 있다.

 

8장은 모델링으로 전체 DB설계를 구축하는 것을 모델링이라고 보면 될것 같다. 해당 파트에서는 예전에 배웠던 제 1정규화, 제 2정규화 등과 참조무결성과 같은 단어들이 나오며 DB 설계하는 작업과 테이블끼리의 관계 파악 등 다양한 관계들을 파악하여 서로간의 문제가 발생하지 않도록 설계하는 것이 모델링이라고 표현하고 있다.

 

9장은 서브쿼리로 평소에 내가 사용하고 있던 서브쿼리는 인라인뷰라고 지칭되어 있었고 WHERE 절에 참조되는 쿼리가 서브쿼리로 지칭되는 것을 알 수 있었다. 그리고 UNION과 같은 테이블 병합을 설명하는 내용이었다.

 

10장은 조인으로 개인적으로 가장 많은 실수가 일어나는 부분이 조인이었다. 조인의 조건들과 조인의 종류들을 각각 설명해주고 해당 파트는 내가 말했던 것 처럼 실수가 많이 일어나기 쉬운 부분이여서인지, 실습 부분이 따로 존재하는 것을 볼 수 있었다.

 

11장은 함수에 관련된 내용이다. 날짜와 관련된 함수, 문자열을 추출하는 함수 등 SQL에는 다양한 함수들이 존재한다. 심지어 평균치를 뽑는 AVG도 하나의 함수라고 보면 이해가 빠를 것이다. 각 데이터 타입에 맞게 알맞은 함수를 사용해야하며 전체적인 함수를 소개해주는 부분이었다.

 

12장은 뷰인데, 이전 직장에서는 뷰테이블을 굉장히 빈번하게 사용하였다. 뷰 테이블을 생성하는 방법과 실제로 어떻게 사용하는지 예시를 보여주는 내용들이 있으며 CTE(Common Table Expressions)라고 되어있어서 처음엔 생소하였지만 결국 쿼리에서 WITH 절을 사용하여 메모리에 올려둔 가상 테이블을 지칭하는 단어였다. 물론 쿼리를 돌릴 때 WITH 절을 포함하면 당연히 퍼포먼스적으로 좋지는 않겠지만, DB의 메모리를 생각하며 테이블을 생성할지 쿼리에서 WITH 절을 사용할지 잘 고려하며 진행해야 한다.

 

13장은 분석가들의 꽃이자 제일 많이 사용되는 함수들이 존재하는 목차이다. 바로 분석과 통계이다. 처음에는 어떤 함수들이 존재하는 지 몰라 하드코딩으로 사용했던 LAG와 LEAD 함수를 볼 수 있었다. 그리고 실질적으로 가장 많이 쓰이는 함수가 RANK와 ROW_NUMBER 였다. 데이터 분석가들은 해당 챕터를 중점적으로 꼭 꼼꼼하게 보기를 추천한다.

 

14장 부터 19 장 까지는 분석가들은 사용하기 쉽지 않지만, 사용할 수도 있는 것들이 존재한다. DB 업무를 하시는 분들은 종종 사용하는 것을 본적이 있다. 우선 프로시저 부터 트랜잭션 까지 처음엔 어떤 개념인지도 몰랐지만 해당 도서로 인해 개념도 알게되며 어떻게 사용하는지까지 알게되었다. 실무에서 프로시저안에 커서를 넣어 사용하는 케이스들을 종종 본적이 있어 이번 도서를 통해 해당 케이스가 어떠한 원리로 이루어지는 지 파악할 수 있어 좋았습니다.

 

 

SQL과 DB 업무를 진행하는 모두에게 해당 도서는 필독서로 추천드리고 싶다. 추가로 데이터 분석가들에게도 꼭 SQL 책을 권하고 싶다. 생각보다 쿼리도 많이쓰고 테이블 구조를 파악하지 못하면 실수를 하는 사례가 많아진다.

728x90
반응형