SQL AntiPatterns
2026년 02월 05일 출간
국내도서 : 2011년 06월 27일 출간
- eBook 상품 정보
- 파일 정보 PDF (2.62MB) | 431 쪽
- ISBN 9788966260508
- 지원기기 교보eBook App, PC e서재, 리더기, 웹뷰어
-
교보eBook App
듣기(TTS) 가능
TTS 란?텍스트를 음성으로 읽어주는 기술입니다.
- 전자책의 편집 상태에 따라 본문의 흐름과 다르게 텍스트를 읽을 수 있습니다.
- 이미지 형태로 제작된 전자책 (예 : ZIP 파일)은 TTS 기능을 지원하지 않습니다.
PDF 필기가능 (Android, iOS)
쿠폰적용가 18,720원
10% 할인 | 5%P 적립이 상품은 배송되지 않는 디지털 상품이며,
교보eBook앱이나 웹뷰어에서 바로 이용가능합니다.
카드&결제 혜택
- 5만원 이상 구매 시 추가 2,000P
- 3만원 이상 구매 시, 등급별 2~4% 추가 최대 416P
- 리뷰 작성 시, e교환권 추가 최대 200원
작품소개
이 상품이 속한 분야
한국어판 지은이의 글
<b>1장 개요</b>
1.1 대상 독자
1.2 이 책에 있는 내용
1.3 이 책에 없는 내용
1.4 일러두기
1.5 예제 데이터베이스
1.6 감사의 글
<b>2장 무단횡단</b>
2.1 목표: 다중 값 속성 저장
2.2 안티패턴: 쉼표로 구분된 목록에 저장
2.3 안티패턴 인식 방법
2.4 안티패턴 사용이 합당한 경우
2.5 해법: 교차 테이블 생성
<b>3장 순진한 트리</b>
3.1 목표: 계층구조 저장 및 조회하기
3.2 안티패턴: 항상 부모에 의존하기
3.3 안티패턴 인식 방법
3.4 안티패턴 사용이 합당한 경우
3.5 해법: 대안 트리 모델 사용
<b>4장 아이디가 필요해</b>
4.1 목표: PK 관례 확립
4.2 안티패턴: 만능키
4.3 안티패턴 인식 방법
4.4 안티패턴 사용이 합당한 경우
4.5 해법: 상황에 맞추기
<b>5장 키가 없는 엔트리</b>
5.1 목표: 데이터베이스 아키텍처 단순화
5.2 안티패턴: 제약조건 무시
5.3 안티패턴 인식 방법
5.4 안티패턴 사용이 합당한 경우
5.5 해법: 제약조건 선언하기
<b>6장 엔터티-속성-값</b>
6.1 목표: 가변 속성 지원
6.2 안티패턴: 범용 속성 테이블 사용
6.3 안티패턴 인식 방법
6.4 안티패턴 사용이 합당한 경우
6.5 해법: 서브타입 모델링
<b>7장 다형성 연관</b>
7.1 목표: 여러 부모 참조
7.2 안티패턴: 이중 목적의 FK 사용
7.3 안티패턴 인식 방법
7.4 안티패턴 사용이 합당한 경우
7.5 해법: 관계 단순화
<b>8장 다중 칼럼 속성</b>
8.1 목표: 다중 값 속성 저장
8.2 안티패턴: 여러 개의 칼럼 생성
8.3 안티패턴 인식 방법
8.4 안티패턴 사용이 합당한 경우
8.5 해법: 종속 테이블 생성
<b>9장 메타데이터 트리블</b>
9.1 목표: 확장 적응성 지원
9.2 안티패턴: 테이블 또는 칼럼 복제
9.3 안티패턴 인식 방법
9.4 안티패턴 사용이 합당한 경우
9.5 해법: 파티션과 정규화
<b>10장 반올림 오류</B>
10.1 목표: 정수 대신 소수 사용
10.2 안티패턴: FLOAT 데이터 타입 사용
10.3 안티패턴 인식 방법
10.4 안티패턴 사용이 합당한 경우
10.5 해법: NUMERIC 데이터 타입 사용
<b>11장 31가지 맛</b>
11.1 목표: 칼럼을 특정 값으로 제한하기
11.2 안티패턴: 칼럼 정의에 값 지정.
11.3 안티패턴 인식 방법
11.4 안티패턴 사용이 합당한 경우
11.5 해법: 데이터로 값을 지정하기
<b>12장 유령 파일</b>
12.1 목표: 이미지 또는 벌크 미디어 저장
12.2 안티패턴: 파일을 사용해야 한다고 가정한다
12.3 안티패턴 인식 방법
12.4 안티패턴 사용이 합당한 경우
12.5 해법: 필요한 경우에는 BLOB 데이터 타입을 사용하라
<b>13장 인덱스 샷건</B>
13.1 목표: 성능 최적화
13.2 안티패턴: 무계획하게 인덱스 사용하기
13.3 안티패턴을 인식하는 방법
13.4 안티패턴 사용이 합당한 경우
13.5 해법: 인덱스를 MENTOR하라
<b>14장 모르는 것에 대한 두려움</b>
14.1 목표: 누락된 값을 구분하기
14.2 안티패턴: NULL을 일반 값처럼 사용
14.3 안티패턴 인식 방법
14.4 안티패턴 사용이 합당한 경우
14.5 해법: 유일한 값으로 NULL을 사용하라
<b>15장 애매한 그룹</b>
15.1 목표: 그룹당 최댓값을 가진 행 얻기
15.2 안티패턴: 그룹되지 않은 칼럼 참조
15.3 안티패턴 인식 방법
15.4 안티패턴 사용이 합당한 경우
15.5 해법: 칼럼을 모호하게 사용하지 않기
<b>16장 임의의 선택</b>
16.1 목표: 샘플 행 가져오기
16.2 안티패턴: 데이터를 임의로 정렬하기
16.3 안티패턴 인식 방법
16.4 안티패턴 사용이 합당한 경우
16.5 해법: In No Particular Order
<b>17장 가난한 자의 검색 엔진</b>
17.1 목표: 전체 텍스트 검색
17.2 안티패턴: 패턴 매칭 사용
17.3 안티패턴 인식 방법
17.4 안티패턴 사용이 합당한 경우
17.5 해법: 작업에 맞는 올바른 도구 사용하기
<b>18장 스파게티 쿼리</b>
18.1 목표: SQL 쿼리 줄이기
18.2 안티패턴: 복잡한 문제를 한 번에 풀기
18.3 안티패턴 인식 방법
18.4 안티패턴 사용이 합당한 경우
18.5 해법: 분할해서 정복하기
<b>19장 암묵적 칼럼</b>
19.1 목표: 타이핑 줄이기
19.2 안티패턴: 지름길만 좋아하면 길을 잃는다
19.3 안티패턴 인식 방법
19.4 안티패턴 사용이 합당한 경우
19.5 해법: 명시적으로 칼럼 이름 지정하기
<b>20장 읽을 수 있는 패스워드</b>
20.1 목표: 패스워드를 복구하거나 재설정하기
20.2 안티패턴: 패스워드를 평문으로 저장하기
20.3 안티패턴 인식 방법
20.4 안티패턴 사용이 합당한 경우
20.5 해법: 패스워드의 소금 친 해시
<b>21장 SQL 인젝션</b>
21.1 목표: 동적 SQL 쿼리 작성하기
21.2 안티패턴: 검증되지 않은 입력을 코드로 실행하기
21.3 안티패턴 인식 방법
21.4 안티패턴 사용이 합당한 경우
21.5 해법: 아무도 믿지 마라
<b>22장 가상키 편집증</b>
22.1 목표: 데이터 정돈하기
22.2 안티패턴: 모든 틈 메우기
22.3 안티패턴 인식 방법
22.4 안티패턴 사용이 합당한 경우
22.5 해법: 극복하라
<B>23장 나쁜 것 안 보기</B>
23.1 목표: 코드를 적게 작성하기
23.2 안티패턴: 짚 없이 벽돌 만들기
23.3 안티패턴 인식 방법
23.4 안티패턴 사용이 합당한 경우
23.5 해법: 에러에서 우아하게 복구하기
<b>24장 외교적 면책특권</b>
24.1 목표: 관례 따르기
24.2 안티패턴: SQL을 2등 시민으로 만들기
24.3 안티패턴 인식 방법
24.4 안티패턴 사용이 합당한 경우
24.5 해법: 초당적 품질 문화 확립
<b>25장 마법의 콩</b>
25.1 목표: MVC에서 모델 단순화하기
25.2 안티패턴: 액티브 레코드인 모델
25.3 안티패턴을 인식하는 방법
25.4 안티패턴 사용이 합당한 경우
25.5 해법: 액티브 레코드를 가지는 모델
<B>부록 A 정규화 규칙</b>
A.1 관계형의 뜻
A.2 정규화에 대한 미신
A.3 정규화란?
A.4 상식
<b>부록 B 참고문헌</b>
<b>“다들 이렇게 쓰는데 뭐가 잘못이라는 거야?”</b>
모두가 한다고 해서 반드시 옳은 방법은 아니다. 특히 SQL에서는 더욱 그렇다. 이 책은 일반적으로 사용하는 SQL문이 개발자를 얼마나 수렁에 빠뜨릴 수 있는지 보여준 뒤, 이를 해결할 정석을 가르쳐 준다. 또한 다음과 같은 의문에 대해서도 근거가 명확한 답안을 제시한다.
- 이 상품에 대한 태그를 쉼표로 구분해서 저장하면 될까? (2장 「무단횡단」)
- PK가 필요 없다고들 하던데 정말일까? (4장 「아이디가 필요해」)
- 소수 값을 저장하려면 SQL에서도 FLOAT을 사용하면 될까? (10장 「반올림 오류」)
- NULL = NULL이라고 비교했는데 왜 TRUE가 아닐까? (14장 「모르는 것에 대한 두려움」)
- 쿼리에 칼럼 이름을 다 쓰기 귀찮은데, 그냥 *로 해도 되겠지? (19장 「암묵적 칼럼」)
25가지 안티패턴과 이에 대한 해법을 읽으면서, 20년간 데이터베이스 분야에서 개발자들의 질문에 답해 온 저자의 내공을 전수받을 수 있을 것이다.
* <b>안티패턴</B> : 널리 사용되지만 실제로는 좋지 않은 패턴
이 책에 수록된 모든 예제 코드는 출판사 스프링노트인 http://insightbook.springnote.com/pages/7943686에서 다운받을 수 있습니다.
인물정보
저자 빌 카윈(Bill Karwin)은 MySQL, Interbase와 같은 관계형 데이터베이스 전문가다. 20년 이상 소프트웨어 엔지니어, 컨설턴트로 일하며 Zend 프레임워크, Interbase 데이터베이스, Enhydra 자바 애플리케이션 서버 등을 개발하고 기술 지원을 수행했으며, 자신의 지식을 공유해 다른 프로그래머들이 생산적으로 일할 수 있도록 도왔다. 또한 SQL에 대한 수천 개의 질문에 답하면서 개발자들이 흔히 실수하는 문제에 대한 독보적인 시각을 갖게 되었고, 이런 실수를 정리해 『SQL AntiPatterns』를 썼다.
번역 윤성준
역자 윤성준은 ThinkFree에서 오피스에 사용되는 공통 모듈 및 GUI 컴포넌트, WebDAV 클라이언트/서버 등을 개발했다. LG CNS에서 DBA로 활동하며 다양한 금융 프로젝트에 참여했고, 이니시스에서 결제 시스템 DB를 관리하며 DB 동기화 프로그램을 개발하기도 했다. 현재 사이냅소프트에 근무한다. 『Java 세상을 덮친 Eclipse』를 지었으며, 『리팩토링』 『생각하는 프로그래밍』 『소프트웨어 공학의 사실과 오해』 등을 번역했다.
이 상품의 총서
Klover리뷰 (0)
- - e교환권은 적립일로부터 180일 동안 사용 가능합니다.
- - 리워드는 5,000원 이상 eBook, 오디오북, 동영상에 한해 다운로드 완료 후 리뷰 작성 시 익일 제공됩니다. (2024년 9월 30일부터 적용)
- - 리워드는 한 상품에 최초 1회만 제공됩니다.
- - sam 이용권 구매 상품 / 선물받은 eBook은 리워드 대상에서 제외됩니다.
- 도서나 타인에 대해 근거 없이 비방을 하거나 타인의 명예를 훼손할 수 있는 리뷰
- 도서와 무관한 내용의 리뷰
- 인신공격이나 욕설, 비속어, 혐오 발언이 개재된 리뷰
- 의성어나 의태어 등 내용의 의미가 없는 리뷰
구매 후 리뷰 작성 시, e교환권 100원 적립
문장수집
- 구매 후 90일 이내에 문장 수집 등록 시 e교환권 100원을 적립해 드립니다.
- e교환권은 적립일로부터 180일 동안 사용 가능합니다.
- 리워드는 5,000원 이상 eBook에 한해 다운로드 완료 후 문장수집 등록 시 제공됩니다. (2024년 9월 30일부터 적용)
- 리워드는 한 상품에 최초 1회만 제공됩니다.
- sam 이용권 구매 상품 / 선물받은 eBook / 오디오북·동영상 상품/주문취소/환불 시 리워드 대상에서 제외됩니다.
구매 후 문장수집 작성 시, e교환권 100원 적립
신규가입 혜택 지급이 완료 되었습니다.
바로 사용 가능한 교보e캐시 1,000원 (유효기간 7일)
지금 바로 교보eBook의 다양한 콘텐츠를 이용해 보세요!