SlideShare une entreprise Scribd logo
1  sur  32
TRANSACTION Pemateri : Dimara Kusuma Hakim, ST.
Sumber ,[object Object],[object Object],[object Object],[object Object],[object Object]
What Is a Transaction? ,[object Object],[object Object],[object Object]
Sample… Bank Transaction ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Transaction Characteristics  (ACID properties) ,[object Object],[object Object],[object Object],[object Object]
Transactional Processing
Defining Transactions ,[object Object],[object Object],[object Object]
Note this… ,[object Object],[object Object]
AutoCommit Transactions ,[object Object]
… ,[object Object],[object Object],[implied begin transaction] UPDATE account SET balance = balance + 1000 WHERE account_no = “123456789” [implied commit or rollback transaction]
…  Consider this ! Banking Transaction DECLARE @SOURCE_account char(10),  @DESTINATION_account char(10) SELECT @source_account = ‘0003456321’,  @destination_account = ‘0003456322’ UPDATE account  SET balance = balance - $1000  WHERE account_number = @source_account UPDATE account  SET balance = balance + $1000 WHERE account_number = @destination_account
… ,[object Object],[object Object]
Explicit Transactions ,[object Object],[object Object]
… ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
… ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Explicit Transactions
Explicit Transactions, Transaction handling
Explicit Transactions, Nested  Transaction  (Sub Transaction)
Explicit Transactions, Distributed Transaction
Explicit Transactions, Banking Transaction declare @source_account char(10), @destination_account char(10) select @source_account = ‘0003456321’, @destination_account = ‘0003456322’ BEGIN TRAN update account set balance = balance - $1000 where account_number = @source_account if @@error != 0 begin rollback tran return end update account set balance = balance + $1000 where account_number = @destination_account if @@error != 0 begin rollback tran return end commit tran
Explicit Transactions, Banking Transaction – Other Solution declare @source_account char(10), @destination_account char(10) select @source_account = ‘0003456321’, @destination_account = ‘0003456322’ BEGIN TRY Begin Transaction update account set balance = balance - $1000 where account_number = @source_account update account set balance = balance + $1000 where account_number = @destination_account Commit Transaction END TRY BEGIN CATCH  RaiseError('Transaksinya Error Nich, Gimana ya? ', 1, 1, 1,1, 1, 1, 1 ); RollBack Transaction END CATCH
Savepoints ,[object Object],[object Object],BEGIN TRAN mywork UPDATE table1... SAVE TRAN savepoint1 INSERT INTO table2... DELETE table3... IF @@error = -1 ROLLBACK TRAN savepoint1 COMMIT TRAN
Implicit Transactions ,[object Object],[object Object]
[object Object],[object Object]
SET IMPLICIT_TRANSACTIONS ON Go INSERT INTO table1 UPDATE table2 COMMIT Go SELECT * FROM table1 BEGIN TRAN DELETE FROM table1 COMMIT Go DROP TABLE table1 COMMIT
set implicit_transactions on Go Declare @source_account char(10), @destination_account char(10) select @source_account = ‘0003456321’, @destination_account = ‘0003456322’ UPDATE account set balance = balance - $1000 where account_number = @source_account if @@error != 0 begin rollback return End UPDATE account set balance = balance + $1000 where account_number = @destination_account if @@error != 0 begin rollback return end COMMIT
… ,[object Object]
Transactions and Stored Procedures ,[object Object]
… CREATE TABLE testable (col1 int) go CREATE TABLE auditlog (who varchar(128), valuentered int null) go CREATE PROCEDURE trantest @arg INT AS BEGIN TRAN IF EXISTS( SELECT * FROM testable WHERE col1 = @arg ) BEGIN RAISERROR (‘Value %d already exists!’, 16, -1, @arg) ROLLBACK TRANSACTION END ELSE BEGIN INSERT INTO testable (col1) VALUES (@arg) COMMIT TRAN END INSERT INTO auditlog (who, valuentered) VALUES (USER_NAME(), @arg) return
Distributed Transactions ,[object Object]
… ,[object Object]
QUIZ  ,[object Object],[object Object],[object Object],[object Object]

