1

I have used sql databases a fair bit and can see a lot of benefit in normalised databases that can be joined and searched and relationships built in them.

What are the advantages to the sort of 'object database' that google has in Appengine's datastore?

Dan McGrath
  • 41,220
  • 11
  • 99
  • 130
jcuenod
  • 55,835
  • 14
  • 65
  • 102
  • [scalabilty](http://stackoverflow.com/questions/2285045/what-scalability-problems-have-you-solved-using-a-nosql-data-store) – systempuntoout Jan 18 '11 at 22:52

4 Answers4

5

GAE's BigTable datastore is not object-oriented or even object-relational. It has more in common with a Hashmap than with a standard relational database like MySQL or Oracle. The main advantage is scalability and a tighter guarantee on the amount of time a query will take (sort of like CPU time). The scalability comes from the way records are distributed, if you setup your keys correctly then the data associated with those keys will be closer together physically (the data is distributed so there is no single point of failure).

Abdullah Jibaly
  • 53,220
  • 42
  • 124
  • 197
  • So the average programmer doesn't really feel the advantage? I mean, I don't worry about the time that my sql query is going to take on my blog or little php webapp and although they're not distributed I make backups and I've never been let down. So it seems GAE is only limiting the things I can do with my data. – jcuenod Jan 19 '11 at 08:26
  • 1
    It definitely does limit what you can do, it forces you to make programming choices that you would not usually make for a little blog. On the other hand, that little blog you have running on GAE will be able to handle getting Slashdotted where the php server will be down before you know it. – Abdullah Jibaly Jan 19 '11 at 08:35
3

As many NoSQL databases The main advantage of the Datastore is the flexibility nevertheless the programmer must forget everything about traditional SQL databases. see this article in techrepublic.com about NoSQl databases

  1. Data Model flexibility. The programmer doesn't have to worry about map the object model to relational model, just put your Entities in the Datastore.
  2. Object relationship flexibility. The datastore supports multiple values for one single property, which let you stablish an 1-N relationship just like in the Object Oriented programming; I.e: inserting a List as a value of one property.

The rest of advantages/disadvantages comes from the PaaS (Platform as a service) model, wich means you only worry about write well code and google cares about the infrastructure and scalability. see PaaS in wikipedia

Ma Jerez
  • 4,887
  • 3
  • 23
  • 21
1

Technically it's a lot easier to program since the datastore is bundled with the SDK and easier to share source code and collaborate since you're getting all components from the same vendor rather than patching together an RDMS, a scripting engine and hosting.

Economically, the costeffectiveness GAE ha is a huge advantage since you only pay for what you use. With other services and other hosting you pay like a subscriber while with the model GAE has you pay per quota.

Niklas Rosencrantz
  • 25,640
  • 75
  • 229
  • 424
  • This is not really what I'm looking for - I'm thinking advantages programming wise. Also, 'Technically' they could have chucked something like sqlite with it. Your economic benefit has nothing to do with datastore it's GAE in general what's more I have found hosting services that charge you by the size of your db and have a pay per usage structure on everything. – jcuenod Jan 19 '11 at 08:24
0

Programming-wise, everything is harder.

The advantages are in scalability, price, and administration. Considering that with many web-apps, programming is easier than administering/scaling/paying for it, GAE/datastore is well worth it.

speedplane
  • 15,673
  • 16
  • 86
  • 138