11/29/18 1
Pertemuan 3
Teknologi Basis Data
Presented by : Sity Aisyah Nasution, S.Kom Magister Student in Univ Budi
Luhur
`
Bahasan hari ini :
Perancangan Basis Data
Aplikasi Basis Data Dalam Life Cycle
Proses Perancangan Basis Data
11/29/18
Basis Data (Database) : Kumpulan dari file-file yang membentuk satu kesatuan
PERANCANGAN DATABASE adalah proses pembuatan (develop) struktur database sesuai dengan data yang dibutuhkan oleh user.
• Sistem basis data telah menjadi bagian dalam sistem
informasi suatu organisasi
• Kebutuhan menyimpan data dlm jumlah besar semakin
mendesak
• Fungsi-fungsi dalam organisasi semakin
dikomputerisasikan
• Semakin kompleks data & aplikasi yg digunakan, maka
relationship antar data harus dimodelisasikan
• Dibutuhkannya kemandirian data
TUJUAN PERANCANGAN
BASIS DATA
untuk memenuhi kebutuhan-kebutuhan konten
informasi dari pengguna dan aplikasi-aplikasi
tertentu
menyediakan struktur informasi yang alami dan
mudah dipahami
11/29/18
LANGKAH-LANGKAH
MERANCANG BASIS DATA
1.
Mendefinisikan Kebutuhan
(Requirements Definition)
Tujuan :
untuk mengidentifikasi & mendeskripsikan data yg
dibutuhkan oleh user dalam sebuah organisasi.
2.
Rancangan Konseptual
(Conceptual Design)
Tujuan :
untuk membuat sebuah model data konseptual (atau
arsitektur informasi) yg akan mendukung perbedaan
kebutuhan informasi dari beberapa user dalam sebuah
organisasi.
3.
Rancangan Implementasi
(Implementation Design)
Tujuan :
untuk memetakan model data logis
(Logical Data Model)
LANGKAH-LANGKAH
MERANCANG BASIS DATA
4.
Rancangan Fisik
(Physical Design)
Pada tahap terakhir ini,
Logical Database Structured
(normalized relation, trees, network, dll)
dipetakan
menjadi
physical storage structure
seperti file &
tabel.
Langkah Perbaikan (Stepwise Refinement)
Keseluruhan proses perancangan pada perancangan database harus dipandang sebagai satu langkah perbaikan, dimana perancangan pada setiap tahapan diperbaiki secara progresif
melalui perulangan (iteration).
11/29/18
KOMPONEN
SISTEM INFORMASI
• Sistem informasi suatu organisasi
berbasiskan komputer terdiri atas :
basis data
perangkat lunak basis data
perangkat lunak aplikasi
perangkat keras
Pada organisasi yang besar, sistem basis data adalah bagian dari sistem informasi, di dalamnya termasuk semua resource yang
dilibatkan dalam koleksi, manajemen, penggunaan dan disseminasi information resource dari organisasi.
Pada sistem komputerisasi, resource adalah data itu sendiri,
perangkat lunak DBMS, perangkat keras komputer sistem, media penyimpan, personal yang menggunakan dan mengatur data (DBA, pemakai akhir, dan pemakai dsb), perangkat lunak aplikasi yang mengakses dan mengubah data dan programmer aplikasi yang mengembangkan aplikasi.
Siklus sistem informasi disebut siklus makro, dimana siklus sistem basis data dirujuk ke siklus mikro.
S I K L U S
11/29/18
Siklus Sistem Informasi
Siklus Kehidupan Sistem Aplikasi Basis Data
SIKLUS KEHIDUPAN
SISTEM INFORMASI
1. Analisis kelayakan (Feasibility analysis)
- tahap ini berhubungan dengan analisa area aplikasi potensial, mengidentifikasi sisi ekonomi dari information gathering,
membentuk studi keuntungan awal, menentukan kompleksitas data dan proses, mengatur prioritas aplikasi.
- Area aplikasi, identifikasi keuntungan & kerugian, penentuan kompleksitas data & proses, prioritas aplikasi
2. Pengumpulan dan analisis kebutuhan (Requirement collection and analysis)
- Kebutuhan detail dikumpulkan dengan interaksi dengan pemakai potensial dan kelompok pemakai untuk
mengidentifikasi permasalahan dan kebutuhan khusus.
- Ketergantungan aplikasi, komunikasi dan prosedur pelaporan diindetifikasi.
11/29/18
SIKLUS KEHIDUPAN
SISTEM INFORMASI
3. Perancangan sistem basis data dan sistem aplikasi (Desain)
- Tahap ini mempunyai dua aspek yaitu mendesain sistem basis data & mendesain sistem aplikasi (program) yang
menggunakan dan memproses basis data.
4. Implementasi
- Sistem informasi diimplementasi, basisi data dibentuk dan transaksi basis data diimplementasikan dan diujicoba.
5. Testing dan validasi (Validation and acceptance testing)
- Sistem diuji & divalidasi berdasarkan kriteria kinerja dari pengguna
SIKLUS KEHIDUPAN
SISTEM INFORMASI
6. Pengoperasian (Deployment, operation and maintenance)
- Pada tahap ini dilakukan konversi pemakai dari sistem lama ke sistem baru melalui training.
- Tahap operasional mulai jika semua fungsi sistem dioperasikan dan divalidasi.
- Jika kebutuhan baru atau aplikasi bertambah, maka harus
melalui semua tahap sebelumnya sampai semua divalidasi dan berhubungan dengan sistem.
- Monitoring performansi sistem dan pemeliharaan sistem merupakan aktifitas yang penting selama tahap operasi.
11/29/18
• Siklus kehidupan sistem informasi sering disebut
macro
life cycle
, dimana siklus kehidupan basis data merupakan
micro life cycle
.
• Aktifitas-aktifitas yang berhubungan dengan basis data
sebagai
micro life cycle
dan termasuk fase-fasenya sbb :
1. Database planning 6. Application Conversion
2. System definition 7. Testing dan Validation
3. Design 8. Operation
4. Implementation 9. Monitoring dan Maintenance
5. Loading atau Data Conversion
11/29/18
APLIKASI BASIS DATA
DALAM LIFE CYCLE
1.
Database Planning
• Database planing atau perencanaan basis data merupakan aktivitas
manajemen untuk merealisasikan tahapan Database Aplication Lifecycle
secara efektif dan efesien.
Perencanaan basis data mencakup hal-hal berikut:
- Cara pengumpulan data - Format data
- Dokumentasi yang diperlukan - Cara membuat desain
- Tahap Implemantasi
• System definition atau definisi sistem bertujuan untuk mendeskripsikan batasan dan ruang lingkup aplikasi basis data serta sudut pandang user yang utama.
APLIKASI BASIS DATA
DALAM LIFE CYCLE
3.
Design
• Pada bagian dari fase ini, perancangan sistem basis data secara konseptual, logikal dan fisik dilaksanakan .
• Database design atau desain basis data adalah proses membuat desian yang akan mendukung operasional dan tujuan perusahaan.
• Tujuan desain basis data, antara lain:
Menggambarkan relasi data antara data yang dibutuhkan oleh aplikasi dan user view.
Menyediakan model data yang mendukung seluruh transaksi yang diperlukan.
11/29/18
APLIKASI BASIS DATA
DALAM LIFE CYCLE
4.
Implementation
• Implementation merupakan realisasi fisik dari basis data dan desain aplikasi. Implementasi basis bata dapat dicapai dengan menggunakan:
DDL untuk membuat skema basis data dan database file yang kosong.
DDL untuk membuat user view yang diinginkan.
• Pemrosesan dari penulisan definisi basis data secara konseptual, eksternal, dan internal, pembuatan file-file basis data yang kosong, dan implementasi aplikasi-aplikasi software.
• Merupakan tahapan pemindahan data yang ada ke dalam basis data yang baru dan mengkonversikan aplikasi yang ada agar dapat menggunakan basis data ang baru.
• Basis data ditempatkan baik secara memanggil data secara langsung
ataupun merubah file-file yang ada ke dalam format sistem basis data dan memangggilnya kembali.
APLIKASI BASIS DATA
DALAM LIFE CYCLE
6.
Application Conversion
• Beberapa aplikasi software dari suatu sistem sebelumnya dikonversikan ke suatu sistem yang baru.
7.
Testing
dan
Validation
• Testing adalah suatu proses eksekusi program aplikasi dengan tujuan untuk menemukan kesalahan dan ketidaksesuaian data yang sesungguhnya.
11/29/18
APLIKASI BASIS DATA
DALAM LIFE CYCLE
• Operasi-operasi pada sistem basis data dan aplikasi-aplikasinya.
8.
Operation
9.
Monitoring
dan
Maintenance
• Merupakan suatu proses pengawasan dan pemeliharaan sistem setelah proses instalasi, yang mencakup:
Pengawasan kinerja sistem.
Pemeliharaan dan pembaharuan aplikasi basis data jika dibutuhkan.
Penggabungan kebutuhan baru ke dalam aplikasi basis data.
• Selama fase operasi, sistem secara konstan memonitor dan
Life Cycle Database
Design
Present
Documentation
Generate
11/29/18
TRANSAKSI
Transaksi
adalah satu atau beberapa aksi program aplikasi
yang mengakses/mengubah isi basis data.
Transaksi merupakan bagian dari pengeksekusian sebuah
program yang melakukan pengaksesan basis data dan bahkan
juga melakukan serangkaian perubahan data.
DBMS yang kita gunakan harus menjamin bahwa setiap
transaksi harus dapat dikerjakan secara utuh atau tidak sama
sekali.
Tidak boleh ada transaksi yang hanya dikerjakan sebagian,
TRANSAKSI
Untuk menjamin agar integritas dapat tetap terpelihara maka setiap transaksi harus memiliki sifat-sifat:
1. Atomik, dimana semua operasi dalam transaksi dapat dikerjakan seluruhnya atau tidak sama sekali.
2. Konsisten, dimana eksekusi transaksi secara tunggal harus dapat menjamin data tetap konsisten setelah transaksi berakhir.
3. Terisolasi, jika pada sebuah sistem basis data terdapat sejumlah transaksi yang dilaksanakan secara bersamaan, maka semua transaksi yang dilaksanakan pada saat yang bersamaan tersebut harus dapat dimulai dan bisa berakhir.
11/29/18
TRANSAKSI
• Terhentinya suatu transaksi tidak selalu diakibatkan oleh kegagalan insidental baik dari perangkat keras (crash) ataupun kemacetan sistem operasi (hang).
• Tapi lebih sering terjadi karena user sengaja menghentikan transaksi atau karena penghentian transaksi oleh DBMS akibat adanya kondisi tak diinginkan, seperti deadlock atau timeout.
• Sebuah transaksi dapat menghasilkan dua kemungkinan:
a. Jika dilaksanakan lengkap seluruhnya, transaksi tersebut telah di commit dan basis data mencapai keadaan konsisten baru.
11/29/18
TRANSAKSI
Status-status yang dapat dicapai oleh sebuah transaksi sejak mulai dilaksanakan hingga selesai atau batal adalah:
1. Aktif (Active), yang merupakan status awal (initial state) sebuah transaksi yang menunjukkan transaksi tersebut masih dieksekusi.
2. Berhasil Sebagian (Partially Committed), yaitu keadaan yang dicapai transaksi tepat pada saat operasi terakhir dalam transaksi selesai dikerjakan.
3. Gagal (Failed), merupakan keadaan dimana sebuah transaksi terhenti pengeksekusiannya sebelum tuntas sama sekali.
4. Batal (Aborted), yaitu keadaan dimana sebuah transaksi dianggap
tidak/belum dikerjakan yang tentu dengan terlebih dahulu diawali dengan mengembalikan semua data yang telah diubah ke nilai-nilai semula. (yang menjadi tanggung jawab DBMS).
5. Berhasil Sempurna (Committed), keadaan dimana transaksi telah dinyatakan berhasil dikerjakan seluruhnya dan basis data telah
11/29/18
TRANSAKSI
Diagram berikut ini menunjukkan aliran dan siklus peralihan status (state) dari sebuah transaksi:
activ e
partially committ ed
committ ed
failed
TRANSAKSI
Penjelasan Diagram di atas :
Ketika sebuah transaksi mulai dikerjakan, maka transaksi itu berada dalam status aktif.
Jika terjadi penghentian sebelum operasi berakhir, maka transaksi segera beralih ke status gagal/failed.
Namun, bila keseluruhan transaksi selesai dikerjakan, maka transaksi itu berada pada status berhasil sebagian/partially committed, dimana perubahan-perubahan data masih berada di dalam memori utama yang bersifat volatile/tidak permanen.
Transaksi dalam status ini masih mungkin untuk pindah ke status failed, karena ada pembatalan transaksi baik sengaja maupun tidak. Jika tidak
beralih ke status failed, maka nilai-nilai data yang ada di memori utama akan direkam ke dalam disk yang bersifat permanen.
Begitu proses perekaman selesai, maka transaksi beralih ke status committed.
11/29/18
TRANSAKSI
Sementara itu, transaksi yang berada pada status failed, maka DBMS harus menjalan proses rollback.
Proses tersebut dapat berupa:
Mengulangi pelaksanaan transaksi / restart, yang dilakukan pada transaksi yang failed akibat kemacetan perangkat keras ataupun perangkat lunak dan bukannya penghentian transaksi secara sengaja oleh user.
Mematikan transaksi / kill, yang dilakukan untuk transaksi yang dihentikan secara sengaja oleh user atau akibat adanya kesalahan lojik dalam penulisan aplikasi.
Begitu salah satu dari pilihan proses tersebut selesai dilakukan, maka transaksi berpindah ke status batal (aborted). Status berhasil
sempurna/committed maupun batal/aborted merupakan status
SECURITY DATABASE
Authorization
Authorization
merupakan pemberian hak akses yang
mengizinkan sebuah subyek mempunyai akses secara legal
terhadap sebuah sistem atau obyek.
Subyek
user
atau program
Obyek
basis data,
tabel,
view
,
application
,
procedure
,
atau
11/29/18
SECURITY DATABASE
Authorization
Jenis-jenis hak akses (privileges) :
• Penggunaan nama basis data yang spesifik
•
Select (retrieve) data
• Membuat tabel (obyek lainnya)
•
Update data, delete data, insert data (bisa untuk kolom-kolom
tertentu)
• Menghasilkan output yang tidak terbatas dari operasi query (user
tidak dibatasi untuk mengakses record tertentu)
• Menjalankan prosedur khusus dan utilitas program
• Membuat basis data
• Membuat (dan memodifikasi) DBMS user identifiers dan authorized
identifiers jenis lainnya
SECURITY DATABASE
Views (Subschemas)
Adalah hasil yang dinamik dari satu atau lebih operasi relasi
yang beroperasi pada relasi dasar untuk menghasilkan relasi
lainnya.
View
merupakan
virtual relation
yang tidak secara nyata ada
di dalam sebuah basis data, tetapi dihasilkan atas
11/29/18
SECURITY DATABASE
Backing Up
Backing up merupakan proses yang secara periodik menyalin basis data dan menjurnal (serta memprogram) ke dalam media penyimpanan
offline.
Journaling
Journaling merupakan proses penyimpanan dan pemeliharaan sebuah jurnal atau log seluruh perubahan terhadap basis data agar dapat
11/29/18
SECURITY DATABASE
Checkpointing
Checkpointing merupakan itik temu sinkronisasi antara basis data dan transaksi log file.
Seluruh data yang disimpan di tempat sementara akan disimpan di media penyimpanan kedua.
Integrity
Pengontrolan integritas juga membantu memelihara sistem basis data yang aman dengan mencegah data dari invalid .
Encryption
11/29/18
Ada beberapa istilah yang dikenal dalam
Ada beberapa istilah yang dikenal dalam
lingkungan database, antara lain :
lingkungan database, antara lain :
A.
A.
Redundansi dan Inkonsistensi Data
Redundansi dan Inkonsistensi Data
B.
B.
Concu
Concu
r
r
r
r
e
e
ncy
ncy
C.
C.
Locking
Locking
D.
D.
Crash dan Recovery
Crash dan Recovery
E.
E.
Security dan Integrity
Security dan Integrity
A.
A.
Redundansi dan Inkonsistensi Data
Redundansi dan Inkonsistensi Data
Jika file-file dan program aplikasi diciptakan oleh
Jika file-file dan program aplikasi diciptakan oleh
programmer yang berbeda pada selang waktu
programmer yang berbeda pada selang waktu
cukup lama, maka ada beberapa bagian data yang
cukup lama, maka ada beberapa bagian data yang
mengalami penggandaan pada file-file yang
mengalami penggandaan pada file-file yang
berbeda.
berbeda.
Misalnya : alamat dan nomor telepon dari
Misalnya : alamat dan nomor telepon dari
konsumen tercatat pada file Deposito juga pada file
konsumen tercatat pada file Deposito juga pada file
Nasabah dan juga Rekening_Koran.
11/29/18
Penyimpanan data yang sama dengan nama yang
Penyimpanan data yang sama dengan nama yang
sama pula namun pada lokasi yang berbeda disebut
sama pula namun pada lokasi yang berbeda disebut
sebagai
sebagai
REDUNDANSI
REDUNDANSI
.
.
Akibat dari adanya redundansi adalah pemborosan
Akibat dari adanya redundansi adalah pemborosan
ruang penyimpanan dan juga biaya untuk
ruang penyimpanan dan juga biaya untuk
Penyimpanan data yang sama dan berulang-ulang
Penyimpanan data yang sama dan berulang-ulang
pada beberapa tempat (file) yang berbeda dapat
pada beberapa tempat (file) yang berbeda dapat
juga mengakibatkan inkonsistensi data.
juga mengakibatkan inkonsistensi data.
Artinya bahwa bila programmer ingin melakukan
Artinya bahwa bila programmer ingin melakukan
update data maka harus dilakukan pada semua file
update data maka harus dilakukan pada semua file
yang mengandung data tersebut sehingga bila
yang mengandung data tersebut sehingga bila
salah satu saja dari file, yang mengandung data
salah satu saja dari file, yang mengandung data
yang akan di-update, terlewatkan maka terjadilah
yang akan di-update, terlewatkan maka terjadilah
inkonsistensi data (data tersebut tidak sama
inkonsistensi data (data tersebut tidak sama
11/29/18
B. Concurrency
B. Concurrency
Salah satu tujuan utama dalam mengembangkan
Salah satu tujuan utama dalam mengembangkan
sebuah database adalah membuat sumber informasi
sebuah database adalah membuat sumber informasi
yang dapat digunakan oleh sejumlah user yang
yang dapat digunakan oleh sejumlah user yang
terkadang diakses secara terus-menerus.
terkadang diakses secara terus-menerus.
Jika semua user hanya membaca data, maka data
Jika semua user hanya membaca data, maka data
yang satu tidak akan berbaur dengan data yang lain.
yang satu tidak akan berbaur dengan data yang lain.
Akan tetapi jika dua orang user mencoba melakukan
Akan tetapi jika dua orang user mencoba melakukan
update data, maka ada kemungkinan terjadi
update data, maka ada kemungkinan terjadi
“benturan” data.
Salah satu kriteria untuk melakukan klasifikasi
Salah satu kriteria untuk melakukan klasifikasi
sebuah sistem database adalah dengan
sebuah sistem database adalah dengan
menggabungkan sejumlah user yang dapat
menggabungkan sejumlah user yang dapat
menggunakan sistem secara konkurensi, yaitu pada
menggunakan sistem secara konkurensi, yaitu pada
waktu yang sama.
waktu yang sama.
Contoh : Sistem Pemesanan Tiket Pesawat
Contoh : Sistem Pemesanan Tiket Pesawat
digunakan oleh ratusan agen perjalanan dan
digunakan oleh ratusan agen perjalanan dan
pemesanan tiket dilakukan secara konkuren.
pemesanan tiket dilakukan secara konkuren.
Terdapat tiga masalah yang disebabkan oleh
Terdapat tiga masalah yang disebabkan oleh
adanya konkurensi, antara lain :
adanya konkurensi, antara lain :
1.
1. Masalah Kehilangan ModifikasiMasalah Kehilangan Modifikasi 2.
2. Masalah Modifikasi SementaraMasalah Modifikasi Sementara 3.
11/29/18
Masalah ini timbul jika dua transaksi mengakses
Masalah ini timbul jika dua transaksi mengakses
item database yang sama yang mengakibatkan
item database yang sama yang mengakibatkan
nilai dari database tersebut menjadi tidak benar.
nilai dari database tersebut menjadi tidak benar.
Misal, ada dua transaksi A dan B yang bekerja
Misal, ada dua transaksi A dan B yang bekerja
hampir bersamaan seperti yang ditunjukkan
hampir bersamaan seperti yang ditunjukkan
pada gambar berikut :
pada gambar berikut :
1.
1.
Masalah Kehilangan Modifikasi (
Masalah Kehilangan Modifikasi (
Lost
Lost
Update
Transaksi A
Transaksi A WaktuWaktu Transaksi BTransaksi B
11/29/18
Transaksi A membaca
Transaksi A membaca
record
record
R pada waktu t1.
R pada waktu t1.
Transaksi B membaca
Transaksi B membaca
record
record
R pada waktu t2.
R pada waktu t2.
Transaksi A melakukan modifikasi R pada waktu t3.
Transaksi A melakukan modifikasi R pada waktu t3.
Transaksi B melakukan modifikasi R pada waktu t4.
Transaksi B melakukan modifikasi R pada waktu t4.
Modifikasi yang dilakukan oleh transaksi A akan hilang
Modifikasi yang dilakukan oleh transaksi A akan hilang
karena transaksi B akan melakukan modifikasi
karena transaksi B akan melakukan modifikasi
record
record
R
R
tanpa memperhatikan modifikasi
tanpa memperhatikan modifikasi
record
record
R yang telah
R yang telah
dilakukan transaksi A pada waktu t3.
dilakukan transaksi A pada waktu t3.
Cara membaca gambar adalah sebagai berikut :
Masalah ini timbul jika transaksi membaca suatu
Masalah ini timbul jika transaksi membaca suatu
record yang sudah dimodifikasi oleh transaksi
record yang sudah dimodifikasi oleh transaksi
lain tetapi belum terselesaikan (uncommited),
lain tetapi belum terselesaikan (uncommited),
terdapat kemungkinan kalau transaksi tersebut
terdapat kemungkinan kalau transaksi tersebut
dibatalkan (rollback).
dibatalkan (rollback).
2
2
.
.
Masalah Modifikasi Sementara
Masalah Modifikasi Sementara
(
11/29/18
Transaksi A
Transaksi A WaktuWaktu Transaksi BTransaksi B
-Gambar Masalah Modifikasi Sementara (Uncommited Update Problem)
Gambar Masalah Modifikasi Sementara (Uncommited Update Problem)
t1
t2
Transaksi B melakukan modifikasi R pada waktu t1.
Transaksi B melakukan modifikasi R pada waktu t1.
Transaksi A membaca record R pada waktu t2.
Transaksi A membaca record R pada waktu t2.
Pada saat t3 transaksi B dibatalkan.
Pada saat t3 transaksi B dibatalkan.
Maka transaksi A akan membaca record R yang salah.
Maka transaksi A akan membaca record R yang salah.
11/29/18
Transaksi B melakukan update record R dan
Transaksi B melakukan update record R dan
kemudian mengalami kegagalan sebelum transaksi
kemudian mengalami kegagalan sebelum transaksi
berakhir sehingga sistem harus mengubah kembali
berakhir sehingga sistem harus mengubah kembali
record R ke nilai yang lama.
record R ke nilai yang lama.
Tetapi sebelum hal tersebut dilakukan, transaksi A
Tetapi sebelum hal tersebut dilakukan, transaksi A
sudah membaca nilai sementara record R yang
sudah membaca nilai sementara record R yang
belum disimpan secara permanen (commit) dalam
belum disimpan secara permanen (commit) dalam
database yang disebabkan oleh kegagalan transaksi
database yang disebabkan oleh kegagalan transaksi
B
B
.
.
Masalah ini timbul jika sebuah transaksi membaca
Masalah ini timbul jika sebuah transaksi membaca
suatu nilai tetapi transaksi yang kedua
suatu nilai tetapi transaksi yang kedua
mengupdate beberapa nilai tersebut selama
mengupdate beberapa nilai tersebut selama
eksekusi transaksi pertama.
eksekusi transaksi pertama.
Berikut ini adalah gambar ilustrasinya :
Berikut ini adalah gambar ilustrasinya :
3.
3.
Masalah Analisa yang Tdk Konsisten
Masalah Analisa yang Tdk Konsisten
(
Transaksi A menjumlahkan nilai1, nilai2, dan nilai3.
Transaksi A menjumlahkan nilai1, nilai2, dan nilai3.
Transaksi B melakukan operasi pengurangan nilai3 - 10
Transaksi B melakukan operasi pengurangan nilai3 - 10
Pada waktu t8, transaksi A membaca nilai yang salah
Pada waktu t8, transaksi A membaca nilai yang salah
karena nilai3 sudah dimodifikasi menjadi 20 (transaksi B
karena nilai3 sudah dimodifikasi menjadi 20 (transaksi B
sudah melakukan commit sebelum transaksi A membaca
sudah melakukan commit sebelum transaksi A membaca
nilai3).
nilai3).
Commit
Commit
adalah operasi yang menyatakan bahwa suatu
adalah operasi yang menyatakan bahwa suatu
transaksi sudah terselesaikan atau sukses.
transaksi sudah terselesaikan atau sukses.
Rollback
Rollback
adalah operasi yang menyatakan bahwa suatu
adalah operasi yang menyatakan bahwa suatu
transaksi dibatalkan.
transaksi dibatalkan.
Cara membaca gambar adalah sebagai berikut :
11/29/18
LOCKING
LOCKING
adalah salah satu mekanisme pengontrol konkuransi
adalah salah satu mekanisme pengontrol konkuransi
(
(
Concurrency Control
Concurrency Control
).
).
KONSEP DASAR :
KONSEP DASAR :
Ketika sebuah transaksi memerlukan jaminan kalau record
Ketika sebuah transaksi memerlukan jaminan kalau record
yang diinginkan tidak akan berubah secara mendadak,
yang diinginkan tidak akan berubah secara mendadak,
maka diperlukan kunci
maka diperlukan kunci
(
(
lock
lock
)
)
untuk record tersebut
untuk record tersebut
.
.
FUNGSI
FUNGSI
:
:
Locking berfungsi untuk menjaga record tersebut agar tidak
Locking berfungsi untuk menjaga record tersebut agar tidak
dimodifikasi oleh transaksi lain.
dimodifikasi oleh transaksi lain.
C
1.
1.
Kita asumsikan terdapat dua macam kunci yaitu :
Kita asumsikan terdapat dua macam kunci yaitu :
kunci X : kunci yang eksklusif
kunci X : kunci yang eksklusif
kunci S : kunci yang digunakan bersama-sama.
kunci S : kunci yang digunakan bersama-sama.
2.
2.
Jika transaksi
Jika transaksi
1
1
menggunakan kunci X pada record
menggunakan kunci X pada record
R, maka permintaan dari transaksi
R, maka permintaan dari transaksi
2
2
untuk suatu
untuk suatu
kunci pada record R ditunda, dan transaksi
kunci pada record R ditunda, dan transaksi
2
2
harus
harus
menunggu sampai transaksi
menunggu sampai transaksi
1
1
melepaskan kunci
melepaskan kunci
tsb.
tsb.
CARA KERJA LOCKING
11/29/18
3.
3.
Jika transaksi
Jika transaksi
1
1
menggunakan kunci X pada record
menggunakan kunci X pada record
R, maka :
R, maka :
-
Bila transaksi
Bila transaksi
2
2
ingin menggunakan kunci X, maka
ingin menggunakan kunci X, maka
transaksi
transaksi
2
2
harus menunggu sampai transaksi
harus menunggu sampai transaksi
1
1
melepaskan kunci tsb.
melepaskan kunci tsb.
-
Bila transaksi
Bila transaksi
2
2
ingin menggunakan kunci S, maka
ingin menggunakan kunci S, maka
transaksi
4.
4.
Bila suatu transaksi hanya melakukan pembacaan
Bila suatu transaksi hanya melakukan pembacaan
saja, secara otomatis transaksi tsb memerlukan
saja, secara otomatis transaksi tsb memerlukan
kunci S.
kunci S.
Bila transaksi tsb ingin melakukan modifikasi record
Bila transaksi tsb ingin melakukan modifikasi record
R, maka secara otomatis memelukan kunci X.
R, maka secara otomatis memelukan kunci X.
Bila transaksi tsb sudah menggunakan kunci S,
Bila transaksi tsb sudah menggunakan kunci S,
setelah itu akan melakukan modifikasi record R,
setelah itu akan melakukan modifikasi record R,
maka kunci S akan dinaikkan ke level kunci X.
11/29/18
5.
5.
Kunci X dan kunci S akan dilepaskan pada saat
Kunci X dan kunci S akan dilepaskan pada saat
synchpoint
(Synchronization
Point),
yang
synchpoint
(Synchronization
Point),
yang
menyatakan akhir dari suatu transaksi tempat
menyatakan akhir dari suatu transaksi tempat
database berada pada kondisi yang konsisten.
database berada pada kondisi yang konsisten.
Bila synchpoint ditetapkan, maka :
Bila synchpoint ditetapkan, maka :
-
Semua modifikasi program menjalankan operasi
Semua modifikasi program menjalankan operasi
commit atau rollback.
commit atau rollback.
11/29/18
Pada waktu t3 transaksi A memerlukan kunci X
Pada waktu t3 transaksi A memerlukan kunci X
untuk melakukan modifikasi record R, maka
untuk melakukan modifikasi record R, maka
transaksi A harus menunggu sampai transaksi B
transaksi A harus menunggu sampai transaksi B
melepaskan kunci S.
melepaskan kunci S.
Pada waktu t4 transaksi B juga harus menunggu
Pada waktu t4 transaksi B juga harus menunggu
untuk melakukan modifikasi record R.
untuk melakukan modifikasi record R.
Karena hal ini maka tidak akan terjadi kehilangan
Karena hal ini maka tidak akan terjadi kehilangan
modifikasi, tetapi terdapat kondisi baru yang
modifikasi, tetapi terdapat kondisi baru yang
disebut dengan deadlock.
Transaksi A di t2 tidak dapat dijalankan langsung,
Transaksi A di t2 tidak dapat dijalankan langsung,
tetapi harus menunggu sampai transaksi B
tetapi harus menunggu sampai transaksi B
melepaskan kunci X.
melepaskan kunci X.
Bila transaksi B sudah mencapai kondisi synchpoint,
Bila transaksi B sudah mencapai kondisi synchpoint,
maka kunci X akan dilepaskan dan transaksi A dapat
maka kunci X akan dilepaskan dan transaksi A dapat
meneruskan prosesnya, yaitu membaca record R.
meneruskan prosesnya, yaitu membaca record R.
Karena sudah mencapai kondisi synchpoint, maka
Karena sudah mencapai kondisi synchpoint, maka
transaksi A tidak akan terjadi kesalahan dalam
transaksi A tidak akan terjadi kesalahan dalam
membaca record R.
Pada t7 transaksi A juga tidak dapat dilaksanakan
Pada t7 transaksi A juga tidak dapat dilaksanakan
karena menggunakan kunci X pada nilai3, maka
karena menggunakan kunci X pada nilai3, maka
transaksi A harus menunggu transaksi B
transaksi A harus menunggu transaksi B
melepaskan kunci X pada nilai3.
melepaskan kunci X pada nilai3.
Transaksi A akan membaca nilai yang benar, tetapi
Transaksi A akan membaca nilai yang benar, tetapi
timbul masalah baru yaitu deadlock.
timbul masalah baru yaitu deadlock.
11/29/18
TIMESTAMPING
TIMESTAMPING
Adalah salah satu alternatif mekanisme kontrol
Adalah salah satu alternatif mekanisme kontrol
konkurensi yang dapat menghilangkan masalah dead
konkurensi yang dapat menghilangkan masalah dead
lock.
lock.
Dalam timestamping tidak ada deadlock yang
Dalam timestamping tidak ada deadlock yang
digunakan sehingga tidak ada deadlock yang muncul.
digunakan sehingga tidak ada deadlock yang muncul.
Timestamping untuk sebuah transaksi merupakan
Timestamping untuk sebuah transaksi merupakan
suatu tanda pengenal yang unik, yang menunjukkan
suatu tanda pengenal yang unik, yang menunjukkan
waktu mulai (relatif) dari transaksi.
Timestamping dapat berupa pembacaan pada
Timestamping dapat berupa pembacaan pada
internal lock pada waktu transaksi dimulai atau
internal lock pada waktu transaksi dimulai atau
dapat juga berupa nilai dari suatu penunjuk logika
dapat juga berupa nilai dari suatu penunjuk logika
yang dapat bertambah setiap kali suatu transaksi
yang dapat bertambah setiap kali suatu transaksi
baru dimulai.
baru dimulai.
Dalam hal ini, nilai timestamping dari setiap
Dalam hal ini, nilai timestamping dari setiap
transaksi adalah unik dan menunjukkan berapa
transaksi adalah unik dan menunjukkan berapa
lama transaksi tsb.
lama transaksi tsb.
Pengaruh dari timestamping adalah menentukan
Pengaruh dari timestamping adalah menentukan
suatu urutan serial kepada transaksi.
11/29/18
Sebagai tambahan, pada setiap timestamping
Sebagai tambahan, pada setiap timestamping
transaksi, terdapat timestamping untuk item data.
transaksi, terdapat timestamping untuk item data.
Setiap item data terdiri dari :
Setiap item data terdiri dari :
a.
a.
Sebuah read-timestamping
Sebuah read-timestamping
,
,
yang memberikan
yang memberikan
timestamping transaksi terakhir untuk membaca
timestamping transaksi terakhir untuk membaca
item.
item.
b.
b.
Sebuah write-timestamping
Sebuah write-timestamping
,
,
yang memberikan
yang memberikan
timestamping transaksi terakhir untuk menulis
timestamping transaksi terakhir untuk menulis
atau melakukan update data item.
Dua masalah yang timbul pada Timestamping :
Dua masalah yang timbul pada Timestamping :
1.
1.
Suatu transaksi memerintahkan untuk membaca
Suatu transaksi memerintahkan untuk membaca
sebuah item yang sudah di
sebuah item yang sudah di
-
-
update oleh transaksi yang
update oleh transaksi yang
belakangan
belakangan
.
.
2.
2.
Suatu transaksi memerintahkan untuk menulis sebuah
Suatu transaksi memerintahkan untuk menulis sebuah
item yan
item yan
g
g
nilainya sudah dibaca atau ditulis oleh
nilainya sudah dibaca atau ditulis oleh
transaksi yang belakangan
11/29/18
Recovery Facilities
Sebuah DBMS sebaiknya menyediakan fasilitas-fasilitas
berikut ini untuk membantu recovery :
•
Backup mechanism
melakukan backup secara periodik terhadap database
yang ada
•
Logging facilities
Mencatat transaksi-transaksi dan perubahan-perubahan
yang terjadi terhadap database. DBMS memelihara file
khusus yang disebut Log (Journal) yang menyediakan
informasi mengenai seluruh perubahan yang terjadi
padadatabase.
Recovery Facilities
•
Checkpoint facility
Mengizinkan update terhadap database yang akan menjadi
database yang permanen
•
Recovery manager
Mengizinkan sistem untuk restore database ke keadaan
sebelum terjadi kerusakan
11/29/18
Recovery Techniques
Prosedur recovery yang digunakan tergantung dari kerusakan
yang terjadi padadatabase.
Terdapat 2 kasus kerusakan :
1. Jika database rusak secara fisik seperti : disk head crash dan
menghancurkan database, maka yang terpenting adalah
melakukan restore backup databaseyang terakhir dan
mengaplikasikan kembali operasi-operasi update transaksi
yang telah commit dengan menggunakan log file. Dengan
asumsi bahwa log file-nya tidak rusak.
11/29/18
Recovery Techniques
2. Jika database tidak rusak secara fisik tetapi menjadi tidak
konsisten, sebagai contoh : sistem crashed sementara
transaksi dieksekusi, maka yang perlu dilakukan adalah
membatalkan perubahan-perubahan yang
menyebabkan database tidak konsisten.
Mengulang beberapa transaksi sangat diperlukan juga untuk
meyakinkan bahwa perubahan-perubahan yang dilakukan telah
disimpan didalam secondory storage. Disini tidak perlu
menggunakan salinan backup database, tetapi dapat
restore database ke dalam keadaan yang konsisten dengan
menggunakan
before-
dan
after-image
yang ditangani oleh
log file
.
11/29/18
Recovery Techniques
Teknik recover berikut ini dilakukan terhadap situasi dimana database tidak rusak tetapi database dalam keadaan yang tidak konsisten.
1. Deferred Update
Update tidak dituliskan ke database sampai sebuah transaksi dalam keadaan commit. Jika transaksi gagal sebelum mencapai keadaan ini, transaksi ini tidak akan memodifikasi database dan juga tidak ada perubahan-perubahan yang perlu dilakukan.
Penulisan dilakukan secara initial hanya terhadap log dan log record yang digunakan untuk actual update terhadap database. Jika sistem gagal, sistemakan menguji log dan menentukan transaksi mana yang perlu dikerjakan ulang,tetapi tidak perlu membatalkan semua
transaksi.