Contenu connexe

En vedette

Simulasi - Pertemuan III
Simulasi - Pertemuan IIISimulasi - Pertemuan III
Simulasi - Pertemuan III
Dimara Hakim
 
Simulasi - Pertemuan IV
Simulasi - Pertemuan IVSimulasi - Pertemuan IV
Simulasi - Pertemuan IV
Dimara Hakim
 
Pemrograman Modular
Pemrograman ModularPemrograman Modular
Pemrograman Modular
Dimara Hakim
 
Struktur Level Data
Struktur Level DataStruktur Level Data
Struktur Level Data
Dimara Hakim
 
Simulasi - Pertemuan I
Simulasi - Pertemuan ISimulasi - Pertemuan I
Simulasi - Pertemuan I
Dimara Hakim
 
JENI Slides-Intro1-Bab06-Struktur kontrol
JENI Slides-Intro1-Bab06-Struktur kontrolJENI Slides-Intro1-Bab06-Struktur kontrol
JENI Slides-Intro1-Bab06-Struktur kontrol
Dimara Hakim
 
query optimization
query optimizationquery optimization
query optimization
Dimara Hakim
 
Struktur Level Program
Struktur Level ProgramStruktur Level Program
Struktur Level Program
Dimara Hakim
 
Intro oracle10gexpress
Intro oracle10gexpressIntro oracle10gexpress
Intro oracle10gexpress
jatin Sareen
 
Oracle intro to designer abridged
Oracle intro to designer abridgedOracle intro to designer abridged
Oracle intro to designer abridged
FITSFSd
 
Simulasi - Pertemuan II
Simulasi - Pertemuan IISimulasi - Pertemuan II
Simulasi - Pertemuan II
Dimara Hakim
 

En vedette (20)

Simulasi - Pertemuan III
Simulasi - Pertemuan IIISimulasi - Pertemuan III
Simulasi - Pertemuan III
 
Simulasi - Pertemuan IV
Simulasi - Pertemuan IVSimulasi - Pertemuan IV
Simulasi - Pertemuan IV
 
Pemrograman Modular
Pemrograman ModularPemrograman Modular
Pemrograman Modular
 
Struktur Level Data
Struktur Level DataStruktur Level Data
Struktur Level Data
 
Simulasi - Pertemuan I
Simulasi - Pertemuan ISimulasi - Pertemuan I
Simulasi - Pertemuan I
 
JENI Slides-Intro1-Bab06-Struktur kontrol
JENI Slides-Intro1-Bab06-Struktur kontrolJENI Slides-Intro1-Bab06-Struktur kontrol
JENI Slides-Intro1-Bab06-Struktur kontrol
 
query optimization
query optimizationquery optimization
query optimization
 
Struktur Level Program
Struktur Level ProgramStruktur Level Program
Struktur Level Program
 
Desain Top Down
Desain Top DownDesain Top Down
Desain Top Down
 
Intro to Application Express
Intro to Application ExpressIntro to Application Express
Intro to Application Express
 
Intro oracle10gexpress
Intro oracle10gexpressIntro oracle10gexpress
Intro oracle10gexpress
 
Tutorial Instalisasi Oracle 10g dan Setting User
Tutorial Instalisasi Oracle 10g dan Setting UserTutorial Instalisasi Oracle 10g dan Setting User
Tutorial Instalisasi Oracle 10g dan Setting User
 
Step By Step How To Install Oracle XE
Step By Step How To Install Oracle XEStep By Step How To Install Oracle XE
Step By Step How To Install Oracle XE
 
