이미지 확대/축소가 가능합니다.

닫기


PostgreSQL로 시작하는 데이터 스토리텔링 입문 가이드북(PostgreSQL 15.0 지원)
기초부터 실무까지, 현직 데이터 분석 전문가의 SQL 활용 노하우 수록


데이터 분석 초보자를 위한 친절한 SQL 학습서이다. 프로그래밍을 처음으로 접하는 초보자를 배려하여 앞장에서는 시스템 설정 지침부터 차근차근 소개하고 실제 데이터셋을 간단히 다루며 SQL 기본기를 다진다. 저자 특유의 위트 있는 설명을 통해 SQL 기초 구문을 완전히 학습한 다음에는 실제 업무에 활용할 수 있는 고급 쿼리 기술을 살펴봅니다. 또한 PostGIS를 통한 공간 데이터 분석, JSON 데이터 사용, 작업 자동화, 명령줄에서 쿼리 실행, 데이터베이스 관리에 이르기까지 PostgreSQL로 데이터베이스를 더욱 효율적으로 구축하고 관리하는 방법에 대해 알아보자. * 이 책에서는 PostgreSQL 15.0 이상 버전을 사용하지만 MySQL, Oracle, SQLite 등 SQL 표준을 따르는 대부분의 DBMS에서도 실습을 진행할 수 있다.



서문

감사의 말

역자의 말

이 책에 대하여
SQL은 무엇인가?
왜 SQL을 사용해야 할까?
이 책의 대상 독자는?
이 책에서 배우는 내용

1장. 코딩 환경 설정

1-1 텍스트 편집기 설치하기
1-2 코드 및 데이터 다운받기
1-3 PostgreSQL과 pgAdmin 설치하기
1-4 pgAdmin으로 작업하기
1-5 pgAdmin의 대안
1-6 마무리

2장. 데이터베이스와 테이블 생성

2-1 테이블 이해하기
2-2 데이터베이스 만들기
2-3 테이블 만들기
2-4 테이블에 행 추가하기
2-5 코드가 잘못되었을 때 도움 구하기
2-6 SQL을 가독성 있게 포맷하기
2-7 마무리

3장. SELECT로 시작하는 데이터 탐험

3-1 기초 SELECT 구문
3-2 ORDER BY로 데이터 정렬하기
3-3 DISTINCT로 고유값 찾기
3-4 WHERE로 행 필터링하기
3-5 지금까지 배운 모든 걸 활용해 보기
3-6 마무리

4장. 데이터 타입 이해

4-1 문자형 데이터 타입 이해하기
4-2 숫자형 데이터 타입 이해하기
4-3 날짜와 시간 타입 이해하기
4-4 interval 데이터 타입을 통해 날짜 계산하기
4-5 JSON과 JSONB 이해하기
4-6 그 외 타입들 사용하기
4-7 CAST를 통해 데이터 타입 변환하기
4-8 CAST 단축 표기법 사용하기
4-9 마무리

5장. 데이터 가져오고 내보내기

5-1 구분된 텍스트 파일을 이용하여 작업하기
5-2 COPY를 사용해 데이터 가져오기
5-3 카운티 인구조사 데이터 가져오기
5-4 COPY를 사용하여 열 하위 집합 가져오기
5-5 COPY를 사용하여 행의 일부만 가져오기
5-6 가져오는 과정에서 열에 값 추가하기
5-7 COPY를 사용하여 데이터 내보내기
5-8 pgAdmin을 통한 가져오기 및 내보내기
5-9 마무리

6장. SQL을 사용한 기본 수학 및 통계

6-1 수학 연산자와 함수 이해하기
6-2 인구조사 테이블 열을 이용해 계산하기
6-3 평균 및 총합 집계 함수 사용하기
6-4 중앙값 찾기
6-5 최빈값 찾기
6-6 마무리

7장. 관계형 데이터베이스에서 테이블 조인

7-1 JOIN을 사용하여 테이블 연결하기
7-2 키 열로 테이블 조인하기
7-3 JOIN을 사용하여 여러 테이블 쿼리하기
7-4 JOIN 유형 이해하기
7-5 NULL을 사용하여 결측값이 있는 행 찾기
7-6 세 가지 유형의 테이블 관계 이해하기
7-7 조인에서 특정 열 선택하기
7-8 테이블 별칭으로 조인 구문 단순화하기
7-9 여러 테이블 조인하기
7-10 집합 연산자로 쿼리 결과 결합하기
7-11 조인된 테이블 열에서 수학 계산 수행하기
7-12 마무리

