Top

MySQL Fifth Edition 한국어판 [효율적인 웹 애플리케이션 데이터베이스 운용 관리 가이드]

  • 원서명MySQL Fifth Edition (ISBN 9780321833877)
  • 지은이폴 뒤브와
  • 옮긴이테크 트랜스 그룹 T4
  • ISBN : 9788960775411
  • 55,000원
  • 2014년 03월 31일 펴냄 (절판)
  • 페이퍼백 | 1,384쪽 | 188*250mm
  • 시리즈 : 웹 프로페셔널

판매처

  • 현재 이 도서는 구매할 수 없습니다.

책 소개

요약

『MySQL Fifth Edition 한국어판』은 오픈소스 관계형 데이터베이스 관리 시스템인 MySQL이 어떻게 동작하는지와 MySQL의 고유 기능을 활용하는 방법을 설명하고, 데이터베이스를 적절하게 사용하는 방법을 알려준다. MySQL의 API와 여러 종류의 프로그래밍 인터페이스(C, 펄 DBI, PHP)를 사용해서 프로그램 작성하는 방법과 MySQL 관리자의 다양한 역할, 구체적인 활용 방안을 다룬다. 광범위한 내용을 자세한 예제와 함께 다루기 때문에 누구나 쉽고 빠르게 익히고 사용할 수 있다.

이 책에 쏟아진 찬사

내가 읽었던 기술서 중 최고다.
– 그레고리 할리 / C&C++ 사용자 협회

뛰어난 사용자 가이드이자 레퍼런스 매뉴얼이다. MySQL 데이터베이스 운용 관리는 이 책 하나로 충분하다.
– 유진 김 / 웹 기술자

이 책의 구성

1장, MySQL 시작에서는 MySQL의 유용한 점을 설명하고, 대화형 클라이언트 프로그램을 소개하는 튜토리얼을 제공한다. 그리고 SQL의 기본 사항과 MySQL의 일반 기능을 살펴본다.

2장, SQL을 이용한 데이터 관리에서는 모든 주요 RDBMS가 SQL을 이해하지만, 모든 데이터베이스 엔진이 구현하는 SQL들은 사투리처럼 조금씩 차이가 있기 때문에, MySQL 이 다른 데이터베이스와 구분되는 기능에 중점을 두고 SQL을 설명한다.

3장, 자료형에서는 MySQL이 정보를 저장하기 위해 제공하는 자료형들을 설명하고, 각 자료형의 속성과 한계, 그리고 각 타입을 사용할 때와 사용 방법, 수식평가와 타입 변환에 대한 내용을 다룬다.

4장, 뷰와 저장프로그램에서는 서버 측에 저장된 SQL 객체들을 작성하고 사용하는 방법을 보여준다. 여기에는 뷰(가상 테이블)와 저장 프로그램(함수와 프로시저, 트리거와 이벤트)이 포함된다.

5장, 질의 최적화에서는 질의를 더 빠르게 실행하는 방법을 다룬다.

6장, MySQL 프로그래밍 소개에서는 MySQL의 몇 가지 API를 소개하고, 각 API를 자세하게 비교하여 설명한다.

7장, C를 사용한 MySQL 프로그램 작성에서는 MySQL C 클라이언트 라이브러리가 제공하는 API를 이용해 C 프로그램을 작성하는 방법을 설명한다.

8장, 펄 DBI를 사용한 MySQL 프로그램 작성에서는 DBI 모듈을 이용해 펄 스크립트를 작성하는 방법을 설명한다. 독립형 커맨드라인 스크립트와 웹사이트 프로그래밍 스크립트도 다룬다.

9장, PHP를 사용한 MySQL 프로그램 작성에서는 MySQL 데이터베이스에 접근하는 동적 웹페이지를 작성하기 위해 PHP 스크립트 언어와 PHP 데이터 객체의 데이터베이스 접근∙확장을 사용하는 방법을 다룬다.

10장, MySQL 운영 관리 개요에서는 데이터베이스 관리자의 역할과 MySQL 사이트를 성공적으로 운영하기 위해 알아야 하는 것들을 간략하게 다룬다.

11장, MySQL 데이터 디렉터리에서는 MySQL이 데이터베이스와 로그, 상태 파일들을 저장하는 데이터 디렉터리의 구조와 내용을 다룬다.

12장, MySQL 일반 관리에서는 시스템이 실행되고 정지할 때 운영체제가 MySQL 서버를 올바르게 시작시키고 중지시켰는지 확인하는 방법을 다룬다. 또한 스토리지 엔진 설정, 서버 튜닝, 로그 유지, 다중 서버 실행을 살펴본다.

