Anda di halaman 1dari 10

SECTION 18 - TCL

18-1 Database Transactions


TUJUAN
Materi ini mencakup tujuan-tujuan seperti berikut :
- Menentukan istilat COMIT, ROLLBACK, dan SAVEPOINT krena berkaitan dengan transaksi data
- Daftar ketiga keuntungandari pernyataan COMMIT, ROLLBACK, dan SAVEPOINT
- Jelaskan mengapa hal ini penting, karena untuk mengontrol aliran pemrosesan transaksi
TUJUAN
- Bagaimana jika bank tidak memiliki proses sistematis untuk mencatat setoran dan penarikan ?
- Bagaimana pihak customer tahu jika setoran dikreditkan ke akun customer sebelum customer
menarik uang ?
- Customer dapat membayangkan kebingungan yang akan ditimbulkannya.
TUJUAN
- Kelebihannya, bank mengendalikan proses transaksi untuk memastikan konsistensi data.
- Dalam materi ini anda akan belajar bagaimana proses mengubah dan mengelola data dan
bagaimana perubahan pada basis data dilakukan atau dibatalkan.
- COMMIT, ROLLBACK, dan SAVEPOINT tidak didukung di Oracle Application Express, karena
cara Oracle Application Express mengelola koneksi ke database.
TRANSAKSI
- Transaksi adalah konsep dasar dari semua sistem basis data
- Transaksi memungkinkan pengguna untuk melakukan perubahan pada data dan kemudian
memutuskan apakah akan meyimpan atau membuang pekerjaan.
- Transaksi basis data menggabungkan berbagai langkah menjadi satu unit kerja yang logis.
TRANSAKSI
- Suatu transaksi terdiri dari beberapa pernyataan seperti dibawah ini :
a. Pernyataan DML merupakan suatu perubahan konsisten pada data. Pernyataan DML mencakup
INSERT, UPDATE, DELETE, dan MERGE One DDL seperti CREATE, ALTER, DROP,
RENAME, atau TRUNCATE One pernyataan DCL seperti GRANT atau REVOKE.
ANALOGI TRANSAKSI
- Basis data bank berisi saldo untuk berbagai rekening nasabah, serta total saldo setoran untuk cabang
lain.
- Misalkan seorang pelanggan ingin menarik dan mentransfer uang dari akunnya dan menyetorkan
ke akun pelanggan lain di cabang lain.
- Ada beberapa langkah terpisah yang terlibat untuk menyelesaikan operasi yang agak sederhana ini.
Kedua cabang bank ingin diyakinkan bahwa semya langkah dalan transaksi terjadi, atau tidak ada
yang terjadi, dan jika sistem macet, transaksi tidak dibiarkan selesai.
- Pengelompokan langkah-langkah penarikan dan penyetoran ke dalam satu transaksi memberikan
jaminan tersebut.
- Suatu transaksi terjadi sepenuhnya atau tidak sama sekali.
MENGONTROL TRANSAKSI
- Transaksi dikontrol menggunakan pernyataan berikut:

- COMMIT: Merupakan titik waktu di mana pengguna telah membuat semua perubahan yang dia
inginkan secara logis dikelompokkan bersama, dan karena tidak ada kesalahan yang dibuat,
pengguna siap untuk menyimpan kerja.

 Ketika pernyataan COMMIT dikeluarkan, transaksi saat ini berakhir membuat semua
perubahan yang tertunda menjadi permanen.

- ROLLBACK: Memungkinkan pengguna untuk membuang perubahan yang dilakukan pada


database.

 Ketika pernyataan ROLLBACK dikeluarkan, semua perubahan yang tertunda dibuang.

MENGONTROL TRANSAKSI
- Transaksi dikendalikan menggunakan pernyataan berikut:

 SAVEPOINT: Membuat penanda dalam transaksi, yang membagi transaksi menjadi


potongan-potongan kecil.

 ROLLBACK TO SAVEPOINT: Memungkinkan pengguna untuk memutar kembali


transaksi saat ini ke savepoint yang ditentukan.

 Jika kesalahan dibuat, pengguna dapat mengeluarkan pernyataan ROLLBACK TO


SAVEPOINT dengan hanya mengabaikan perubahan yang dibuat setelah
SAVEPOINT dibuat.

