Proses Perancangan Database


Proses Perancangan Database

Tujuan Perancangan Database
Pada database yang digunakan oleh single user atau hanya beberapa user saja, perancangan database tidak sulit. Tetapi jika ukuran database yang sedang atau besar (25 - ratusan user yang berisikan jutaan bytes informasi dan melibatkan ratusan query dan program-program aplikasi, contoh : industri-industri, asuransi, hotel, travel, dll yang seluruhnya tergantung pada kesuksesan dari operasi-operasi databasenya), perancangan database menjadi sangat kompleks. Oleh karena itu para pemakai mengharapkan penggunaan database yang sedemikian rupa sehingga sistem harus dapat memenuhi kebutuhan-kebutuhan seluruh user tsb.

Tujuan perancangan database :
v  untuk memenuhi informasi yang berisikan kebutuhan-kebutuhan user secara khusus dan aplikasi-aplikasinya.
v  memudahkan pengertian struktur informasi
v  mendukung kebutuhan-kebutuhan pemrosesan dan beberapa obyek penampilan (response time, processing time, dan storage space)

Aplikasi database dalam life cycle
Siklus kehidupan sistem informasi sering disebut macro life cycle, dimana siklus kehidupan basis data merupakan micro life cycle.Aktifitas-aktifitas yang berhubungan dengan database sebagai micro life cycle dan termasuk fase-fasenya sbb :
1.    System definition Definisi ruang lingkup database (misal : para pemakai, aplikasi-aplikasinya, dsb.)
2.    Design Pada bagian dari fase ini, perancangan sistem database secara fisik dan secara logika pada DBMS telah selesai.
3.    Implementation Pemrosesan dari penulisan definisi database secara konseptual, eksternal, dan internal, pembuatan file-file database yang kosong, dan implementasi aplikasi-aplikasi software.
4.    Loading atau Data Conversion Database ditempatkan baik secara memanggil data secara langsung ataupun merubah file-file yang ada ke dalam format sistem database dan memangggilnya kembali.
5.    Application Conversion Beberapa aplikasi software dari suatu sistem sebelumnya dikonversikan ke suatu sistem yang baru.
6.    Testing dan Validation Sistem yang baru ditest dan diuji kebenarannya.
7.    Operation Operasi-operasi pada sistem database dan aplikasi-aplikasinya.
8.    Monitoring dan Maintenance Selama fase operasi, sistem secara konstan memonitor dan memelihara database. Pertambahan dan pengembangan data dan aplikasi-aplikasi software dapat terjadi. Modifikasi dan pengaturan kembali database mungkin diperlukan dari waktu ke waktu.

Catatan :
Langkah ke-2 disebut juga perancangan database. 2,3,4 merupakan bagian dari fase design dan implementation pada siklus kehidupan sistem informasi yang besar. Pada umumnya database pada organisasi menjalani seluruh aktifitas-aktifitas siklus kehidupan di atas. 4,5 tidak berlaku jika database dan aplikasi-aplikasinya baru.

Proses Perancangan Database

Enam Fase proses perancangan database :
1.    Pengumpulan data dan analisis (Requirments Collection and Analysis)
2.    Perancangan database secara konseptual (Conceptual Design)
3.    Pemilihan DBMS (Choise of DBMS)
4.    Perancangan database secara logika (Data Model Mapping)
5.    Perancangan database secara fisik (Physical Deign)
6.    Implementasi Sistem database (Implementation)


Keterangan :
Secara khusus proses perancangan berisikan 2 aktifitas paralel. Aktifitas yang pertama melibatkan perancangan dari isi data dan struktur database, sedangkan aktifitas kedua mengenai perancangan pemrosesan database dan aplikasi-aplikasi perangkat lunak.

