What is a Graph Database? - Developer Guides


本站和网页 https://neo4j.com/developer/graph-database/ 的作者无关,不对其内容负责。快照谨为网络故障时之索引,不代表被搜索网站的即时页面。

What is a Graph Database? - Developer Guides
Developer
Developer Guides
Getting Started
Getting Started
Neo4j Graph Platform
Cypher Query Language
Graph Data Modeling
Data Import
Graph Data Science
NLP
Neuler
Graph Embeddings
Developer Resources
Graph Visualization
Drivers & Language Guides
Neo4j Tools & Integrations
Administration and Deployment
Neo4j Aura DBaaS
Graph Apps
Neo4j Administration
Neo4j in the Cloud
Connectors
Neo4j Connector for Apache Spark
GraphAcademy
GraphGists
Docs
Neo4j Database
Getting Started
Operations Manual
Migration Guide
Status Codes
Aura
Aura Documentation
Cypher
Cypher Manual
Cypher Refcard
Drivers
.Net Driver
Go Driver
Java Driver
JavaScript Driver
Python Driver
Neo4j UI Tools
Bloom
Neo4j Browser
Neo4j Desktop
Graph Data Science
Neo4j GraphQL Library
OGM Library
Spring Data Neo4j
HTTP API
Java Reference
Labs
arrows.app
Details
arrows.app
APOC
Documentation
Developer Guide
GraphQL & GRANDStack
Details
GRANDstack.io
Halin
Kafka Integration
Details
Documentation
ETL Tool
Details
Documentation
Neo4j Plugin For Liquibase
Details
Documentation
Neosemantics
Getting Started
Documentation
Neo4j Helm
Details
Documentation
Get Help
Community Forum
Discord Chat
Knowledge Base
Neo4j Developer Blog
Neo4j Videos
Try Neo4j
Search
Developer Guides
For Beginners
Getting Started
What is a Graph Database?
Intro to Graph DBs Video Series
Concepts: RDBMS to Graph
Concepts: NoSQL to Graph
Getting Started Resources
Neo4j Graph Platform
Neo4j Database
Neo4j Desktop
Neo4j Browser
Available Neo4j Browser Guides
Tutorial: Create Custom Browser Guide
Neo4j Bloom
How-To: Neo4j ETL Tool
Neo4j APOC Library
Neo4j & GraphQL
Cypher Query Language
Getting Started with Cypher
Writing Queries
Updating
Filtering Query Results
Controlling Query Processing
Working with Dates
Using Subqueries
Tutorial: Getting Started with Cypher
Tutorial: Build a Recommendation Engine
Comparing SQL and Cypher
User Defined Procedures & Functions
Filtering SHOW commands
Cypher Runtime and Replanning
Cypher Style Guide
Cypher Resources
For Developers
Graph Data Modeling
Graph Modeling Guidelines
Modeling: RDBMS to Graph
Modeling Designs
Graph Modeling Tips
Refactoring a graph model
Interactive Graph Models
Data Import
Importing CSV
Importing API Data
Import: RDBMS to Graph
How-To: Import Northwind Dataset
How-To: Desktop CSV Import
Example Datasets
Drivers & Language Guides
Java
Spring
Spring Data Neo4j
Java Driver Spring Boot Starter
Quarkus, Helidon, Micronaut
Neo4j Object Graph Mapper
Procedures and Functions
Third-party libraries
.NET
JavaScript
Python
Go
Ruby
PHP
Erlang & Elixir
Perl
Building Applications
Example: all Stacks (Movies)
Tutorial: Python/Flask and React (IMDB)
Tutorial: JavaScript/Express and React (IMDB)
Tutorial: Ruby & Rails (Books)
Neo4j Tools & Integrations
Neo4j Connector for Apache Spark
Neo4j Connector for Apache Kafka
Neo4j Connector for Business Intelligence
Graph Apps
Featured Graph Apps
Building Graph Apps
Courses
1.1 Overview of Neo4j 4.x
1.2 Querying with Cypher in Neo4j 4.x
1.3 Creating Nodes and Relationships in Neo4j 4.x
1.4 Using Indexes and Query Best Practices in Neo4j 4.x
1.5 Importing Data with Neo4j 4.x
2. Graph Data Modeling
3. Implementing Graph Models in Neo4j 4.x
4. Query Tuning in Neo4j 4.x
For Data Scientists
Neo4j Graph Data Science
Graph Algorithms
NEuler: No-code Graph Algorithms
Natural Language Processing (NLP)
Tutorials
Graph Embeddings
Build a Knowledge Graph with NLP and Ontologies
How-To Guides
Entity Extraction with APOC NLP
Link Prediction with scikit-learn
Link Prediction with AutoML
Node Classification with GDSL
Link Prediction with GDSL
Concepts
Graph Search Algorithms
Path Finding Algorithms
Centrality Algorithms
Community Detection Algorithms
Graph Embeddings
Link Prediction
Connected Feature Extraction
Graph Visualization
Visualization Tools
Other Visualizations
Courses
1.1 Overview of Neo4j 4.x
1.2 Querying with Cypher in Neo4j 4.x
1.3 Creating Nodes and Relationships in Neo4j 4.x
1.4 Using Indexes and Query Best Practices in Neo4j 4.x
1.5 Importing Data with Neo4j 4.x
2. Intro to Graph Algorithms in Neo4j 4.x
3. Using a Machine Learning Workflow for Link Prediction
4. Applied Graph Data Science for Web Applications
For Administrators
Neo4j Administration
How-To: Memory Management
Tutorials
Managing Multiple Databases
Multi Tenancy Worked Example
Sharding Graphs with Fabric
Performance Tuning
Docker & Neo4j
How-To: Run Neo4j in Docker
Neo4j Aura DBaaS
Connect from Neo4j Desktop
Connect from Cypher Shell
Connect from your application
Data Import with Neo4j Aura
Deploying a GRANDstack application to Aura
Bloom Visualization with Aura
Monitoring
Neo4j in the Cloud
Orchestration Tools
Tutorial: Deploy Neo4j Cluster on GCP
Courses
1. Overview of Neo4j 4.x
2. Querying with Cypher in Neo4j 4.x
3. Basic Neo4j 4.x Admin
4. Graph Data Modeling
5. Creating Nodes and Relationships in Neo4j 4.x
6. Using Indexes and Query Best Practices in Neo4j 4.x
7. Importing Data with Neo4j 4.x
8. Query Tuning in Neo4j 4.x
(older installations) Neo4j 3.5 Administration
For Everyone
Developer Newsletter
Twitch & YouTube Live Streams
Neo4j Videos
Speaker Program: Share your Story
Help Forums
Discord Chat
StackOverflow
Learn with GraphAcademy
Neo4j Certification
Documentation & Resources
Neo4j Documentation
Contributing to Neo4j
Contributor License Agreement
Code Contributions
Developer Guides
Getting Started
What is a Graph Database?
Edit this Page
What is a Graph Database?
Beginner
Very simply, a graph database is a database designed to treat the relationships between data as equally important to the data itself.
It is intended to hold data without constricting it to a pre-defined model.
Instead, the data is stored like we first draw it out - showing how each individual entity connects with or is related to others.
Why Graph Databases?
We live in a connected world!
There are no isolated pieces of information, but rich, connected domains all around us.
Only a database that natively embraces relationships is able to store, process, and query connections efficiently.
While other databases compute relationships at query time through expensive JOIN operations, a graph database stores connections alongside the data in the model.
Accessing nodes and relationships in a native graph database is an efficient, constant-time operation and allows you to quickly traverse millions of connections per second per core.
Independent of the total size of your dataset, graph databases excel at managing highly-connected data and complex queries.
With only a pattern and a set of starting points, graph databases explore the neighboring data around those initial starting points — collecting and aggregating information from millions of nodes and relationships — and leaving any data outside the search perimeter untouched.
The Property Graph Model
As with most technologies, there are few different approaches to what makes up the key components of a graph database.
One such approach is the property graph model, where data is organized as nodes, relationships, and properties (data stored on the nodes or relationships).
We will cover this model in more detail in the Data Modeling section of these guides, but for now, we will briefly define the components that make up the property graph model.
Nodes are the entities in the graph.
They can hold any number of attributes (key-value pairs) called properties.
Nodes can be tagged with labels, representing their different roles in your domain.
Node labels may also serve to attach metadata (such as index or constraint information) to certain nodes.
Relationships provide directed, named, semantically-relevant connections between two node entities (e.g. Employee WORKS_FOR Company).
A relationship always has a direction, a type, a start node, and an end node.
Like nodes, relationships can also have properties.
In most cases, relationships have quantitative properties, such as weights, costs, distances, ratings, time intervals, or strengths.
Due to the efficient way relationships are stored, two nodes can share any number or type of relationships without sacrificing performance.
Although they are stored in a specific direction, relationships can always be navigated efficiently in either direction.
Building blocks of the property graph model (click to zoom)
What is Neo4j?
Neo4j is an open-source, NoSQL, native graph database that provides an ACID-compliant transactional backend for your applications.
Initial development began in 2003, but it has been publicly available since 2007.
The source code, written in Java and Scala, is available for free on GitHub or as a user-friendly desktop application download.
Neo4j has both a Community Edition and Enterprise Edition of the database.
The Enterprise Edition includes all that Community Edition has to offer, plus extra enterprise requirements such as backups, clustering, and failover abilities.
Neo4j is referred to as a native graph database because it efficiently implements the property graph model down to the storage level.
This means that the data is stored exactly as you whiteboard it, and the database uses pointers to navigate and traverse the graph.
In contrast to graph processing or in-memory libraries, Neo4j also provides full database characteristics, including ACID transaction compliance, cluster support, and runtime failover - making it suitable to use graphs for data in production scenarios.
Some of the following particular features make Neo4j very popular among developers, architects, and DBAs:
Cypher, a declarative query language similar to SQL, but optimized for graphs.
Now used by other databases like SAP HANA Graph and Redis graph via the openCypher project.
Constant time traversals in big graphs for both depth and breadth due to efficient representation of nodes and relationships.
Enables scale-up to billions of nodes on moderate hardware.
Flexible property graph schema that can adapt over time, making it possible to materialize and add new relationships later to shortcut and speed up the domain data when the business needs change.
Drivers for popular programming languages, including Java, JavaScript, .NET, Python, and many more.
Neo4j Use Cases
Neo4j is used today by thousands of companies and organizations in almost all industries, including financial services, government, energy, technology, retail, and manufacturing.
The thriving, active community surrounding the technology continues to help us improve our product and services for developers and businesses alike.
Learn more about different use cases and companies using them in the video below.
Resources
Video Series: Intro to Graph Databases
Free eBook: O’Reilly Graph Databases
DZone: Graph Databases for Beginners
Training: Online Intro Course
Intro to Graph DBs Video Series
Was this page helpful?
This Week in Neo4j
Subscribe now to get weekly Neo4j Developer news directly to your
inbox
© 2021 Neo4j, Inc.
Terms | Privacy | Sitemap
Neo4j®, Neo Technology®, Cypher®, Neo4j® Bloom™ and
Neo4j® Aura™ are registered trademarks
of Neo4j, Inc. All other marks are owned by their respective companies.
Contact Us →
US: 1-855-636-4532
Sweden +46 171 480 113
UK: +44 20 3868 3223
France: +33 (0) 8 05 08 03 44
Learn
Sandbox
Neo4j Community Site
Neo4j Developer Blog
Neo4j Videos
GraphAcademy
Neo4j Labs
Social
Twitter
Meetups
Github
Stack Overflow
Want to Speak? Get $ back.

Copyright ©uecom 京ICP备18064371号-3 IPV6
2021-09-22 01:50:06
tech.zxsbr.com
172.17.253.20