실용 SQL : PostgreSQL로 시작하는 데이터 스토리텔링 가이드북
Description
PostgreSQL로 시작하는 데이터 스토리텔링 입문 가이드북(PostgreSQL 15.0 지원)
기초부터 실무까지, 현직 데이터 분석 전문가의 SQL 활용 노하우 수록
데이터 분석 초보자를 위한 친절한 SQL 학습서입니다. 프로그래밍을 처음으로 접하는 초보자를 배려하여 앞장에서는 시스템 설정 지침부터 차근차근 소개하고 실제 데이터셋을 간단히 다루며 SQL 기본기를 다집니다. 저자 특유의 위트 있는 설명을 통해 SQL 기초 구문을 완전히 학습한 다음에는 실제 업무에 활용할 수 있는 고급 쿼리 기술을 살펴봅니다. 또한 PostGIS를 통한 공간 데이터 분석, JSON 데이터 사용, 작업 자동화, 명령줄에서 쿼리 실행, 데이터베이스 관리에 이르기까지 PostgreSQL로 데이터베이스를 더욱 효율적으로 구축하고 관리하는 방법에 대해 알아봅니다.

* 이 책에서는 PostgreSQL 15.0 이상 버전을 사용하지만 MySQL, Oracle, SQLite 등 SQL 표준을 따르는 대부분의 DBMS에서도 실습을 진행할 수 있습니다.

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

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

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

저자

앤서니드바로스

저자:앤서니드바로스
오랜기간활동한기자로서스프레드시트,데이터베이스,코드를활용해데이터속에서뉴스를찾아내는‘데이터저널리즘’얼리어답터이다.현재월스트리트저널에서데이터편집자로재직하며경제와무역,인구통계,코로나-19등의주제를다루고있다.이전에는USA투데이와포킵시저널이속한미디어그룹가네트에서근무했으며,퀘스트엑스와도큐먼트클라우드에서제품개발및콘텐츠전략역할을맡았다.

역자:임소정
IT기업마케터.중앙대학교에서사회학을전공했다.2013년에게임방송국통역사로커리어를시작해영어번역과통역의매력에빠지게되었다.평소취미생활이던게임에대한애정을살려2017년게임기업에마케터로입사해마케팅을시작했고최근암호화폐자산에관심을가지게되어현재는디지털자산운용사에서근무하고있다.

역자:강민혁
번역가.서강대학교에서컴퓨터공학을전공했다.2008년부터강연,독립영화,IT웹진기사등다양한콘텐츠를우리말로옮겼다.온라인에서미국만화소식을전하던일을계기로2019년부터는미국만화번역가로활동하고있다.《배트맨:어스원》,《어벤저스:노서렌더》,《토르》등다양한작품을번역했다.

목차

서문

감사의말

역자의말

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

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

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

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

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

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

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

7장.관계형데이터베이스에서테이블조인
7-1JOIN을사용하여테이블연결하기
7-2키열로테이블조인하기
7-3JOIN을사용하여여러테이블쿼리하기
7-4JOIN유형이해하기
7-5NULL을사용하여결측값이있는행찾기
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-2SQL을사용하여순위매기기
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-4CASE를사용하여값재분류하기
13-5공통테이블표현식에서CASE사용하기
13-6마무리

14장.의미있는데이터를찾기위한텍스트마이닝
14-1문자열함수를사용하여텍스트서식지정하기
14-2정규식을사용하여텍스트패턴매칭하기
14-3PostgreSQL에서전체텍스트검색하기
14-4마무리

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

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

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

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

19장.데이터베이스관리
19-1VACUUM으로사용하지않은공간복구하기
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관련뉴스,커뮤니티사이트
공식문서

찾아보기

출판사 서평

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

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

-코드및데이터파일다운로드
영진닷컴홈페이지-고객센터-부록CD다운로드

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

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

