• 베스트
  • 소득공제
  • 무료배송

SQL AntiPatterns(개발자가 알아야 할 25가지 SQL 함정과 해법)

  • 빌카윈
  • 윤성준
  • 인사이트
  • 2011년 06월 27일
사용자 평점
0리뷰 0개
10%23,40026,000원
적립금
1,300원 (5% 적립)
추가 적립 안내
  • 5만원 이상 결제 시 (*배송비 제외)

    정가제FREE(상품/사은품) 금액이
    2,000원 이상이면 2,000원 추가적립

  • 10만원 이상 결제 시 (*배송비 제외)

    정가제FREE(상품/사은품) 금액이
    2,000원 이상이면 2,000원 추가적립

    정가제FREE(상품/사은품) 금액이
    5,000원 이상이면 5,000원 추가적립

회원가입 시 적립금 즉시 지급!

배송비
무료 (해외배송의 경우 지역에 따라 상이)

배송안내

배송비 안내
  • 1만원 이상 주문 시 무료배송 입니다.
  • 주문하신 상품을 해외로 배송 하시는 경우에는 별도의 항공료 가 부과됩니다
서울특별시 강남구 강남대로 542(논현동, 영풍빌딩)
주문 수량 변경시 안내

[주문/배송] 주문 수량 변경 시 안내

주문 수량 변경 시,배송일정이 변경될 수 있으니 반드시 확인해 주시기 바랍니다.
(고객센터 1544-9020)

지금 주문하면 9/17(목) 출고 가능
택배보다 빠른, 나우드림
상품 규격 정보
상품상세정보
ISBNISBN-13 : 9788966260041
쪽수415쪽
크기기타 규격
제품구성단행본
이 책이 속한 분야
  • 컴퓨터/IT > 시스템공학
관련 이벤트

AI추천 이유

책 소개

『SQL ANITPATTERNS』는 일반적으로 사용하는 SQL문이 개발자를 얼마나 수렁에 빠뜨릴 수 있는지 보여준 뒤, 이를 해결할 정석을 가르쳐 준다. 또한 다음과 같은 의문에 대해서도 근거가 명확한 답안을 제시한다. 25가지 안티패턴과 이에 대한 해법을 읽으면서, 20년간 데이터베이스 분야에서 개발자들의 질문에 답해 온 저자의 내공을 전수받을 수 있을 것이다.

목차

[목 차]

옮긴이의 글
한국어판 지은이의 글

1장 개요
1.1 대상 독자
1.2 이 책에 있는 내용
1.3 이 책에 없는 내용
1.4 일러두기
1.5 예제 데이터베이스
1.6 감사의 글

2장 무단횡단
2.1 목표: 다중 값 속성 저장
2.2 안티패턴: 쉼표로 구분된 목록에 저장
2.3 안티패턴 인식 방법
2.4 안티패턴 사용이 합당한 경우
2.5 해법: 교차 테이블 생성

3장 순진한 트리
3.1 목표: 계층구조 저장 및 조회하기
3.2 안티패턴: 항상 부모에 의존하기
3.3 안티패턴 인식 방법
3.4 안티패턴 사용이 합당한 경우
3.5 해법: 대안 트리 모델 사용

4장 아이디가 필요해
4.1 목표: PK 관례 확립
4.2 안티패턴: 만능키
4.3 안티패턴 인식 방법
4.4 안티패턴 사용이 합당한 경우
4.5 해법: 상황에 맞추기

5장 키가 없는 엔트리
5.1 목표: 데이터베이스 아키텍처 단순화
5.2 안티패턴: 제약조건 무시
5.3 안티패턴 인식 방법
5.4 안티패턴 사용이 합당한 경우
5.5 해법: 제약조건 선언하기

6장 엔터티-속성-값
6.1 목표: 가변 속성 지원
6.2 안티패턴: 범용 속성 테이블 사용
6.3 안티패턴 인식 방법
6.4 안티패턴 사용이 합당한 경우
6.5 해법: 서브타입 모델링

7장 다형성 연관
7.1 목표: 여러 부모 참조
7.2 안티패턴: 이중 목적의 FK 사용
7.3 안티패턴 인식 방법
7.4 안티패턴 사용이 합당한 경우
7.5 해법: 관계 단순화

8장 다중 칼럼 속성
8.1 목표: 다중 값 속성 저장
8.2 안티패턴: 여러 개의 칼럼 생성
8.3 안티패턴 인식 방법
8.4 안티패턴 사용이 합당한 경우
8.5 해법: 종속 테이블 생성

