SQL Antipatterns 데이터베이스 프로그래밍의 실수 줄이기

SQL Antipatterns 데이터베이스 프로그래밍의 실수 줄이기

$30.12
Description
효율적인 SQL 코드를 작성하는 방법을 배우고자 하는 사람에게 귀중한 자료이며, 데이터베이스를 설계할 때 자주 저지르는 실수를 피하는 방법을 배울 수 있다.
이 책은 프로그래머들이 데이터에 사용하는 인기 있는 언어인 SQL에 관한 책이며, 특히 SQL을 사용하면서 자주하는 실수를 줄이는 방법에 관한 것이다. 일반적인 실수를 식별하고 피하는 방법을 배우고 실제로 작동하는 데이터 모델로 리팩토링한다. 2010년 출판된 ‘SQL Antipatterns’의 내용을 보강하였으며, 최신 버전의 MySQL 및 Python용으로 업데이트된 이 책에서는 빠른 승리를 위한 12개의 새로운 ‘미니 안티패턴’이 추가되었다. 누구나 실수를 하지만, 실수로부터 배우고 이를 자신의 기술을 향상할 수 있는 기회로 바꾸려고 노력한다. 다른 개발자가 저지른 가장 일반적인 오류와 이를 해결하는 방법을 연구함으로써 더 나은 소프트웨어 개발자가 될 것이다.
■ ‌효율적이고 확장 가능하며 유지 관리 가능한 데이터베이스를 설계하는 방법
■ ‌빠르고 정확한 SQL 쿼리를 작성하는 방법
■ ‌일반적인 성능 함정을 피하는 방법
■ ‌데이터베이스를 애플리케이션에 효율적이고 효과적으로 통합하는 방법
저자

빌카윈

(BillKarwin)
캘리포니아주산타크루즈에서태어났으며,UniversityofCalifornia에서컴퓨터및정보과학학위를받았다.소프트웨어엔지니어,컨설턴트및관리자로20년이상근무했다.그는MySQL,InterBase등을포함한관계형데이터베이스를전문적으로다루었고온라인에서수천개의질문에답했으며,2010에출판한“SQLAntiPatterns:데이터베이스프로그래밍의함정피하기(인사이트,2011)”에서가장반복되는실수들에관해서자신만의통찰력을서술했다.

목차

역자서문
저자서문

1장.안티패턴이란?
1.1안티패턴유형
1.2안티패턴해부하기
1.3‌ERD(Entity-RelationshipDiagram,앤터티관계다이어그램)
1.4예제데이터베이스

1부.논리적데이터베이스디자인안티패턴
2장.무단횡단
2.1목표:다중값속성저장
2.2안티패턴:쉼표로구분된목록형식지정
2.3안티패턴을인식하는방법
2.4안티패턴의적법한사용
2.5솔루션:교차테이블생성
2.6미니-안티패턴:CSV를행으로분할

3장.순진한나무
3.1목표:계층으로저장하고쿼리하기
3.2안티패턴:항상자신의부모에의존함
3.3안티패턴을인식하는방법
3.4안티패턴의적법한사용
3.5솔루션:대체트리모델사용
3.6미니안티패턴:내컴퓨터에서작동

4장.ID필수
4.1목표:PK규칙설정
4.2안티패턴:모든상황에맞는방식
4.3안티패턴을인식하는방법
4.4안티패턴의적법한사용
4.5솔루션:맞춤형
4.6미니-안티패턴:BIGINT가충분히클까?

5장.키가없는엔트리
5.1목표:데이터베이스아키텍츠단순화
5.2안티패턴:제약조건을생략
5.3안티패턴을인식하는방법
5.4안티패턴의적법한사용
5.5솔루션:제약조건선언

6장.엔터티-속성-값
6.1목표:변수속성지원
6.2안티패턴:일반속성테이블사용
9.4안티패턴을인식하는방법
6.4안티패턴의적법한사용
6.5솔루션:서브타입모델링

7장.다형성연결
7.1목표:여러부모참조
7.2안티패턴:이중목적FK사용
7.3안티패턴을인식하는방법
7.4안티패턴의적법한사용
7.5솔루션:관계단순화

8장.다중컬럼속성
8.1목표:다중값속성저장
8.2안티패턴:여러컬럼만들기
8.3안티패턴을인식하는방법
8.5솔루션:종속테이블만들기
8.6미니안티패턴:가격저장

9장.메타데이터트리블
9.1목표:확장성지원
9.2안티패턴:테이블또는컬럼복제
9.3안티패턴을인식하는방법
9.4안티패턴의합법적사용
9.5솔루션:분할및정규화

2부.물리적데이터베이스디자인안티패턴
10장.반올림오류
10.1목표:정수대신소수사용
10.2안티패턴:FLOAT데이터타입사용
10.3안티패턴을인식하는방법
10.4안티패턴의적법한사용
10.5솔루션:NUMERIC데이터타입사용
11장.31가지맛
11.1목표:컬럼을특정값으로제한
11.2안티패턴:컬럼정의에값지정
11.3안티패턴을인식하는방법
11.4안티패턴의적법한사용
11.5솔루션:데이터에값지정
11.6미니안티패턴:예약어(ReservedWords)
12장.유령파일
12.1목표:이미지또는기타대용량미디어저장
12.2안티패턴:파일을사용해야한다고가정
12.3안티패턴을인식하는방법
12.5솔루션:필요에따라BLOB데이터타입사용
13장.인덱스샷건
13.1목표:성능최적화
13.2안티패턴:계획없이인덱스사용하기
13.3안티패턴을인식하는방법
13.4안티패턴의적법한사용
13.5솔루션:인덱스멘토링
13.6미니안티패턴:모든컬럼인덱싱

