Движок приложений Google:Хранилище данных не является традиционной базой данных отношений.Что под этим подразумевается?

StackOverflow https://stackoverflow.com/questions/1112706

  •  12-09-2019
  •  | 
  •  

Вопрос

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

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

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

Это было полезно?

Решение

Это очень функционально ограничено по сравнению с реляционной базой данных:никаких объединений, никаких реальных проверок целостности данных (таких как уникальность и c), никаких функций ГРУППИРОВАНИЯ и агрегирования, таких как SUM и т.д. и т.п., транзакций только внутри одной группы объектов и т.д. и т.п. - МНОГО различий.

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

Другие советы

Примерно 1/10 кодовой базы для того же проекта, но, возможно, более длительное время разработки, поскольку вы работаете с новым программным обеспечением для тестирования и предварительного просмотра.Вам не понадобится скрипт сборки базы данных, вы не будете смешивать кучу или несогласованных sql, php, java, xml (где 0 означает false на одном языке, а не на другом) и другие важные последствия заключались в том, что у нас не будет ИТ-боссов, утверждающих, что реляционная база данных - это решение всех и любой проблемы, разные объекты одного вида могут иметь разное количество свойств, наиболее подходящим шаблоном проектирования является "entity", который также может использоваться с СУБД,

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top