9장 메타데이터 트리블
9.1 목표: 확장 적응성 지원
9.2 안티패턴: 테이블 또는 칼럼 복제
9.3 안티패턴 인식 방법
9.4 안티패턴 사용이 합당한 경우
9.5 해법: 파티션과 정규화

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 해법: 데이터로 값을 지정하기

12장 유령 파일
12.1 목표: 이미지 또는 벌크 미디어 저장
12.2 안티패턴: 파일을 사용해야 한다고 가정한다
12.3 안티패턴 인식 방법
12.4 안티패턴 사용이 합당한 경우
12.5 해법: 필요한 경우에는 BLOB 데이터 타입을 사용하라

13장 인덱스 샷건
13.1 목표: 성능 최적화
13.2 안티패턴: 무계획하게 인덱스 사용하기
13.3 안티패턴을 인식하는 방법
13.4 안티패턴 사용이 합당한 경우
13.5 해법: 인덱스를 MENTOR하라

14장 모르는 것에 대한 두려움
14.1 목표: 누락된 값을 구분하기
14.2 안티패턴: NULL을 일반 값처럼 사용
14.3 안티패턴 인식 방법
14.4 안티패턴 사용이 합당한 경우
14.5 해법: 유일한 값으로 NULL을 사용하라

15장 애매한 그룹
15.1 목표: 그룹당 최댓값을 가진 행 얻기
15.2 안티패턴: 그룹되지 않은 칼럼 참조
15.3 안티패턴 인식 방법
15.4 안티패턴 사용이 합당한 경우
15.5 해법: 칼럼을 모호하게 사용하지 않기

16장 임의의 선택
16.1 목표: 샘플 행 가져오기
16.2 안티패턴: 데이터를 임의로 정렬하기
16.3 안티패턴 인식 방법
16.4 안티패턴 사용이 합당한 경우
16.5 해법: In No Particular Order

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 해법: 명시적으로 칼럼 이름 지정하기

20장 읽을 수 있는 패스워드
20.1 목표: 패스워드를 복구하거나 재설정하기
20.2 안티패턴: 패스워드를 평문으로 저장하기
20.3 안티패턴 인식 방법
20.4 안티패턴 사용이 합당한 경우
20.5 해법: 패스워드의 소금 친 해시

21장 SQL 인젝션
21.1 목표: 동적 SQL 쿼리 작성하기
21.2 안티패턴: 검증되지 않은 입력을 코드로 실행하기
21.3 안티패턴 인식 방법
21.4 안티패턴 사용이 합당한 경우
21.5 해법: 아무도 믿지 마라

22장 가상키 편집증
22.1 목표: 데이터 정돈하기
22.2 안티패턴: 모든 틈 메우기
22.3 안티패턴 인식 방법
22.4 안티패턴 사용이 합당한 경우
22.5 해법: 극복하라

23장 나쁜 것 안 보기
23.1 목표: 코드를 적게 작성하기
23.2 안티패턴: 짚 없이 벽돌 만들기
23.3 안티패턴 인식 방법
23.4 안티패턴 사용이 합당한 경우
23.5 해법: 에러에서 우아하게 복구하기

24장 외교적 면책특권
24.1 목표: 관례 따르기
24.2 안티패턴: SQL을 2등 시민으로 만들기
24.3 안티패턴 인식 방법
24.4 안티패턴 사용이 합당한 경우
24.5 해법: 초당적 품질 문화 확립

25장 마법의 콩
25.1 목표: MVC에서 모델 단순화하기
25.2 안티패턴: 액티브 레코드인 모델
25.3 안티패턴을 인식하는 방법
25.4 안티패턴 사용이 합당한 경우
25.5 해법: 액티브 레코드를 가지는 모델

부록 A 정규화 규칙
A.1 관계형의 뜻
A.2 정규화에 대한 미신
A.3 정규화란?
A.4 상식

부록 B 참고문헌

출판사 서평

다들 이렇게 쓰는데 뭐가 잘못이라는 거야?

 

모두가 한다고 해서 반드시 옳은 방법은 아니다. 특히 SQL에서는 더욱 그렇다. 이 책은 일반적으로 사용하는 SQL문이 개발자를 얼마나 수렁에 빠뜨릴 수 있는지 보여준 뒤, 이를 해결할 정석을 가르쳐 준다. 또한 다음과 같은 의문에 대해서도 근거가 명확한 답안을 제시한다.

 

