• Tidak ada hasil yang ditemukan

Pertemuan 3 Teknologi Basis Data

N/A
N/A
Protected

Academic year: 2018

Membagikan "Pertemuan 3 Teknologi Basis Data"

Copied!
70
0
0

Teks penuh

(1)

11/29/18 1

Pertemuan 3

Teknologi Basis Data

Presented by : Sity Aisyah Nasution, S.Kom Magister Student in Univ Budi

Luhur

(2)

`

Bahasan hari ini :

Perancangan Basis Data

Aplikasi Basis Data Dalam Life Cycle

Proses Perancangan Basis Data

(3)

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

(4)

TUJUAN PERANCANGAN

BASIS DATA

untuk memenuhi kebutuhan-kebutuhan konten

informasi dari pengguna dan aplikasi-aplikasi

tertentu

menyediakan struktur informasi yang alami dan

mudah dipahami

(5)

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)

(6)

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

(7)

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

(8)

 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

(9)

11/29/18

Siklus Sistem Informasi

Siklus Kehidupan Sistem Aplikasi Basis Data

(10)

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)

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

(12)

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.

(13)

11/29/18

(14)

• 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

(15)

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.

(16)

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.

(17)

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.

(18)

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.

(19)

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

(20)

Life Cycle Database

Design

Present

Documentation

Generate

(21)

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,

(22)

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.

(23)

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.

(24)

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

(25)

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

(26)

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.

(27)

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

(28)

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

(29)

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

(30)

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

(31)

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

(32)

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

(33)

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

(34)

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.

(35)

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

(36)

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

(37)

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.

(38)

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.

(39)

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

(40)

Transaksi A

Transaksi A WaktuWaktu Transaksi BTransaksi B

(41)

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 :

(42)

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

(

(43)

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

(44)

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.

(45)

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

.

.

(46)

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

(

(47)
(48)

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 :

(49)

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

(50)

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

(51)

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

(52)

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.

(53)

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.

(54)
(55)

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.

(56)
(57)
(58)

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.

(59)
(60)

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.

(61)

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.

(62)

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.

(63)

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.

(64)

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

(65)

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.

(66)

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

(67)

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.

(68)

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

.

(69)

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.

(70)

Recovery Techniques

2.

Immediate Update

Update diaplikasikan terhadap database tanpa harus

menunggu transaksi dalam keadaan commit.

Update dapat dilakukan terhadap database setiap saat

setelah log record ditulis. Log dapat digunakan untuk

membatalkan dan mengulang kembali transaksi pada

saat terjadi kerusakan.

Gambar

Gambar Masalah Kehilangan Modifikasi (Lost Update Problem)Gambar Masalah Kehilangan Modifikasi (Lost Update Problem)
Gambar Masalah Modifikasi Sementara (Uncommited Update Problem)Gambar Masalah Modifikasi Sementara (Uncommited Update Problem)

Referensi

Dokumen terkait

Tujuan penelitian ini adalah untuk mengetahui dan menganalisis Pengaruh Kepemimpinan, Disiplin Kerja dan Iklim Organisasi terhadap Prestasi Kerja Pegawai pada Dinas

Pada saat ini pembagian waris yang diterapkan di Desa Majatengah menganut sistem yang modern yaitu dibagi sama rata. Saat terjadi pembagian waris pihak desa hanya

Analisis Pengaruh Free Cash Flow, Leverage, Profitability, Risk, Growth Dan Firm Size Terhadap Dividend Payout Ratio (Studi Empiris Pada Perusahaan Manufaktur Yang Listing Di

PROGRAM GOTONG RIA 2013 (Berdasarkan Tahap Usaha Dan Pencapaian Sekolah Dalam Menggalakkan Kesihatan di Sekolah).. Nama Sekolah: SK HOLY TRINITY (Kod Sekolah:

Berdasarkan perancangan, pembahasan dan pengujian diperoleh kesimpulan yaitu: (1) Kriptografi pada data teks dapat dicapai dengan menggunakan algoritma genetika;

Mereka itu terdiri atas: angkatan bersenjata yang terorganisir (organized armed forces), kelompok-kelompok atau unit- unit yang berada di bawah suatu komando yang

Tujuan penelitian ini adalah 1) untuk mengetahui penyusunan diagram jaringan kerja pembuatan puzzle, 2) untuk mengetahui waktu penyelesaian tercepat untuk pembuatan puzzle, 3)

Restoran yang telah menjadi salah satu khas Kota Semarang ini memiliki 3 cabang di lokasi yang berbeda, antara lain : Jl. Sebagai suatu bentuk usaha, restoran Nglaras Rasa