Dua aktifitas ini saling menjalin, misalnya : kita dapat mengidentifikasikan data item yang akan disimpan dalam database dengan menganalisa aplikasi-aplikasi database. Dua aktifitas ini juga saling mempengaruhi satu sama lain. Contohnya : fase perancangan database secara fisik, pada saat kita memilih struktur penyimpanan dan jalur-jalur akses dari file-file database yang tergantung pada aplikasi-aplikasi yang akan menggunakan file-file tsb.

Di lain pihak, kita biasanya menentukan perancangan aplikasi-aplikasi database dengan mengarah kepada konstruksi skema database yang telah ditentukan selama aktifitas yang pertama. 6 fase di atas tidak harus diproses berurutan. Pada beberapa hal, rancangan tsb dapat dimodifikasi dari yang pertama dan sementara itu mengerjakan fase yang terakhir (feedback loop antara fase) dan feedback loop dalam fase sering terjadi selama proses perancangan.

Fase 1 merupakan kumpulan informasi yang berhubungan dengan penggunaan database. Fase 6 merupakan implementasi databasenya. Fase 1 dan 6 kadang-kadang bukan merupakan bagian dari perancangan database, tetapi merupakan bagian dari siklus kehidupan sistem informasi secara umum. Inti dari proses perancangan database adalah fase 2,4,5

Fase 1 : Pengumpulan data dan analisa

Proses identifikasi dan analisa kebutuhan-kebutuhan data disebut pengumpulan data dan analisa. Untuk menentukan kebutuhan-kebutuhan suatu sistem database, pertama-tama harus mengenal bagian-bagian lain dari sistem informasi yang akan berinteraksiengan sistem database, termasuk para pemakai yang ada dan para pemakai yangbaru serta aplikasi-aplikasinya. Kebutuhan-kebutuhan dari para pemakai dan aplikasi-aplikasi inilah yang kemudian dikumpulkan dan dianalisa.

Aktifitas-aktifitas pengumpulan data dan analisa :
Menentukan kelompok pemakai dan bidang-bidang aplikasinya Mennentukan aplikasi utama dan kelompok user yang akan menggunakan database. Individu utama pada tiap-tiap kelompok pemakai dan bidang aplikasi yang telah dipilih merupakan peserta utama pada langkah-langkah berikutnya dari pengumpulan dan spesifikasi data.

Peninjauan dokumentasi yang ada Dokumen yang ada yang berhubungan dengan aplikasi-aplikasi dipelajari dan dianalisa. Dokumen-dokumen lainnya (seperti : kebijaksanaan-kebijaksanaan, form, report, dan bagan organisasi) diuji dan ditinjau kembali untuk menguji apakah dokumen-dokumen tsb berpengaruh terhadap kumpulan data dan proses spesifikasi.

Analisa lingkungan operasi dan pemrosesan data Informasi yang sekarang dan yang akan datang dipelajari. Termasuk juga analisa jenis-jenis transaksi dan frekuensi-frekuensi transaksinya dan juga arus informasi dalam sistem. Input-output data untuk transaksi-transaksi tsb diperinci.

Daftar pertanyaan dan wawancara Tuliskan tanggapan -tanggapan dari pertanyaan-pertanyaan yang telah dikumpulkan dari para pemakai database yang berpotensi. Ketua kelompok (individu utama) dapat diwawancarai sehingga input yang banyak dapat diterima dari mereka dengan memperhatikan informasi yang berharga dan mengadakan prioritas.

Fase 2 : Perancangan database secara konseptual

Tujuan dari fase ini adalah menghasilkan conceptual schema untuk database yang tergantung pada sebuah DBMS yang spesifik. Sering menggunakan sebuah high-level data model seperti ER/EER model selama fase ini. Dalam conceptual schema, kita harus memerinci aplikasi-aplikasi database yang diketahui dan transaksi-transaksi yang mungkin.