-이책에서PostgreSQL을사용하는이유
무료입니다.
Windows와macOS,Linux운영체제에서사용할수있습니다.
SQL구현은SQL표준을밀접하게따르는것을목표로합니다.
사용자가많아온라인에서쉽게도움을구할수있습니다.
PostGIS는기하학적데이터를분석하고매핑기능을수행할수있습니다.
AWS및GoogleCloud같은클라우드컴퓨팅환경에서사용할수있습니다.
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(JavaScriptObjectNotation)데이터형식을소개하고영화와지진에대한데이터를사용하여PostgreSQL의JSON사용법을살펴봅니다.
'17장.뷰,함수,트리거로시간절약'은반복되는일상적인작업을방지할수있도록데이터베이스작업을자동화하는방법을설명합니다.
'18장.명령줄에서PostgreSQL사용'은컴퓨터의명령프롬프트에서텍스트명령을사용하여데이터베이스에연결하고쿼리를실행하는방법을다룹니다.
'19장.데이터베이스관리'는데이터베이스크기추적,사용자설정및데이터백업에대한팁과절차를제공합니다.
'20장.데이터스토리텔링프로세스'는분석을위한아이디어생성,데이터검토,건전한결론도출및결과를명확하게제시하기위한지침을제공합니다.
'부록.PostgreSQL추가자료'에는기술향상에도움이되는소프트웨어와문서를정리했습니다.

저자의말

《실용SQL》원서초판이출간된이후로전세계의독자들로부터책에대한칭찬을받았습니다.한독자는이책덕에면접에서SQL관련질문에완벽히답할수있었다고말했습니다.또한한교사는학생들이수업에서이책을교재로채택했는데교재가학생들에게좋은평가를받았다는편지를보냈습니다.많은분들이《실용SQL》이도움이되고잘읽힌다며감사인사를전했고,이러한평가들모두저를뿌듯하게했습니다.
이번개정판은소프트웨어와코드에관련된명확하지않거나표시되지않은정보를더욱확실하게정리해독자에게더강력한지침을제공합니다.모든장의많은부분을고쳐설명을명확하고자세하게만들었습니다.책에수록된코드는SQL표준을준수하도록(즉,일반적인데이터베이스시스템전체에서사용할수있도록)작성했으며,PostgreSQL에서만사용가능한코드는명시해두었습니다.
《실용SQL》을읽어주셔서감사합니다!이책을통해여러분이실제로마주할데이터에대해즉시적용할수있는데이터분석기술을갖추기를바랍니다.그리고무엇보다도각데이터셋에는이야기할주제가하나이상은있다는걸염두에두길바랍니다.이러한이야기를찾아내고전달하는것이데이터작업을가치있게만듭니다.데이터분석은행과열로된데이터를샅샅이뒤지는것그이상입니다.여러분의발견에대해듣는날을기대하고있겠습니다!

역자의말(강민혁)

PostgreSQL은2022년스택오버플로설문조사를기준으로현업개발자가가장많이사용하는데이터베이스가되었습니다.‘세상에서가장앞선오픈소스관계형데이터베이스’라는소개답게표준SQL의지원과뛰어난자체기능으로개발자들의선택을받았죠.이책은‘가장앞선데이터베이스’인PostgreSQL을사용해데이터를관리하고분석해여기서숨겨진이야기를찾는방법을알려줍니다.
PostgreSQL의로고인코끼리슬로닉(Slonik)은애거서크리스티의소설《코끼리는기억한다》에서아이디어를받아만들어졌습니다.정작실제코끼리는등장하지않는이소설에선코끼리에대한한가지말을소개합니다.“인도에서어떤재봉사가바늘같은물건으로코끼리를찔렀대요.그뒤코끼리는그재봉사곁을지날때마다입안가득담고있던물을뿌렸다죠.시간이지나도절대잊지않고기억했다는말이죠.거기서나온말이에요.코끼리는기억한다.”
이책은‘PostgreSQL로시작하는데이터스토리텔링가이드북’이라는부제처럼데이터를더효율적으로정리하고분석하려는모두에게도움이됩니다.쉽게따라할수있는실습을통해PostgreSQL이라는코끼리의코부터다리까지직접만져볼수있도록차근차근가이드합니다.그렇게안내하는대로한부분씩코끼리를만져나가다보면어느새코끼리의전체적인윤곽을파악할수있을것입니다.적어도데이터를분석하는과정에서코끼리의몸을잘못찔러서미움을사는일은피할수있겠죠?
자,크고듬직한데다기억력까지좋은코끼리를만지러가보시죠.