CONTOH TRANSAKSI
- Di dalam contoh yang ditunjukkan, pengguna telah mengeluarkan pernyataan UPDATE dan segera
membuat SAVEPOINT.

- Setelah pernyataan INSERT dan pernyataan UPDATE (pada slide berikutnya), pengguna
menyadari bahwa klausa WHERE tidak termasuk dalam UPDATE terakhir. Untuk memperbaiki
kesalahan, pengguna mengeluarkan satu ROLLBACK TO SAVEPOINT.

CONTOH TRANSAKSI
- Data sekarang dikembalikan ke keadaannya di SAVEPOINT satu.
KAPAN SUATU TRANSAKSI MULAI ATAU BERAKHIR?
Transaksi dimulai dengan pernyataan DML (INSERT, UPDATE, DELETE, atau MERGE) pertama.
- Transaksi berakhir ketika salah satu dari yang berikut ini terjadi :

a. Pernyataan COMMIT atau ROLLBACK dikeluarkan

b. Sebuah DDL (CREATE, ALTER, DROP, RENAME atau TRUNCATE) dikeluarkan

c. Pernyataan DCL (GRANT atau REVOKE) dikeluarkan.

d. Pengguna keluar dari biasanya Utilitas Oracle Database, menyebabkan transaksi saat ini secara
implisit berkomitmen

KAPAN SUATU TRANSAKSI MULAI ATAU BERAKHIR?


- Setelah satu transaksi berakhir, pernyataan SQL yang dapat dieksekusi berikutnya secara otomatis
memulai transaksi berikutnya.

- Pernyataan DDL atau pernyataan DCL secara otomatis dilakukan dan oleh karena itu secara
implisit mengakhiri transaksi.

- Setiap perubahan data yang dilakukan selama transaksi bersifat sementara sampai transaksi
dilakukan.

KONSISTENSI DATA
Bayangkan menghabiskan beberapa jam membuat perubahan pada data karyawan hanya untuk
mengetahui bahwa ada orang lain yang memasukkan informasi yang bertentangan dengan perubahan Anda!
Untuk mencegah gangguan atau konflik seperti itu dan untuk memungkinkan banyak pengguna
mengakses database pada saat yang sama, sistem basis data menggunakan implementasi otomatis yang
disebut "baca konsistensi."
KONSISTENSI BACA
- Konsistensi Baca menjamin tampilan data yang konsisten oleh semua pengguna setiap saat.
- Pembaca tidak melihat data yang sedang dalam proses diubah.

- Penulis memastikan bahwa perubahan pada basis data dilakukan secara konsisten.

- Perubahan yang dilakukan oleh satu penulis tidak merusak atau bertentangan dengan perubahan
yang dibuat oleh penulis lain.

BACA KONSISTENSI
Konsistensi baca adalah implementasi otomatis.
- Salinan sebagian dari database disimpan dalam segmen undo. Ketika Pengguna A mengeluarkan
operasi memasukkan, memperbarui, atau menghapus ke database, server Oracle mengambil
snapshot (salinan) dari data sebelum diubah dan menulisnya ke segmen undo (rollback).

- Pengguna B masih melihat database seperti yang ada sebelum perubahan dimulai; dia melihat
snapshot segmen yang dibatalkan dari data.

BACA KONSISTENSI
- Sebelum perubahan dilakukan ke database, hanya pengguna yang mengubah data yang melihat
perubahan; semua orang melihat snapshot di bagian undo.

- Ini menjamin bahwa pembaca data melihat data konsisten yang saat ini tidak mengalami perubahan.

PERUBAHAN TERLIHAT
- Ketika pernyataan DML dikomit, perubahan yang dibuat ke database menjadi terlihat oleh siapa
pun yang menjalankan pernyataan SELECT.

- Jika transaksi dibatalkan, perubahan dibatalkan: Versi asli, data yang lebih lama di segmen undo
ditulis kembali ke tabel. Semua pengguna melihat database seperti yang ada sebelum transaksi
dimulai.

COMMIT, ROLLBACK, dan SAVEPOINT


- COMMIT dan ROLLBACK memastikan konsistensi data, memungkinkan untuk melihat dulu
perubahan data sebelum membuat perubahan permanen, dan untuk mengelompokkan operasi yang
terkait secara logis.

- SAVEPOINT menciptakan titik dalam transaksi yang dapat kita kembalikan tanpa harus
membatalkan seluruh transaksi.