IBM Informix Database SQL Set operators and ANSI Hash Join
IBM Informix Database SQL Set operators and ANSI Hash JoinIBM Informix Database SQL Set operators and ANSI Hash Join
IBM Informix Database SQL Set operators and ANSI Hash Join
 
Makalah teori antrian (SISTEM ANTRIAN MM TAK HINGGA)
Makalah teori antrian (SISTEM ANTRIAN MM TAK HINGGA)Makalah teori antrian (SISTEM ANTRIAN MM TAK HINGGA)
Makalah teori antrian (SISTEM ANTRIAN MM TAK HINGGA)
 
Oracle intro to designer abridged
Oracle intro to designer abridgedOracle intro to designer abridged
Oracle intro to designer abridged
 
Simulasi - Pertemuan II
Simulasi - Pertemuan IISimulasi - Pertemuan II
Simulasi - Pertemuan II
 
Sql server ___________ (advance sql)
Sql server  ___________  (advance sql)Sql server  ___________  (advance sql)
Sql server ___________ (advance sql)
 
Time-Based Blind SQL Injection using Heavy Queries
Time-Based Blind SQL Injection using Heavy QueriesTime-Based Blind SQL Injection using Heavy Queries
Time-Based Blind SQL Injection using Heavy Queries
 
Oracle database introduction
Oracle database introductionOracle database introduction
Oracle database introduction
 

Similaire à Transaction

PROCEDURE FOR MONTH END DAY 1 INCLUDING SCREEN SHOT & SCRIPTS (Final rev 090211)
PROCEDURE FOR MONTH END DAY 1 INCLUDING SCREEN SHOT & SCRIPTS (Final rev 090211)PROCEDURE FOR MONTH END DAY 1 INCLUDING SCREEN SHOT & SCRIPTS (Final rev 090211)
PROCEDURE FOR MONTH END DAY 1 INCLUDING SCREEN SHOT & SCRIPTS (Final rev 090211)
Shakil Zaman
 
dokumen.tips_silberschatz-korth-and-sudarshan1-transactions-transaction-conce...
dokumen.tips_silberschatz-korth-and-sudarshan1-transactions-transaction-conce...dokumen.tips_silberschatz-korth-and-sudarshan1-transactions-transaction-conce...
dokumen.tips_silberschatz-korth-and-sudarshan1-transactions-transaction-conce...
DrCViji
 

Similaire à Transaction (20)

1_Transaction.pdf
1_Transaction.pdf1_Transaction.pdf
1_Transaction.pdf
 
MySQL Transactions
MySQL TransactionsMySQL Transactions
MySQL Transactions
 
Transaction
TransactionTransaction
Transaction
 
Database Transactions and SQL Server Concurrency
Database Transactions and SQL Server ConcurrencyDatabase Transactions and SQL Server Concurrency
Database Transactions and SQL Server Concurrency
 
TRANSACTION MANAGEMENT AND TIME STAMP PROTOCOLS AND BACKUP RECOVERY
TRANSACTION MANAGEMENT AND TIME STAMP PROTOCOLS AND BACKUP RECOVERYTRANSACTION MANAGEMENT AND TIME STAMP PROTOCOLS AND BACKUP RECOVERY
TRANSACTION MANAGEMENT AND TIME STAMP PROTOCOLS AND BACKUP RECOVERY
 
Transation.....thanveeer
Transation.....thanveeerTransation.....thanveeer
Transation.....thanveeer
 
What is Advance DBMS, introduction to ADBMS
What is Advance DBMS, introduction to ADBMSWhat is Advance DBMS, introduction to ADBMS
What is Advance DBMS, introduction to ADBMS
 
Introduction to mysql part 5
Introduction to mysql part 5Introduction to mysql part 5
Introduction to mysql part 5
 
