Question

From the GAE getting started guide

Because the App Engine datastore is not a traditional relational database, queries are not specified using SQL. Instead, you can prepare queries using a SQL-like query language we call GQL.

What do they mean by "not a traditional relational database" and what implications does this have other than requiring GQL instead of SQL.

Was it helpful?

Solution

It's very functionally limited compared to a relational DB: no joins, no real data-integrity checks (such as uniqueness &c), no GROUP BY and aggregation functions such as SUM etc etc, transactions only within one entity-group, etc, etc -- MANY differences.

Not only must you do a lot more at application level (instead of doing it in the database), but for performance and scalability you must appropriately denormalize your data (some do that in relational DBs too, which is controversial but often grudgingly accepted, but in GAE is a must). Many excellent essays and videos on the net dwell deep into the issues of "what implications does this have" -- e.g., if you know enough Java, this video will help, etc etc.

OTHER TIPS

About 1/10 of the codebase for the same project but maybe longer development time since you're handling a new, test and preview software. You won't need a database build script, won't mix a bunch or incosistent sql,php,java,xml (where 0 means false in one language and not the other) and other great implications were that we shan't have It bosses claiming that a relational database is the solution to all and any problem, different entities of same kind can have different number of properties, the most relevant design pattern is "entity" which also can be used with rdbms,

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top