13장, 보안과 접근 제어에서는 서버 호스트 내의 다른 사용자들과 네트워크를 통해 연결된 클라이언트들의 침입으로부터 안전하게 MySQL을 설치하기 위해 알아야 하는 것을 다룬다. SSL을 통한 보안 연결을 지원하는 서버 설정 방법도 다룬다.

14장, 데이터베이스 유지 보수와 백업, 복제에서는 예방 차원의 관리를 통해 재앙 발생 가능성을 줄이는 방법과 데이터베이스를 백업하는 방법, 사 고를 예방하는 방법, 그리고 사고 발생 시 복구하는 방법, 마지막으로 복제 서버를 설정하는 방법을 다룬다.

부록 A, 이 책에서 필요한 소프트웨어에서는 이 책에서 필요로 하는 주요 툴과 샘플 데이터베이스 파일을 구할 수 있는 곳을 알아본다.

부록 B, 자료형 레퍼런스에서는 MySQL 자료형의 특징들을 설명한다.

부록 C, 연산자와 함수 레퍼런스에서는 SQL문의 수식을 작성하는 데 사용되는 연산자와 함수들을 설명한다.

부록 D, 시스템, 상태, 사용자 변수 레퍼런스에서는 MySQL 서버에 의해 유지되는 각 변수를 소개하고 SQL문에서 사용자 변수들을 사용하는 방법을 설명한다.

부록 E, SQL 문법 레퍼런스에서는 MySQL에서 지원하는 각 SQL문을 설명한다.

부록 F, MySQL 프로그램 레퍼런스에서는 MySQL 배포본이 제공하는 프로그램들을 설명한다.

부록 G, C API 레퍼런스에서는 MySQL C 클라이언트 라이브러리에서 제공되는 데이터 타입과 함수들을 소개한다.

부록 H, 펄 DBI API 레퍼런스에서는 펄 DBI 모듈에서 제공하는 메소드와 속성들을 설명한다.

부록 I, PHP API 레퍼런스에서는 PHP에서 MySQL을 사용하기 위해 PDO 확장 모듈이 제공하는 메소드를 소개한다.

저자/역자 소개

지은이 서문

관계형 데이터베이스 관리시스템(RDBMS, Relational Database Management System)은 비즈니스, 연구, 교육뿐만 아니라 인터넷상의 콘텐츠 전달까지 많은 영역에서 중요한 역할을 하는 도구다. 정보 자원을 관리하고 이용하는 데 데이터베이스가 중요함에도 불구하고, 많은 조직이 재정 부족으로 데이터베이스 관리시스템을 이용하지 못하고 있다. 예전부터 데이터베이스 시스템은 상당히 큰 비용이 들었다. 또한 데이터베이스 엔진을 합리적으로 수행하게 하는 성능을 갖춘 하드웨어가 필요할 경우에는 비용이 훨씬 더 많이 들기도 했다.

시대가 바뀌면서 하드웨어와 소프트웨어 모두 양상이 바뀌었다. 개인용 컴퓨터와 서버들은 저렴해진 반면 고성능화되고 고성능 운영체제를 개발하고자 하는 움직임이 생겼다. 운영체제는 인터넷에서 무료로 구하거나 저렴하게 구입할 수 있게 되었다. 이러한 운영체제에는 여러 가지의 BSD 유닉스 변종과 리눅스 배포판이 있다.

무료 운영체제의 개발은 무료로 사용 가능한 오픈소스 툴들의 개발과 함께 진행돼 왔다. 오픈소스 툴에는 GNU C 컴파일러인 gcc, 인터넷상에서 가장 널리 사용되고 있는 웹 서버인 아파치, 그리고 펄, PHP, 파이썬(Python), 루비(Ruby) 같은 안정된 범용 스크립트 언어가 있다. 이들은 모두 소스코드조차 제공하지 않는 고가의 소프트웨어 회사가 특허를 갖고 있는 솔루션과 대조적이다.

