<commit_before>Introduction
============

== Expectations, Assumptions, and Aspirations ==

This is a reference manual. 
The material is practical, technical, and focused on answering specific questions. 
It addresses how things work, what to do and what to avoid to successfully run Neo4j in a production environment. 
After a brief introduction, each topic area assumes general familiarity as it addresses the particular details of Neo4j.
 
The goal is to be thumb-through and rule-of-thumb friendly.

The topics should be relevant to architects, administrators, developers and operations personnel.
You should already know about Neo4j and using graphs to store data.
If you are completely new to Neo4j please check out http://neo4j.org first.

== Graph databases versus Relational databases ==

While graph structures in theory are normalizable even in Relational Database 
Systems (RDBMS), this has serious query performance implications for recursive structures 
like for instance file trees and network structures like e.g. social graphs, due to the 
implementation characteristics of relational databases. Every operation over a relationship 
of a network results in a "join" operation in the RDBMS, implemented as a set-operation 
between the sets of primary keys for two tables - a comparatively slow operation and not scalable over 
growing numbers of tuples in these tables.


<commit_msg>adding TODO for system overview diagram<commit_after>Introduction
============

== Expectations, Assumptions, and Aspirations ==

This is a reference manual. 
The material is practical, technical, and focused on answering specific questions. 
It addresses how things work, what to do and what to avoid to successfully run Neo4j in a production environment. 
After a brief introduction, each topic area assumes general familiarity as it addresses the particular details of Neo4j.
 
The goal is to be thumb-through and rule-of-thumb friendly.

The topics should be relevant to architects, administrators, developers and operations personnel.
You should already know about Neo4j and using graphs to store data.
If you are completely new to Neo4j please check out http://neo4j.org first.

== Graph databases versus Relational databases ==

While graph structures in theory are normalizable even in Relational Database 
Systems (RDBMS), this has serious query performance implications for recursive structures 
like for instance file trees and network structures like e.g. social graphs, due to the 
implementation characteristics of relational databases. Every operation over a relationship 
of a network results in a "join" operation in the RDBMS, implemented as a set-operation 
between the sets of primary keys for two tables - a comparatively slow operation and not scalable over 
growing numbers of tuples in these tables.

TODO:
Neo4j System architecture diagram




{'fraction_non_alphanumeric': 0.04149232914923291, 'fraction_numerical': 0.0038354253835425384, 'mean_word_length': 4.843177189409369, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5423287', 'n_tokens_mistral': 670, 'n_tokens_neox': 631, 'n_words': 400}