views:

675

answers:

2

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.

+6  A: 

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.

Alex Martelli
I'm a java developer so I better know enough java lol. I'll check out the video +1
hhafez
A: 

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,

LarsOn