8장. 적시적소에 알맞은 테이블 디자인

8-1 네이밍 컨벤션 따르기
8-2 제약조건으로 열 값 제어하기
8-3 인덱스로 쿼리 속도 향상시키기
8-4 마무리

9장. 그루핑과 요약으로 정보 추출

9-1 도서관 조사 테이블 만들기
9-2 집계 함수를 사용하여 도서관 데이터 탐색하기
9-3 마무리

10장. 데이터 검사 및 수정

10-1 육류, 가금류 및 계란 생산업체 데이터 가져오기
10-2 데이터셋 인터뷰하기
10-3 테이블, 열, 데이터 수정하기
10-4 불필요한 데이터 삭제하기
10-5 트랜잭션으로 변경 사항 저장하기 또는 되돌리기
10-6 큰 테이블을 업데이트할 때 성능 향상하기
10-7 마무리

11장. SQL 통계 함수

11-1 인구조사 통계 테이블 생성하기
11-2 SQL을 사용하여 순위 매기기
11-3 비율 계산을 통한 의미 있는 결과 찾기
11-4 고르지 않은 데이터 다듬기
11-5 마무리

12장. 날짜와 시간을 사용한 작업

12-1 날짜 및 시간에 대한 데이터 타입과 함수 이해하기
12-2 날짜와 시간 조작하기
12-3 시간대 다루기
12-4 날짜 및 시간을 활용하여 계산하기
12-5 마무리

13장. 고급 쿼리 기술

13-1 서브쿼리 사용하기
13-2 공통 테이블 표현식 사용하기
13-3 교차 표 생성하기
13-4 CASE를 사용하여 값 재분류하기
13-5 공통 테이블 표현식에서 CASE 사용하기
13-6 마무리

14장. 의미 있는 데이터를 찾기 위한 텍스트 마이닝

14-1 문자열 함수를 사용하여 텍스트 서식 지정하기
14-2 정규식을 사용하여 텍스트 패턴 매칭하기
14-3 PostgreSQL에서 전체 텍스트 검색하기
14-4 마무리

15장. PostGIS를 사용한 공간 데이터 분석

15-1 PostGIS 활성화 후 공간 데이터베이스 만들기
15-2 공간 데이터의 기초 이해하기
15-3 2차원 기하학 이해하기
15-4 PostGIS 데이터 타입 이해하기
15-5 PostGIS 함수로 공간 개체 생성하기
15-6 파머스마켓 데이터 분석하기
15-7 인구조사 shapefile 사용하기
15-8 공간 데이터 조인하기
15-9 마무리

16장. JSON 데이터 사용

16-1 JSON 구조 이해하기
16-2 SQL에서 JSON 사용 여부 결정하기
16-3 json 및 jsonb 데이터 타입 사용하기
16-4 JSON 데이터 가져오고 인덱싱하기
16-5 json 및 jsonb 추출 연산자 사용하기
16-6 지진 데이터 분석하기
16-7 JSON 생성 및 수정하기
16-8 JSON 처리 함수 사용하기
16-9 마무리

17장. 뷰, 함수, 트리거로 시간 절약

17-1 뷰로 쿼리 간단히 만들기
17-2 나만의 함수와 프로시저 만들기
17-3 트리거로 데이터베이스 액션 자동화하기
17-4 마무리

18장. 명령줄에서 PostgreSQL 사용

18-1 psql을 위한 명령줄 설정하기
18-2 psql로 작업하기
18-3 작업을 도와주는 추가 명령줄 도구
18-4 마무리

19장. 데이터베이스 관리

19-1 VACUUM으로 사용하지 않은 공간 복구하기
19-2 서버 설정 변경하기
19-3 데이터베이스 백업 및 복구하기
19-4 마무리

20장. 데이터 스토리텔링 프로세스

