이미 소장하고 있다면 판매해 보세요.
|
1장 데이터베이스가 없으면 무엇이 곤란한가?
1.1 기술자로서 요구되는 스킬 1.2 데이터베이스가 없으면 무엇이 곤란한가? 1.3 이 책에서는 무엇을 다루어 나갈 것인가? 2장 인덱스로 고속 액세스 실현하기 2.1 [키와 값의 페어]를 관리하고 싶다 2.2 인덱스의 기본 [B+Tree 인덱스] 2.3 RDBMS에서는 어떻게 최적화를 실현하고 있는가? 2.4 업데이트 비용 절감을 위한 노력 3장 테이블 설계와 릴레이션 3.1 데이터 모델링 기술의 중요성 3.2 예제를 사용하여 생각해 보자 3.3 포인트 1: [테이블 관계]를 도입 3.4 포인트 2: 테이블 설계의 타당성 검증하기 3.5 정규화 이론의 기본을 파악해 두자 4장 SQL 문의 특징과 이를 잘 다루는 법 4.1 테이블 조작하기 4.2 SQL 문의 실행 효율 의식하기 4.3 SQL의 장점과 단점 5장 가용성과 데이터의 복제 5.1 데이터베이스는 어떤 때에 크래쉬되는가? 5.2 복제 6장 트랜잭션과 무결성·무정지성 6.1 트랜잭션의 중요성 이해하기 6.2 잠금 메커니즘에 의한 배타 제어 6.3 복제 및 트랜잭션 7장 스토리지 기술의 변천과 데이터베이스에 끼치는 영향 7.1 하드웨어 성능 개선의 역사 7.2 데이터베이스 개선의 역사 7.3 향후 데이터베이스에 요구되는 것 8장 데이터베이스 운용 기술의 급소 8.1 데이터베이스 운용의 어려움을 알자 8.2 문제 예방 8.3 문제 인지 8.4 문제 해결 9장 MySQL로 배우는 데이터베이스 관리 9.1 MySQL 도입의 포인트 9.2 MySQL 운용에 필요한 파일의 기초 지식 9.3 MySQL 백업의 기초 9.4 MySQL에서의 백업/복구 10장 MySQL의 소스 코드를 추적해 보자 10.1 소스 코드를 아는 것이 의미가 있을까? 10.2 소스 코드의 구조를 보자 10.3 소스 코드를 분석해 보자 10.4 MySQL의 설계 사상을 알아보자 10.5 소스 해킹 사례 연구 10.6 MySQL 개발 커뮤니티 11장 데이터베이스 기술의 현재와 미래 11.1 데이터베이스 기술 동향 11.2 대량의 데이터를 고속으로 처리하는 기술 11.3 분석계 처리 및 열 지향 데이터베이스 11.4 NoSQL 데이터베이스 11.5 그 외의 주제 12장 빅 데이터 시대의 데이터베이스 설계 12.1 웹 서비스를 위한 데이터베이스 개론 12.2 Mobage에서의 데이터베이스 활용 사례 12.3 웹 서비스 및 데이터 모델링 12.4 데이터 양 증가 대책과 고속화 수법 12.5 MySQL의 성능 개선 테크닉 찾아보기 |
|
이 책은 기본적인 데이터베이스 이론에서부터 저자 자신이 온라인 서비스를 제공하는 현장에서 체험한 경험까지 하나하나 체계적으로 정리한 책으로, 대용량 데이터베이스 솔루션을 다루는 웹 엔지니어에게 많은 도움을 줄 것이다. 특히, MySQL에 대한 소스 레벨에서의 구체적인 접근 방법과 데이터베이스 운용에서 필요한 복제(Replication), 복구, 트랜잭션과 NoSQL 등 전반적인 데이터베이스 기술 동향에 대해 그 개념과 활용 방법을 자세하게 설명하고 있다 --- 「옮긴이 머리말」 중에서
지금까지 서술한 것처럼 고정 길이 방식으로 데이터를 관리하는 방법은 실용성이 부족하다. 그러면 고정 길이가 아닌 가변 길이 방식으로 데이터를 관리하는 경우에는 데이터를 어떤 방법으로 빠르게 검색할 수 있을까? --- p.23 이러한 테이블을 일반적으로 「매핑 테이블」이라고 한다. 매핑 테이블은 데이터 모델링 과정에서 자주 나온다. 이번 예제에서는 emp 테이블과 dept 테이블 두 개를 매핑하고 있지만, 수십 개에 걸친 테이블을 매핑하는 경우도 있다. 매핑 테이블의 특징적인 사항으로는 다음과 같은 것을 들 수 있다. --- p.50 DB 서버는 메모리에 전부 다 캐싱할 수는 없기 때문에 랜덤 리드가 다발하는 성질이 있어 랜덤 읽기 성능이 매우 높은 SATA SSD가 적합하다. SSD는 병렬성도 높지만, 특별히 강조하자면 단일 스레드에서 성능이 매우 높기 때문에 HDD에서는 병목현상을 일으키는 경향이 있었던 단일 스레드 처리도 크게 단축할 수 있다. --- p.120 물론 열 지향 데이터베이스도 좋은 것만 있는 것은 아니다. 본래 DWH와 같이 광범위한 레코드와 좁은 범위의 열을 검색하는 데 뛰어난 데이터베이스이기 때문에 기존의 데이터베이스와 동일한 방식으로는 사용할 수 없다라는 것을 짐작할 수 있을 것이다. 여기서는 구체적으로 어떤 단점이 있는지 간단하게 소개하겠다. 기존의 데이터베이스를 대체할 존재가 아니라 어디까지나 용도별로 보완적으로 사용하는 것이라고 생각하는 편이 적절할 것 같다 --- p.263 앞서 언급한 예제에서 SQL 문의 처리 자체의 비용이 의외로 높다는 것을 알 수 있었다. 이러한 배경에서 기본 키 검색과 같은 단순하기 짝이 없는 액세스 패턴은 「SQL 문과 같은 복잡한 언어를 사용하지 않고 프로그래밍 언어의 라이브러리 함수를 사용하여 직접 데이터를 액세스하는 편이 훨씬 고속으로 되는 것은 아닌가」라고 생각하는 기술자들이 많아졌다. 그런 배경에서 주목을 끌게 된 것이 NoSQL이다. --- p.267 |
|
높은 신뢰도의 시스템을 만들기 위한 나침반!
대용량 데이터를 빠르고 안정적으로 처리하는 방법! 데이터베이스의 기본 이론부터 NoSQL까지 데이터베이스의 필수 요소를 빠르고 알기 쉽게 배우자! 데이터베이스 자체의 역사는 길고 인덱스와 데이터 모델링, 트랜잭션과 같은 기간 기술은 크게 변화되지 않았다. 그럼에도 불구하고 데이터베이스에 기인하는 문제가 자주 발생한다는 것은 데이터베이스에 대한 이해가 충분하지 않다라는 것이 가장 큰 요인일 것이다. 이에 대한 본질을 이해하면 시대적 유행에 휘둘리지 않고 적절한 설계를 할 수 있게 될 것임에 틀림없다. 이 책은 데이터베이스 기술 동향을 정리해 체계적으로 설명함으로써 이러한 본질적인 측면에서의 이해가 가능케 하는 것을 목표로 한 서적이다. 본질적인 측면에서의 이야기와 MySQL의 구체적인 이야기를 결합함으로써 보다 확실하게 이해할 수 있도록 구성에 세밀한 주의를 기울였다. 이 책의 내용이 여러분의 일상 업무에 도움이 되었으면 좋겠다. 이 책의 대상 독자 데이터베이스의 필요성을 모르는 사람 “Excel로는 왜 충분하지 않지?”라고 질문을 받았을 때 대답하기 곤란한 사람, 선배 사원으로부터 “데이터베이스 기술은 중요하기 때문에 익혀 두어야 해!”라는 소릴 들었지만 왜 중요한 것인지 모르는 사람, 혹은 관심은 있지만 어디서부터 공부하면 좋은지를 모르는 사람 등이다. 데이터베이스 관련 지식을 정리하고 싶은 사람이나 전체 모습을 파악하고 싶은 사람 기존 기술의 특징과 과제를 잘 이해해 두면 새로운 기술이 나올 때 그 의미를 제대로 이해할 수 있고, 그 기술이 본질적으로 유효한 것(장기간 활용할 수 있는 것)인지 일시적인 열풍에 지나지 않는 것인지도 판단할 수 있을 것이다. 그리고 앞으로 어떤 기술이 주목을 모을지도 예상할 수 있을 것이다. |