Fase perancangan database secara konseptual mempunyai 2 aktifitas paralel :
1.    Perancangan skema konseptual :
menguji kebutuhan-kebutuhan data dari suatu database yang merupakan hasil dari fase 1, dan menghasilkan sebuah conceptual database schema pada DBMS- independent model data tingkat tinggi seperti EER (enhanced entity relationship) model.

Skema ini dapat dihasilkan dengan menggabungkan bermacam-macam kebutuhan user dan secara langsung membuat skema database atau dengan merancang skema-skema yang terpisah dari kebutuhan tiap-tiap user dan kemudian menggabungkan skema-skema tsb. Model data yang digunakan pada perancangan skema konseptual adalah DBMS-independent, dan langkah selanjutnya adalah memilih sebuah DBMS untuk melaksanakan rancangan tsb.

2.    Perancangan transaksi :
menguji aplikasi-aplikasi database dimana kebutuhan-kebutuhannya telah dianalisa pada fase 1, dan menghasilkan perincian transaksi-transaksi ini. Kegunaan fase ini yang diproses secara paralel bersama fase perancangan skema konseptual adalah untuk merancang karakteristik dari transaksi-transaksi database yang telah diketahui pada suatu DBMS-independent. Transaksi-transaksi ini akan digunakan untuk memproses dan memanipulasi database suatu saat dimana database tsb dilaksanakan.

Fase 3 : Pemilihan DBMS

Pemilihan database di tentukan oleh beberapa faktor, diantaranya : faktor teknik, ekonomi, dan politik organisasi.

Contoh faktor teknik :
keberadaan DBMS dalam menjalankan tugasnya seperti jenis-jenis DBMS (relational, network, hierarchical, dll), struktur penyimpanan, dan jalur akses yang mendukung DBMS, pemakai, dll.

Faktor-faktor ekonomi dan organisasi yang mempengaruhi satu sama lain dalam pemilihan DBMS :
Struktur data
Jika data yang disimpan dalam database mengikuti struktur hirarki, maka suatu jenis
hirarki dari DBMS harus dipikirkan.
Personal yang telah terbiasa dengan suatu sistem
Jika staf programmer dalam suatu organisasi sudah terbiasa dengan suatu DBMS, maka hal ini dapat mengurangi biaya latihan dan waktu belajar.
Tersedianya layanan penjual
Keberadaan fasilitas pelayanan penjual sangat dibutuhkan untuk membantu memecahkan beberapa masalah sistem.

Fase 4 : Perancangan database secara logika (pemetaan model data)
Fase selanjutnya dari perancangan database adalah membuat sebuah skema konseptual dan skema eksternal pada model data dari DBMS yang terpilih. Fase ini dilakukan oleh pemetaan skema konseptual dan skema eksternal yang dihasilkan pada fase 2. Pada fase ini, skema konseptual ditransformasikan dari model data tingkat tinggi yang digunakan pada fase 2 ke dalam model data dari DBMS yang dipilih pada fase 3.

Pemetaannya dapat diproses dalam 2 tingkat :
Pemetaan system-independent :
pemetaan ke dalam model data DBMS dengan tidak mempertimbangkan karakteristik atau hal-hal yang khusus yang berlaku pada implementasi DBMS dari model data tsb.
Penyesuaian skema ke DBMS yang spesifik :
mengatur skema yang dihasilkan pada langkah 1 untuk disesuaikan pada implementasi yang khusus di masa yang akan datang dari suatu model data yang digunakan pada DBMS yang dipilih.

Hasil dari fase ni memakai perintah-perintah DDL dalam bahasa DBMS yang dipilih yang menentukan tingkat skema konseptual dan eksternal dari sistem database. Tetapi dalam beberapa hal, perintah-perintah DDL memasukkan parameter-parameter rancangan fisik sehingga DDL yang lengkap harus menunggu sampai fase perancangan database secara fisik telah lengkap.