데이터베이스 소프트웨어 또한 접근하기 쉬워졌고, 오픈소스 데이터베이스 시스템은 무료로 사용할 수 있게 됐다. 그 중 가장 중요한 것은 스칸디나비아에서 시작된 SQL 클라이언트 서버 구조의 관계형 데이터베이스 관리 시스템인 MySQL이다. MySQL에는 SQL 서버, 서버 접근을 위한 클라이언트 프로그램, 관리용 툴, 프로그램을 작성할 수 있는 프로그래밍 인터페이스가 있다. MySQL의 기원은 1979년에 스웨덴 회사인 TcX사에서 사용하기 위해 마이클 몬티 위디니어스가 개발한 UNIREG 데이터베이스 툴이다. 1994년, TcX사는 웹 애플리케이션을 개발하는 데 필요한 SQL 인터페이스를 지원하는 RDBMS를 찾기 시작했다. 테스트한 상용화된 서버들은 TcX 사의 거대한 테이블을 다루기에는 너무 느렸고, 무료로 사용 가능한 mSQL은 TcX가 필요로 하는 기능들을 충족시키기에는 부족했다. 결국 몬티는 새로운 서버의 개발을 시작했다.

1995년, Detron HB의 데이비드 액스마크는 TcX로 하여금 MySQL을 인터넷 상에 배포하도록 압력을 넣기 시작했다. 또한 데이비드는 문서 작업과 MySQL을 GNU autotool로 빌드가 가능하게 개발 작업을 했다. MySQL 3.11.1이 1996년에 리눅스와 솔라리스에서 동작 가능한 바이너리 배포 버전으로 세상에 등장했다. MySQL AB라는 회사가 MySQL 배포와 상용 서비스 제공을 위해 설립됐다. 2008년 썬 마이크로시스템즈가 MySQL AB를 인수했고, 2010 년에는 오라클이 썬 마이크로시스템즈를 인수했다. 최근 MySQL은 바이너리와 소스 형태로 제공되며, 다양한 플랫폼에서 동작한다.

초기 MySQL은 속도와 단순함 덕분에 많은 인기를 끌었다. 하지만 트랜잭션과 외래 키 지원과 같은 기능 부족에 대한 비판도 있었다. MySQL은 이런 기능들뿐만 아니라 복제, 서브 질의, 저장 루틴, 트리거, 뷰 등의 다른 기능을 추가하면서 계속 성장했다.

MySQL은 이러한 가능성을 통해 기업용 애플리케이션 영역으로 진입 할 수 있었다. 그 결과 자신의 애플리케이션에 대규모의 데이터베이스 시스템 적용만 고려하던 사람들이 중간 사양의 하드웨어에서부터 기업용 서버에서까지 동작 가능한 MySQL을 사용하기 시작했다. MySQL의 성능은 어떤 데이터베이스 시스템에든 필적하며, 수십억 개의 행을 가진 거대한 데이터베이스도 처리할 수 있다. 회사들이 상용 라이선싱과 지원을 받기 위해 지불했던 비용의 일부만으로 데이터베이스를 MySQL로 처리할 수 있다는 것을 알게 되면서 MySQL의 중요성은 계속 커지고 있다.

우리 앞에 MySQL이 놓여 있다. 저렴하지만 고성능의 하드웨어상에서 동작하는 무료 운영체제들에, 예전과는 비교도 할 수 없을 정도로 다양한 시스템에서 기업과 개인들에게 상당한 처리 능력과 기능을 제공한다. 아주 적은 비용으로 훨씬 더 많은 조직이 고성능의 RDBMS를 사용하게 되어 경제적인 장벽을 낮출 수 있다. 이 사실은 조직뿐 아니라 개인에게도 적용된다. 예를 들어 나는 맥 OS X이 실행되는 애플 사의 노트북에서 펄, PHP, 아파치와 함께 MySQL을 사용한다. 덕분에 장소에 제약 받지 않고 어디서든 작업을 할 수 있게 됐다. 필요한 것은 노트북뿐이다

지은이 소개

폴 뒤브와 (Paul DuBois)

작가이자 데이터베이스 관리자이며, 오픈소스와 MySQL 커뮤니티의 리더다. MySQL 온라인 문서에 많은 기여를 했고, 『MySQL and Perl for the Web』(New Riders), 『MySQL Cookbook, Using csh and tcsh』, 『Software Portability with imake』(O’Reilly)를 집필했다. 현재 오라클의 MYSQL 문서 팀에서 테크니컬 라이터로 일하고 있다.

옮긴이의 말

대학 시절 개인 홈페이지를 구축하고 나만의 정보를 친구들에게 제한적으로 공유하던 시절, 아파치와 PHP, MySQL을 사용한 제로보드를 사용하면서 처음 MySQL을 접하고 root와 password를 기억하기 시작했다. 이후 SI 업무를 하면서 수많은 RDBMS를 사용했지만, MySQL만큼 손에 익숙하면서 안정적이고, 사용하기 쉬운 데이터베이스는 없었던 것 같다. 물론 초창기에 다소 불안한 점은 있었지만, 누구나 사용할 수 있게 오픈되어 있다는 점이 큰 매력이었고, 이제는 MySQL을 사용한 대규모 프로젝트를 주변에서 쉽게 볼 수 있다.

