Google App Engine: хранилище данных - не традиционная база данных отношений. Что подразумевается под этим? - PullRequest
1 голос
/ 11 июля 2009

Из руководства по началу работы GAE

Поскольку хранилище данных App Engine не традиционная реляционная база данных, запросы не указываются с использованием SQL. Вместо этого вы можете подготовить запросы, используя SQL-подобный язык запросов, который мы называем GQL.

Что они имеют в виду под "не традиционной реляционной базой данных" и какие последствия это имеет, кроме необходимости требовать GQL вместо SQL.

Ответы [ 2 ]

9 голосов
/ 11 июля 2009

Это очень функционально ограничено по сравнению с реляционной БД: нет соединений, нет реальных проверок целостности данных (таких как уникальность и c), нет функций GROUP BY и функций агрегирования, таких как SUM и т. Д., Транзакции только внутри одной группы объектов и т. Д. и т. д. - МНОГИЕ различия.

Мало того, что вы должны делать намного больше на уровне приложений (вместо того, чтобы делать это в базе данных), но и для производительности и масштабируемости вы должны соответствующим образом денормализовать ваши данные (некоторые делают это также в реляционных БД, что является спорным, но часто неохотным принято, но в GAE это обязательно). Многие отличные эссе и видео в сети глубоко погружены в вопросы «как это влияет» - например, если вы знаете достаточно Java, это видео поможет и т. Д. И т. Д.

0 голосов
/ 12 июля 2009

Около 1/10 кодовой базы для того же проекта, но, возможно, более длительное время разработки, поскольку вы работаете с новым, тестовым и предварительным программами. Вам не понадобится сценарий сборки базы данных, не будет смешана куча или незавершенный sql, php, java, xml (где 0 означает false на одном языке, а не на другом), и другие важные последствия заключались в том, что у нас его не будет Боссы утверждают, что реляционная база данных является решением для всех и любой проблемы, разные сущности одного типа могут иметь разное количество свойств, наиболее подходящим шаблоном проектирования является «сущность», которую также можно использовать с rdbms,

...