Fase ini dapat dimulai setelah pemilihan sebuah implementasi model data sambil menunggu DBMS yang spesifik yang akan dipilih. Contoh: jika memutuskan untuk menggunakan beberapa relational DBMS tetapi belum memutuskan suatu relasi yang utama. Rancangan dari skema eksternal untuk aplikasi-aplikasi yang spesifik seringkali sudah selesai selama proses ini.

Fase 5 : Perancangan database secara fisik

Perancangan database secara fisik merupakan proses pemilihan struktur-struktur penyimpanan dan jalur-jalur akses pada file-file database untuk mencapai penampilan yang terbaik pada bermacam-macam aplikasi. Selama fase ini, dirancang spesifikasi-spesifikasi untuk database yang disimpan yang berhubungan dengan struktur-struktur penyimpanan fisik, penempatan record dan jalur akses. Berhubungan dengan internal schema (pada istilah 3 level arsitektur DBMS).

Beberapa petunjuk dalam pemilihan perancangan database secara fisik :
Response time : waktu yang telah berlalu dari suatu transaksi database yang diajukan untuk menjalankan suatu tanggapan. Pengaruh utama pada response time adalah di bawah pengawasan DBMS yaitu : waktu akses database untuk data item yang ditunjuk oleh suatu transaksi. Response time juga dipengaruhi oleh beberapa faktor yang tidak berada di bawah pengawasan DBMS, seperti penjadwalan sistem operasi atau penundaan komunikasi.
Space utility : jumlah ruang penyimpanan yang digunakan oleh file-file database dan struktur-struktur jalur akses.
Transaction throughput : rata-rata jumlah transaksi yang dapat diproses per menit oleh sistem database, dan merupakan parameter kritis dari sistem transaksi (misal : digunakan pada pemesanan tempat di pesawat, bank, dll). Hasil dari fase ini adalah penentual awal ari struktur penyimpanan dan jalur akses untuk file-file database.

Fase 6 : Implementasi sistem database

Setelah perancangan secara logika dan secara fisik lengkap, kita dapat melaksanakan sistem database. Perintah-perintah dalam DDL dan SDL(storage definition language) dari DBMS yang dipilih, dihimpun dan digunakan untuk membuat skema database dan file-file database (yang kosong). Sekarang database tsb dimuat (disatukan) dengan datanya.

Jika data harus dirubah dari sistem komputer sebelumnya, perubahan-perubahan yang rutin mungkin diperlukan untuk format ulang datanya yang kemudian dimasukkan ke atabase yang baru. Transaksi-transaksi database sekarang harus dilaksanakan oleh para programmmer aplikasi.

Spesifikasi secara konseptual diuji dan dihubungkan dengan kode program dengan perintah-perintah dari embedded DML yang telah ditulis dan diuji. Suatu saat transaksi- transaksi tsb telah siap dan data telah dimasukkan ke dalam database, maka fase perancangan dan implementasi telah selesai, dan kemudian fase operasional dari sistem database dimulai.

MODEL EER
Obyektif :
v  Mahasiswa dapat mengerti dan memahami konsep Model EER serta simbol-simbol yang digunakan dalam Model EER
v  Mahasiswa dapat merancang basis data dengan menggunakan model ER dan EER

ENHANCED ENTITY RELATIONSHIP (EER) DIAGRAM
Model EER berisikan seluruh konsep model ER ditambah konsep-konsep dari subclass dan superclass, dan konsep-konsep yang berhubungan yaitu specialization dan generalization. Konsep lainnya yang termasuk dalam model EER yaitu Category.

Subclass dan Superclass
Dalam beberapa hal, suatu jenis entitas akan mempunyai banyak tambahan subgroup entitas yang sangat berarti dan perlu digambarkan secara nyata karena entitas-entitas tsb penting sekali artinya bagi aplikasi database.

