logo
logo
x
바코드검색
BOOKPRICE.co.kr
책, 도서 가격비교 사이트
바코드검색

인기 검색어

실시간 검색어

검색가능 서점

도서목록 제공

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

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

(Avoiding the Pitfalls of Database Programming)

빌 카윈 (지은이), 하세정, 이애라 (옮긴이)
지니북스
31,000원

일반도서

검색중
서점 할인가 할인률 배송비 혜택/추가 실질최저가 구매하기
31,000원 -0% 0원
0원
31,000원 >
31,000원 -0% 0원
카드할인 10%
3,100원
27,900원 >
yes24 로딩중
교보문고 로딩중
11st 로딩중
영풍문고 로딩중
쿠팡 로딩중
쿠팡로켓 로딩중
G마켓 로딩중
notice_icon 검색 결과 내에 다른 책이 포함되어 있을 수 있습니다.

중고도서

검색중
서점 유형 등록개수 최저가 구매하기
로딩중

eBook

검색중
서점 정가 할인가 마일리지 실질최저가 구매하기
aladin 28,000원 -10% 1400원 23,800원 >

책 이미지

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

책 정보

· 제목 : SQL Antipatterns 데이터베이스 프로그래밍의 실수 줄이기 (Avoiding the Pitfalls of Database Programming)
· 분류 : 국내도서 > 컴퓨터/모바일 > 프로그래밍 개발/방법론 > 프로그래밍 기초/개발 방법론
· ISBN : 9791197992971
· 쪽수 : 390쪽
· 출판일 : 2023-11-07

책 소개

프로그래머들이 데이터에 사용하는 인기 있는 언어인 SQL에 관한 책이며, 특히 SQL을 사용하면서 자주하는 실수를 줄이는 방법을 다루고 있다. 일반적인 실수를 식별하고 피하는 방법을 배우고 실제로 작동하는 데이터 모델로 리팩토링한다.

목차

역자 서문
저자 서문