- COMMIT, ROLLBACK dan SAVEPOINT dikenal sebagai Bahasa Kontrol Transaksi, atau TCL.

COMMIT, ROLLBACK, dan SAVEPOINT


- Dalam transaksi yang ditunjukkan dalam grafik, pernyataan DELETE dikeluarkan dan kemudian
SAVEPOINT A didirikan.
- SAVEPOINT ini bertindak seperti penanda yang akan memungkinkan pengguna untuk
mengembalikan setiap perubahan berikutnya yang dilakukan pada data kembali ke keadaan data
seperti yang ada pada saat ini.

COMMIT, ROLLBACK, dan SAVEPOINT


- Dalam contoh, mengikuti SAVEPOINT A, pengguna mengeluarkan pernyataan INSERT dan
UPDATE, kemudian buat penanda rollback lain di SAVEPOINT B.
COMMIT, ROLLBACK, dan SAVEPOINT
Jika karena alasan tertentu pengguna tidak ingin pernyataan INSERT dan / atau UPDATE ini
terjadi, pengguna dapat mengeluarkan pernyataan ROLLBACK TO SAVEPOINT A. Ini akan
mengembalikan ke keadaan data seperti pada penanda SAVEPOINT A.
COMMIT, ROLLBACK, dan SAVEPOINT
Menambahkan SAVEPOINTS lainnya menciptakan marker tambahan untuk poin rollback. Jika
pengguna mengeluarkan pernyataan ROLLBACK tanpa pernyataan ROLLBACK TO SAVEPOINT,
seluruh transaksi berakhir dan semua perubahan data yang tertunda dibuang.

PEMROSESAN TRANSAKSI IMPLISIT


- Komit otomatis terhadap perubahan data terjadi dalam keadaan berikut:

a. Pernyataan DDL dikeluarkan

b. Pernyataan DCL dikeluarkan

c. Seorang pengguna keluar secara normal dari utilitas Oracle Database, menyebabkan transaksi saat
ini secara implisit berkomitmen

d. secara eksplisit mengeluarkan COMMIT atau ROLLBACK pernyataan

PEMROSESAN TRANSAKSI IMPLISIT


- Rollback otomatis terjadi di bawah penghentian utilitas Oracle Database yang abnormal, atau ketika
terjadi kegagalan sistem.

- Ini mencegah kesalahan dalam data dari menyebabkan perubahan yang tidak diinginkan ke tabel
yang mendasarinya.

- Karena itu integritas data dilindungi.

MENGUNCI
- Penting untuk mencegah data diubah oleh lebih dari satu pengguna sekaligus.

- Oracle menggunakan kunci yang mencegah interaksi destruktif antara transaksi yang mengakses
sumber daya yang sama, baik objek pengguna (seperti tabel atau baris) atau objek sistem yang tidak
terlihat oleh pengguna (seperti struktur data bersama dan baris kamus data).
BAGAIMANA ORACLE DATABASE MENGUNCI DATA
- Penguncian Oracle dilakukan secara otomatis dan tidak memerlukan tindakan pengguna.

- Penguncian implisit terjadi untuk pernyataan SQL yang diperlukan, tergantung pada tindakan yang
diminta.

- Penguncian implisit terjadi untuk semua pernyataan SQL kecuali SELECT.

- Pengguna juga dapat mengunci data secara manual, yang disebut penguncian eksplisit.

- Ketika pernyataan COMMIT atau ROLLBACK dikeluarkan, kunci pada baris yang terpengaruh
dilepaskan.

TERMINOLOGI
Istilah-istilah kunci yang digunakan dalam pelajaran ini termasuk:
- Transepoint

- Commit

- Savepoint

- Rollback

- Bahasa Kontrol Transaksi

- Baca konsistensi

- Kunci

RINGKASAN
Dalam pelajaran ini Anda seharusnya telah belajar bagaimana:
- Menentukan istilah COMMIT, ROLLBACK, dan SAVEPOINT karena berkaitan dengan transaksi
data

- Sebutkan tiga keuntungan dari pernyataan COMMIT, ROLLBACK, dan SAVEPOINT.

- Jelaskan mengapa ini penting, dari perspektif bisnis , untuk dapat mengontrol alur pemrosesan
transaksi
SECTION 19 – Final Project and Exam Review
19-1 Testing
TUJUAN
Pelajaran ini mencakup tujuan-tujuan berikut:
Mengembangkan dan menerapkan strategi untuk menguji bahwa suatu fungsi basis data dirancang
TUJUAN
- Kebanyakan orang, ketika mereka membeli mobil, ingin tahu bahwa itu dapat diandalkan dan tidak
akan rusak.