Contoh :
Entitas-entitas yang merupakan anggota dari entitas EMPLOYEE dikelompokkan menjadi secretary, engineer, manager, technician, salaried_employee, hourly_employee, dll. Himpunan entitas pada tiap-tiap group adalah subset entitas dari entitas EMPLOYEE, yang berarti bahwa setiap entitas yang merupakan anggota dari salah satu subgroup-subgroup ini adalah suatu employee juga. Tiap-tiap subgroup tadi adalah suatu subclass dari entity EMPLOYEE, dan entity EMPLOYEE disebut superclass untuk tiap-tiap subclass tsb. Hubungan antara superclass dan beberapa subclass-nya disebut superclass/subclass relationship.

Contoh :
EMPLOYEE/SECRETARY dan EMPLOYEE/TECHNICIAN adalah dua superclass/ subclass  relationships. Sebuah entitas tidak dapat berada dalam database dengan menjadi anggota suatu subclass saja, tetapi entitas tsb juga harus merupakan anggota dari superclass.

Specialization

Specialization adalah proses pendefinisian suatu himpunan subclass dari suatu entitas; entitas ini disebut superclass dari specialization. Himpunan subclass tsb membentuk specialization yang telah didefinisikan berdasarkan beberapa sifat/karakteristik yang istimewa dari suatu entitas pada suatu superclass yang menggambarkan perbedaan yang jelas antara entitas tsb.

Contoh :
himpunan subclass {SECRETARY, ENGINEER, TECHNICIAN} adalah specialization dari superclass entitas EMPLOYEE dimana perbedaan antara entitas EMPLOYEE berdasarkan pada jenis pekerjaan dari tiap-tiap entitas. Kita dapat mempunyai beberapa specialization dari jenis entitas yang sama berdasarkan perbedaan karakteristik yang istimewa.

Contoh :
specialization dari entitas EMPLOYEE dapat menghasilkan himpunan subclass {SALARIED_EMPLOYEE, HOURLY_EMPLOYEE}, pada specialization ini perbedaan entitas EMPLOYEE berdasarkan metode pembayarannya.

Generalization
Generalization adalah proses pendefinisian entitas-entitas yang disatukan menjadi entitas superclass tunggal dari entitas aslinya yang merupakan subclass istimewa. Proses generalization dapat dipandang sebagai kebalikan dari proses specialization.

Contoh : Gambar 1.
kita dapat memandang {CAR, TRUCK} sebagai specialization dari VEHICLE, sebaliknya kita memandang VEHICLE sebagai suatu generalization dari CAR dan TRUCK. Dengan cara yang sama, kita dapat memandang EMPLOYEE sebagai generalization dari SECRETARY, TECHNICIAN, dan ENGINEER.



Categorization
Category adalah kebutuhan yang timbul untuk model suatu relationship superclass/subclass tunggal dengan lebih dari satu superclass dimana superclas-superclass tsb menggambarkan jenis entity yang berbeda.

Contoh : Gambar 2.
Terdapat 3 jenis entitas yaitu : PERSON, BANK, dan COMPANY. Dalam suatu database REGISTERED_VEHICLE, pemilik kendaraan (OWNER) bisa saja perorangan, bank, atau perusahaan. Kita perlu membuat suatu class yang terdiri dari 3 jenis entitas untuk memainkan perannya sebagai pemilik kendaraan. Maka dibuat suatu category OWNER yaitu sebuah subclass dari gabungan (UNION) 3 class yaitu COMPANY, BANK, dan PERSON untuk kepentingan ini.

Pada gambar di atas, terdapat 2 category yaitu OWNER yang merupakan sebuah subclass dari gabungan PERSON, BANK, dan COMPANY, yang lainnya yaitu REGISTERED_VEHICLE yang merupakan subclass dari gabungan CAR dan TRUCK. Sebuah category dapat mempunyai 2 atau lebih superclass yang menggambarkan jenis-jenis entitas yang berbeda, sebaliknya relationship superclass/subclass lainnya selalu memiliki superclass tunggal.
Suatu category adalah subset dari gabungan superclass-nya. Oleh sebab itu suatu entitas yang merupakan anggota OWNER harus berisikan sedikitnya 1 superclass, tetapi tidak harus menjadi anggota dari seluruh superclass. Hal ini menggambarkan batasan bahwa seorang OWNER mungkin saja suatu COMPANY, sebuah BANK, atau perorangan (PERSON).