다만 아쉽게도 최근 빅데이터가 큰 흐름으로 대두되면서 MySQL에 대한 관심이 예전만 못한 것 같다. 구글 트렌드(http://www.google.co.kr/trends)에서만 보더라도 2005년 이후로 MySQL에 대한 관심사가 뚝 떨어지고 있는 것을 확인할 수 있다. 도큐먼트 기반 NoSQL은 RDBMS보다 뛰어난 확장성과 가용성으로 데이터가 많이 쌓이는 시스템에서 사용하기 적합하며, MySQL은 이런 특수한 상황을 고려해야 하는 시스템이 아닌 모든 일반적인 시스템에 적합하다.

엔지니어가 가장 피해야 할 것이 있다면 나는 주저 없이 오버엔지니어링 (Overengineering)을 꼽을 것이다. 오버엔지니어링이란 현재 필요한 것보다 더 과하게 제품을 디자인하는 것이다. 실제로 페이스북, 트위터 같은 대규모 시스템은 아직도 MySQL을 사용한다. 페이스북의 월별 이용자는 10억 명이 넘고, 트위터는 초당 수천 건의 트윗이 들어온다. 이같이 대규모 트랜잭션을 처리하는 대부분의 서비스들도 주요 저장소로 RDBMS의 대표격인 MySQL을 사용한다. 확장성이 가장 중요한 이슈일 것 같은 서비스들이 아직 NoSQL을 사용하지 않는 이유는 아직까지 NoSQL이 가야 할 길이 멀다는 사실을 반증하는 것일 수 있다. 당분간 아니 어쩌면 앞으로도 계속 MySQL을 한쪽 겨드랑이 옆에 꼭 끼워둬야 할지도 모르는 일이다.

MySQL은 누구나 쉽게 사용할 수 있는, 세상에서 가장 유명한 데이터베이스다. 데이터베이스에 대한 전문적인 지식이 없더라도 누구나 사용할 수 있지만, 절대 간단히 구현된 데이터베이스는 아니다.

이 책을 통해 MySQL의 고급 사용자나 관리자가 되면 안정적이고 최적화된 성능을 가진 데이터베이스를 운용할 수 있는 자신감을 갖게 될 것이다. 그렇기 때문에 이 책은 MySQL을 처음 시작하는 독자거나 이미 현업에서 수없이 MySQL 문법을 닳도록 사용한 개발자 모두에게 추천하고 싶다.

옮긴이 소개

테크 트랜스 그룹 T4

최신 IT 테크놀로지에 대한 리서치를 목적으로 하는 스터디 그룹이다. 엔터프라이즈 환경에서 오픈 소스를 활용한 프레임워크 구축에 관심이 많으며, 최근에는 모바일을 접목한 하이브리드 환경에서의 애자일, UI/UX, HTML5, 스프링, NoSQL 등 아키텍처 전반에 걸친 기술과 빅데이터 흐름에 주목하고 있다. 또한, 오픈소스 기반의 다양한 데이터베이스를 플랫폼 개발에 활용하는 것에 많은 관심을 가지고, 오픈 소스 기반 모바일 데이터베이스와 관련된 컨설팅을 수행하였으며, 내장형 시스템에서 사용되는 데이터베이스 시스템 최적화에 대한 연구를 하고 있다.

목차

목차
  • 1장 MySQL 시작
    • 1.1 MySQL이 어떻게 도움이 될까
    • 1.2 샘플 데이터베이스
    • 1.3 데이터베이스의 기본 용어
    • 1.4 MySQL 튜토리얼
    • 1.5 MySQL과 대화식 작업을 할 때 유용한 팁
    • 1.6 정리

  • 2장 SQL을 이용한 데이터 관리
    • 2.1 서버 SQL 모드
    • 2.2 MySQL 식별자 문법과 명명 규칙
    • 2.3 SQL문에서의 대소문자 구분
    • 2.4 문자 세트 지원
    • 2.5 데이터베이스의 선택, 생성, 삭제, 변경
    • 2.6 테이블 생성, 삭제, 인덱싱, 변경
    • 2.7 데이터베이스 메타데이터 얻기
    • 2.8 조인을 사용한 다중 테이블 탐색
    • 2.9 서브 질의를 사용한 다중 테이블 검색 수행
    • 2.10 UINON을 사용한 다중 테이블 검색 수행
    • 2.11 여러 테이블 삭제와 수정
    • 2.12 트랜잭션 수행
    • 2.13 외래 키와 참조 무결성
    • 2.14 FULLTEXT 탐색 사용
  • 3장 자료형
    • 3.1 데이터 값 카테고리
    • 3.2 MySQL 자료형
    • 3.3 MySQL의 유효하지 않은 데이터 값 처리 방식
    • 3.4 시퀀스로 작업
    • 3.5 수식 계선과 타입 변환
    • 3.6 자료형 선택

  • 4장 뷰와 저장 프로그램
    • 4.1 뷰 사용
    • 4.2 저장 프로그램 사용
    • 4.3 뷰와 저장 프로그램을 위한 보안

  • 5장 질의 최적화
    • 5.1 인덱스 사용
    • 5.2 MySQL 질의 옵티마이저
    • 5.3 효율적인 질의를 위한 자료형
    • 5.4 효율적인 질의를 위한 테이블 저장 포맷 선택
    • 5.5 효율적으로 데이터 로드
    • 5.6 스케줄링, 락, 동시성

  • 6장 MySQL 프로그래밍 소개
    • 6.1 직접 MySQL 프로그램을 작성하는 이유
    • 6.2 MySQL에서 사용할 수 있는 API
    • 6.3 API 선택
  • 7장 C를 사용한 MySQL 프로그램 작성
    • 7.1 컴파일과 링킹
    • 7.2 서버에 연결
    • 7.3 에러 메시지와 명령 옵션 처리
    • 7.4 SQL 질의문 처리
    • 7.5 대화식 문장을 실행하는 프로그램
    • 7.6 SSL을 지원하는 클라이언트 작성
    • 7.7 다중 질의문 처리
    • 7.8 서버 측 동적 질의 사용
    • 7.9 CALL문에 동적 질의 적용

  • 8장 펄 DBI를 사용한 MySQL 프로그램 작성
    • 8.1 펄 스크립트의 특징
    • 8.2 펄 DBI 개요
    • 8.3 DBI로 작업
    • 8.4 웹 애플리케이션에서 DBI 사용

  • 9장 PHP를 사용한 MySQL 프로그램 작성
    • 9.1 PHP 살펴보기
    • 9.2 PHP 사용

  • 10장 MySQL 운영 관리 개요
    • 10.1 MySQL 컴포넌트
    • 10.2 전반적인 MySQL 관리
    • 10.3 접근 권한 제어와 보안
    • 10.4 데이터베이스 유지, 백업, 복사

  • 11장 MySQL 데이터 디렉터리
    • 11.1 데이터 디렉터리 위치
    • 11.2 데이터 디렉터리의 구조
    • 11.3 데이터 디렉터리 콘텐츠 재배치

  • 12장 MySQL 일반 관리
    • 12.1 새로운 MySQL 설치 보안
    • 12.2 서버 시작/종료 시 MySQL 설정
    • 12.3 시스템 변수와 상태 변수 사용
    • 12.4 플러그인 인터페이스
    • 12.5 스토리지 엔진 설정

  • 13장 보안과 접근 제어
    • 13.1 MySQL의 파일 시스템 접근 보안 강화
    • 13.2 MySQL 사용자 계정 관리
    • 13.3 권한 테이블 구조와 내용
    • 13.4 서버가 클라이언트 접근을 제어하는 방법
    • 13.5 SSL을 사용한 보안 연결 설정

  • 14장 데이터베이스 유지 보수와 백업, 복제
    • 14.1 예방 유지 보수 원칙
      • 14.2 동적으로 데이터베이스 유지 보수
      • 14.3 일반적인 예방 유지 보수 방법
      • 14.4 데이터베이스 백업
      • 14.5 데이터베이스를 다른 서버로 복사
      • 14.6 데이터베이스 테이블 점검과 수리
      • 14.7 데이터 복구를 위해 백업 사용
      • 14.8 복제 서버 설정

  • 부록 A 이 책에서 필요한 소프트웨어
  • 부록 B 자료형 레퍼런스
  • 부록 C 연산자와 함수 레퍼런스
  • 부록 D 시스템, 상태, 사용자 변수 레퍼런스
  • 부록 E SQL 문법 레퍼런스
  • 부록 F MySQL 프로그램 레퍼런스

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안