8 Copyright © 2005, Oracle. All rights reserved. Managing Data.

Slides:



Advertisements
Similar presentations
4 Copyright © 2005, Oracle. All rights reserved. Managing the Oracle Instance.
Advertisements

Manipulating Data Schedule: Timing Topic 60 minutes Lecture
Virtual training week 4 structured query language (SQL)
9 Copyright © 2004, Oracle. All rights reserved. Managing Data.
Transaction Processing. Objectives After completing this lesson, you should be able to do the following: –Define transactions effectively for an application.
9-1 Copyright  Oracle Corporation, All rights reserved. Data Manipulation Language A DML statement is executed when you: – Add new rows to a table.
1 Data Concurrency David Konopnicki 1997 Revised by Mordo Shalom 2004.
Creating Triggers.
Transaction Management and Concurrency Control
8 Copyright © Oracle Corporation, All rights reserved. Manipulating Data.
Copyright  Oracle Corporation, All rights reserved. 9 Manipulating Data: INSERT, UPDATE, DELETE.
9 Copyright © 2009, Oracle. All rights reserved. Managing Data Concurrency.
Database Administration Part 1 Chapter Six CSCI260 Database Applications.
Database Systems: Design, Implementation, and Management Eighth Edition Chapter 10 Transaction Management and Concurrency Control.
Chapter 5 Data Manipulation and Transaction Control Oracle 10g: SQL
2 Copyright © 2004, Oracle. All rights reserved. Creating Stored Functions.
10 Copyright © 2005, Oracle. All rights reserved. Implementing Oracle Database Security.
4 Copyright © 2004, Oracle. All rights reserved. Database Interfaces.
I Copyright © 2004, Oracle. All rights reserved. Introduction.
Database Technical Session By: Prof. Adarsh Patel.
9 Copyright © 2005, Oracle. All rights reserved. Administering User Security.
1Introduction Objectives 1-2 Course Objectives 1-3 Oracle Products 1-4 Relational Database Systems 1-5 How the Data Is Organized 1-6 Integrity Constraints.
I Copyright © Oracle Corporation, All rights reserved. Introduction.
Copyright © 2011 Accenture All Rights Reserved. Accenture, its logo, and High Performance Delivered are trademarks of Accenture. SQL Workshop Day 3.
Oracle Locking Michael Messina Principal Database Analyst Indiana University.
7 Copyright © 2004, Oracle. All rights reserved. Administering Users.
Triggers A Quick Reference and Summary BIT 275. Triggers SQL code permits you to access only one table for an INSERT, UPDATE, or DELETE statement. The.
1 Copyright © 2004, Oracle. All rights reserved. Introduction.
Controlling User Access. Objectives After completing this lesson, you should be able to do the following: Create users Create roles to ease setup and.
9 Copyright © 2007, Oracle. All rights reserved. Managing Data and Concurrency.
Lecture 8 Creating Stored Functions. Objectives  After completing this lesson, you should be able to do the following:  What is Function?  Types of.
Objectives After completing this lesson, you should be able to do the following: Describe each data manipulation language (DML) statement Insert rows.
Manipulating Data in PL/SQL. 2 home back first prev next last What Will I Learn? Construct and execute PL/SQL statements that manipulate data with DML.
Transactions and Locks A Quick Reference and Summary BIT 275.
7 Copyright © 2005, Oracle. All rights reserved. Managing Undo Data.
8 Copyright © Oracle Corporation, All rights reserved. Manipulating Data.
Creating DDL and Database Event Triggers. 2 home back first prev next last What Will I Learn? Describe events that cause DDL and database event triggers.
Database Programming Sections 14– database transactions and controlling User Access.
CSC 411/511: DBMS Design Dr. Nan WangCSC411_L12_JDBC_MySQL 1 Transations.
Transactions, Roles & Privileges Oracle and ANSI Standard SQL Lecture 11.
1 Advanced Database Concepts Transaction Management and Concurrency Control.
13 Copyright © Oracle Corporation, All rights reserved. Controlling User Access.
Module 11: Managing Transactions and Locks
Database Systems: Design, Implementation, and Management Eighth Edition Chapter 10 Transaction Management and Concurrency Control.
©Bob Godfrey, 2002, 2005 Lecture 17: Transaction Integrity and Concurrency BSA206 Database Management Systems.
3 Database Systems: Design, Implementation, and Management CHAPTER 9 Transaction Management and Concurrency Control.
1 Copyright © 2009, Oracle. All rights reserved. Controlling User Access.
10 Copyright © 2004, Oracle..All rights reserved. PL/SQL.
Oracle 10g Database Administrator: Implementation and Administration Chapter 10 Basic Data Management.
SQL Introduction to database and SQL. Chapter 1: Databases and Database Users 6 Introduction to Databases Databases touch all aspects of our lives. Examples:
1 Database Fundamentals Introduction to SQL. 2 SQL Overview Structured Query Language The standard for relational database management systems (RDBMS)
8 Copyright © 2005, Oracle. All rights reserved. Managing Schema Objects.
In this session, you will learn to: Implement triggers Implement transactions Objectives.
4 Copyright © 2004, Oracle. All rights reserved. Managing the Oracle Instance.
Oracle 11g: SQL Chapter 5 Data Manipulation and Transaction Control.
7 Copyright © 2004, Oracle. All rights reserved. Managing Schema Objects.
6 Copyright © 2009, Oracle. All rights reserved. Using Dynamic SQL.
1 Copyright © 2005, Oracle. All rights reserved. Oracle Database Administration: Overview.
9 Copyright © 2005, Oracle. All rights reserved. Managing Undo Data.
10 Copyright © 2007, Oracle. All rights reserved. Managing Undo Data.
Controlling User Access
Managing Privileges.
Managing Data and Concurrency
Introduction To Database Systems
SQL Stored Triggers Presented by: Dr. Samir Tartir
LAB: Web-scale Data Management on a Cloud
Chapter 10 Transaction Management and Concurrency Control
مقدمة في قواعد البيانات
1 Manipulating Data. 2 Objectives After completing this lesson, you should be able to do the following:  Describe each data manipulation language (DML)
Managing Privileges.
Presentation transcript:

8 Copyright © 2005, Oracle. All rights reserved. Managing Data

8-2 Copyright © 2005, Oracle. All rights reserved. Objectives After completing this lesson, you should be able to do the following: Manage data through the use of SQL Identify and administer PL/SQL objects Describe triggers and triggering events Monitor and resolve locking conflicts

8-3 Copyright © 2005, Oracle. All rights reserved. Manipulating Data Through SQL SQL> INSERT INTO employees VALUES 2 3 'IT_PROG',NULL,NULL,100,90); 1 row created. SQL> UPDATE employees SET SALARY= WHERE EMPLOYEE_ID = 9999; 1 row updated. SQL> DELETE from employees 2 WHERE EMPLOYEE_ID = 9999; 1 row deleted.

8-4 Copyright © 2005, Oracle. All rights reserved. The INSERT Command Create one row at a time. Insert many rows from another table.

8-5 Copyright © 2005, Oracle. All rights reserved. The UPDATE Command Use the UPDATE command to change zero or more rows of a table.

8-6 Copyright © 2005, Oracle. All rights reserved. The DELETE Command Use the DELETE command to remove zero or more rows from a table.

8-7 Copyright © 2005, Oracle. All rights reserved. The MERGE Command Use the MERGE command to perform both INSERT and UPDATE in a single command.

8-8 Copyright © 2005, Oracle. All rights reserved. The MERGE Command Full Notes Page

8-9 Copyright © 2005, Oracle. All rights reserved. The COMMIT and ROLLBACK Commands These are used to finish a transaction: COMMIT : Makes the change permanent ROLLBACK : Undoes the change

8-10 Copyright © 2005, Oracle. All rights reserved. Integrity Constraints and DML

8-11 Copyright © 2005, Oracle. All rights reserved. PL/SQL Procedural language/structured query language (PL/SQL) is a fourth-generation programming language (4GL). It provides: Procedural extensions to SQL Portability across platforms and products Higher level of security and data integrity protection Support for object-oriented programming

8-12 Copyright © 2005, Oracle. All rights reserved. PL/SQL Full Notes Page

8-13 Copyright © 2005, Oracle. All rights reserved. Administering PL/SQL Objects Database administrators should be able to: Identify problem PL/SQL objects Recommend the appropriate use of PL/SQL Load PL/SQL objects into the database Assist PL/SQL developers in troubleshooting

8-14 Copyright © 2005, Oracle. All rights reserved. PL/SQL Objects There are many types of PL/SQL database objects: Package Package body Type body Procedure Function Trigger

8-15 Copyright © 2005, Oracle. All rights reserved. Functions

8-16 Copyright © 2005, Oracle. All rights reserved. Procedures Procedures are used to perform a specific action. They: Pass values in and out by using an argument list Are called with the CALL command

8-17 Copyright © 2005, Oracle. All rights reserved. Packages Packages are collections of functions and procedures. Each package should consist of two objects: Package specification Package body Package specification

8-18 Copyright © 2005, Oracle. All rights reserved. Package Specification and Body

8-19 Copyright © 2005, Oracle. All rights reserved. Built-in Packages The Oracle database comes with over 350 built-in PL/SQL packages, which provide: –Administration and maintenance utilities –Extended functionality Use the DESCRIBE command to view subprograms.

8-20 Copyright © 2005, Oracle. All rights reserved. Triggers

8-21 Copyright © 2005, Oracle. All rights reserved. Triggering Events Event TypeExamples of Events DML INSERT, UPDATE, DELETE DDL CREATE, DROP, ALTER, GRANT, REVOKE, RENAME, Database LOGON, LOGOFF, STARTUP, SHUTDOWN, SERVERERROR