Perbedaan antara dua gambar di atas (generalize superclass VEHICLE dengan
category REGISTERED_VEHICLE) :

Pada generalize superclass VEHICLE :
v  Setiap mobil dan truk adalah vehicle
v  Jika dipisahkan, tidak dapat dihindari bahwa akan terdapat jenis entitas lain seperti entitas BICYCLE

Pada category REGISTERES_VEHICLE
v  Terdiri dari beberapa mobil dan beberapa truk, tetapi tidak seluruh mobil dan truk yang diregistrasikan
v  Category registered_vehicle menyatakan hanya mobil dan truk saja, dan bukan jenis entitas lain yang dapat menjadi anggota REGISTERED_VEHICLE

DATABASE CONTROL
Obyektif :
v  Mahasiswa dapat mengerti dan memahami konsep pengontrolan berbasis komputer
v  Mahasiswa dapat mengerti dan memahami konsep Concurrency dan Recovery
v  Mahasiswa dapat mengetahui masalah-masalah yang terjadi pada Concurrency Control
v  Mahasiswa dapat mengetahui teknik dan fasilitas yang ada pada Recovery


PENGONTROLAN BERBASIS KOMPUTER

1. Security Database

Authorization
Pemberian hak akses yang mengizinkan sebuah subyek mempunyai akses secara legal terhadap sebuah sistem atau obyek.

Subyek   =>  user atau program
Obyek     =>  database table, view, application, procedure, atau obyek lainnya yang dibuat di
                     dalam sebuah sistem

Jenis-jenis hak akses (privileges)
v  Penggunaan nama database yang spesifik
v  Select (retrieve) data
v  Membuat tabel (obyek lainnya)
v  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)
v  Menjalankan prosedur khusus dan utilitas program
v  Membuat database
v  Membuat (dan memodifikasi) DBMS user identifiers dan authorized identifiers jenis lainnya
v  Anggota dari sebuah kelompok atau kelompok-kelompok user

Views (Subschemas)
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 database, tetapi dihasilkan atas permintaan user secara khusus.

Backing Up
Proses yang secara periodik menyalin database dan menjurnal (dan memprogram) ke dalam media penyimpanan offline

Journaling
Proses penyimpanan dan pemeliharaan sebuah jurnal atau log seluruh perubahan terhadap database agar dapat merecover secara efektif jika terjadi kegagalan.

Checkpointing
Titik temu sinkronisasi antara database dan transaksi log file. Seluruh data yang disimpan di tempat sementara akan disimpan di media penyimpanan kedua.

Integrity
Pengontrolan integritas juga membantu memelihara sistem database yang aman dengan mencegah data dari invalid

Encryption
Penyandian (encoding) data dengan menggunakan algoritma khusus yang merubah data menjadi tidak dapat dibaca oleh program apapun tanpa mendeskripsikannya.



2. Concurrency

Hampir semua DBMS adalah sistem multi user. Sistem seperti ini memerlukan mekanisme pengontrolan konkuren. Tujuan dari mekanisme ini adalah untuk menjamin bahwa transaksi-transaksi yang konkuren tidak saling menggangu operasinya masing-masing.

Terdapat beberapa masalah yang akan timbul dalam menjalankan transaksi-transaksi yang konkuren. Tiga masalah yang umum adalah :
1.    Masalah kehilangan modifikasi
2.    Masalah modifikasi sementara
3.    Masalah analisis yang tidak konsisten

Masalah Kehilangan Modifikasi

