What matters is why you care if it is relational. If you have SQL or want to code in it, Memento is not your tool. If you want to use relational extract/transform/load (ETL) tools, not with Memento.
However, it is a very capable database tool with features not only for complex linked "tables", but also for simple "forms", for data charting, for barcode scanning and searching, team collaboration, and many other things.
The primary keys are unique and stored in the memory. The user is not shown the keys, but they exist. You can see the keys when you upload a record to GS as MEMENTO_ID.
It is absolutely clear, that this key is used to access records in another library. Otherwise, the hardcoded (as you presumed) user keys (Entry Name) wouldn't point at a correct record when entry names are repeated, for example.
Besides, if you change a name in one library - it will automatically change in the second library. Which is another proof that links are NOT hardcoded, but referred to via a key.
Additionally, when the entry name is intended to become a key, for example, when uploading to GS, Memento proposes this field to become unique. Otherwise, when you synchronize it back, Memento won't know where to assign repeated records.
To top it off, when you delete a record, the link remains active until you clear the bin. Another proof of that links are not hardcoded but referred to another lib's record via a key.
Finally, Memento uses SQLight - which is a relational. In fact, the database is Sqlite, not Memento. Memento is just a convenient interface.
Thus, the correct answer is yes, Memento is fully relational, both according to its behaviour and the definition of a relational database.
The main points of my answer are in my original post; try rereading it. The key IS hard-coded; The fact that the Google Sheets sync interface exposes the hard-coding doesn't change that. Memento says "Don't touch that field value!", so it is exposed only because there is no other way, not so the user might do something with it.
Changing a field value in one library changes it in the other proves only that the libraries are linked, not that the link is not hard-coded. They are certainly linked.
Yes, one COULD set entry names to be unique AND set a link to be one-to-many and you are getting close to relational, but those values are not the defaults.
What tools (SQLite), libraries, & such are used inside the app is immaterial -- only what is exposed in the interface.
What stopped me from arguing how relational Memento is was (1) I already knew the keys were not unique by default, so many Memento libraries probably don't have unique keys. (2) Vasya implemented 1-1 and many-many links AND made many-many the default. Now, most Memento links will probably be many-many. I had been imagining putting a SQL layer on top of Memento, but he's clearly going in a different direction.
You and I participated in a group conversation a while back in which Bob said "There seems to be no way to import already populated fields which would then be used as the key fields, (or "link to entry" in Memento parlance), which would be used to establish the joins between tables. I have been toying with the idea of using Memento to develop a small business application for my sister's business. The application would require importing Customers, Inventory and Delivery Routes into the database. The relationships between those tables has already been established by common data in key fields (columns). This would be an impossible task if we have to go into each record and establish the "link" again individually between records."
And he's right about that. That's why I remarked in my original post about SQL and ETL tools; that isn't going to happen.
Since you sent me a URL, here's one for you: https://en.wikipedia.org/wiki/Codd%27s_12_rules?wprov=sfla1 -- Codd's 12 rules. In my opinion, Memento violates Rules 4, 5, 8, 9, and 10.
Finally, every time someone asks if [pick your tool] is or isn't relational, several long messages get posted, and I'm usually one of the posters, and it is tiresome, BUT the discussion is enlightening, for people who don't get too bored to finish reading it all. In truth, many rDBMSes are not TRULY relational, but does it matter? It is a word game; we should get down to what people really need and care about.
And don't forget, Memento is my FAVORITE database tool! I'm not trying to run it down, just make sure folks know what it can and can't do.
But for one thing, by definition, a primary key is part of the logical data model, not a generated key used for physical storage.
I'm sorry to stick with relational-ish, but I do. You have agreed that the typical, default Memento library -- with nonunique entry names and many-to-many links -- is not relational.
Let's let this go. If you are interested, perhaps you could read https://www.amazon.com/Relational-Theory-Computer-Professionals-Practice-ebook/dp/B00CXXZ6PQ/ref=sr_1_1_twi_kin_2?ie=UTF8&qid=1476501053&sr=8-1&keywords=Relational+theory+for+computer+professionals
I think we (everyone) should get over worrying about whether something is "relational" or not and discuss what actual issue is at hand. Whenever people ask, I try to answer very generally and then ask them what their immediate concern is. Then I can address that instead of descending into these depths of whether one of us or the inventors themselves are right or wrong about everything. I'm only trying to be helpful to people. I don't care who's right or wrong. I mainly want to just quit talking about it unless someone needs some real help with a real problem. Then, I'm all ears.
By the way, without knowing what passage you're referring to, my guess is, knowing Chris Date as a purist, that he probably feels that current standards (or maybe current implementations) of SQL violate Codd's relational rules, or allow RDBMSes to do so. It's probably some esoteric consideration, and within that narrow context, he's probably right. But as always, I may be wrong. I'd have to read the context.
Peace, brother.
In any case, you are also right that those are esoteric questions and are of little importances as long as Memento does its job correctly.
Thanks for clarifying your point.