4 ms·
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
by nighthawk454 4y ago
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.
- galaxyLogic 4y agoIt 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.
- nighthawk454 4y agoThis might not be quite it, but perhaps you’re looking for graph databases?
- galaxyLogic 4y agoCan you use SQL with graph databases? Related to the current topic, do graph databases support hyper-graphs?
- nighthawk454 4y agoI 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/#cypher-sql-northwind https://neo4j.com/developer/cypher/guide-sql-to-cypher/#cyph... [2] https://tinkerpop.apache.org/gremlin.html#:~:text=Host%20Language%20Embedding https://tinkerpop.apache.org/gremlin.html#:~:text=Host%20Lan... [3] http://hypergraphdb.org/ http://hypergraphdb.org/
- ynniv 4y agoGemStone 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) https://en.wikipedia.org/wiki/Gemstone_(database)
- galaxyLogic 4y agoI 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. :-)
- namibj 4y agoFunnily 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 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).