v  Transaksi A membaca R pada t1, transaksi B membaca R pada t2. Transaksi A memodifikasi R pada t3.
v  Transaksi B memodifikasi record yang sama pada t4.
v  Modifikasi dari transaksi A akan hilang karena transaksi B akan memodifikasi R tanpa memperhatikan modifikasi dari transaksi A pada t3.

Masalah Modifikasi Sementara
Masalah ini timbul jika transaksi membaca suatu record yang sudah dimodifikasi oleh transaksi lain tetapi belum terselesaikan (uncommited), terdapat kemungkinan kalau transaksi tersebut dibatalkan (rollback).


v  Transaksi B memodifikasi record R pada t1
v  Transaksi A membaca R pada t2
v  Pada saat t3 transaksi B dibatalkan
v  Maka transaksi A akan membaca record yang salah
v  Pada waktu t2 transaksi A memodifikasi R
v  Karena transaksi B dibatalkan pada waktu t3, maka transaksi A memodifikasi record yang salah.

Masalah Analisis yang Tidak Konsisten

Nilai 1 = 40, Nilai 2 = 50, Nilai 3 = 30

v  Transaksi A menjumlahkan nilai 1, nilai 2 dan nilai 3
v  Transaksi B à nilai 1 +10 ; nilai 3 - 10
v  Pada waktu t8, transaksi A membaca nilai yang salah karena nilai 3 sudah dimodifikasi menjadi 20 (transaksi B sudah melakukan commit sebelum transaksi A membaca nilai 3)

Keterangan:
ü  Commit adalah operasi yang menyatakan bahwa suatu transaksi sudah terselesaikan/ sukses (successfull end-of-transaction).
ü  Rollback adalah operasi yang menyatakan bahwa suatu transaksi dibatalkan (unsuccessfull end-of-transaction).

Locking
Locking adalah salah satu mekanisasi pengontrol konkuren. Konsep dasar: pada saat suatu transaksi memerlukan jaminan kalau record yang diinginkan tidak akan berubah secara mendadak, maka diperlukan kunci untuk record tersebut. Fungsi kunci (lock) adalah menjaga record tersebut agar tidak dimodifikasi transaksi lain.

Cara kerja dari kunci :
Pertama kita asumsikan terdapat 2 macam kunci :
Lock-X : kunci yang eksklusif.
Lock-S : kunci yang digunakan bersama-sama.

Jika transaksi A menggunakan kunci X pada record R, maka permintaan dari transaksi B untuk suatu kunci pada R ditunda, dan B harus menungggu sampai A melepaskan kunci tersebut.

Jika transaksi A menggunakan kunci S pada record R, maka:
a.    Bila transaksi B ingin menggunakan kunci X, maka B harus menunggu sampai A melepaskan kunci tersebut.
b.    Bila transaksi B ingin menggunakan kunci S, maka B dapat menggunakan kunci S bersama A
Tabel Kunci :

Bila suatu transaksi hanya melakukan pembacaan saja, secara otomatis ia memerlukan kunci S à baca (S)

Bila transaksi tersebut ingin memodifikasi record maka secara otomatis ia memerlukan kunci X à memodifikasi (X).

Bila transaksi tersebut sudah menggunakan kunci S, setelah itu ia akan memodifikasi record, maka kunci S akan dinaikan ke level kunci X.

Kunci X dan kunci S akan dilepaskan pada saat synchpoint (synchronization point). Synchpoint menyatakan akhir dari suatu transaksi dimana basis data berada pada state yang konsisten. Bila synchpoint ditetapkan maka :
ü  Semua modifikasi program menjalankan operasi commit atau rollback.
ü  Semua kunci dari record dilepaskan.

Masalah Kehilangan Modifikasi

v  Pada waktu t3, transaksi A memerlukan kunci X, maka transaksi A harus menunggu sampai B melepaskan kunci S.
v  Transaksi B juga harus menunggu pada t4. Maka tidak akan ada yang kehilangan modifikasi, tetapi terdapat keadaan baru yaitu DEADLOCK.

