Tag Archives: RelationalAI

The Logic Graph Epiphany

By the end of this blog post, you are going to experience two epiphanies about databases. However, you are going to have to do a little more work than just read. You are going to have to stop and actually think about what you’re reading. I promise it will be worth it. Let’s go!

A relational database has tables with columns of numbers we refer to as keys. User_ID 1, 2, 3, Place_ID 1, 2, 3, Book_ID 1, 2, 3… and so on. These are numbers that are hopefully the same on some other column on some other table. The database itself has absolutely no idea how things are connected until you query it and you tell it exactly how to use these columns to join the tables together. Think about that.

Now, a graph database has explicit relationships. You never have to ask it to search for some id in some column. It knows how things are connected. Tell me about yourself Node A. I am 5’11” and 200 lbs, I have brown eyes… Now tell me how you are related to the world. These are my Friends, these are the Companies I have worked at, these are the Skills I have learned, these are the Things I like. How are you and this other noted related? We are 4 hops away through x, y an z nodes.

Continue reading
Tagged , , , , , ,

Query Optimizers are made of sand

I’ve written a ton of SQL and Cypher queries over the last 20 years…and I’ve rewritten those queries as stored procedures more times than I can count. The issues with the expressivity of the query language and the ability of the query optimizer to “do the right thing” have been around longer than my career. I’ve written about this problem before. I went so far as to completely give up. In RageDB I let the developer write the query in a programming language directly. Skipping the “middle man” and letting the user be the query optimizer. Because in the end… this is what always happens. Well almost always.

Continue reading
Tagged , , , ,

30 Days of Relational AI

There was a show called “30 Days” where people would be inserted in to a lifestyle completely different from their beliefs to see what would happen. The idea wasn’t so much to change their mind, but to help them (and the viewer) understand a little bit of both sides. My experience with Declarative Query languages so far has led me to the belief that they were ultimately a performance dead end. I’ve always known more than the database, which allowed me to hand-craft high performance queries using stored procedures. Building RageDB I decided to stay away from query languages, going as far as letting you write part of your query in “c” if you wanted to.

Continue reading
Tagged , , , ,