After completing this chapter, students will be able to: The object-relational data model, which extends the relational data model to support complex data types, type inheritance, and object identity. The chapter also describes database access from object-oriented programming languages. | CSC271 Database Systems Lecture # 32 Summary: Previous Lecture Database security Countermeasure: computer-based controls DBMSs and web security Transaction management Transaction Properties of transaction Components of DBMS Components of Database Manager DBMS Transaction Subsystem Objective of Database A major objective in developing a database is to enable many users to access shared data concurrently Concurrent access is relatively easy if all users are only reading data, as there is no way that they can interfere with one another However, when two or more users are accessing the database simultaneously and at least one is updating data, there may be interference that can result in inconsistencies Concurrency Control The process of managing simultaneous operations on the database without having them interfere with one another Prevents interference when two or more users are accessing database simultaneously and at least one is updating data Although two transactions may be correct in themselves, interleaving of operations may produce an incorrect result Need for Concurrency Control Three examples of potential problems caused by concurrency: Lost update problem Uncommitted dependency problem Inconsistent analysis problem Lost Update Problem Successfully completed update is overridden by another user T1 withdrawing £10 from an account with balx, initially £100 T2 depositing £100 into same account Serially, final balance would be £190 Lost Update Problem The loss of T2’s update is avoided by preventing T1 from reading the value of balx until after T2’s update has been completed Uncommitted Dependency Problem Also called dirty read problem This problem occurs when one transaction can see intermediate results of another transaction before it has committed T4 updates balx to £200 but it aborts, so balx should be back at original value of £100 T3 has read new value of balx (£200) and uses value as basis of £10 reduction, giving a new balance of £190, instead of £90 . | CSC271 Database Systems Lecture # 32 Summary: Previous Lecture Database security Countermeasure: computer-based controls DBMSs and web security Transaction management Transaction Properties of transaction Components of DBMS Components of Database Manager DBMS Transaction Subsystem Objective of Database A major objective in developing a database is to enable many users to access shared data concurrently Concurrent access is relatively easy if all users are only reading data, as there is no way that they can interfere with one another However, when two or more users are accessing the database simultaneously and at least one is updating data, there may be interference that can result in inconsistencies Concurrency Control The process of managing simultaneous operations on the database without having them interfere with one another Prevents interference when two or more users are accessing database simultaneously and at least one is updating data Although two transactions may be correct .