Neo4j로 시작하는 그래프 데이터베이스 2/e [Neo4j 3.x를 이용한 효과적인 데이터 모델링, 성능 튜닝 및 데이터 시각화]
- 원서명Learning Neo4j 3.x - Second Edition: Effective data modeling, performance tuning and data visualization techniques in Neo4j (ISBN 9781786466143)
- 지은이제롬 바톤(Jerome Baton), 릭 반 브루겐(Rik Van Bruggen)
- 옮긴이배동환, 김선집
- ISBN : 9791161751740
- 30,000원
- 2018년 06월 29일 펴냄 (절판)
- 페이퍼백 | 384쪽 | 188*235mm
- 시리즈 : acorn+PACKT, 오픈소스 프로그래밍
판매처
- 현재 이 도서는 구매할 수 없습니다.
책 소개
소스 코드 파일은 여기에서 내려 받으실 수 있습니다.
요약
최근 소셜 네트워크 분석, 상품 추천 시스템, 금융 사기 방지 시스템 그리고 인공지능 등 다양한 분야에서 그래프 데이터베이스가 활용되고 있다. 특히 Neo4j는 대표적인 그래프 데이터베이스로 엄청난 양의 데이터를 쉽게 탐색할 수 있도록 해준다.
그래프 이론의 간단한 소개로 시작하는 이 책은 그래프 데이터베이스를 사용해 얻을 수 있는 이점과 데이터모델링 기술을 설명한다. Neo4j의 질의어인 사이퍼와 대표적인 프로시저인 APOC를 다루는 방법을 다루며, 성능 향상, 시각화, 데이터 리펙토링, 보안 향상 기술 같은 Neo4j의 최신 기술을 예제를 따라 하면서 수행해볼 수 있다. 그리고 몇 가지 사용 사례를 통해 Neo4j를 이용해 비즈니스를 설계하고 개발하는 기술을 얻을 수 있을 것이다.
이 책에서 다루는 내용
█ 그래프 이론과 데이터베이스, 전통적인 데이터베이스 대비 Neo4j 사용의 이점 이해
█ Neo4j 설치, 데이터 모델링, 일반적인 예를 통한 데이터 탐색
█ 사이퍼 질의어와 사용자 정의 프로시저 및 데이터에서 의미 있는 표현을 분석하고 추출하는 방법 학습
█ APOC 라이브러리의 프로시저를 이용해 그래프 기술 향상
█ 성능 최적화를 위해 Neo4j의 고급 확장과 플러그인 사용
█ Neo4j의 최신 보안 기능과 클러스터링 아키텍쳐를 사용해 대규모 배포
이 책의 대상 독자
애플리케이션 내에서 데이터를 저장하고 처리하는 또 다른 방법, 또는 고도로 연결 데이터를 처리해야 하는 개발자를 대상으로 한다. 그래프 데이터베이스에 대한 지식이나 경험을 갖고 있지 않아도 되지만, 기본적인 데이터베이스 지식은 개념을 더 쉽게 이해하는 데 도움이 될 것이다.
이 책의 구성
1장, ‘그래프 이론 및 데이터베이스’에서는 그래프 데이터베이스 기술의 기본적인 이론에 대해 설명한다. 그리고 끊임없이 변화하는 데이터베이스 환경에서 그래프 데이터베이스가 어디에 위치하고 있는지를 알려주며, 다른 데이터 기술과 비교한다.
2장, ‘Neo4j 시작하기’에서는 Neo4j 그래프 데이터베이스의 주요 개념과 특징을 살펴본다.
3장, ‘Neo4j 데이터 모델링하기’에서는 그래프 데이터베이스의 기본적인 모델링 기술을 다룬다.
4장, ‘사이퍼 시작하기’에서는 Neo4j의 쿼리 언어인 사이퍼(Cypher)에 대한 개요를 제공한다.
5장, ‘사이퍼의 놀라운 프로시저 – APOC’에서는 APOC 라이브러리를 소개한다. 사이퍼 쿼리에서 APOC 라이브러리를 사용해 정보를 얻고 커뮤니티에서 제공하는 수많은 프로시저 중에서 필요한 프로시저를 찾는 방법을 배울 것이다.
6장, ‘사이퍼 확장하기’에서는 Neo4j 인스턴스에 함수와 프로시저를 추가하는 방법을 설명한다. 자신만의 APOC를 작성해보자.
7장, ‘쿼리 성능 튜닝하기’에서는 성능 향상을 위해 사이퍼 쿼리를 튜닝하는 방법을 보여준다.
8장, ‘Neo4j로 데이터 가져오기’에서는 다양한 유형의 소스로부터 Neo4j로 데이터를 가져오는 방법을 설명한다.
9장, ‘Spatial 사용하기’에서는 Neo4j, APOC 및 Neo4j Spatial의 위치 정보 기능을 다룬다.
10장, ‘Neo4j 보안’에서는 Neo4j에서의 인증과 권한 부여에 대해 다룬다.
11장, ‘Neo4j 시각화하기’에서는 데이터를 시각적으로 표시하는 방법을 보여준다.
12장, ‘Neo4j로 리팩토링하기’에서는 데이터 모델을 새로운 요구 사항에 맞게 변경하는 방법을 설명한다.
13장, ‘Neo4j 클러스터링’에서는 Neo4j 엔터프라이즈 에디션을 사용해 인과 관계 클러스터를 설정한다.
14장, ‘사용 사례 – 추천’에서는 특정 그래프 데이터베이스 사용 사례 - 실시간 추천을 파헤치고 구체적인 예제 데이터 세트와 쿼리 패턴을 사용해 설명한다.
15장, ‘사용 사례 - 영향 분석 및 시뮬레이션’에서는 네트워크가 변경됐을 때의 영향을 분석한다. 사용 사례를 설명하고 살펴본다.
부록, ‘팁과 유용한 요령’에서는 더 많은 팁과 지식을 제공한다. 놓치지 말자.
목차
목차
- 1장. 그래프 이론과 데이터베이스
- Neo4j 3.x와 그래프의 역사
- 그래프 이론의 정의와 사용법
- 사회 연구
- 생물학 연구
- 컴퓨터 과학
- 흐름 문제
- 경로 문제
- 웹 검색
- 데이터베이스 배경 지식
- 탐색형 데이터베이스
- 관계형 데이터베이스
- NoSQL 데이터베이스
- 키-값 저장소
- 컬럼 계열 저장소
- 문서 기반 저장소
- 그래프 데이터베이스
- 그래프 데이터베이스의 속성 그래프 모델
- 노드 레이블
- 관계 유형
- 그래프 데이터베이스를 사용하는 이유
- 왜 그래프 데이터베이스를 사용하는가?
- 복잡한 질의
- 실시간 데이터에 대한 클릭 스트림 쿼리
- 경로 탐색 질의
- 그래프 데이터베이스를 사용하지 않을 경우 대신 무엇을 사용할 것인가?
- 대규모 집합 지향 쿼리
- 글로벌 그래프 운영
- 간단한 집계 중심 질의
- 왜 그래프 데이터베이스를 사용하는가?
- 문제
- 요약
- 집합-지향 (Aggregate-oriented) 모델
- 색인 없는 인접성(Index-Free Adjacency)과 인덱스 기반 인접성(Index-based Adjacency).
- 2장. Neo4j 시작하기
- Neo4j의 주요 개념과 특징
- 완전한 그래프 데이터베이스 관리 시스템
- 트랜잭션 처리 중심의 ACID 호환 데이터베이스
- 온라인 거래 처리용 데이터베이스
- 확장형으로 설계된 DB
- 선언적 질의어 - Cypher
- 참고
- Neo4j 최적의 사용 사례
- 복잡한 조인-집약적인 쿼리
- 경로 탐색 쿼리
- 오픈소스에 채택됨
- 복잡한 조인-집약적인 쿼리
- 기능
- 지원
- 라이선스 조건
- Neo4j 설치하기
- Windows에 Neo4j 설치하기
- 맥 또는 리눅스에 Neo4j 설치하기
- 클라우드 환경에서 Neo4j 사용하기
- 샌드박스
- 도커 컨테이너에서 Neo4j 사용하기
- 도커 설치
- 파일 시스템 준비하기
- 도커 컨테이너에서 Neo4j 실행하기
- 도커 설치
- 문제
- 요약
- Neo4j Server 설치 변경 사항 - 옮긴이 추가 설명
- Neo4j on Desktop - 옮긴이 추가 설명
- Neo4j의 주요 개념과 특징
- 3장. Neo4j데이터 모델링하기
- 네 가지 기본 데이터 구조
- 그래프 데이터베이스 모델링 시작 방법
- 우리가 알고 있는 ER 다이어그램과 관계형 스키마
- 조인 테이블을 통한 복잡성
- 그래프 모델 - 단순하고 높은 수준의 현실 세계 모델
- 그래프 모델링 - 모범 사례와 함정
- 그래프 모델링 모범 사례
- 질의 가능하게 설계하기
- 사용 사례를 이용해 관계 정렬하기
- 다항 관계 찾기
- 세밀한 노드
- 필요한 경우 그래프의 색인 기능 사용하기
- 그래프 데이터베이스 모델링 – 함정
- 풍부한 속성 사용하기
- 여러 가지 개념을 나타내는 노드
- 연결되지 않은 그래프
- 고밀집 노드 패턴
- 그래프 모델링 모범 사례
- 문제
- 요약
- 4장. Cypher 시작하기
- Cypher 구문 작성하기
- Cypher의 주요 특징
- CRUD로 데이터 다루기
- 데이터 생성하기
- 데이터 읽기
- 데이터 수정하기
- 데이터 삭제하기
- Cypher의 핵심 단어들
- 구문 표준
- 추가로 알아야 할 필요가 있는 것
- 친구 찾기 예시
- Cypher 참조 카드
- openCypher 프로젝트
- 요약
- 5장. Cypher의 놀라운 프로시저 –APOC
- APOC 설치하기
- 로컬 서버에 설치하기
- 도커 컨테이너에 설치하기
- APOC 설치하기
- APOC 다운로드하기 – 옮긴이
- APOC 설치 확인하기
- 함수 및 프로시저
- APOC 주요 용도
- APOC에 대한 도움이 필요한 경우
- 그래프의 구조가 필요한 경우
- APOC 사용법
- APOC 사용 권한 설정
- 무작위 그래프 생성기
- 페이지 랭크
- 주어진 시간 내에 Cypher 실행하기
- 노드 집합의 연결
- APOC에서 다루는 또 다른 주제들
- 문제
- 요약
- 6장. 사이퍼 확장하기
- 확장 프로젝트 구축
- 함수 만들기
- 프로시저 만들기
- 사용자 정의 집계 함수
- 관리되지 않는 확장
- HTTP와 JAX-RS 리프레셔
- 등록
- 액세스
- JSON 스트리밍 응답
- HTTP와 JAX-RS 리프레셔
- 요약
- 확장 프로젝트 구축
- 7장. Neo4j 쿼리 성능 튜닝
- 설명과 프로파일 지침
- 쿼리 실행 계획
- 연산자
- 인덱스
- 인덱스 강제 사용
- 레이블 강제 사용
- 쿼리 작성 시 규칙
- 쿼리의 실행 계획 확인
- 행의 수
- 자원 낭비 금지
- 카티샨 곱 사용 여부
- 간결함
- 요약
- 설명과 프로파일 지침
- 8장. Neo4j로 데이터 가져오기
- LOAD CSV를 이용해 데이터 가져오기
- 가져오기 크기 조정
- JSON 소스에서 데이터 가져오기
- JDBC 소스에서 가져오기
- 테스트 설정
- 모든 시스템 데이터 가져오기
- XML 소스에서 가져오기
- 요약
- LOAD CSV를 이용해 데이터 가져오기
- 9장. Neo4j Spatial사용하기
- 공간이란 무엇인가?
- 위도와 경도
- 장애가 없는 탑
- 그럼 무엇이 공간적인가?
- Neo4j의 공간적 특징
- APOC의 공간적 특징
- 지오코딩
- Neo4j spatial
- 온라인 데모
- Neo4j Spatial의 특징
- 오픈 스트리트 맵 데이터 가져오기
- 큰 OSM 데이터 가져오기
- 화장실 찾기 예제
- 모든 지리 정보 삭제하기
- 요약
- 공간이란 무엇인가?
- 10장. Neo4j 보안
- 인증 및 권한 부여
- 역할
- 그 외 역할
- 사용자 관리
- LDAP 디렉터리에 Neo4j 연결하기
- 디렉터리 시작하기
- LDAP사용을 위한 Neo4j 구성
- 문제
- 요약
- 11장. Neo4j 시각화하기
- 그래프 시각화의 힘
- 그래프 시각화가 중요한 이유
- 시각적 데이터와의 상호 작용
- 패턴 찾기
- 중요한 정보 찾기
- 그래프 시각화의 기본 원칙
- 그래프 시각화가 중요한 이유
- 오픈소스 시각화 라이브러리
- D3
- GraphViz
- Sigma
- Vivagraph
- yWorks
- 애플리케이션에 시각화 라이브러리 통합
- 시각화 솔루션
- Geophi
- 키라인
- Linkurio
- Neo4j Browser
- 톰 소이어의 그래프 시각화 소프트웨어
- 시각화의 함정과 문제점
- 불꽃 놀이 효과
- 로딩 효과
- 사이토스케이프 예제
- 소스 코드
- 문제
- 요약
- 그래프 시각화의 힘
- 12장. Neo4j를 이용한 데이터 리팩토링
- 사전 준비 단계
- 간단한 변경
- 이름 변경
- 데이터 추가
- 기본값으로 데이터 추가
- 특정 값을 가진 데이터 추가
- 값 확인
- 데이터 제거
- 대변화
- 모델 파악
- 리팩토링 도구
- 속성을 레이블로
- 속성을 노드로
- 관련 노드를 레이블로
- 노드 병합
- 관계
- 결과
- 요약
- 13장. Neo4j 클러스터링
- 클러스터를 설정해야 하는 이유
- 개념
- 핵심 서버
- 읽기 복제본 서버
- 높은 처리량
- 데이터 중복성
- 고가용성
- 볼트
- 클러스터 구축하기
- 핵심 서버
- 읽기 복제본
- 볼트 + 라우팅 프로토콜
- 재해 복구
- 요약
- 14장. 사용 사례 – 추천
- 추천 시스템
- 그래프 모델을 이용한 추천
- 추천에 대한 구체적인 쿼리 예제
- 제품 구매에 따른 추천
- 브랜드 충성도에 기반을 둔 추천
- 사회적 유대 관계에 기반을 둔 추천
- 모두 모으기 - 복합 추천
- 추천을 활용한 유사 비즈니스
- 부정 행위 탐지 시스템
- 출입 통제 시스템
- 소셜 네트워킹 시스템
- 문제
- 요약
- 15장. 사용 사례 - 영향 분석과 시뮬레이션
- 영향 분석 시스템
- 비즈니스 프로세스 관리 영향 분석
- 비즈니스를 그래프로 모델링
- 어느 건물에 어떤 애플리케이션이 사용되는가?
- Appl_9에 무슨 일이 발생하면 어떤 건물이 영향을 받을까
- RTO가 0-2시간인 비즈니스 프로세스가 Loc_100 위치의 화재에 의해
- 영향을 받게 될까?
- 비용 계산 환경에서의 영향 시뮬레이션
- 그래프를 이용한 제품 계층 구조 모델링
- 제품 계층 그래프 사용
- 트리 전체 통과를 기반으로 가격 계산
- 중간 가격 결정에 근거한 가격 계산
- 제품 계층 구조에 대한 영향 시뮬레이션
- 문제
- 요약
- 비밀번호 재설정
- 영향 분석 시스템
- 부록. 유용한 팁과 트릭
- 접근 가능한 호스트 찾기
- CSV 파일의 첫 번째 줄 가져오기
- 라즈베리파이에서 SSH활성화
- Neo4j 브라우저 가이드
- 데이터 백업 및 복원
- 커뮤니티 버전
- 엔터프라이즈 버전
- Neo4j도구
- Cypher-shell
- 데이터 통합 도구
- 모델링 도구
- Arrows
- 옴니그래플
- 커뮤니트 프로젝트
- 온라인 문서
- 커뮤니티
도서 오류 신고
정오표
정오표
[p.11 : 5행]
비트 나인
->
비트나인