* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download Distributed Databases - University of Texas at El Paso
Survey
Document related concepts
Microsoft SQL Server wikipedia , lookup
Microsoft Access wikipedia , lookup
Global serializability wikipedia , lookup
Entity–attribute–value model wikipedia , lookup
Oracle Database wikipedia , lookup
Open Database Connectivity wikipedia , lookup
Commitment ordering wikipedia , lookup
Ingres (database) wikipedia , lookup
Extensible Storage Engine wikipedia , lookup
Functional Database Model wikipedia , lookup
Serializability wikipedia , lookup
Relational model wikipedia , lookup
Microsoft Jet Database Engine wikipedia , lookup
Versant Object Database wikipedia , lookup
Database model wikipedia , lookup
Clusterpoint wikipedia , lookup
Transcript
MIT5314: Database Applications Slide # 1 Database Administration Chapter 12: Database Administration (With Modifications) Dr. Peeter Kirs Fall, 2003 MIT5314: Database Applications Slide # 2 Database Administration Once upon a time, the typical IS Organization appeared as: CEO VP Marketing VP Finance VP Production ••••• Accounting EDP Depart. Why ??? It made perfect sense: Information Systems were applied where they were most needed • • Dr. Peeter Kirs Accounting Systems Other standardized, routine applications Fall, 2003 MIT5314: Database Applications Slide # 3 Database Administration As information became used for more purposes and across more functions, the IS Organization changed: CEO VP Marketing VP Finance VP Production CIO Systems Development Database Administration End User Services Information Systems were applied everywhere Information Systems were recognized as an Organizational Resource Dr. Peeter Kirs Fall, 2003 MIT5314: Database Applications Slide # 4 Database Administration Basic Definitions: Data Administrator (DA) A high-level function that is responsible for the overall management of data resources in an organization: • May be the CIO Database Administrator (DBA) I am the boss!! A technical function that is responsible for the physical database design and such issues as security enforcement and database performance Database Steward Without me, You’re Nothing!! A administrative function that is responsible for assuring that organizational applications meet the enterprise goals Dr. Peeter Kirs Die, you Egomaniacs!! Fall, 2003 MIT5314: Database Applications Slide # 5 Database Administration Data Administration Functions: Data Policies Explicit statement of goals, objectives, and targets • Goal: To Support Cost-Effective Use of the computer environment • Objective: To improve sharing of information across organizational units • Target: Linking of all departmental databases within 2 years Data Procedures Written Statement of actions to be taken for a certain activity • “In the event of a database failure, the DBA will: 1. • • • Data Standards Explicit statement of conventions to be followed in data usage • “All table names will be prefaced by their physical location” • “All fields containing age, weight, …. Will contain the data type short” Dr. Peeter Kirs Fall, 2003 MIT5314: Database Applications Slide # 6 Database Administration Data Administration Functions: Planning Development of the Organization’s IT Strategy • Must correspond to the Organization’s Business Strategy • E.g., Consider the Difference between UTEP and Harvard Development of the enterprise model • Top-Down versus Bottom-Up Viewpoint Development of cost/benefit model • Targets must be measurable Design of the database environment • Centralized, distributed, Decentralized?? How?? Develop the data administration plan • A lower-level plan for database implementation, maintenance and growth Dr. Peeter Kirs Fall, 2003 MIT5314: Database Applications Slide # 7 Database Administration Data Administration Functions: Data Analysis Define and model data requirements Define and model business rules Define operational requirements Maintain corporate data dictionary Data Conflict Resolution Who owns the data? • The department, the business subunit, the corporation? • NOT a trivial question. • Procedures MUST be established in advance Dr. Peeter Kirs Fall, 2003 MIT5314: Database Applications Slide # 8 Database Administration Data Administration Functions: Internal Marketing Information Systems are political entities • The DA must sell their arguments Recall the Systems Trinity: • The Manager: The person in charge of the functional department • The System Developer: The person developing the system • The User: The person who will use the system Recall why systems fail: • Lack of Top management support • Lack of user Acceptance • Bad system Design The relationship is like a 3-legged stool: If any leg breaks, the stool collapses It is the DA’s job to make sure that ALL stakeholders are happy Dr. Peeter Kirs Fall, 2003 MIT5314: Database Applications Slide # 9 Database Administration Data Administration Functions: Managing the Data Repository Used by the DA to manage the information- processing environment • Contain metadata that describes the organization’s data and data processing resources • Replacing Data Dictionaries (simple data-element documentation tools) • Provides information about: • What users must know what • What automated CASE tools that are used to specify and develop information systems • All Applications that access and manipulate data • Dr. Peeter Kirs DBMS that maintain the repository and update system privileges, passwords, and other information Fall, 2003 MIT5314: Database Applications Slide # 10 Database Administration Database Administration Functions: Selection of Hardware and Software Difficult to keep abreast of current technology Difficult to predict future changes Emphasis on established off-the-shelf products Managing Data Security and Privacy Firewalls Establishment of user privileges Complicated by use of distributed systems Managing Data Integrity Data consistency Maintaining data relationships Dr. Peeter Kirs Fall, 2003 MIT5314: Database Applications Slide # 11 Database Administration Database Administration Functions: Database Backup We must assume that a database will eventually fail Establishment of procedures • How often should the data be back-up? • What data should be backed-up more frequently? • Who is responsible for the back-ups? Database Recovery Application of proven strategies for reinstallation of database after crash Dr. Peeter Kirs Fall, 2003 MIT5314: Database Applications Slide # 12 Database Administration Shared Administration Activities: Database Design DA: Logical Design DBA: • External Model Design (Subschemas) • Physical Design/Construction • Design Integrity Controls Database Implementation DBA: • Establish Security Controls • Supervise Database Loading • Specify Test Procedures • Develop Programming Standards • Establish Back-up/Recovery Procedures Both: Dr. Peeter Kirs • Specify Access Policies • USER TRAINING Fall, 2003 MIT5314: Database Applications Slide # 13 Database Administration Shared Administration Activities: Operations and maintenance DBA: • Monitor database performance • Tune and reorganize databases as needed • Enforce standards and procedures Both: Support Users Growth and Change Both: • Implement Change-Control Procedures • Plan for growth and change • Evaluate new technologies Dr. Peeter Kirs Fall, 2003 MIT5314: Database Applications Slide # 14 Database Administration Data Warehouse Administration: New function due to increased use of data warehousing (Massively) Integrated decision support databases from various sources Emphasis on integration and coordination of data and metadata from multiple databases Specific Functions 1. Support decision-oriented applications 2. Manage data warehouse (exponential) growth 2. Establish service level agreements Dr. Peeter Kirs Fall, 2003 MIT5314: Database Applications Slide # 15 Database Administration Data Dictionaries and Repositories: Data Dictionary Documents data and metadata elements of a database Systems Catalog System-generated database that describes all database objects Information Repository Stores metadata describing data and data processing resources Information Repository Dictionary System (IRDS) A software tool managing and controlling access to the Information Repository Dr. Peeter Kirs Fall, 2003 MIT5314: Database Applications Slide # 16 Database Administration Data Dictionaries and Repositories: Components of the repository system architecture A schema of the repository information Software that manages the repository objects Where repository objects are stored Dr. Peeter Kirs Fall, 2003 MIT5314: Database Applications Slide # 17 Database Administration Database performance tuning: DBMS Installation Setting installation parameters Memory Usage Setting cache-levels Choosing background processes Input/Output Contention Deciding who gets what and when How to distribute heavily accessed files CPU usage Monitoring of CPU loads Application Tuning Modification of SQL code in applications Dr. Peeter Kirs Fall, 2003 MIT5314: Database Applications Slide # 18 Database Administration Database Security: Protection of data against accidental or intentional loss, destruction, or misuse Increased difficulty due to internet access and client-server technologies Possible locations of data security threats Dr. Peeter Kirs Fall, 2003 MIT5314: Database Applications Slide # 19 Database Administration Threats to Data Security: Accidental Losses Human Error Software Failure Hardware Failure Theft and Fraud Establishment of firewalls Monitoring of activities Be careful of ‘disgruntled’ employees Improper data access Loss of Privacy (Personal data) Loss of Confidentiality (Corporate data) Dr. Peeter Kirs Fall, 2003 MIT5314: Database Applications Slide # 20 Database Administration Threats to Data Security: Loss of data integrity Data may be compromised due to database crashes Improper recovery can be costly Loss of Availability Through Sabotage/Data Misplacement Viruses/Worms Dr. Peeter Kirs Fall, 2003 MIT5314: Database Applications Slide # 21 Database Administration Managing Data Security: Data Integrity Controls: Default Values Entered • Minimization of user data entry Domain Restrictions • Only certain values can be entered Probability Checks • Echoing of input to user for confirmation Self-checking routines • E.g., Check-digits Dr. Peeter Kirs Fall, 2003 MIT5314: Database Applications Slide # 22 Database Administration Managing Data Security: Views and Subschemas: Views are not only useful, but can also restrict user access to data Recall our Physician/Patient Database View: CREATE VIEW drugs_given AS SELECT physname, patient.name, illness.name, prescription.drugcode FROM physician, patient, treatment, illness, prescription WHERE physician.physid = patient.physid AND patient.patid = treatment.patid AND treatment.illcode = illness.illcode AND treatment.drugcode = prescription.drugcode ORDER BY physname; The user might be restricted from using the view The user might be restricted from seeing the view’s code (And hence seeing the physical relationships) Dr. Peeter Kirs Fall, 2003 MIT5314: Database Applications Slide # 23 Database Administration Managing Data Security: Authorization Rules: Rules to Restrict Access Authorization Matrix Subject Tables Dr. Peeter Kirs SQL Privileges Object Tables Fall, 2003 MIT5314: Database Applications Slide # 24 Database Administration Managing Data Security: Statistical Databases: 1. The Conceptual Model • Only the datasets with common attributes and their statistics are made available • No data manipulation language is allowed to merge and intersect populations 2. Query Restriction • Query-set Size controls (large only) • Number of over-lapping entities among successive queries • Auditing User Queries • Clustering individual entities in mutually exclusive subsets Dr. Peeter Kirs Fall, 2003 MIT5314: Database Applications Slide # 25 Database Administration Managing Data Security: Statistical Databases: 3. Output Perturbation • Queries made on actual data • Output ‘perturbed’ so that statistical characteristics remain but individual data is ‘non-sensical’ 4. Data Perturbation • The entire database is first ‘perturbed’ • All statistical relations are maintained in the perturbed dataset • User allowed to make all queries on the perturbed data set (individual data entities show no relationship to the real data) Dr. Peeter Kirs Fall, 2003 MIT5314: Database Applications Slide # 26 Database Administration Managing Data Security: Authentication Schemes: Problem: Passwords are flawed • Users Share them • Sometimes easy to determine • User write them down and they get copied • Automatic logon scripts make it unnecessary to enter them manually • Unencrypted passwords travel the internet Goal: Verify User Identity Dr. Peeter Kirs Fall, 2003 MIT5314: Database Applications Slide # 27 Database Administration Managing Data Security: Authentication Schemes: Potential Solutions: • Randomly Assigned Passwords • Forced Password Changes • Secondary Passwords • Biometric Devices • Thumbprint • Hand Geometry • Retinal Scan • Voice Recognition • Facial Recognition • Future: • • Dr. Peeter Kirs Body Odor Multi-attribute Fall, 2003 MIT5314: Database Applications Slide # 28 Database Administration Managing Data Security: Encryption (“The Second Oldest Profession”): The earliest recorded use of cryptography is 1900 BC in Egypt. The scribes who sketched the hieroglyphs telling the story of the life of Khnumhotep II in the town of Menet Khufu used a substitution cipher to encrypt the names and titles of individuals in the story. Dr. Peeter Kirs Fall, 2003 MIT5314: Database Applications Slide # 29 Database Administration Managing Data Security: Encryption (“The Second Oldest Profession”): Substitution Ciphers • The Original symbols are substituted for other symbols • Plain Text: ABCDEFGHIJKLMNOPQRSTUVWXYZ Cipher Text: XYZABCDEFGHIJKLMNOPQRSTUVW “Now is the time for all good people to come to the aid…” Dr. Peeter Kirs “KLT FP QEB QFJB CLO XII DLLA MBLMIB QI ZLJB QI QEB XFA …” Fall, 2003 MIT5314: Database Applications Slide # 30 Database Administration Managing Data Security: Encryption: Public/Private Keys Pretty Good Privacy (PGP) Phil Zimmerman • Should the Government have the right to a “Master Key”? • Target of 3-year investigation that he violated export laws Dr. Peeter Kirs Fall, 2003 MIT5314: Database Applications Slide # 31 Database Administration Database Recovery: Mechanisms for restoring a database quickly and accurately after loss of damage Recovery Facilities/Components: 1. Back-up Facilities • Periodic back-up copies of the entire database 2. Journalizing Facilities • To maintain audit trails of transactions and logs of database changes 3. Checkpoint Facilities • When the DBMS temporarily halts all activities and synchronizes all files and journals 4. Recovery Manager • A DBMS component that restores the database to a correct condition and restarts processing activities Dr. Peeter Kirs Fall, 2003 MIT5314: Database Applications Slide # 32 Database Administration Database Recovery: Ongoing Facilities: Backup Facility: Automatic periodic duplication of entire Database Current Database • DBMS Transaction Log Journalizing Facility: Database Backup Dr. Peeter Kirs Logging of Transactions and Database Changes Before and after images of records that have been changed DB Change Log • Logging of every transaction along with timestamps Fall, 2003 MIT5314: Database Applications Slide # 33 Database Administration Database Recovery: Periodic/On Demand Facilities: Checkpoint Facility: The processing is stopped and database synchronized Current Database DBMS Transaction Log DB Change Log Recovery Manager: Database Backup Dr. Peeter Kirs Upon crash, the database is rebuilt using the Database backup, DB Change log, and Transaction Log Fall, 2003 MIT5314: Database Applications Slide # 34 Database Administration Database Recovery: Back-up Facilities: How long between backup (hourly, daily, weekly) is a policy determined by the DA Frequent back-ups increase reliability BUT each takes some time Back-ups should be stored off-site Approaches: Cold Backup • Database shut down during back-up • More secure BUT transactions delayed Hot Backup • Selected portion of database is shut down during back-up • Dr. Peeter Kirs Not as disruptive BUT more complicated Fall, 2003 MIT5314: Database Applications Slide # 35 Database Administration Database Recovery: Journalizing Facilities: Every transaction is stored to the transaction log as well as the database Transaction Log • Record of essential data for each transaction processed against the database Database Change Log • Before-Images of records (before transaction) • After-Images of records (After modification) Needed for: • • Dr. Peeter Kirs Transaction Audits Database Recovery Fall, 2003 MIT5314: Database Applications Slide # 36 Database Administration Database Recovery: Journalizing Facilities: (Recap) Transaction Current Database Effect of transaction added to current database Dr. Peeter Kirs DBMS Transaction Log Copy of transaction stored (In case of database failure) DB Change Log Copy of record affected by transaction stored • Before transaction • After transaction Fall, 2003 MIT5314: Database Applications Slide # 37 Database Administration Database Recovery: Checkpoint Facilities: At some specified point in time (by the DA) the DBMS refuses all transactions (The system is in a Quiet state) The database and the transaction logs are synchronized Transaction Current Database Dr. Peeter Kirs DBMS Transaction Log Fall, 2003 MIT5314: Database Applications Slide # 38 Database Administration Database Recovery: Recovery Manager: Module of DBMS that restores the database to a ‘correct’ position when a failure occurs Why do databases Fail? Aborted Transactions • The transaction terminates abnormally due to human error, input of invalid data, loss of transmission, hardware failure, deadlock, etc. Incorrect Data • Incorrect, but valid, data entered • E.g., incorrect account number, customer payment System Failure • E.g., Power loss, operator error, systems software failure • The database is NOT damaged Database Destruction • The database is lost, destroyed, or can not be read • Often due to disk failure Dr. Peeter Kirs Fall, 2003 MIT5314: Database Applications Slide # 39 Database Administration Database Recovery: Recovery and Restart Procedures Switch • 2 mirror-image databases maintained • All transactions stored/updated in both databases • Upon failure, the database is ‘switched’ for the mirror image • Generally stored across distributed databases • Fastest/most secure • Expensive • Does not protect against power failures or catastrophes Dr. Peeter Kirs Fall, 2003 MIT5314: Database Applications Slide # 40 Database Administration Database Recovery: Recovery and Restart Procedures Restore/Run • The previous transactions are reprocessed (up to the point of the failure) against the backup copy of the database • The most recent copy of the database is mounted and the latest transactions rerun Transaction Log Database Backup New Database • Simple/Cheap • May take considerable time to reprocess • Resequencing errors may occur Dr. Peeter Kirs Fall, 2003 MIT5314: Database Applications Slide # 41 Database Administration Database Recovery: Recovery and Restart Procedures Backward Recovery (Rollback) • Unwanted changes are undone through the use of Before images (in the Database Change Log) DB Change Log (Using only Before Images) Current Database New Database Database Backup Dr. Peeter Kirs Fall, 2003 MIT5314: Database Applications Slide # 42 Database Administration Database Recovery: Recovery and Restart Procedures Forward Recovery (Rollforward) • After images (in the Database Change Log) are applied to the Database Backup DB Change Log (Using only After Images) Database Backup New Database Database Backup Dr. Peeter Kirs Fall, 2003 MIT5314: Database Applications Slide # 43 Database Administration Database Recovery: What Strategy should be applied? That depends on the type of failure Aborted Transactions • Preferred: Rollback • Alternative: Rollforward (To a state just prior to the abort) Incorrect Data • Preferred: First correct data (if possible) then rollback and rollforward with corrected data • Alternative: Compensating transactions (debit then re-credit) System Failure (Database intact) • Preferred: Switch • Alternatives: (1) Rollback (2) Restart from Checkpoint Database Destruction • Preferred: Suicide (unless you can Switch) • Alternatives: (1) Rollforward (2) Reprocess transactions Dr. Peeter Kirs Fall, 2003 MIT5314: Database Applications Slide # 44 Database Administration Transaction Management: Transaction: A logical unit of work that must be either entirely completed or aborted No intermediate states are acceptable. Most real-world database transactions are formed by two or more database requests. • A database request is the equivalent of a single SQL statement in an application program or transaction A transaction that changes the contents of the database must alter the database from one consistent database state to another. To ensure consistency of the database, every transaction must begin with the database in a known consistent state. Dr. Peeter Kirs Fall, 2003 MIT5314: Database Applications Slide # 45 Database Administration Transaction Management: Transaction Properties: Atomicity • • A transaction is a SINGLE (indivisible), invisible, logical unit of work A database request and ALL related operations MUST be completed • If ALL requirements are not, the transaction is aborted Durability • A transaction must be PERMANENT • When a transaction is completed, it has reached (and must remain) in a permanent state • Once in a permanent state, it can not be lost • Even if the database fails, the transaction remains Dr. Peeter Kirs Fall, 2003 MIT5314: Database Applications Slide # 46 Database Administration Transaction Management: Transaction Properties: Serializability • • • Each concurrent transaction is treated as thought they were received and executed in a serial (one after the other) fashion This is true even in a multi-user or distributed database If transactions do occur simultaneously, one is assigned precedence over the other Isolation • Dr. Peeter Kirs Data/Information provided/updated by a transaction can not be used by another (later transaction) until the first transaction is complete (i.e., accepted) Fall, 2003 MIT5314: Database Applications Slide # 47 Database Administration Transaction Management: Suppose that we wish to withdraw items from inventory Table Inventory part descrip onhand 01 Pens 276 02 Erasers 500 03 Paper 1000 Table Inventory part descrip onhand 01 Pens 276 02 Erasers 475 03 Paper Dr. Peeter Kirs 1000 IF we sell 25 Erasers: 1. Find the part Number 2. Read the number onhand 3. If the number onhand is < 25, ABORT the transaction 4. If the number onhand is >= 25, calculate the new number onhand quantity 500 - 25 = 475 5. Enter (update) the new number onhand quantity (The DBMS will update the Transaction log and Database Change Log) Fall, 2003 MIT5314: Database Applications Slide # 48 Database Administration Transaction Management: The SQL Commands needed are (sort-of) straight-forward: SELECT onhand FROM inventory WHERE part = 02; UPDATE inventory SET onhand = 475 ; OR Maybe SELECT onhand FROM inventory WHERE descrip = ‘Erasers’; UPDATE inventory SET onhand = onhand - 25 ; COMMIT; Dr. Peeter Kirs Table Inventory part descrip onhand 01 Pens 276 02 Erasers 500 03 Paper 1000 Table Inventory part descrip onhand 01 Pens 276 02 Erasers 475 03 Paper 1000 Fall, 2003 MIT5314: Database Applications Slide # 49 Database Administration Transaction Management: Why did you say sort-of ?? Notice we didn’t check to see if there were 25 Erasers available If there were not, we could not complete the transaction How do we do that ?? That is why we are going to learn SQL/PL (Structured Query Language/Programming Language) Stay Tuned Dr. Peeter Kirs Fall, 2003 MIT5314: Database Applications Slide # 50 Database Administration Transaction Management: Of course, even simple transactions are sometimes problematic: • Suppose that Dr. Mary Smith (physid: ‘123456789’) Transfers all her patients to Dr. Von Bulow (physid: ‘374659201’) The command: UPDATE patient SET patient.physid = ‘374659201’ WHERE patient.physid = ‘123456789’; Will NOT be accepted unless we first enter the command: INSERT INTO patient VALUES (‘374659201’, ‘Von Bulow, Klaus’, ……); Dr. Peeter Kirs Fall, 2003 MIT5314: Database Applications Slide # 51 Database Administration Transaction Management: Consider the following Statement: “A credit card transaction is a ternary relationship between a customer, a merchant, and a bank” Customer Transaction Merchant Given 1 merchant and 1 bank, how many customers? Given 1 customer and 1 bank, how many Merchants? Mandatory? Mandatory? Bank Which Makes the relationship? • An Associative Entity Dr. Peeter Kirs Given 1 customer and 1 Merchant, how many banks? Mandatory? Fall, 2003 MIT5314: Database Applications Slide # 52 Database Administration Transaction Management: Assume that the following attributes apply: CustID Customer BankID MerchantID TransAMT Transaction TransDate Merchant CustID MerchID CreditLim Other Bank Balance BankID Dr. Peeter Kirs Other Too Simple? Probably!! Fall, 2003 MIT5314: Database Applications Slide # 53 Database Administration Transaction Management: Our actual tables might appear as: Table Transaction CustID CredLim Balance A112233 1000 A112234 A112235 MerchID BankID TranAmt TranDate MerchID Other 325.87 A112233 LMR678 CB789 425.76 05/03/03 LMR678 ∙∙∙ 5000 4030.20 A112235 ALD609 WF890 107.34 05/03/03 GXT678 ∙∙∙ 400 125.87 A112234 LMR678 FN034 45,00 05/03/03 ALD609 ∙∙∙ A112233 GXT678 CB789 56.12 05/03/03 RTU665 ∙∙∙ A112235 RTU665 WF890 87.45 05/04/03 A112233 RTU665 CB789 46.75.45 05/04/03 Table Customer CustID BankID Other WF890 ∙∙∙ FN034 ∙∙∙ CB789 ∙∙∙ Table Merchant Table Bank Dr. Peeter Kirs Fall, 2003 MIT5314: Database Applications Slide # 54 Database Administration Transaction Management: A few Activities need to be carried out: When a transaction takes place, all of the attributes in the associative entity TRANSACTION must be recorded: At the same time, the customer’s CreditLim and balance must be checked: • If CredLim – Balance – TransAmt < 0, the purchase is denied (Aborted) • If CredLim – Balance – TransAmt >= 0, the purchase is Accepted IFF the purchase is accepted: • Customer Balance Must be updated • MerchantBal Must be updated IFF the purchase is denied: • The entire TRANSACTION is deleted Dr. Peeter Kirs Fall, 2003 MIT5314: Database Applications Slide # 55 Database Administration Transaction Management: Transaction Logs: (A Quick and Dirty Review) The DBMS uses transaction logs (A Table) to keep track of all transactions on a database Intended as an organizational record of transactions Necessary if a ROLLBACK is issued Necessary in case of a database failure/crash • In case of failure, the transaction log is used to ROLLFORWARD • Transactions added since the previous COMMIT are added and COMMITted to the database Dr. Peeter Kirs Fall, 2003 MIT5314: Database Applications Slide # 56 Database Administration Transaction Management: Transaction Logs: Consider a Sample Transaction Log for our Previous Problem: Table Customer Table Transaction CustID CredLim Balance CustID MerchID BankID TranAmt TranDate A112233 1000 325.87 ••• ••• ••• ••• ••• A112234 5000 4030.20 A112233 GXT678 CB789 56.12 05/03/03 A112235 400 125.87 ••• ••• ••• ••• ••• Trans_Num Table Row_ID Attribute Before After 10441 CUSTOMER A112233 Balance 269.75 325.87 10441 TRANSACTION CustID A112233 A112233 10441 TRANSACTION MerchID GXT678 GXT678 10441 TRANSACTION BankID CB798 CB798 10441 TRANSACTION TransDate 05/03/03 05/03/03 10441 TRANSACTION TransAmt 56.12 56.12 Assigned by DBMS Dr. Peeter Kirs NOTE: Only Information about affected Tables Included Fall, 2003 MIT5314: Database Applications Slide # 57 Database Administration Transaction Management: Transaction Logs: If the transaction is aborted, we can rollback with the transaction log: Table Customer (Before) Table Customer (After) CustID CredLim Balance CustID CredLim Balance A112233 1000 325.87 A112233 1000 269.75 A112234 5000 4030.20 A112234 5000 4030.20 A112235 400 125.87 A112235 400 125.87 Trans_Num Table Row_ID Attribute Before After 10441 CUSTOMER A112233 Balance 269.75 325.87 10441 TRANSACTION CustID A112233 A112233 10441 TRANSACTION MerchID GXT678 GXT678 10441 TRANSACTION BankID CB798 CB798 10441 TRANSACTION TransDate 05/03/03 05/03/03 10441 TRANSACTION TransAmt 56.12 56.12 Dr. Peeter Kirs Fall, 2003 MIT5314: Database Applications Slide # 58 Database Administration Concurrency Control: Problem: In a multi-user environment, simultaneous access to data can result in interference and data loss Solution: Concurrency Control The process of managing simultaneous operations against a database so that data integrity is maintained and the operations do not interfere with each other in a multiuser environment. Dr. Peeter Kirs Fall, 2003 MIT5314: Database Applications Slide # 59 Database Administration Concurrency Control: Issues in Concurrency Control: Lost Updates • Time Assume that there are two individuals sharing a checking account with a present balance of $400 • One of the individuals deposits $200 • Shortly afterward, one withdraws $150 Balance if Deposit is Lost Event Process Balance 11:04:00 Deposit 11:04:01 11:04:12 11:10:26 Withdrawl 11:11:12 11:11:52 READ BAL BAL = BAL + 200 WRITE BAL READBAL BAL = BAL - 150 WRITE BAL 400.00 600.00 600.00 600.00 450.00 450.00 400.00 250.00 250.00 Inaccurate Balance Dr. Peeter Kirs Fall, 2003 MIT5314: Database Applications Slide # 60 Database Administration Concurrency Control: Issues in Concurrency Control: Uncommitted Data • If A ROLLBACK is to take place, it must occur BEFORE any New Transactions Consider our previous example With the proper ROLLBACK • Time 11:04:00 11:04:01 11:04:12 11:04:49 11:10:26 11:11:12 11:11:52 Dr. Peeter Kirs Event Deposit Withdrawl Process READ BAL BAL = BAL + 200 WRITE BAL ** ROLLBACK READBAL BAL = BAL - 150 WRITE BAL Balance 400.00 600.00 600.00 400.00 250.00 250.00 Fall, 2003 MIT5314: Database Applications Slide # 61 Database Administration Concurrency Control: Issues in Concurrency Control: Uncommitted Data • Now consider what would occur if the rollback takes place AFTER the second withdrawl Time 11:04:00 11:04:01 11:04:12 11:10:26 11:11:12 11:11:39 11:11:52 Dr. Peeter Kirs Event Deposit Withdrawl Process READ BAL BAL = BAL + 200 WRITE BAL READBAL BAL = BAL - 150 ** ROLLBACK WRITE BAL Balance 400.00 600.00 600.00 600.00 450.00 400.00 Fall, 2003 MIT5314: Database Applications Slide # 62 Database Administration Concurrency Control: Issues in Concurrency Control: Inconsistent retrievals: • Occur when a transaction calculates results while another operation is taking place Time 11:04:00 11:04:01 11:04:15 11:04:32 Event Deposit Withdrawl Process READ BAL BAL = BAL + 200 BAL = BAL - 150 WRITE BAL Balance 400.00 600.00 250.00 600.00 Withdrawl Occurs while Deposit Update taking place Dr. Peeter Kirs Fall, 2003 MIT5314: Database Applications Slide # 63 Database Administration Concurrency Control: Transaction Scheduling • • Establishes the order in which concurrent transactions are processed Interleaves (meshes) the execution of database operations to ensure serializability • Bases actions on time stamping and locking techniques (to be explained) • Attempts to Optimize CPU usage by not having the CPU wait for a WRITE to occur after a READ • In our previous examples, transactions would be written to the log, and a read/write would not be processed until the previous transactions write was processed Dr. Peeter Kirs Fall, 2003 MIT5314: Database Applications Slide # 64 Database Administration Concurrency Control: Locking • • • Most common technique to achieve serialization Guarantees exclusive use of data items to a current transaction The Lock denies access (update) to another transaction until the previous transaction is committed • Locks prevent another transaction from reading inconsistent data • DBMSs automatically enforce locking procedures through the use of a Lock Manager Dr. Peeter Kirs Fall, 2003 MIT5314: Database Applications Slide # 65 Database Administration Concurrency Control: Locking Lock Granularity: • • The level at which the data is locked Database Level: • Entire database is locked • No transaction can access the data until the previous transaction has been committed • Preferable for batch operations • Inadequate for multi-user databases User A requests data from Table 1 (Database Locked) User A Commits or aborts (Database Unlocked) Dr. Peeter Kirs Current Database Table 1 User B requests data from Table 2 Table 2 (Wait ---- Database Locked) User B Transaction initiated Fall, 2003 MIT5314: Database Applications Slide # 66 Database Administration Concurrency Control: Locking Lock Granularity: • Table Level: • • Only the table accessed by a transaction is locked Less restrictive, but still inadequate for multi-user databases User A requests data from Table 2 (Table 2 Locked) User A Commits or aborts (Table 2 Unlocked) Dr. Peeter Kirs Table 1 Table 2 User B requests data from Table 1 (OK ---- Table Available) User C requests data from Table 2 (Wait ---- Table Locked) User C Transaction initiated Fall, 2003 MIT5314: Database Applications Slide # 67 Database Administration Concurrency Control: Locking Lock Granularity: • Page Level: • • A Page is a pre-specified amount of data (4K, 8K, etc.) which is read into memory from the database (stored on the disk) Allows for some multi-user transactions, but requires detailed checking (i.e., are the records requested by a transaction being used by a previous transaction) Dr. Peeter Kirs Fall, 2003 MIT5314: Database Applications Slide # 68 Database Administration Concurrency Control: Locking Lock Granularity: • Record Level: • ONLY the record requested is locked • All other records are available for subsequent transactions • Generally suitable for most multi-user systems • Field Level: • • Only the individual field accessed is locked Excellent for multi-user systems --- BUT ---• Dr. Peeter Kirs Requires involved programmatic checking Fall, 2003 MIT5314: Database Applications Slide # 69 Database Administration Concurrency Control: Locking Lock Types: • All locks are Binary: They are either locked or unlocked • Regardless of level of granularity, if locked the data is unavailable to other transactions Shared Locks (S-Locks): • Multiple users can read, but NOT update, data • If data is S-Locked, an X-Lock (Below) can not be placed on it Exclusive Locks (X-Locks): • Data can NOT be accessed, even for reading, by other users • If X-Locked, no other lock type can be placed on it Dr. Peeter Kirs Fall, 2003 MIT5314: Database Applications Slide # 70 Database Administration Concurrency Control: Deadlock • Impasse resulting from two or more transactions locking the same data at the same time • Each must wait for the other to unlock the data • Assume 2 people share a checking account and both try to withdraw money from an ATM at the same time: George Balance Read: $700.00 ATM Accessed: S-Lock Placed Time: 1:31:45 1:32:00 1:32:15 ATM Accessed: S-Lock Placed Withdrawl Request --- DENIED --- 1:32:30 Balance Read: $700.00 1:32:45 1:33:15 Wait (DEADLOCK) Withdrawl Request --- DENIED --- Laura Dr. Peeter Kirs Fall, 2003 MIT5314: Database Applications Slide # 71 Database Administration Concurrency Control: Deadlock Management Deadlock Prevention • • When accessed, all records necessary are X-Locked Other users must wait for the records to be released Deadlock Detection/Resolution • The DBMS periodically scans for deadlocks • If detected, one of the transactions is ‘backed-out’ Any transactions made during the deadlock are aborted When he resources become unlocked, the process is restarted • • (Note that this requires additional Computer Resources) Dr. Peeter Kirs Fall, 2003 MIT5314: Database Applications Slide # 72 Database Administration Concurrency Control: Deadlock Management Time Stamping • UNIQUE, MONOTONIC (i.e., increasing) time applied to each transaction • One time stamp for last read • • (additional record fields required) Read time stamp can not precede update time stamp • • Dr. Peeter Kirs One time stamp for last update Transaction is aborted and rescheduled Transaction submitted for processing in order of time stamp Fall, 2003 MIT5314: Database Applications Slide # 73 Database Administration Concurrency Control: Versioning (Optimistic Management) • • Assumes that in most cases the same record will NOT be accessed concurrently OR will simply be read Each time a record is requested, the DBMS creates a new record ‘version’ Any changes made are made to the DB version • The changed version is compared to the original • • If no conflicts exist, the version is accepted • Otherwise, the changes are aborted, and the system is rolled-back Dr. Peeter Kirs Fall, 2003 MIT5314: Database Applications Slide # 74 Database Administration Concurrency Control: Versioning (Optimistic Management) • Consider our previous example Check Against Original George Commit ATM Accessed 1:31:45 Balance Read: $700.00 1:32:00 ATM Accessed 1:32:15 Withdraw $200 New Balance $500 1:32:30 1:32:45 1:33:15 1:33:24 Balance Read $700.00 Withdraw $300 New Balance $400 Laura Check Against (new) Original Rollback and Restart Dr. Peeter Kirs Fall, 2003 MIT5314: Database Applications Slide # 75 Database Administration ??? Any Questions ??? You Moron!! I know Evrythin!!! Dr. Peeter Kirs Fall, 2003 MIT5314: Database Applications Slide # 76 Database Administration Dr. Peeter Kirs Fall, 2003