Contents
Book Overview
I Introduction
1 History
2 Property Graph Databases
2.1 Use Cases and Real-World Applications
2.2 Limitations of Property Graph Databases
3 Positioning
3.1 Scholarly Analysis
3.2 Relational Databases and SQL
3.3 RDF and SPARQL
3.4 Tree-based Languages
3.5 Key-value and Document Databases
4 GQL by Example
4.1 Visual Representation
4.2 Data Definition Language
4.3 Data Manipulation Language
4.4 Data Query Language
II Core Model and Patterns
5 A Conceptual Glossary of GQL
5.1 Foundations
5.2 Graphs
5.3 Context
5.4 Values
5.5 Expressions
5.6 Schemas
5.7 Paths
5.8 Path Search
5.9 Path Expressions
5.10 Matching
5.11 Algebra
5.12 Queries
5.13 Result Shaping
5.14 Updates
5.15 Constraints
5.16 Effects
5.17 Routines
5.18 Transactions
5.19 Authorization
5.20 Diagnostics
6 Data Model
6.1 Universes and Notation
6.2 Property-Graph Structure
6.3 Values and Types
6.4 Basics of Paths as Data
6.5 Lists and Structural Access
7 Patterns and Matching
7.1 Graph Patterns
7.2 Pattern Syntax
7.3 Variable Exposure and Safety
7.4 Matching Semantics
7.5 Binding Tables
7.6 MATCH Statements
7.7 Key Scopes and Finiteness
III Expressions and Algebra
8 Expressions and Evaluation
8.1 Expression Domains
8.2 Typing and Evaluation
8.3 Truth Values and NULL
9 Algebra of Binding Tables
9.1 Selection and Projection
9.2 Joins and OPTIONAL (Left-Outer Join)
9.3 FOR and List Unnesting
9.4 Subqueries and Scope
9.5 Whole-Query Denotation
9.6 Composite Queries and Set Operators
IV Paths and Regular Path Expressions
10 Path Semantics
10.1 Modes: Walk, Trail, Simple, Acyclic
10.2 Finiteness and Selection
10.3 Path Accessors and Results
11 Regular Path Expressions
11.1 Syntax and Denotation
11.2 Shortest-Path Semantics
V Aggregation and Ordering
12 Grouping and Aggregation
12.1 GROUP BY and Aggregates
12.2 HAVING and DISTINCT
12.3 Primitive Result Statements
13 Ordering and Pagination
13.1 ORDER BY and Ordered Tables
13.2 Determinism and Peer Ordering
13.3 LIMIT/OFFSET (Slice)
13.4 Determinism Guarantees
VI Data Modification
14 Data Modification
14.1 INSERT and CREATE
14.2 DELETE
14.3 Read-then-Update Composition
14.4 Write-Set Coalescing and Conflicts
14.5 Update Model for Property Graphs
14.6 Dynamic Constraint Validation
VII Types, Schemas, and Constraints
15 Types and Schemas
15.1 Catalog and Name Universes
15.2 Property Types
15.3 Node and Edge Types
15.4 Graph Types
15.5 Graph Entries and Constraining Types
15.6 DDL Semantics
15.7 Schema Versioning
16 Constraints
16.1 Keys and Uniqueness
16.2 Constraint Enforcement and Effects
16.3 Effect System and Write-Purity
VIII Catalogs, Sessions, and Procedures
17 Catalog, Names and Session State
17.1 Named Objects and Namespaces
17.2 Qualified References and USE
17.3 Session State and Sites
18 Procedures
18.1 Procedure Signatures and Body Typing
18.2 Calls and Scoping
IX Transactions and Concurrency
19 Transaction Model
19.1 Demarcation and Visibility
19.2 Serializability and Isolation
19.3 Errors and Aborts
X Security and Diagnostics
20 Authorization
20.1 Roles and Privileges
20.2 Privilege Obligations and Enforcement
20.3 Authorized Object Access
20.4 Write Checks
21 Diagnostics
21.1 Errors and Exceptions
21.2 Status Codes
21.3 Control Flow
XI Future Directions
22 Future Enhancements
22.1 Compositional Enhancements
22.2 Schemas in GQL
22.3 Extending the Data Model and Integrating AI
23 Research Directions
23.1 Expressiveness and Complexity
23.2 Query Processing and Optimization
23.3 Design Decisions and Alternatives
23.4 Updates and Transaction Processing
23.5 Graph-to-Graph Queries
23.6 Interoperability and Data Integration
23.7 Schema and Metadata Management
Bibliography
Acronyms
Symbols and Notations
I Introduction
1 History
2 Property Graph Databases
2.1 Use Cases and Real-World Applications
2.2 Limitations of Property Graph Databases
3 Positioning
3.1 Scholarly Analysis
3.2 Relational Databases and SQL
3.3 RDF and SPARQL
3.4 Tree-based Languages
3.5 Key-value and Document Databases
4 GQL by Example
4.1 Visual Representation
4.2 Data Definition Language
4.3 Data Manipulation Language
4.4 Data Query Language
II Core Model and Patterns
5 A Conceptual Glossary of GQL
5.1 Foundations
5.2 Graphs
5.3 Context
5.4 Values
5.5 Expressions
5.6 Schemas
5.7 Paths
5.8 Path Search
5.9 Path Expressions
5.10 Matching
5.11 Algebra
5.12 Queries
5.13 Result Shaping
5.14 Updates
5.15 Constraints
5.16 Effects
5.17 Routines
5.18 Transactions
5.19 Authorization
5.20 Diagnostics
6 Data Model
6.1 Universes and Notation
6.2 Property-Graph Structure
6.3 Values and Types
6.4 Basics of Paths as Data
6.5 Lists and Structural Access
7 Patterns and Matching
7.1 Graph Patterns
7.2 Pattern Syntax
7.3 Variable Exposure and Safety
7.4 Matching Semantics
7.5 Binding Tables
7.6 MATCH Statements
7.7 Key Scopes and Finiteness
III Expressions and Algebra
8 Expressions and Evaluation
8.1 Expression Domains
8.2 Typing and Evaluation
8.3 Truth Values and NULL
9 Algebra of Binding Tables
9.1 Selection and Projection
9.2 Joins and OPTIONAL (Left-Outer Join)
9.3 FOR and List Unnesting
9.4 Subqueries and Scope
9.5 Whole-Query Denotation
9.6 Composite Queries and Set Operators
IV Paths and Regular Path Expressions
10 Path Semantics
10.1 Modes: Walk, Trail, Simple, Acyclic
10.2 Finiteness and Selection
10.3 Path Accessors and Results
11 Regular Path Expressions
11.1 Syntax and Denotation
11.2 Shortest-Path Semantics
V Aggregation and Ordering
12 Grouping and Aggregation
12.1 GROUP BY and Aggregates
12.2 HAVING and DISTINCT
12.3 Primitive Result Statements
13 Ordering and Pagination
13.1 ORDER BY and Ordered Tables
13.2 Determinism and Peer Ordering
13.3 LIMIT/OFFSET (Slice)
13.4 Determinism Guarantees
VI Data Modification
14 Data Modification
14.1 INSERT and CREATE
14.2 DELETE
14.3 Read-then-Update Composition
14.4 Write-Set Coalescing and Conflicts
14.5 Update Model for Property Graphs
14.6 Dynamic Constraint Validation
VII Types, Schemas, and Constraints
15 Types and Schemas
15.1 Catalog and Name Universes
15.2 Property Types
15.3 Node and Edge Types
15.4 Graph Types
15.5 Graph Entries and Constraining Types
15.6 DDL Semantics
15.7 Schema Versioning
16 Constraints
16.1 Keys and Uniqueness
16.2 Constraint Enforcement and Effects
16.3 Effect System and Write-Purity
VIII Catalogs, Sessions, and Procedures
17 Catalog, Names and Session State
17.1 Named Objects and Namespaces
17.2 Qualified References and USE
17.3 Session State and Sites
18 Procedures
18.1 Procedure Signatures and Body Typing
18.2 Calls and Scoping
IX Transactions and Concurrency
19 Transaction Model
19.1 Demarcation and Visibility
19.2 Serializability and Isolation
19.3 Errors and Aborts
X Security and Diagnostics
20 Authorization
20.1 Roles and Privileges
20.2 Privilege Obligations and Enforcement
20.3 Authorized Object Access
20.4 Write Checks
21 Diagnostics
21.1 Errors and Exceptions
21.2 Status Codes
21.3 Control Flow
XI Future Directions
22 Future Enhancements
22.1 Compositional Enhancements
22.2 Schemas in GQL
22.3 Extending the Data Model and Integrating AI
23 Research Directions
23.1 Expressiveness and Complexity
23.2 Query Processing and Optimization
23.3 Design Decisions and Alternatives
23.4 Updates and Transaction Processing
23.5 Graph-to-Graph Queries
23.6 Interoperability and Data Integration
23.7 Schema and Metadata Management
Bibliography
Acronyms
Symbols and Notations