Google App Engine:数据存储区不是传统的关系数据库。这是什么意思?

时间:2009-07-11 01:49:12

标签: sql google-app-engine gql

来自GAE getting started guide

  

因为App Engine数据存储区是   不是传统的关系数据库,   使用SQL未指定查询。   相反,您可以使用准备查询   我们称之为GQL的类似SQL的查询语言。

“不是传统的关系数据库”是什么意思,除了要求使用GQL而不是SQL之外,它还有什么影响。

2 个答案:

答案 0 :(得分:9)

与关系数据库相比,它在功能上受到限制:没有连接,没有真正的数据完整性检查(例如唯一性和c),没有GROUP BY和汇总函数(如SUM等),只在一个实体组内进行交易等等 - 很多不同。

您不仅必须在应用程序级别执行更多操作(而不是在数据库中执行此操作),而且为了提高性能和可伸缩性,您必须对数据进行适当的非规范化(有些也会在关系数据库中执行此操作,这是有争议的,但通常不情愿接受,但在GAE是必须的)。网上的许多优秀论文和视频都深入探讨了“这有什么影响”的问题 - 例如,如果你了解足够的Java,this video会有所帮助等等。

答案 1 :(得分:0)

大约1/10的代码库用于同一个项目,但是由于您正在处理新的测试和预览软件,因此开发时间可能更长。你不需要一个数据库构建脚本,不会混合一堆或不兼容的sql,php,java,xml(其中0表示一种语言中的false而不是另一种语言),其他重要的含义是我们不会有它老板声称关系数据库是所有问题和任何问题的解决方案,同一类型的不同实体可以有不同数量的属性,最相关的设计模式是“实体”,也可以与rdbms一起使用,