Database Reference
In-Depth Information
variable length character data. Hence, the drawbacks of a schema-less data storage
also include the lack of automatic integrity checking in the database (no foreign
keys) and an increased burden on the application to handle formatting and type
conversions. Following the AWS' pay-as-you-go pricing philosophy, SimpleDB has
a pricing structure that includes charges for data storage, data transfer, and processor
usage. There are no base fees and there are no minimums. Similar to most AWS
services, SimpleDB provides a simple API interface which follows the rules and
the principles for both of REST and SOAP protocols where the user sends a message
with a request to carry out a specific operation. The SimpleDB server completes
the operations, unless there is an error, and responds with a success code and
response data. The response data is an HTTP response packet, which has headers,
storing metadata, and some payload, which is in XML format.
The top level abstract element of data storage in SimpleDB is the domain .
A domain is roughly analogous to a database table where the user can create and
delete domains as needed. There are no design or configuration options to create a
domain. The only parameter you can set is the domain name. All the data stored in
a SimpleDB domain takes the form of key-value attribute pairs. Each attribute pair
is associated with an item which plays the role of a table row. The attribute name
is similar to a database column name. However different items (rows) can contain
different attribute names which give you the freedom to store different attributes
in some items without changing the layout of other items that do not have the
same attributes. This flexibility allows the painless addition of new data fields in
the most common situations of schema changing or schema evolution. In addition,
it is possible for each attribute to have not just one value (multi-valued attributes)
but an array of values. In this case, all the user needs to do is add another attribute
to an item and use the same attribute name but with a different value. Each value
is automatically indexed as it is added. However, there are no explicit indexes to
maintain. Therefore, the user has no index maintenance work of any kind to do.
On the other side, the user do not have any direct control over the created indices.
SimpleDB provides a small group of API calls that enables the core functionality for
building client applications such as: CreateDomain , DeleteDomain , PutAttributes ,
DeleteAttributes and GetAttributes . The SimpleDB API also provides a query
language that is similar to the SQL Select statement. Hence, this query language
makes SimpleDB Selects very familiar to the typical Database user which ensures a
gentle learning curve. However, it should be noted that the language supports issuing
queries only over the scope of a single domain (no joins, multi-domain or sub-select
queries).
SimpleDB is implemented with complex replication and failover mechanisms
behind the scenes. Therefore, it can provide a high availability guarantee with the
stored data replicated to different locations automatically. Hence, a user does not
need to do any extra effort or become an expert on high availability or the details of
replication techniques to achieve the high availability goal. SimpleDB supports two
options of for each user read request: eventual consistency or strong consistency.
In general, using the option of a consistent read eliminates the consistency window
for the request. The results of a consistent read are guaranteed to return the most
Search WWH ::




Custom Search