Compare Google Java Datastore with traditional database (300-500 words).
While the Cloud Java Datastore interface has many of the same features as traditional databases, as a NoSQL database it differs from them in the way it describes relationships between data objects. Cloud Java Datastore entities are schemaless: unlike traditional relational databases, Cloud Java Datastore does not require that all entities of a given kind have the same properties or that all of an entity\'s values for a given property be of the same data type. In Cloud Java Datastore, entity is of a particular kind, which categorizes the entity for the purpose of queries; for instance, a human resources application might represent each employee at a company with an entity of kind Employee. But in traditional database, entity represents a table which hold the all the properties of an entity. In Cloud Java Datastore, each object is kind of entity but in relational database, each object is kind of row of table. In Cloud Java Datastore, each entity is uniquely identified by their key, which consist of entity kind and an identifier, but in relational database, each row is uniquely identified by the primary key of table which is a certain set of columns of table. Unlike rows in a relational database table, Cloud Java Datastore entities of the same kind can have different properties, and different entities can have properties with the same name but different value types. These unique characteristics imply a different way of designing and managing data to take advantage of the ability to scale automatically. In particular, Cloud Java Datastore differs from a traditional relational database in the following important ways: Cloud Java Datastore is designed to automatically scale to very large data sets, allowing applications to maintain high performance as they receive more traffic. Cloud Java Datastore writes scale by automatically distributing data as necessary. Cloud Datastore reads scale because the only queries supported are those whose performance scales with the size of the result set (as opposed to the data set). This means that a query whose result set contains 100 entities performs the same whether it searches over a hundred entities or a million. This property is the key reason some types of queries are not supported. Because all queries are served by previously built indexes, the types of queries that can be executed are more restrictive than those allowed on a relational database with SQL. In particular, Cloud Datastore does not include support for join operations, inequality filtering on multiple properties, or filtering on data based on results of a subquery. Unlike traditional relational databases which enforce a schema, Cloud Datastore doesn\'t require entities of the same kind to have a consistent property set (although you can choose to enforce such a requirement in your own application code).