Join Bill Weinman for an in-depth discussion in this video Why use transactions?, part of SQL Essential Training (2014).
In database terminology a transaction is a group of operations that are handled as one unit of work. In practice, this means that you may have many operations. And if any of these operations fails, the entire group of operations is treated as failed. And the database is restored to it's state before the group of operations is started. For example, imagine a financial application where several tables need to be updated for a given transaction. If any of these operations fails, corresponding data in the other tables would be out of sync and invalid.
By combining all these actions into a single transaction, the state of the database will be automatically rolled back to a valid state if any of the individual operations fails. Transaction are also used to ensure that concurrent operations result in a state as if they were handled sequentially. In other words, if your database is used by many clients at the same time, and they're all conducting similar, complex operations grouped into transaction. Those transactions will have the same result as they would if each transaction waited for the others to be completed.
Transactions can also improve performance sometimes radically. For example, if you have a lot of rows to insert into a table or a set of tables, each of these inserts takes time to write to the storage device. When making individual writes, the database system uses resources to ensure that each row has been successfully committed to storage. When you make a group of inserts to your table as a transaction, the database system can perform many write operations together, significantly reducing the overhead associated with writing to physical media.
Generally, transactional database operations can improve reliability and performance for larger or more complex operations. In the next lesson, I'll show you how SQL implements transactions.
- Understanding SQL terminology and syntax
- Creating new tables and records
- Inserting and updating data
- Writing basic SQL queries
- Sorting and filtering
- Accessing related tables with JOIN
- Working with strings
- Finding the numeric type of a value
- Using aggregate functions and transactions
- Updating a table with triggers
- Creating views
Skill Level Beginner
Q: For Mac OS X: When I try to start the Apache Web Server from the XAMPP control panel, it doesn't start, and when I open "localhost" in my web browser, I see a white screen that says "It Works!" instead of the XAMPP page.
sudo apachectl stop
Q: I'm on a Mac, and I get an error in SID that says "attempt to write a read only database." How can I fix this?
A: This usually means that the database folder does not have sufficient permissions for writing by the web user. This can happen if you create the SQL folder new, rather than copying it from the Exercise Files. Here's how to fix this:
- Open a Finder window and Navigate to /Applications/XAMPP/htdocs/SQL
- Control-click on the SQL folder and select "Get Info" from the context menu.
- Under "Sharing and Permissions" (you may need to open the disclosure triangle), in the "everyone" row, select "Read & Write."Then you can close the Info window.
- Now repeat the process for the three *.db files inside the folder.