20-1 질문으로 시작하라
20-2 과정을 문서화하라
20-3 데이터를 모으라
20-4 데이터가 없다면? 직접 데이터베이스를 만들라!
20-5 데이터 출처에 접근하라
20-6 쿼리를 통해 데이터를 인터뷰하라
20-7 데이터의 주인과 상담하라
20-8 시간 경과에 따른 주요 지표 및 추세를 파악하라
20-9 원인을 알아보라
20-10 찾아낸 결과를 공유하라
20-11 마무리

부록. PostgreSQL 추가 자료
PostgreSQL 개발 환경
PostgreSQL 유틸리티, 도구, 확장 프로그램
PostgreSQL 관련 뉴스, 커뮤니티 사이트
공식 문서

찾아보기



상세 이미지 1



〈학습할 내용〉

ㆍ 실제 데이터로 데이터베이스 및 테이블 생성
ㆍ 데이터 집계, 정렬, 필터링을 통한 패턴 탐색
ㆍ 데이터 안에 있는 오류 식별 및 수정
ㆍ PostGIS를 활용한 공간 데이터 분석
ㆍ 기본 연산 및 고급 통계 함수 사용
ㆍ 고급 쿼리 생성 및 작업 자동화

〈독자 대상〉

ㆍ 프로그래밍을 처음으로 접하는 데이터 분석 초보자
ㆍ SQL을 실무에 활용하고 싶은 마케터, 저널리스트
ㆍ 최신 PostgreSQL 구문과 고급 쿼리 기술을 배우고 싶은 개발자

〈코드 및 데이터 파일 다운로드〉

