간편결제, 신용카드 청구할인
인터파크 롯데카드 5% (22,230원)
(최대할인 10만원 / 전월실적 40만원)
북피니언 롯데카드 30% (16,380원)
(최대할인 3만원 / 3만원 이상 결제)
NH쇼핑&인터파크카드 20% (18,720원)
(최대할인 4만원 / 2만원 이상 결제)
Close

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

원제 : SQL ANTIPATTERNS
소득공제

2013년 9월 9일 이후 누적수치입니다.

판매지수 40
?
판매지수란?
사이트의 판매량에 기반하여 판매량 추이를 반영한 인터파크 도서에서의 독립적인 판매 지수입니다. 현재 가장 잘 팔리는 상품에 가중치를 두었기 때문에 실제 누적 판매량과는 다소 차이가 있을 수 있습니다. 판매량 외에도 다양한 가중치로 구성되어 최근의 이슈도서 확인시 유용할 수 있습니다. 해당 지수는 매일 갱신됩니다.
Close
공유하기
정가

26,000원

  • 23,400 (10%할인)

    1,300P (5%적립)

할인혜택
적립혜택
  • I-Point 적립은 출고완료 후 14일 이내 마이페이지에서 적립받기한 경우만 적립됩니다.
  • 추가혜택
    배송정보
    •  당일배송을 원하실 경우 주문시 당일배송을 선택해주세요.
    • 서울시 강남구 삼성로 512변경
    • 배송지연보상 안내
    • 무료배송
    • 해외배송가능
    주문수량
    감소 증가
    • 북카트 담기
    • 바로구매
    • 매장픽업
    • 이벤트/기획전

    • 연관도서(79)

    • 사은품

    출판사 서평

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

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

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

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

    -안티패턴 : 널리 사용되지만 실제로는 좋지 않은 패턴

    이 책에 수록된 모든 예제 코드는 출판사 스프링노트인 http://insightbook.springnote.com/pages/7943686에서 다운받을 수 있습니다.

    목차

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

    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 참고문헌

    저자소개

    빌 카윈(Bill Karwin) [저] 신작알림 SMS신청 작가DB보기
    생년월일 -
    출생지 -
    출간도서 0종
    판매수 0권

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

    생년월일 -
    출생지 -
    출간도서 0종
    판매수 0권

    [Java 세상을 덮친 Eclipse]를 썼으며 [패턴을 활용한 리팩터링], [소프트웨어 공학의 사실과 오해], [NoSQL: 빅데이터 세상으로 떠나는 간결한 안내서] 등을 번역했다. 현재 사이냅소프트에서 웹오피스를 개발하고 있다.

    역자의 다른책

    전체보기

    이 상품의 시리즈

    Programming Insight 시리즈(총 88권 / 현재구매 가능도서 80권)

    펼쳐보기

    이 책과 내용이 비슷한 책 ? 내용 유사도란? 이 도서가 가진 내용을 분석하여 기준 도서와 얼마나 많이 유사한 콘텐츠를 많이 가지고 있는가에 대한 비율입니다.

      리뷰

      0.0 (총 0건)

      구매 후 리뷰 작성 시, 북피니언 지수 최대 600점

      리뷰쓰기

      기대평

      작성시 유의사항

      평점
      0/200자
      등록하기

      기대평

      10.0

      교환/환불

      교환/환불 방법

      ‘마이페이지 > 취소/반품/교환/환불’ 에서 신청함, 1:1 문의 게시판 또는 고객센터(1577-2555) 이용 가능

      교환/환불 가능 기간

      고객변심은 출고완료 다음날부터 14일 까지만 교환/환불이 가능함

      교환/환불 비용

      고객변심 또는 구매착오의 경우에만 2,500원 택배비를 고객님이 부담함

      교환/환불 불가사유

      반품접수 없이 반송하거나, 우편으로 보낼 경우 상품 확인이 어려워 환불이 불가할 수 있음
      배송된 상품의 분실, 상품포장이 훼손된 경우, 비닐랩핑된 상품의 비닐 개봉시 교환/반품이 불가능함

      소비자 피해보상

      소비자 피해보상의 분쟁처리 등에 관한 사항은 소비자분쟁해결기준(공정거래위원회 고시)에 따라 비해 보상 받을 수 있음
      교환/반품/보증조건 및 품질보증 기준은 소비자기본법에 따른 소비자 분쟁 해결 기준에 따라 피해를 보상 받을 수 있음

      기타

      도매상 및 제작사 사정에 따라 품절/절판 등의 사유로 주문이 취소될 수 있음(이 경우 인터파크도서에서 고객님께 별도로 연락하여 고지함)

      배송안내

      • 인터파크 도서 상품은 택배로 배송되며, 출고완료 1~2일내 상품을 받아 보실 수 있습니다

      • 출고가능 시간이 서로 다른 상품을 함께 주문할 경우 출고가능 시간이 가장 긴 상품을 기준으로 배송됩니다.

      • 군부대, 교도소 등 특정기관은 우체국 택배만 배송가능하여, 인터파크 외 타업체 배송상품인 경우 발송되지 않을 수 있습니다.

      • 배송비

      도서(중고도서 포함) 구매

      2,000원 (1만원이상 구매 시 무료배송)

      음반/DVD/잡지/만화 구매

      2,000원 (2만원이상 구매 시 무료배송)

      도서와 음반/DVD/잡지/만화/
      중고직배송상품을 함께 구매

      2,000원 (1만원이상 구매 시 무료배송)

      업체직접배송상품 구매

      업체별 상이한 배송비 적용