Term Definition deadlock "When transaction A needs what transaction B has, and transaction B needs what transaction A has" restrict delete you can't do it cascade delete "if you do it here, do it everywhere foreign key points to" nullify delete "if you do it here, make null everywhere foreign key points to" transaction A sequence of operations performed as a single logical unit of work. atomicity Either all steps of the transaction are performed or none. consistency "Changes made leave the database in a consistent state. Constraints remain intact, etc." isolation Isolating concurrent transactions from each other. durability Changes made to the database are permanent. implicit lock Implemented by the DBMS. explicit lock Implemented through commands (or via code). ??????? RID lock level Locks one row. key lock level Locks one row with index. ????? page lock level Locks 8 KB. extent lock level Locks 8 pages (or a total of 64KB). table lock level Locks one entire table. DB lock level Locks entire database. small granularity More concurrency is possible because less of the database is locked down at once. large granularity Less concurrency is possible because more of the database is locked down at once. pessimistic locking Locking at the beginning of a transaction. optimistic locking Locking right before writing to disk. exclusive lock (X) Nobody else can do anything to the data that's locked -- not even read it. shared lock (S) Nobody else can do anything to the data that's locked except read it. update lock (U) Shared locks automatically change to exclusive locks when updates are made. intent lock Communicates with the DB that it intends to lock things down as this transaction takes place. intent shared (IS) Communicates with the DB that it intends to implement shared locks as this transaction takes place. intent exclusive (IX) Communicates with the DB that it intends to implemnt exclusive locks as this transaction takes place. shared with intent exclusive (SIX) Implements shared locks at the beginning of the transaction but communicates that it intends to implement exclusive locks as the transaction takes place. schema modification (Sch-M) Locks the schema of the database when DDL operations are taking place. schema stability (Sch-S) Locks the schema of the database when queries are taking place. Bulk Update (BU) Locks the database down from anything except bulk updates. Used when copying bulk data and TABLOCK hint is specified. forward-only cursor Allows you to move forward only through the recordset. You cannot move backwards. Updates made to records after the cursor are the only ones visible in the view. static cursor Allows you to move forward or backwards through the recordset. Application sees the data as it was at the time the cursor was opened. Changes made by this cursor are visible. Changes from other sources are not visible. keyset cursor "As soon as cursor hits that primary key, the data is retrieved from the table. Updates or deletes from any source are visible. Adds from outside sources are not visible. Adds from within the cursor are shown at the end. If the isolation level is dirty read, then uncommitted updates and deletions are visible; otherwise only committed updates and deletions are visible." dynamic cursor "Constantly checks back with the database for every little step. Everything is visible -- adds, updates, deletes." referential integrity Ensures that all primary keys point to existing and valid primary keys of other tables. entity integrity Ensures that each row within a table is unique.