3부.쿼리안티패턴
14장.미지에대한두려움
14.1목표:누락된값구별
14.2안티패턴:Null을일반값으로사용하거나그반대의경우
14.3안티패턴을인식하는방법
14.4안티패턴의적법한사용
14.5솔루션:고유값으로Null사용
14.6미니-안티패턴:NOTIN(NULL)

15장.모호한그룹
15.1목표:그룹당가장큰값을가진행가져오기
15.2안티패턴:그룹화되지않은컬럼참조
15.3안티패턴을인식하는방법
15.4안티패턴의적법한사용
15.5솔루션:컬럼을명확하게사용
15.6미니안티패턴:이식가능한SQL

15장.무작위선택
16.1목표:샘플행가져오기
16.2안티패턴:무작위로데이터정렬
16.3안티패턴을인식하는방법
16.4안티패턴의적법한사용
16.5솔루션:특별한순서없이…
16.6미니안티패턴:여러임의행에대한쿼리

17장.가난한사람의검색엔진
17.1목표:전체텍스트검색
17.2안티패턴:패턴매칭연산자
17.3안티패턴을인식하는방법
17.4안티패턴의적법한사용
17.5솔루션:작업수행에적합한도구사용
18장스파게티쿼리
18.1목표:SQL쿼리감소
18.2안티패턴:복잡한문제를한번에해결
18.3안티패턴을인식하는방법
18.4안티패턴의적법한사용
18.5솔루션:잘게나누고정복하기

19장.암묵적컬럼
19.1목표:타이핑줄이기
19.2안티패턴:길을잃게만드는지름길
19.3안티패턴을인식하는방법
19.4안티패턴의적법한사용
19.5솔루션:명시적으로컬럼이름지정

4부.애플리케이션개발안티패턴
20장.읽을수있는패스워드
20.1목표:패스워드복구또는재설정
20.2안티패턴:패스워드를일반텍스트로저장
20.3안티패턴을인식하는방법
20.4안티패턴의적법한사용
20.5솔루션:소금을가미한패스워드해시저장
20.6미니안티패턴:VARCHAR로해시문자열저장

21장.SQL인젝션
21.1목표:동적SQL쿼리작성
21.2안티패턴:확인되지않은입력을코드로실행
21.3안티패턴을인식하는방법
21.4안티패턴의적법한사용
21.5해결책:아무도믿지마라
21.6미니안티패턴:따옴표안의쿼리파라미터

22장.가상키결벽증
22.1목표:데이터정리
22.2안티패턴:모서리채우기
22.3안티패턴을인식하는방법
22.4안티패턴의적법한사용
22.5솔루션:극복
22.6미니안티패턴:그룹당자동증가
23장.악을보지마라
23.1목표:적은코드작성
23.2안티패턴:지푸라기없이벽돌만들기
23.3안티패턴을인식하는방법
23.4안티패턴의적법한사용
23.5솔루션:우아하게오류복구
23.6미니안티패턴:구문오류메시지읽기

24장.외교관면책특권
24.1목표:모범사례적용
24.2안티패턴:SQL을2급시민으로만들기
24.3안티패턴을인식하는방법
24.4안티패턴의적법한사용
24.5솔루션:대규모품질문화구축
24.6미니안티패턴:이름바꾸기

25장.표준운영프로시저
25.1목표:저장프로시저사용
25.2안티패턴:리더를따르라
25.3안티패턴을인식하는방법
25.4안티패턴의적법한사용
25.5솔루션:최신애플리케이션아키텍처채택
25.6미니안티패턴:MySQL의저장프로시저

5부.보너스:FK미니안티패턴추가
26장.표준SQL의FK실수
26.1참조방향바꾸기
26.2테이블이생성되기전에테이블참조
26.3부모테이블의PK를참조하지않음
26.4복합키의각컬럼에대해별도의제약조건만들기
26.5잘못된컬럼순서사용
26.6일치하지않는데이터타입사용
26.7일치하지않는문자조합(Collation)사용
26.8고아데이터생성
26.9Null을허용하지않는컬럼에SETNULL옵션사용
26.10중복제약조건식별자만들기
26.11호환되지않는테이블타입사용

27장.MySQL에서의FK실수
27.1호환되지않는스토리지엔진사용
27.2대용량데이터타입사용
27.3고유하지않은인덱스에대한MySQLFK
27.4인라인참조구문사용
27.5기본참조구문사용
27.6MySQL에서호환되지않는테이블타입사용
28장.정규화규칙
A.1관계형(Relational)이란무엇을의미할까?
A.2정규화에대한오해
A.3정규화란무엇일까?
A.4상식

참고문헌
찾아보기