PROCEDURE FOR MONTH END DAY 1 INCLUDING SCREEN SHOT & SCRIPTS (Final rev 090211)
PROCEDURE FOR MONTH END DAY 1 INCLUDING SCREEN SHOT & SCRIPTS (Final rev 090211)PROCEDURE FOR MONTH END DAY 1 INCLUDING SCREEN SHOT & SCRIPTS (Final rev 090211)
PROCEDURE FOR MONTH END DAY 1 INCLUDING SCREEN SHOT & SCRIPTS (Final rev 090211)
 
Sistem manajemen basis data 8
Sistem manajemen basis data   8Sistem manajemen basis data   8
Sistem manajemen basis data 8
 
Transaction in MYSQL
Transaction in MYSQLTransaction in MYSQL
Transaction in MYSQL
 
Autonomous transaction
Autonomous transactionAutonomous transaction
Autonomous transaction
 
Chapter 5 transactions and dcl statements
Chapter 5  transactions and dcl statementsChapter 5  transactions and dcl statements
Chapter 5 transactions and dcl statements
 
Transaction Properties in database | ACID Properties
Transaction Properties in database | ACID PropertiesTransaction Properties in database | ACID Properties
Transaction Properties in database | ACID Properties
 
Transaction and concurrency pitfalls in Java
Transaction and concurrency pitfalls in JavaTransaction and concurrency pitfalls in Java
Transaction and concurrency pitfalls in Java
 
Restoration and-concurrency-database
Restoration and-concurrency-databaseRestoration and-concurrency-database
Restoration and-concurrency-database
 
Module04
Module04Module04
Module04
 
dokumen.tips_silberschatz-korth-and-sudarshan1-transactions-transaction-conce...
dokumen.tips_silberschatz-korth-and-sudarshan1-transactions-transaction-conce...dokumen.tips_silberschatz-korth-and-sudarshan1-transactions-transaction-conce...
dokumen.tips_silberschatz-korth-and-sudarshan1-transactions-transaction-conce...
 
dbms sanat ppt.pdf
dbms sanat ppt.pdfdbms sanat ppt.pdf
dbms sanat ppt.pdf
 
Less09 Data
Less09 DataLess09 Data
Less09 Data
 

Plus de Dimara Hakim

Plus de Dimara Hakim (20)

modul6
modul6modul6
modul6
 
Denormalisasi
DenormalisasiDenormalisasi
Denormalisasi
 
ELS
ELSELS
ELS
 
ASC
ASCASC
ASC
 
PENDAHULUAN. SISTEM, MODEL, DAN SIMULASI
PENDAHULUAN. SISTEM, MODEL, DAN SIMULASIPENDAHULUAN. SISTEM, MODEL, DAN SIMULASI
PENDAHULUAN. SISTEM, MODEL, DAN SIMULASI
 
Tugas 1
Tugas 1Tugas 1
Tugas 1
 
Disk-based storage
Disk-based storageDisk-based storage
Disk-based storage
 
Index
IndexIndex
Index
 
Physical elements of data
Physical elements of dataPhysical elements of data
Physical elements of data
 
Normalisasi
NormalisasiNormalisasi
Normalisasi
 
b - Normalizing a Data Model
b - Normalizing a Data Modelb - Normalizing a Data Model
b - Normalizing a Data Model
 
a - Normalizing a Data Model
a - Normalizing a Data Modela - Normalizing a Data Model
a - Normalizing a Data Model
 
Data Access Technologies
Data Access TechnologiesData Access Technologies
Data Access Technologies
 
Database Management Systems (DBMS)
Database Management Systems (DBMS)Database Management Systems (DBMS)
Database Management Systems (DBMS)
 
Bab 1b The Structure Of A Computer Program
Bab 1b   The Structure Of A Computer ProgramBab 1b   The Structure Of A Computer Program
Bab 1b The Structure Of A Computer Program
 
OOP
OOPOOP
OOP
 
Bab 2 Rekayasa Perangkat Lunak 5
Bab 2   Rekayasa Perangkat Lunak  5Bab 2   Rekayasa Perangkat Lunak  5
Bab 2 Rekayasa Perangkat Lunak 5
 