1장. 안티패턴이란?
1.1 안티패턴 유형
1.2 안티패턴 해부하기
1.3 ‌ERD(Entity-Relationship Diagram, 앤터티 관계 다이어그램)
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 미니 안티패턴: 예약어(Reserved Words)

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 미니-안티패턴: NOT IN (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.9 Null을 허용하지 않는 컬럼에 SET NULL 옵션 사용
26.10 중복 제약조건 식별자 만들기
26.11 호환되지 않는 테이블 타입 사용

27장. MySQL에서의 FK 실수
27.1 호환되지 않는 스토리지 엔진 사용
27.2 대용량 데이터 타입 사용
27.3 고유하지 않은 인덱스에 대한 MySQL FK
27.4 인라인 참조 구문 사용
27.5 기본 참조 구문 사용
27.6 MySQL에서 호환되지 않는 테이블 타입 사용

28장. 정규화 규칙
A.1 관계형(Relational)이란 무엇을 의미할까?
A.2 정규화에 대한 오해
A.3 정규화란 무엇일까?
A.4 상식

참고문헌
찾아보기

저자소개

빌 카윈 (지은이)    정보 더보기
캘리포니아주 산타크루즈에서 태어났으며, University of California에서 컴퓨터 및 정보 과학 학위를 받았다. 소프트웨어 엔지니어, 컨설턴트 및 관리자로 20년 이상 근무했다. 그는 MySQL, InterBase 등을 포함한 관계형 데이터베이스를 전문적으로 다루었고 온라인에서 수천 개의 질문에 답했으며, 2010에 출판한 “SQL AntiPatterns: 데이터베이스 프로그래밍의 함정 피하기(인사이트, 2011)”에서 가장 반복되는 실수들에 관해서 자신만의 통찰력을 서술했다.
펼치기
하세정 (옮긴이)    정보 더보기
LG상사, 삼성SDS를 거쳐 현재 정보통신산업진흥원에서 ICT 인력양성 연구위원으로 활동하고 있다. 기업들이 원하는 현장에 바로 투입할 수 있는 AI 인력을 공급하기 위한 교육과정 개발 및 운영에 참여해왔다. 현재 코딩을 모르는 일반인들도 쉽게 활용할 수 있는 AI 솔루션 교육의 대중화를 위해 노력하고 있다.
펼치기
이애라 (옮긴이)    정보 더보기
LG CNS, SK 주식회사(C&C) 에서 20년 넘게 시스템 통합 및 구축 업무를 수행했으며, 현재는 공공 기획 업무의 시스템 컨설팅 및 기술자문을 수행하고 있다. 주요 관심분야는 데이터 모델링 및 프로그래밍으로 개발자의 고품질의 코드 작성에 도움이 되기를 바라며 책의 번역을 진행하였다.
펼치기

책속에서

안티패턴은 문제를 해결하기 원했지만, 종종 다른 문제를 야기시키는 기술을 의미한다. 안티패턴은 다른 방식으로 널리 실행되지만 공통점을 가지고 있다. 사람들은 동료, 책, 기사로부터 도움을 받거나 스스로 안티패턴에 맞는 아이디어를 갖게 된다. 객체지향 소프트웨어 디자인 및 프로젝트 관리의 많은 안티패턴은 Portland Pattern Repository 및 1998년 판 AntiPatterns [BMMM98] 책에서 확인할 수 있다.

1.1 안티패턴 유형
이 책은 안티패턴의 네 가지 유형에 대해 소개한다.
논리적 데이터베이스 디자인 안티패턴
코딩을 시작하기 전에 여러분은 데이터베이스에 넣어야 할 정보가 무엇인지와 데이터를 구성하고 상호 연결하는 최선의 방법이 무엇인지를 결정해야 한다. 여기에는 데이터베이스 테이블, 컬럼 및 관계를 계획하는 방법을 소개한다.
물리적 데이터베이스 디자인 안티패턴
여러분이 어떤 데이터를 저장할 필요가 있는지 알고 난 후 RDBMS 기술의 기능을 사용하여, 할 수 있는 한 효과적으로 데이터 관리를 실행한다. 여기서는 테이블, 인덱스 및 데이터 타입을 정의하는 방법을 소개한다. CREATE TABLE과 같은 SQL의 DDL(Data Definition Language, 데이터 정의 언어)를 사용한다.
쿼리 안티패턴
여러분은 데이터베이스에 데이터를 추가한 다음 그 데이터를 검색할 필요가 있다. SQL 쿼리는 SELECT, UPDATE 및 DELETE와 같은 DML(Data Manipulation Language, 데이터 조작 언어)로 만들어진다
애플리케이션 개발 안티패턴
SQL은 C++, Java, PHP, Python, 또는 Ruby와 같은 다른 언어로 만들어진 애플리케이션의 컨텍스트에서 사용될 것이다. 애플리케이션에 SQL를 활용하는 올바른 방법 및 잘못된 방법이 있다. 그래서 이 부분에서 일반적인 몇 가지 실수를 소개한다.
일반적인 소프트웨어 개발이나 운영과 관련된 다른 많은 안티패턴이 있지만 이 책은 SQL 언어를 집중해서 다룬다.
또한 책 전체에서 챕터(Chapter) 사이에 미니 안티패턴을 찾을 수 있다. 여기에는 SQL을 사용하는 개발자가 일반적으로 저지르는 다른 실수가 포함된다. 미니 안티패턴은 주요 안티패턴보다 더 간략하게 다룬다.
은유적이거나 기억하기 쉽도록 올바른 긍정적인 디자인 패턴과 안티패턴 모두 은유적이거나 기억하기 쉬운 이름을 만드는 것이 전통이다. 그래서 이 책의 대부분의 안티패턴 부분은 재미있거나 연상되는 제목을 포함한다.
부록에는 관계형 데이터베이스 이론의 실질적인 내용을 소개한다. 이 책에서 다루는 안티패턴의 대부분은 데이터베이스 이론을 잘못 이해한 결과에 의한 것이다.




이 포스팅은 쿠팡 파트너스 활동의 일환으로,
이에 따른 일정액의 수수료를 제공받습니다.
이 포스팅은 제휴마케팅이 포함된 광고로 커미션을 지급 받습니다.
도서 DB 제공 : 알라딘 서점(www.aladin.co.kr)
최근 본 책
9791198786661