Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Yes, a hyperedge is like a set of nodes. Not limited to just two nodes.

I hadn't thought of relational tables in that way. I guess, you could look at each row of a table as a hyperedge grouping together all the columns for a given record. Not sure how useful that is though. The cross-table join relations are still relatively point-to-point I think.



Funnily enough, this hypergraph view is used to describe symptomatic query complexity for cyclical joins, the simplest if which is "count triangles in adjacency list" (naive RDBMS yields O(n²) on pathological data, despite the wrist case optimal tactic being something like O(n + #Triangles), with #Triangles limited inherently to O(n^(1.5))).

See https://arxiv.org/abs/1404.0703 for some reading material and one particular way at beyond worst case (i.e., sharing worst case asympotics with the best constant time algorithm, but better performance on non-pathological data (a more precise notion is complicated; there are at least 3 different useful definitions)) runtime performance.

AFAIK the worst cyclical query on a 2-column table is "k-clique counting", from a POV of performance between WCOJ and what Postgres can do (asympotics).


It might be just a good way of thinking about it. In practice it might provide some ideas about how to translate between an Object-view and Relational-View.

What I'd like to find is a relational database where field-values can be not just elementary values like numbers and strings but also "object-instances".

I wonder is there such a database? It would seem to offer the best of both worlds, objects, and relations between objects.


GemStone is a common one, but object databases are not very common due to the maturity, efficiency, and predictability of relational databases. The deep pipelining and caching models of CPUs are a better match for RDBMs than object ones.

https://en.wikipedia.org/wiki/Gemstone_(database)


I understand that Gemstone is an Object-Oriented Database that stores objects and is great at that. But can you query those objects with SQL?

What I'd like to understand is, is there some basic reason why RDBMS and ODBMs must be different databases. Or could their conceptual models of data perhaps be generalized into a single model. Using hyper-graphs perhaps. :-)


This might not be quite it, but perhaps you’re looking for graph databases?


Can you use SQL with graph databases?

Related to the current topic, do graph databases support hyper-graphs?


I don't believe they support SQL. They're somewhat more like pattern-matching on graphs. Most of their query language pages have compare/contrast examples with an equivalent SQL query. e.g. Neo4j's Cypher query language [1], or Apache Tinkerpop Gremlin (seriously) [2] used by Amazon Neptune.

I don't think the most popular ones support hypergraphs, although that sounds cool. I did see HypergraphDB [3] though! Need to read more about that.

[1] https://neo4j.com/developer/cypher/guide-sql-to-cypher/#cyph... [2] https://tinkerpop.apache.org/gremlin.html#:~:text=Host%20Lan... [3] http://hypergraphdb.org/




Consider applying for YC's Fall 2025 batch! Applications are open till Aug 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: