Database Reference
In-Depth Information
Chapter 7. Expanding Your Data Model
In the preceding chapters, we focused largely on the high-level structure of Cassandra
tables, and particularly on the forms and uses of primary keys. Now, we will turn our focus
to the data that's stored within tables, exploring advanced techniques to add, change, and
remove data.
We created several tables in the MyStatus application, but so far we haven't made any
changes to those tables' schemas. In this chapter, we'll introduce the ALTER TABLE state-
ment, which enables us to add and remove columns from the tables in our keyspace.
We'll move on to the UPDATE statement, which is used to change the data in existing rows.
You'll learn that INSERT and UPDATE have more in common than our experience with re-
lational databases might lead us to believe, and that INSERT in particular can have unex-
pected and undesirable effects if not used carefully. We'll also expand our understanding of
the DELETE statement, using it to remove data from specific columns in a row, rather than
deleting the entire row, as we have so far.
Finally, we'll introduce lightweight transactions as a way to ensure data integrity when
modifying data. We'll use transactional inserts to make sure that we don't accidentally over-
write a user record when a different user wants the same username, and transactional up-
dates to avoid writing stale data to existing rows. We'll delve into the ways in which Cas-
sandra's lightweight transactions differ from traditional transactions in a relational data-
base.
By the end of this chapter, you'll know:
• How to view a table's schema in cqlsh
• How to add and remove columns from an existing table
• How to update data in a row
• How to remove the data from a single column
• How to ensure that a newly inserted row doesn't conflict with an existing row's key
• How to perform conditional updates to existing rows
Search WWH ::




Custom Search