Masalah Modifikasi Sementara.

v  Transaksi A pada t2 tidak dapat dijalankan langsung, tetapi harus menunggu sampai B melepas kunci X.
v  Bila B sudah mencapai synchpoint, maka kunci X dilepaskan dan A dapat meneruskan prosesnya.
v  Maka transaksi A tidak akan terjasi kesalahan dalam membaca, karena sudah mencapai synchpoint.

Masalah Analisa yang Tidak Konsisten

Nilai 1 = 40, Nilai 2 = 50, Nilai 3 = 30

v  Transaksi B pada t6 tidak diijinkan, karena memerlukan kunci X maka B harus menunggu sampai A melepaskan kunci S kepada nilai 1.
v  Pada t7 transaksi A juga tidak dapat langsung dilaksanakan, karena B menggunakan kunci X pada nilai 3. Maka A harus menunggu B melepaskan kunci X pada nilai 3.
v  Transaksi A akan membaca nilaiyang benar, tapi timbul masalah baru yaitu DEADLOCK.

Time Stamping
Salah satu alternatif mekanisme pengawasan konkuren yang dapat menghilangkan masalah deadlock adalah TIME STAMPING. Dalam skema ini tidak ada kunci yang digunakan sehingga tidak ada deadlock yang muncul. Time stamping untuk sebuah transaksi aksi merupakan suatu tanda pengenal yang unik yang menunjuk waktu mulai relatif dari transaksi.

Time stamp dapat berupa pembacaan pada kinci internal pada waktu transaksi dimulai, dapat berupa nilai dari suatu penunjuk logical yang dapat bertambah setiap kali suatu transaksi baru dimulai. Dalam hal ini nilai time stamp dari setiap transaksi adalah unik dan menunjukkan bagaimana lamanya transaksi tersebut . Pengaruh dari time stamping adalah menentukan suatu urutan serial transaksi.

Setiap item data terdiri dari sebuah lead time stamp yang memberikan time stamp transaksi terakhir untuk membawa item dan sebuah write time stamp yang memberikan transaksi terakhir untuk menuliskan / memperbaharui item.

Masalah dapat timbul dengan time stamping :
Suatu transaksi memerintahkan untuk membaca sebuah item yang sudah diupdate oleh transaksi yang belakangan
Suatu transaksi memerintahkan untuk menulis sebuah item yang nilainya sudah dibaca / ditulis oleh transaksi yang belakangan


3. Recovery

Recovery Facilities
Sebuah DBMS sebaiknya menyediakan fasilitas-fasilitas berikut ini untuk membantu recovery
v  Backup mechanism
melakukan backup secara periodik terhadap database yang ada
v  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 pada database.
v  Checkpoint facility
Mengizinkan update terhadap database yang akan menjadi database yang permanen
v  Recovery manager
Mengizinkan sistem untuk restore database ke keadaan sebelum terjadi kerusakkan



Recovery Techniques
Prosedur recovery yang digunakan tergantung dari kerusakkan yang terjadi pada database. Terdapat 2 kasus kerusakkan :
Jika database rusak secara fisik seperti : disk head crash dan menghancurkan database, maka yang terpenting adalah melakukan restore backup database yang terakhir dan mengaplikasikan kembali operasi-operasi update transaksi yang telah commit dengan menggunakan log file. Dengan asusmsi bahwa log filenya tidak rusak.
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 di dalam 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 log file.

Teknik recover berikut ini dilakukan terhadap situasi dimana database tidak rusak tetapi database dalam keadaan yang tidak konsisten.
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, sistem akan menguji log dan menentukan transaksi mana yang perlu dikerjakan ulang, tetapi tidak perlu membatalkan semua transaksi.

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

Share this

Related Posts

Previous
Next Post »