Bab 2 Rekayasa Perangkat Lunak 3
Bab 2   Rekayasa Perangkat Lunak  3Bab 2   Rekayasa Perangkat Lunak  3
Bab 2 Rekayasa Perangkat Lunak 3
 
Bab 2 Rekayasa Perangkat Lunak 2
Bab 2   Rekayasa Perangkat Lunak  2Bab 2   Rekayasa Perangkat Lunak  2
Bab 2 Rekayasa Perangkat Lunak 2
 
Bab 2 Rekayasa Perangkat Lunak 1
Bab 2   Rekayasa Perangkat Lunak  1Bab 2   Rekayasa Perangkat Lunak  1
Bab 2 Rekayasa Perangkat Lunak 1
 

Dernier

Dernier (20)

How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 

Transaction

  • 1. TRANSACTION Pemateri : Dimara Kusuma Hakim, ST.
  • 2.
  • 3.
  • 4.
  • 5.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11. … Consider this ! Banking Transaction DECLARE @SOURCE_account char(10), @DESTINATION_account char(10) SELECT @source_account = ‘0003456321’, @destination_account = ‘0003456322’ UPDATE account SET balance = balance - $1000 WHERE account_number = @source_account UPDATE account SET balance = balance + $1000 WHERE account_number = @destination_account
  • 12.
  • 13.
  • 14.
  • 15.
  • 18. Explicit Transactions, Nested Transaction (Sub Transaction)
  • 20. Explicit Transactions, Banking Transaction declare @source_account char(10), @destination_account char(10) select @source_account = ‘0003456321’, @destination_account = ‘0003456322’ BEGIN TRAN update account set balance = balance - $1000 where account_number = @source_account if @@error != 0 begin rollback tran return end update account set balance = balance + $1000 where account_number = @destination_account if @@error != 0 begin rollback tran return end commit tran
  • 21. Explicit Transactions, Banking Transaction – Other Solution declare @source_account char(10), @destination_account char(10) select @source_account = ‘0003456321’, @destination_account = ‘0003456322’ BEGIN TRY Begin Transaction update account set balance = balance - $1000 where account_number = @source_account update account set balance = balance + $1000 where account_number = @destination_account Commit Transaction END TRY BEGIN CATCH RaiseError('Transaksinya Error Nich, Gimana ya? ', 1, 1, 1,1, 1, 1, 1 ); RollBack Transaction END CATCH
  • 22.
  • 23.
  • 24.
  • 25. SET IMPLICIT_TRANSACTIONS ON Go INSERT INTO table1 UPDATE table2 COMMIT Go SELECT * FROM table1 BEGIN TRAN DELETE FROM table1 COMMIT Go DROP TABLE table1 COMMIT
  • 26. set implicit_transactions on Go Declare @source_account char(10), @destination_account char(10) select @source_account = ‘0003456321’, @destination_account = ‘0003456322’ UPDATE account set balance = balance - $1000 where account_number = @source_account if @@error != 0 begin rollback return End UPDATE account set balance = balance + $1000 where account_number = @destination_account if @@error != 0 begin rollback return end COMMIT
  • 27.
  • 28.
  • 29. … CREATE TABLE testable (col1 int) go CREATE TABLE auditlog (who varchar(128), valuentered int null) go CREATE PROCEDURE trantest @arg INT AS BEGIN TRAN IF EXISTS( SELECT * FROM testable WHERE col1 = @arg ) BEGIN RAISERROR (‘Value %d already exists!’, 16, -1, @arg) ROLLBACK TRANSACTION END ELSE BEGIN INSERT INTO testable (col1) VALUES (@arg) COMMIT TRAN END INSERT INTO auditlog (who, valuentered) VALUES (USER_NAME(), @arg) return
  • 30.
  • 31.
  • 32.