5 ms·
"Each table in the database is one spreadsheet. You tell the RDBMS how many columns each row has." If this is not a relational database this is still true. Cor
by zeynel1 16y ago
"Each table in the database is one spreadsheet. You tell the RDBMS how many columns each row has."
If this is not a relational database this is still true. Correct? For instance, Google App Engine, pretends to be not a a table http://stackoverflow.com/questions/4731657/google-app-engine-is-not-creating-table-python/4731741#4731741 http://stackoverflow.com/questions/4731657/google-app-engine... but it is still a table with columns and rows.
- steveklabnik 16y agoNope. Key/Value stores don't work this way, document stores don't work this way, graph databases... I don't think work this way.
- btilly 16y agoThis statement can be true if you don't have an RDBMS. But generally isn't. For instance with Google App Engine there is no way to say, My columns are foo and bar then have it tell you that you've done something wrong when you try to insert something into column baz.
- zeynel1 16y agoI guess I don't understand the distinction then. In the App Engine what is called a Model in the script looks like a table to me. It has rows and it has columns and those rows and columns contain data.
- btilly 16y agoThe difference is described in http://code.google.com/appengine/docs/python/datastore/overview.html#Differences_From_SQL http://code.google.com/appengine/docs/python/datastore/overv... with: Unlike traditional relational databases, the App Engine datastore doesn't require data kinds to have a consistent property set (although you can choose to enforce this requirement in your application's code). Here is what they mean by that. In a traditional relational database every table must have a table definition that specifies all of the columns and column types. In the App Engine it is up to the application to supply an implicit table definition. And there is no enforced consistency. If two applications access the same table, they can put entirely unrelated kinds of objects there. (Or, worse yet, put related objects that are just slightly different. Just to confuse you.)
- zeynel1 16y agoOk. In that case, they are both tables; but they have different properties.
- btilly 16y agoIt is an important distinction to make. Relational databases are all about how to structure your data, and then how to manipulate that structure. In particular a key value add is that because the database understands how your data is structured, you can tell it what data you want out, and it can figure out the most efficient way to extract that data. In practice it isn't perfect. There are times that the database does things wrong, and it is useful to have a bag of tricks for figuring out when it is going wrong and forcing it to do the right thing. But on average it does much, much better than most developers could, and does it with a lot less work.