-1

I am trying understand the concepts, which apply to data modeling using Graphs - specifically on SQL Server 2019.

One thing I am unsure of is can the same edge be used to connect different pairs of nodes:

  • If I have three nodes PowerBI, SSAS, SQL Server

  • The in the pipeline i am trying to model there are two 'Connects To' relationships:

    Power BI -> SSAS -> SQL Server

  • Can I use a single edge 'Connects To' to store the relationship between Power BI -> SSAS and also the relationship between SSAS -> SQL Server or should these be two separate edges?

Previously, have worked on both OLTP and OLAP databases. However, there seems to be a much smaller body of knowledge on best practices for developing data models using graphs.

1

The question is somewhat unclear:
If you have three different nodes, then the edges drawn between any two nodes is not the same as the other. You can assign labels to edges in Neo4j such as "connects_to":

(a)-[:connects_to]->(b)->[:connects_to]->(c)

The edge a~b is still a different edge to b~c, though they "share" the same label. You might be interested in looking at concepts from Graph Theory. On the other hand, if you mean if you can leave out the node in the middle labelled SASS and use a single edge from "BI" to "SQL Server", that completely depends on what you are planning on implementing, I fear.

0

In a general understanding of a graph, an edge connects two nodes. If you need to connect more than two nodes, then the brief answer to your OP is no, you cannot link multiple pairs with the same edge.

To expound upon this somewhat though, a graph is usually structured in a way that describes what edge connections are possible to make in a graph schema. In this schema, you would only need to define the edge possibility once, and then any nodes aligning within the types of the schema can connect by creating an new edge as described by the schema.

For more concepts, if you need to link together more than 2 nodes, you may have a case for a connecting node. A connecting node can work somewhat like the concept of a pivot table to connect many other nodes together. However, for many to many relationships between two node types, a connecting node is not needed as many nodes can link directly with edges to many other nodes.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.