Pertemuan 3 Teknologi Basis Data

  Pertemuan 3 Teknologi Basis Data Presented by : Sity Aisyah Nasution, S.Kom

  Magister Student in Univ Budi Luhur Email : dryesha@gmail.com Bahasan hari ini :  Perancangan Basis Data

 Aplikasi Basis Data Dalam Life Cycle

  `  Proses Perancangan Basis Data  Database Control

   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.

  ALASAN PERANCANGAN BASIS DATA

  • 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

 Mendukung kebutuhan-kebutuhan pemrosesan

dan objektifitas kinerja (waktu respon, waktu pemrosesan, dan ruang penyimpanan)

  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) kedalam sebuah skema yg dapat diproses oleh DBMS tertentu melalui transformasi ER-D ke Relasi.

  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).

  Langkah perbaikan harus dilakukan pada bagian akhir setiap tahapan sebelum melangkah ke tahapan berikutnya.

  KOMPONEN SISTEM INFORMASI

  • Sistem informasi suatu organisasi berbasiskan komputer terdiri atas :

   basis data  perangkat lunak basis data  perangkat lunak aplikasi  perangkat keras  personal

  S I K L U S SISTEM INFORMASI

   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.

  

Siklus Sistem Informasi

Siklus Kehidupan Sistem Aplikasi Basis Data Siklus Kehidupan sistem Informasi

  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.
  • Kebutuhan-kebutuhan dikumpulkan dari para pengguna

  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
  • Tingkat akses dari sistem dalam memenuhi kebutuhan pemakai dan kriteria performansi divalidasi.

  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.
  • Pengoperasian sistem diiringi perawatan sistem

SIKLUS KEHIDUPAN APLIKASI

APLIKASI BASIS DATA

  • 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

APLIKASI BASIS DATA

  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

  2. System Definition

  • System definition atau definisi sistem bertujuan untuk mendeskripsikan batasan

APLIKASI BASIS DATA

  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.Menspesifikasikan desain dengan struktur yang sesuai dengan kebutuhan sistem.

APLIKASI BASIS DATA

  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.

  5. Loading atau Data Conversion

  • 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

APLIKASI BASIS DATA

  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.
  • Sistem yang baru ditest dan diuji kebenarannya.

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

  memelihara basis data. Pertambahan dan pengembangan data dan aplikasi-aplikasi software dapat terjadi. Modifikasi dan pengaturan kembali basis data mungkin diperlukan dari waktu ke waktu.

  Life Cycle Database Design Present

  Documentation Generate Manage data Maintenance

  

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,

   karena dapat menyebabkan inkonsistensi basis data. Untuk itu transaksi selalu merubah basis data dari satu kondisi konsisten ke kondisi konsisten lain.

  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.

  4. Bertahan , dimana perubahan data yang terjadi setelah sebuah

  transaksi berakhir dengan baik, harus dapat bertahan bahkan jika seandainya sistem menjadi mati.

  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.

  b. Jika transaksi tidak sukses, maka transaksi dibatalkan dan basis data dikembalikan ke keadaan konsisten sebelumnya (rollback) .

  

TRANSAKSI

Status-status yang dapat dicapai oleh sebuah transaksi sejak mulai dilaksanakan hingga selesai atau batal adalah:

  (Active)

  1. Aktif , 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.

  (Aborted)

  4. Batal , 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).

  (Committed)

  5. Berhasil Sempurna , keadaan dimana transaksi telah dinyatakan berhasil dikerjakan seluruhnya dan basis data telah

  TRANSAKSI

Diagram berikut ini menunjukkan aliran dan siklus peralihan status (state) dari

sebuah transaksi: partially committ committ ed ed activ e failed abort ed

  

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 .

  Sementara itu, transaksi yang berada pada status failed, maka DBMS harus

   rollback menjalan proses .

  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 terminasi , yaitu status akhir dalam pelaksanaan transaksi.

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 obyek lainnya yang dibuat di dalam sebuah sistem

SECURITY DATABASE

  Authorization privileges) : Jenis-jenis hak akses (

  • Penggunaan nama basis data yang spesifik Select (retrieve) data •
  • Membuat tabel (obyek lainnya) Update data, delete data, insert data (bisa untuk kolom-kolom
  • >tertentu) output yang tidak terbatas dari operasi query (user
  • Menghasilkan tidak dibatasi untuk mengakses record tertentu)
  • Menjalankan prosedur khusus dan utilitas program
  • Membuat basis data user identifiers dan authorized
  • Membuat (dan memodifikasi) DBMS identifiers jenis lainnya
  • Anggota dari sebuah kelompok atau kelompok-kelompok user

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 permintaan pemakai secara khusus.

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 me- recover secara efektif jika terjadi kegagalan.

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

   algoritma khusus yang merubah data menjadi tidak dapat dibaca oleh

  Enkripsi merupakan penyandian ( encoding) data dengan menggunakan

DATABASE CONTROL

   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. Redundansi dan Inkonsistensi Data Redundansi dan Inkonsistensi Data

  A.

  

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. Nasabah dan juga Rekening_Koran.

  

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 mengakses menjadi lebih mahal. mengakses menjadi lebih mahal.

   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 dengan data dalam file yang lain). dengan data dalam file yang lain).

  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.

  “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 Modifikasi Masalah Kehilangan Modifikasi 2.

  2. Masalah Modifikasi Sementara Masalah Modifikasi Sementara 3.

  3. Masalah Analisa yang Tidak Konsisten Masalah Analisa yang Tidak Konsisten

1. Masalah Kehilangan Modifikasi ( Masalah Kehilangan Modifikasi (

   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.

  Lost Lost

  Update Update

  Problem Problem

  ) ) Gambar Masalah Kehilangan Modifikasi (Lost Update Problem)

  Transaksi A Transaksi A Waktu Waktu Transaksi B Transaksi B

  Baca R

  Baca R

  • Baca R

  Modifikasi R

  Modifikasi R

  t1 t1 t2 t2 t3 t3 t t

  • >

      4

      4

      Baca R

      Modifikasi R

      Modifikasi R

      

    Gambar Masalah Kehilangan Modifikasi (Lost Update Problem)

       Transaksi A membaca

      karena transaksi B akan melakukan modifikasi

      R yang telah dilakukan transaksi A pada waktu t3. dilakukan transaksi A pada waktu t3.

      R yang telah

      record

      record

      tanpa memperhatikan modifikasi

      tanpa memperhatikan modifikasi

      R

      R

      record

      record

      karena transaksi B akan melakukan modifikasi

      Transaksi A membaca

      Modifikasi yang dilakukan oleh transaksi A akan hilang

      Modifikasi yang dilakukan oleh transaksi A akan hilang

      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.

      record R pada waktu t2.

      record

      Transaksi B membaca

      Transaksi B membaca

      R pada waktu t1.

      record R pada waktu t1.

      record

      Cara membaca gambar adalah sebagai berikut : Dari gambar transaksi dapat dilihat bahwa :

      

    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 ( ( Uncommited Update

      Uncommited Update Problem

      Problem ) ) t1 t2 t3

      Transaksi A Transaksi A Waktu Waktu Transaksi B Transaksi B

      Baca R

      Baca R

      Modifikasi R

      Modifikasi R

      Modifkasi R

      Modifkasi R

      Rollback

      Rollback

      

    Gambar Masalah Modifikasi Sementara (Uncommited Update Problem)

    Gambar Masalah Modifikasi Sementara (Uncommited Update Problem)

       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.

      Cara membaca gambar adalah sebagai berikut :

       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 .

      .

      Dari gambar transaksi dapat dilihat bahwa :

      3. Masalah Analisa yang Tdk Konsisten

      3. Masalah Analisa yang Tdk Konsisten ( Problem of Inconsistency Analysis ) ( Problem of Inconsistency Analysis )

    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 :

       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 : Catatan :

    LOCKING LOCKING

      (

      C C . . Locking Locking

      Locking berfungsi untuk menjaga record tersebut agar tidak dimodifikasi oleh transaksi lain. dimodifikasi oleh transaksi lain.

      FUNGSI FUNGSI : : Locking berfungsi untuk menjaga record tersebut agar tidak

      .

      untuk record tersebut .

      untuk record tersebut

      )

      

    )

      lock lock

      adalah salah satu mekanisme pengontrol konkuransi

      adalah salah satu mekanisme pengontrol konkuransi

      maka diperlukan kunci

      maka diperlukan kunci

      yang diinginkan tidak akan berubah secara mendadak,

      yang diinginkan tidak akan berubah secara mendadak,

      Ketika sebuah transaksi memerlukan jaminan kalau record

      KONSEP DASAR : KONSEP DASAR : Ketika sebuah transaksi memerlukan jaminan kalau record

      ).

      Concurrency Control Concurrency Control ).

      (

      (

      (

    CARA KERJA LOCKING CARA KERJA LOCKING

      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.

    • Bila transaksi
    • Bila transaksi

      S S No

      dapat menggunakan kunci S bersama

      transaksi

      transaksi

      1

      1 .

      .

      X X S S - -

      X X No

      No

      Yes

      Yes

      No

      2

      Yes

      Yes

      Yes

      Yes

      Yes

      Yes

      Yes

      Yes

      Yes

      Yes

      1

      dapat menggunakan kunci S bersama

      2

      2

      transaksi

      3.

      3. Jika transaksi Jika transaksi

      1

      1 menggunakan kunci X pada record menggunakan kunci X pada record

      R, maka : R, maka :

      Bila transaksi

      2

      2

      ingin menggunakan kunci X, maka

      ingin menggunakan kunci X, maka

      transaksi

      2

      transaksi

      2

      harus menunggu sampai transaksi

      harus menunggu sampai transaksi

      1

      1 melepaskan kunci tsb. melepaskan kunci tsb.

      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. maka kunci S akan dinaikkan ke level kunci X.

      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 commit atau rollback. commit atau rollback.

    • Semua modifikasi program menjalankan operasi

      Semua kunci pada record R dilepaskan.

    • Semua kunci pada record R dilepaskan.

    KASUS CARA KERJA LOCKING

       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. 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. 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.

       Transaksi B pada waktu t6 tidak diizinkan karena

      Transaksi B pada waktu t6 tidak diizinkan karena memerlukan kunci X, maka transaksi B harus memerlukan kunci X, maka transaksi B harus menunggu sampai transaksi A melepaskan kunci S menunggu sampai transaksi A melepaskan kunci S pada nilai1. pada nilai1.

    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. 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. suatu urutan serial kepada transaksi.

       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. atau melakukan update data item.

      2.

      transaksi yang belakangan

      nilainya sudah dibaca atau ditulis oleh

      nilainya sudah dibaca atau ditulis oleh

      g

      g

      item yan

      item yan

      2. Suatu transaksi memerintahkan untuk menulis sebuah Suatu transaksi memerintahkan untuk menulis sebuah

      .

      Dua masalah yang timbul pada Timestamping :

      belakangan .

      belakangan

      update oleh transaksi yang

      update oleh transaksi yang

      sebuah item yang sudah di

      sebuah item yang sudah di

      1. Suatu transaksi memerintahkan untuk membaca Suatu transaksi memerintahkan untuk membaca

      Dua masalah yang timbul pada Timestamping : 1.

      transaksi yang belakangan

      Recovery 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

      Recovery 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

      Recovery 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.

      Recovery 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 me-

    restore database ke dalam keadaan yang konsisten dengan

    menggunakan before- dan after-image yang ditangani oleh

      Recovery Recovery Techniques