- Jadi pabrikan akan menempatkan mobil melalui sejumlah tes sebelum tersedia untuk dijual.

- Hal yang sama berlaku untuk database; sebelum dijual kepada pelanggan, itu diuji untuk
memverifikasi bahwa itu memenuhi persyaratan bisnis.

UNIT TESTING
- Jika dua hal diuji sekaligus dan tes gagal, sulit atau tidak mungkin untuk mengetahui apa yang
menyebabkan kegagalan.

- Jadi, penting untuk menguji hanya satu hal pada satu waktu.

- Ini biasa disebut sebagai unit testing.

APA YANG BISA DIUJI?


- Saat menguji basis data, berbagai hal perlu diuji.

- Sebagai contoh:

a. Kolom harus diuji bahwa mengandung tipe data yang benar.

b. Kolom harus diuji sehingga dapat mengakomodasi jumlah data terbesar yang mungkin
dimasukkan.

c. Kendala harus diperiksa bahwa mereka hanya membatasi atau membatasi data yang seharusnya
- tidak lebih dan tidak kurang.

APA YANG HARUS DIUJI?


- Seringkali tidak realistis untuk menguji setiap kolom dan setiap kendala dalam setiap tabel dalam
database jika itu adalah database besar.

- Sebaran uji acak, yang memeriksa beberapa kolom dan beberapa kendala, harus dilakukan.
MERANCANG TES
- Sebelum Anda melakukan tes, Anda harus memiliki ide bagus tentang hasil apa yang Anda
harapkan untuk melihat apakah database berfungsi seperti yang diharapkan.

- Ini harus didokumentasikan sebelum Anda melakukan tes dalam tabel yang mirip dengan yang
ditunjukkan:

MENJALANKAN TES
- Setelah Anda merancang tes Anda, Anda dapat menjalankannya dan mencatat hasil Anda.

TERMINOLOGI
Istilah-istilah utama yang digunakan dalam pelajaran ini meliputi:
- Pengujian

- Pengujian Unit

RINGKASAN
Dalam pelajaran ini, Anda seharusnya belajar bagaimana:
- Mengembangkan dan menerapkan strategi untuk menguji bahwa suatu fungsi basis data dirancang

SECTION 19 – Final Project and Exam Review


19 – 2 Final Project Database Creation
TUJUAN
Pelajaran ini mencakup tujuan-tujuan berikut:
- Menerapkan konsep SQL untuk membuat database fungsional yang sesuai untuk bisnis kecil

TUJUAN
- Sebagian besar anak muda tahu banyak tentang mobil sebelum mereka pernah mengendarai mobil
atau tahu banyak tentang bagian dunia lain tanpa pernah ke sana.
- Sayang sekali menghabiskan satu tahun mempelajari pemodelan basis data dan pemrograman
basis data tanpa benar-benar membuat aplikasi basis data!

- Dalam pelajaran ini, Anda akan memiliki kesempatan untuk membuat basis data yang berfungsi
yang sesuai untuk bisnis kecil.

LINGKUP PROYEK AKHIR


- Proyek Akhir terdiri dari langkah-langkah berikut:

a. Buat Tabel dari ERD

b. Tambahkan kendala

c. Buat tampilan

d. Buat Urutan

e. Tambahkan data ke tabel

f. Buat indeks

g. Buat sinonim

h. Basis data tes

i. Sajikan proyek akhir Presentasikan tugas akhir.

EVALUASI TUGAS AKHIR


- Setiap kelompok akan mempresentasikan databasenya kepada kelas. Grup Anda akan dievaluasi
berdasarkan Rubrik Tugas Akhir.

- Pastikan Anda membacanya dengan cermat dan memahami bagaimana Anda akan dinilai.

- Rubrik dapat ditemukan di Bagian 0, sumber daya Siswa di bawah "Sumber Daya Tambahan"
untuk bagian ini.

RINGKASAN
Dalam pelajaran ini, Anda harus belajar bagaimana:
- Menerapkan konsep SQL untuk membuat database fungsional yang sesuai untuk bisnis kecil

Anda mungkin juga menyukai