vault backup: 2024-01-30 13:27:56
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
# Online Transaction Processing Systems
|
||||
|
||||
Systems that need real time support for querying and updating of databases by one or more concurrent users.
|
||||
|
||||
Data is updated in real time frequently, but must maintain correctness of the database state regardless of hardware and software failures, and multiple users accessing said data.
|
||||
|
||||
## Examples of OLTPs
|
||||
|
||||
- Banking / Credit Card processing systems
|
||||
- Transport reservation systems
|
||||
- Trading / Brokerage systems
|
||||
- E-commerce
|
||||
|
||||
### Example 1
|
||||
|
||||
- Two students registering for the same class ( Student Enrolment Database )
|
||||
|
||||
NumEnroled = 39
|
||||
MaxEnroled = 40
|
||||
|
||||
If two students attempt to enrol at the same time, NumEnroled = 41, which is in an inconsistent state, violating semantic constraints, when processing requests from multiple concurrent users.
|
||||
|
||||
### Example 2
|
||||
|
||||
- Two people attempt to withdraw from two different ATMs in a joint account
|
||||
- Person A withdraws £100 at ATM 1
|
||||
- Person B withdraws £50 from ATM 2
|
||||
- Initial balance £400
|
||||
|
||||
Final balance should be £250 no matter who withdraws first.
|
||||
However, if they withdraw at the same time, the final balance would be £300 OR £350, depending on various attributes of the ATMs ( physical location, processing speed, current load, etc. ), as £400 total balance would be reported to both ATMs
|
||||
|
||||
## Challenges of OLTP
|
||||
|
||||
Although the AQL code is written correctly, the database may be in an inconsistent state after processing transactions due to failures of hard / software / multiple users accessing the db.
|
||||
A consistent state of the database means it satisfied all the constraints specified in the schema ( overall description of the database: pk, fk, referential integrity, etc. ), and any other constraints on the database that should hold ( eg. semantic constraints. )
|
||||
|
||||
# Transaction
|
||||
|
||||
An action / series of actions, carried out by a single user or application program that reads or updates the contents of the database.
|
||||
- A transaction is treated as a logical unit of work on the database. This may be
|
||||
- An entire program
|
||||
- Part of a program
|
||||
- A single statement
|
||||
|
||||
|
Reference in New Issue
Block a user