이 상품에 대한 태그를 쉼표로 구분해서 저장하면 될까? (2장 「무단횡단」), PK가 필요 없다고들 하던데 정말일까? (4장 「아이디가 필요해」), 소수 값을 저장하려면 SQL에서도 FLOAT을 사용하면 될까? (10장 「반올림 오류」), NULL = NULL이라고 비교했는데 왜 TRUE가 아닐까? (14장 「모르는 것에 대한 두려움」), 쿼리에 칼럼 이름을 다 쓰기 귀찮은데, 그냥 *로 해도 되겠지? (19장 「암묵적 칼럼」)등의 내용이 수록되어 있다.

 

25가지 안티패턴과 이에 대한 해법을 읽으면서, 20년간 데이터베이스 분야에서 개발자들의 질문에 답해 온 저자의 내공을 전수받을 수 있을 것이다.

저자 소개
저자 : 빌카윈

    빌 카윈(Bill Karwin)(저자)
    저자 빌 카윈(Bill Karwin)은 MySQL, Interbase와 같은 관계형 데이터베이스 전문가다. 20년 이상 소프트웨어 엔지니어, 컨설턴트로 일하며 Zend 프레임워크, Interbase 데이터베이스, Enhydra 자바 애플리케이션 서버 등을 개발하고 기술 지원을 수행했으며, 자신의 지식을 공유해 다른 프로그래머들이 생산적으로 일할 수 있도록 도왔다. 또한 SQL에 대한 수천 개의 질문에 답하면서 개발자들이 흔히 실수하는 문제에 대한 독보적인 시각을 갖게 되었고, 이런 실수를 정리해 『SQL AntiPatterns』를 썼다.

    윤성준(역자)
    역자 윤성준은 ThinkFree에서 오피스에 사용되는 공통 모듈 및 GUI 컴포넌트, WebDAV 클라이언트/서버 등을 개발했다. LG CNS에서 DBA로 활동하며 다양한 금융 프로젝트에 참여했고, 이니시스에서 결제 시스템 DB를 관리하며 DB 동기화 프로그램을 개발하기도 했다. 현재 사이냅소프트에 근무한다. 『Java 세상을 덮친 Eclipse』를 지었으며, 『리팩토링』 『생각하는 프로그래밍』 『소프트웨어 공학의 사실과 오해』 등을 번역했다.

    도서리뷰 (0)
    이 책을 읽고 어떤 느낌을 받으셨나요? 리뷰를 남기고 다른 독자들과 함께 공유해보세요.

    등록된 리뷰가 없습니다

    첫번째 리뷰어가 되어주세요

    교환/반품/환불
    반품/교환방법
    • 마이페이지 > 주문관리 > 주문/배송조회 > 주문조회 후  [1:1상담신청]  또는 고객센터 (1544-9020)
    • ※ 오픈마켓, 해외배송 주문상품 문의 시 [1:1상담신청] 또는 고객센터 (1544-9020)
    반품/교환 가능기간
    • 변심반품의 경우 수령 후 7일 이내
    • 상품의 결함 및 계약내용과 다를 경우 문제점 발견 후 30일 이내
    반품/교환비용
    • 단순변심 혹은 구매착오로 인한 반품/교환은 반송료 고객 부담
    • 해외직배송 도서 구매 후 단순변심에 의한 취소 및 반품 시 도서판매가의 20% 수수료 부과
    반품/교환 불가 사유
    • 소비자의 책임 있는 사유로 상품 등이 손실 또는 훼손된 경우
    • 소비자의 사용, 포장 개봉에 의해 상품 등의 가치가 현저히 감소한 경우
      예) 만화, 잡지, 수험서 및 문제집류
    • 복제가 가능한 상품 등의 포장을 훼손한 경우
      예) 음반/DVD/비디오, 소프트웨어, 만화책, 잡지, 영상 화보집
    • 소비자의 요청에 따라 개별적으로 주문 제작되는 상품의 경우
    • 디지털 컨텐츠인 eBook, 오디오북 등을 1회 이상 다운로드를 받았을 경우
    • 시간의 경과에 의해 재판매가 곤란한 정도로 가치가 현저히 감소한 경우
    • 전자상거래 등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에 해당되는 경우
    상품 품절
    • 공급사(출판사) 재고 사정에 의해 품절/지연될 수 있으며, 품절 시 관련 사항에 대해서는 이메일과 문자로 안내드리겠습니다.
    소비자 피해보상
    환불지연에 따른 배상
    • 상품의 불량에 의한 교환, A/S, 환불, 품질보증 및 피해보상 등에 관한 사항은 소비자분쟁 해결 기준 (공정거래위원회 고시)에 준하여 처리됨
    • 대금 환불 및 환불지연에 따른 배상금 지급 조건, 절차 등은 전자상거래 등에서의 소비자 보호에 관한 법률에 따라 처리함

    매장에서 사용할 수 있는 바코드가 있어요!