ㆍ 영진닷컴 홈페이지-고객센터-부록CD 다운로드
ㆍ 깃허브 리포지터리(https://github.com/TeeDDub/practical-sql)

- 모두를 위한 PostgreSQL 완벽 가이드

책 초반부의 상세한 시스템 설정 지침부터 최신 SQL 구문과 기능, 고급 쿼리 기술에 관한 내용을 따라가다 보면 초보자도 어느새 전문가처럼 데이터를 분석하며 데이터 속에 숨어 있는 이야기를 찾아낼 수 있습니다. 각 장에 포함된 실습과 연습문제는 지금껏 프로그래밍을 한번도 접한 적 없는 사람도 강력한 데이터베이스를 구축하고 정보에 효율적으로 접근할 수 있게 돕습니다. 또한 이 책의 마지막 장에서는 데이터 분석을 위한 초기 아이디어 생성, 데이터 검토, 결론 도출에 이르기까지 데이터 스토리텔링 전 과정에 관한 가이드라인을 제공합니다

SQL을 따분하고 어렵게 학습할 필요는 없습니다. 현직 데이터 분석 전문가의 노하우와 이야기가 가득 담긴 『실용 SQL』을 통해 더욱 쉽고 재미있게 나만의 DB 구축 및 관리에 필요한 모든 것을 습득하세요!

- 이 책에서 PostgreSQL을 사용하는 이유

ㆍ 무료입니다.
ㆍ Windows와 macOS, Linux 운영체제에서 사용할 수 있습니다.
ㆍ SQL 구현은 SQL 표준을 밀접하게 따르는 것을 목표로 합니다.
ㆍ 사용자가 많아 온라인에서 쉽게 도움을 구할 수 있습니다.
ㆍ PostGIS는 기하학적 데이터를 분석하고 매핑 기능을 수행할 수 있습니다.
ㆍ AWS 및 Google Cloud 같은 클라우드 컴퓨팅 환경에서 사용할 수 있습니다.
ㆍ Django로 구동되는 웹 애플리케이션에서 데이터 저장소로 사용합니다.

- 각 장의 내용(개요)

ㆍ '1장. 코딩 환경 설정'에서는 PostgreSQL과 pgAdmin 사용자 인터페이스, 텍스트 편집기를 설정하고 예제 코드와 데이터를 다운로드하는 방법을 소개합니다.

ㆍ '2장. 데이터베이스와 테이블 생성'에서는 교사에 관한 간단한 데이터셋을 새 데이터베이스에 로드하는 단계별 지침을 소개합니다.

ㆍ '3장. SELECT로 시작하는 데이터 탐험'은 기초적인 SQL 쿼리 구문과 데이터를 정렬하고 필터링하는 법을 배웁니다.

ㆍ '4장. 데이터 타입 이해'는 테이블이 특정 타입의 데이터를 담을 수 있도록 열을 설정하는 방법에대해 알아봅니다. 문자부터 날짜, 다양한 형식의 숫자를 활용합니다.

ㆍ '5장. 데이터 가져오고 내보내기'는 SQL 명령어를 사용하여 외부 파일에서 데이터를 가져오거나내보내는 방법을 배웁니다. 이 장에서 사용한 미국 인구조사 데이터 테이블은 뒷장에서도 계속해서 사용됩니다.

ㆍ '6장. SQL을 사용한 기본 수학 및 통계'는 산술 연산을 다루고 집계 함수를 사용하여 합계, 평균값, 중앙값을 찾는 방법에 대해 소개합니다.

ㆍ '7장. 관계형 데이터베이스’에서 테이블 조인은 키 열에서 조인하여 여러 개의 서로 상관관계에 있는 테이블을 쿼리하는 방법을 소개합니다. 언제 어떤 조인을 써야 하는지 배우게 됩니다.

ㆍ '8장. 적시적소에 알맞은 테이블 디자인'은 데이터의 조직과 무결성을 개선하기 위해 테이블을 설정하는 방법과 인덱스를 사용하여 쿼리 속도를 높이는 방법을 다룹니다.

ㆍ '9장. 그루핑과 요약으로 정보 추출'은 집계 함수를 사용하여 연간 설문조사를 기반으로 한 미국도서관 이용 추세를 찾는 방법을 설명합니다.

ㆍ '10장. 데이터 검사 및 수정'은 육류, 계란 및 가금류 생산업체에 대한 기록 모음을 예로 들어 불완전하거나 부정확한 데이터를 찾고 수정하는 방법을 살펴봅니다.

ㆍ '11장. SQL의 통계 함수'는 데이터셋에서 더 많은 의미를 도출하는 데 도움이 되는 SQL의 상관관계, 회귀 및 순위 함수를 소개합니다.

ㆍ '12장. 날짜와 시간을 사용한 작업'은 뉴욕시 택시 여행과 Amtrak 기차 일정에 대한 데이터를 사용하여 시간대 작업을 포함해 데이터베이스에서 날짜 및 시간을 생성, 조작 및 쿼리하는 방법을 설명합니다.

ㆍ '13장. 고급 쿼리 기술'은 서브쿼리 및 교차 표와 같은 더 복잡한 SQL 작업을 사용하는 방법을 설명하고, 온도 판독값에 대한 데이터셋의 값을 재분류하는 CASE 문에 대해 설명합니다.

ㆍ '14장. 의미 있는 데이터를 찾기 위한 텍스트 마이닝'에서는 미국 대통령의 연설 모음을 예로 들어 PostgreSQL의 전체 텍스트 검색 엔진과 정규식을 사용하여 비정형 텍스트에서 데이터를 추출하는 방법을 다룹니다.

ㆍ '15장. PostGIS를 사용한 공간 데이터 분석'은 공간 개체와 관련된 데이터 유형 및 쿼리를 도입하여 주, 도로 및 강과 같은 지리적 특징을 분석할 수 있습니다.

ㆍ '16장. JSON 데이터 사용'에서는 JSON(JavaScript Object Notation) 데이터 형식을 소개하고 영화와 지진에 대한 데이터를 사용하여 PostgreSQL의 JSON 사용법을 살펴봅니다.

ㆍ '17장. 뷰, 함수, 트리거로 시간 절약'은 반복되는 일상적인 작업을 방지할 수 있도록 데이터베이스작업을 자동화하는 방법을 설명합니다.

ㆍ '18장. 명령줄에서 PostgreSQL 사용'은 컴퓨터의 명령 프롬프트에서 텍스트 명령을 사용하여 데이터베이스에 연결하고 쿼리를 실행하는 방법을 다룹니다.

ㆍ '19장. 데이터베이스 관리'는 데이터베이스 크기 추적, 사용자 설정 및 데이터 백업에 대한 팁과절차를 제공합니다.

ㆍ '20장. 데이터 스토리텔링 프로세스'는 분석을 위한 아이디어 생성, 데이터 검토, 건전한 결론 도출 및 결과를 명확하게 제시하기 위한 지침을 제공합니다.

ㆍ '부록. PostgreSQL 추가 자료'에는 기술 향상에 도움이 되는 소프트웨어와 문서를 정리했습니다.

- 저자의 말

『실용 SQL』 원서 초판이 출간된 이후로 전 세계의 독자들로부터 책에 대한 칭찬을 받았습니다. 한 독자는 이 책 덕에 면접에서 SQL 관련 질문에 완벽히 답할 수 있었다고 말했습니다. 또한 한 교사는 학생들이 수업에서 이 책을 교재로 채택했는데 교재가 학생들에게 좋은 평가를 받았다는 편지를 보냈습니다. 많은 분들이 『실용 SQL』이 도움이 되고 잘 읽힌다며 감사 인사를 전했고, 이러한 평가들 모두 저를 뿌듯하게 했습니다.

이번 개정판은 소프트웨어와 코드에 관련된 명확하지 않거나 표시되지 않은 정보를 더욱 확실하게 정리해 독자에게 더 강력한 지침을 제공합니다. 모든 장의 많은 부분을 고쳐 설명을 명확하고 자세하게 만들었습니다. 책에 수록된 코드는 SQL 표준을 준수하도록(즉, 일반적인 데이터베이스 시스템 전체에서 사용할 수 있도록) 작성했으며, PostgreSQL에서만 사용 가능한 코드는 명시해 두었습니다.

『실용 SQL』을 읽어 주셔서 감사합니다! 이 책을 통해 여러분이 실제로 마주할 데이터에 대해 즉시 적용할 수 있는 데이터 분석 기술을 갖추기를 바랍니다. 그리고 무엇보다도 각 데이터셋에는 이야기할 주제가 하나 이상은 있다는 걸 염두에 두길 바랍니다. 이러한 이야기를 찾아내고 전달하는 것이 데이터 작업을 가치 있게 만듭니다. 데이터 분석은 행과 열로 된 데이터를 샅샅이 뒤지는 것 그 이상입니다. 여러분의 발견에 대해 듣는 날을 기대하고 있겠습니다!

- 역자의 말(강민혁)

PostgreSQL은 2022년 스택오버플로 설문조사를 기준으로 현업 개발자가 가장 많이 사용하는 데이터베이스가 되었습니다. ‘세상에서 가장 앞선 오픈소스 관계형 데이터베이스’라는 소개답게 표준 SQL의 지원과 뛰어난 자체 기능으로 개발자들의 선택을 받았죠. 이 책은 ‘가장 앞선 데이터베이스’인 PostgreSQL을 사용해 데이터를 관리하고 분석해 여기서 숨겨진 이야기를 찾는 방법을 알려 줍니다.

PostgreSQL의 로고인 코끼리 슬로닉(Slonik)은 애거서 크리스티의 소설 『코끼리는 기억한다』에서 아이디어를 받아 만들어졌습니다. 정작 실제 코끼리는 등장하지 않는 이 소설에선 코끼리에 대한 한 가지 말을 소개합니다. “인도에서 어떤 재봉사가 바늘 같은 물건으로 코끼리를 찔렀대요. 그 뒤 코끼리는 그 재봉사 곁을 지날 때마다 입 안 가득 담고 있던 물을 뿌렸다죠. 시간이 지나도 절대 잊지 않고 기억했다는 말이죠. 거기서 나온 말이에요. 코끼리는 기억한다.”

이 책은 ‘PostgreSQL로 시작하는 데이터 스토리텔링 가이드북’이라는 부제처럼 데이터를 더 효율적으로 정리하고 분석하려는 모두에게 도움이 됩니다. 쉽게 따라 할 수 있는 실습을 통해 PostgreSQL이라는 코끼리의 코부터 다리까지 직접 만져 볼 수 있도록 차근차근 가이드합니다. 그렇게 안내하는 대로 한 부분씩 코끼리를 만져 나가다 보면 어느새 코끼리의 전체적인 윤곽을 파악할 수 있을 것입니다. 적어도 데이터를 분석하는 과정에서 코끼리의 몸을 잘못 찔러서 미움을 사는 일은 피할 수 있겠죠? 자, 크고 듬직한 데다 기억력까지 좋은 코끼리를 만지러 가보시죠.