A transactional database is a database management system (DBMS) that has the capability to roll back or undo a database transaction or operation if it is not completed appropriately. Although this was a unique capability several decades ago, today the majority of relational database systems support transactional database operations.
What is a Database Transaction?
Whenever information or data is stored, manipulated, or “managed” in a database, the operation is considered to be a database transaction. The term indicates that there has been work accomplished within the database management system or in the database itself. In order to ensure security, a database transaction occurs separately from other transactions within the system to ensure that all information stored remains accessible, secure, and coherent.
The idea of conducting transactions with a database rises from the need to provide the end-user or administrator with a means to cohesively and coherently transfer information in a secure manner that is not corrupted by potential system failures. The core properties of database transactions are: atomic, coherent, isolated, and durable, or ACID for short. If a database transaction fails, it will have no impact on the information stored in the database to help ensure these core properties are met.
What is the Purpose of a Database?
A database is designed to coherently store and conduct operations on related information. Modern databases are able to support operations on information stores while prioritizing the integrity of the data stored. Every operation or transaction contains a minimum of one independent unit of work which can include reading or writing information to the data store. When these transactions execute, the database must be kept in a consistent state in order to avoid issues with other consumers of the data store. By ensuring that the recording of multiple entries in the database as individual or atomic transactions, the integrity of the information stored is maintained and transactional errors are avoided.
How Do Database Transactions Work?
A database transaction consists of any unit of work that is conducted inside of a database management or equivalent system. The operation must be against a database and be treated as an independent operation from other transactions. The primary two purposes of a transaction are:
1 – Providing reliable units of work that are able to recover correctly from failure, and
2 – Keep a database consistent in all situations to include system failure, unexpected execution corruption, and supporting numerous incomplete operations on the database.
In order to be considered a database transaction, the operation must support the core principles of transactions to being atomic, consistent, isolated, and durable. If a transaction is not completed the desired outcome of the operation will not be realized due to the requirements of database transactions.
Transactional Database Operations
A transactional database is a DBMS that supports the rolling back of transactions on the data stores if not completed properly. An interruption in the transaction can be caused by power loss or an interruption in connectivity to the data store. The majority of databases in use today support transactions. These operations can consist of one or many data manipulation queries or statements. Since data integrity and consistency are critical to proper database operation, most transactions use SQL or a SQL-like language to conduct operations using the following pattern:
Step 1 – Initiate the transaction.
Step 2 – Execute the provided set of data queries or manipulations.
Step 3 – Commit the transaction and complete it if there are no errors.
Step 4 – If an error occurs in the transaction, roll it back and end the operation.
In multi-user databases, transactions will often store transactions using an XID, or transaction ID. There are a number of ways that companies implemented transactional databases in practice today to include the use of nested and multi-level transactions.
What is SQL?
SQL is a programming language created to manage data stored in a relational database management system, or RDBMS. The language was originally based on tuple relational calculus and relational algebra. SQL includes both a data definition and data manipulation language. The primary scope of the language includes operations for data insert, update, query, delete, scheme modification and creation, and data access control. Although SQL is declarative, it also includes a number of procedural elements. It was also the first language used in relational databases and became an ANSI (American National Standards Institute) in 1986. One year later, SQL became an ISO (International Organization for Standards) standard and has been improved upon several times since them to include new features.
Transactions Using SQL
The SQL language is fundamentally transactional in nature. There are a number of database implementations of the SQL standard in use today which extend the language and implement an explicit “START TRANSACTION” statement; however, this action simply deactivates the auotcommit statement. After this point, no operations on the database become visible to other uses of the data store until a COMMIT statement is process by the system. A SQL ROLLBACK statement can also be executed which will undo any work conducted on the system since the last successful transaction. The ROLLBACK and COMMIT statements will conclude a transaction and start the next. If the DBMS disabled the autocommit feature using a START TRANSACTION statement, it will be re-enabled. Alternative implementations of SQL also use the following statements: BEGIN, BEGIN WORK, and BEGIN TRANSACTION.
How Do Distributed Transactions Work?
Databases are now able to support distributed transactions against multiple computer hosts or applications. Distributed transactions still implement the proven ACID properties; however, it is done so across multiple data stores or systems. These systems can consist of a variety of non-classic databases such as file systems, messaging systems, databases, and other applications. The distributed transaction will typically coordinate services ensure that all aspects of the transaction are applied to the appropriate system. If any component of the transaction fails, then the transaction will be rolled back across all of the impacted systems.
What are the Advantages and Disadvantages of Transactional Databases?
The primary advantage to database transactions is flexibility. Database users are able to modify some information without having to touch sensitive or isolated information. The interface and rules for manipulating the data store can be accomplished without changing the overall structure of the system. Additionally, database transactions allow users to have an improved ability to retrieve history with the data being stored in a constrained environment. Finally, due to the consistent information stores provided by transactional databases, there is minimal risk of losing data due to system or power failure.
Some of the disadvantages of transactional databases include potentially less readable data due to some implementations only having an “insert only” feature for information. Additionally, there is less opportunity or ability to change information within a transactional database for many end-users. This puts a greater onus on ensuring data correctness before conducting a transaction on the database.
How to Back up a Transaction Log in an SQL Server
In the SQL Server, the transaction log will include all deletions, insertions, and edit operations done on the associated database tables. The tables will include the information for all of the users of web and desktop applications. If an end-user has database administrator access, he or she can recover information using the transaction log backup. This capability is beneficial if there is data that has corrupted or deleted in error. By using the transaction log, administrators are able to fix potentially damaging issues with data correctness.
Step 1 – Select the Windows “Start” button.
Step 2 – Click the “All Programs” and “SQL Server” menu options.
Step 3 – Select the “SQL Server Management Studio” icon to open the SQL database console.
Step 4 – Right click the database to conduct the transaction log backup operation on located on the left-hand side of the program window.
Step 5 – Click the “Back Up” menu option which will launch the database backup wizard.
Step 6 – Input the database name in the “Database” input or text box.
Step 7 – Choose the “Full” menu option to backup the complete transaction log.
Step 8 – Choose “Transaction Log” from the “Backup Type” menu.
Step 9 – Input a name and description for the database transaction log backup in the appropriate text box.
Step 10 – Choose the “Add” menu button and then pick a location for the backup files to be saved. The location can be on the computer or on an external drive.
Step 11– Choose the “Add” button again to save the location.
Step 12 – Select the “Backup” menu button to start the process. This will also select the default options for the backup operation. Depending on the size of the log and database, the process can take up to several minutes to conclude.
How to Restore and Backup Transact-SQL
Although SQL Server has a wizard that allows administrators to back-up and restore database files, there is also a command line utility that is capable of accomplishing advanced database operations / commands on data stores. The command line interface allows admins to input T-SQL commands that are able to achieve the same results as the wizard application.
Step 1 – Select the “Start” menu button followed by choosing the “All Programs” and “SQL Server” menu options.
Step 2 – Select the “SQL Server Management Studio” program icon which will launch the management console for the SQL database.
Step 3 – After the management console launches, right-click the database name located on the left-hand side of the program window.
Step 4 – Choose the “New Query” menu option which will launch the T-SQL editor. The editor window is where the backup and restore SQL code will be entered.
Step 5 – Enter the following commands to backup the database:
backup database myTransactionalDatabase
to disk = ‘C:\myTransactionalBackup.bak’
The “myTransactionalDatabase” name should be replaced with the specific database name that you intend to backup. The drive specification ion the “to disk” line should be replaced with the specific drive and path to save the backup file. The location can be on any accessible local or network drive from the computer.
Step 6 – Enter the following command to restore the backup file created in step 5:
restore database myTransactionalDatabase