Oracle Corporation

04/24/2024 | Press release | Distributed by Public on 04/25/2024 08:40

Second Quarterly Update on Oracle Graph (2024)

The graph features of Oracle Database enables developers to store and navigate relationships between entities. Oracle Graph Server and Client enables developers, analysts, and data scientists to use graphs within Oracle Database, specifically user-managed databases, while Graph Studio in Oracle Autonomous Database Serverless removes barriers to entry by automating setup and management, automating graph creation, and by providing step-by-step examples for getting started.

The last quarterly update introduced the Graph Server Administrator Dashboard to monitor memory usage, the ability to connect to Graph Server (PGX) using JDBC, and support for ONE ROW PER STEP syntax when running PGQL queries in database.

Oracle Graph Server and Client 24.2 is now available for download for use with databases in the Cloud (OCI Marketplace image is available) and for databases on-premises. In this release we added new functionality to Graph Server Administrator Dashboard, support for extended LATERAL queries in Graph Server, and support for arbitrary expressions in the Create Property Graph statement for PGQL Property Graphs.

Graph Server Dashboard

This release includes new features for the Graph Server Administrator Dashboard, including the ability to terminate Graph Server sessions, support for SQL Property Graphs, and updates to the visualization settings.

Under "Sessions" in the Administrator Dashboard, you can now terminate Graph Server sessions individually or terminate all sessions.

You can now easily set vertex and edge captions using visualization styles. For any vertex or edge in your graph, you can add captions for each label based on the properties for that vertex/edge. This can make visualizations easier to understand and interpret when there are multiple vertex/edge labels.

Extended Lateral Query in Graph Server

LATERAL subqueries have been supported in Database and Graph Server since release 23.3 but this release adds support for LATERAL subqueries after MATCH clause and other LATERAL subqueries.

Example: Given a graph based on the following diagram, find the top two people that transacted the most money (= sum of incoming plus outgoing transfers). For each of those two people, show the two largest transactions.

SELECT p.name, total_transacted, top_transaction
FROM LATERAL (SELECT p, SUM(t.amount) AS total_transacted
FROM MATCH (p:person) <- (a:account) - [t:transaction] - ()
GROUP BY p
ORDER BY total transacted DESC
FETCH FIRST 2 ROW ONLY
),
LATERAL ( SELECT t.amount AS top_transaction
FROM MATCH (p) <- (a:account) - [t:transaction] - ()
ORDER BY t.amount DESC
FETCH FIRST 2 ROW ONLY
) ORDER BY total_transacted DESC

PGQL Property Graphs: Arbitrary Expressions in CREATE PROPERTY GRAPH statement

Support for arbitrary expressions is supported for SQL Property Graphs, and this release adds support in PGQL Property Graphs as well. This simplifies querying properties stored in JSON objects or aggregates by making them accessible through the arbitrary name given. This further aligns PGQL Property Graph with the SQL Property Graphs syntax.

See an example of how to create and query a graph using arbitrary expressions. Notice that we can query the graph using n.city instead of JSON_VALUE(n.address, '$.city') as we would need to without using arbitrary expressions in the CREATE PROPERTY GRAPH statement.

CREATE PROPERTY GRAPH g
VERTEX TABLES (
employees PROPERTIES (
JSON_VALUE(address, '$.city') AS city,
JSON_VALUE(address, '$.street') AS street,
JSON_VALUE(address, '$.zip') AS zip,
base_salary + bonus AS total_salary
)
) OPTIONS (PG_VIEW)

SELECT city, total_salary
FROM GRAPH_TABLE ( g
MATCH (n is employees)
COLUMNS (n.city as city, n.total_salary as total_salary))
ORDER BY total_salary

Other notable updates

  • Graph Visualization Apex Plug-in 23.2.0 released
  • New built-in algorithms added to Graph Server
    • Harmonic Centrality
    • Article Rank
    • Weighted Speaker Listener

For more information, please visit our Property Graph documentation and RDF Graph documentation.