8-22 Copyright © 2005, Oracle. All rights reserved. Locks Locks prevent multiple sessions from changing the same data at the same time. They are automatically obtained at the lowest possible level for a given statement. They do not escalate. Transaction 1 SQL> UPDATE employees 2 SET salary=salary*1.1 3 WHERE employee_id=100; SQL> UPDATE employees 2 SET salary=salary WHERE employee_id=100; Transaction 2

8-23 Copyright © 2005, Oracle. All rights reserved. Locking Mechanism High level of data concurrency: –Row-level locks for inserts, updates, and deletes –No locks required for queries Automatic queue management Locks held until the transaction ends (with the COMMIT or ROLLBACK operation) Transaction 1 SQL> UPDATE employees 2 SET salary=salary*1.1 3 WHERE employee_id=101; SQL> UPDATE employees 2 SET salary=salary WHERE employee_id=100; Transaction 2

8-24 Copyright © 2005, Oracle. All rights reserved. Data Concurrency Time: 09:00:00 Transaction 1 UPDATE hr.employees SET salary=salary+100 WHERE employee_id=100; Transaction 2 UPDATE hr.employees SET salary=salary+100 WHERE employee_id=101; Transaction 3 UPDATE hr.employees SET salary=salary+100 WHERE employee_id=102;... Transaction x UPDATE hr.employees SET salary=salary+100 WHERE employee_id=xxx;

8-25 Copyright © 2005, Oracle. All rights reserved. Data Concurrency Full Notes Page

8-26 Copyright © 2005, Oracle. All rights reserved. DML Locks Transaction 1 SQL> UPDATE employees 2 SET salary=salary*1.1 3 WHERE employee_id= 106; 1 row updated. SQL> UPDATE employees 2 SET salary=salary*1.1 3 WHERE employee_id= 107; 1 row updated. Transaction 2 Each DML transaction must acquire two locks: Exclusive row lock for the row or rows being updated Row-exclusive table-level lock for the table containing the rows

8-27 Copyright © 2005, Oracle. All rights reserved. Enqueue Mechanism The enqueue mechanism keeps track of: Sessions waiting for locks The requested lock mode The order in which sessions requested the lock

8-28 Copyright © 2005, Oracle. All rights reserved. Lock Conflicts UPDATE employees SET salary=salary+100 WHERE employee_id=100; 1 row updated. 9:00:00 UPDATE employees SET salary=salary+100 WHERE employee_id=101; 1 row updated. UPDATE employees SET COMMISION_PCT=2 WHERE employee_id=101; Session waits enqueued due to lock conflict. 9:00:05 SELECT sum(salary) FROM employees; SUM(SALARY) Session still waiting! 16:30:00 Many selects, inserts, updates, and deletes during the last 7.5 hours, but no commits or rollbacks! 1 row updated. Session continues. 16:30:01 commit; Transaction 1Transaction 2Time

8-29 Copyright © 2005, Oracle. All rights reserved. Possible Causes of Lock Conflicts Uncommitted changes Long-running transactions Unnecessarily high locking levels

8-30 Copyright © 2005, Oracle. All rights reserved. Detecting Lock Conflicts Select Blocking Sessions from the Performance page. Click the Session ID link to view information about the locking session, including the actual SQL statement.

8-31 Copyright © 2005, Oracle. All rights reserved. Resolving Lock Conflicts To resolve a lock conflict: Have the session holding the lock commit or roll back Terminate the session holding the lock as a last resort

8-32 Copyright © 2005, Oracle. All rights reserved. Resolving Lock Conflicts Using SQL SQL statements can be used to determine the blocking session and kill it. SQL> alter system kill session '144,8982' immediate; SQL> select sid, serial#, username from v$session where sid in (select blocking_session from v$session) Result: 1 2

8-33 Copyright © 2005, Oracle. All rights reserved. Deadlocks Transaction 2Transaction 1 UPDATE employees SET salary = salary x 1.1 WHERE employee_id = 1000; UPDATE employees SET salary = salary x 1.1 WHERE employee_id = 2000; ORA-00060: Deadlock detected while waiting for resource UPDATE employees SET manager = 1342 WHERE employee_id = 2000; UPDATE employees SET manager = 1342 WHERE employee_id = 1000; 9:00 9:15 9:16

8-34 Copyright © 2005, Oracle. All rights reserved. Summary In this lesson, you should have learned how to: Manage data through the use of SQL Identify and administer PL/SQL objects Describe triggers and triggering events Monitor and resolve locking conflicts

8-35 Copyright © 2005, Oracle. All rights reserved. Practice Overview: Administering Schema Objects This practice covers the following topics: Identifying deadlock conflicts Resolving deadlock conflicts

8-36 Copyright © 2005, Oracle. All rights reserved. Full Notes Page