Minggu, 06 Oktober 2013

Tugas_2 sbd_A11.2011.06066

Managemen transaksi 

Eksekusi konkurensi


  • Pada eksekusi konkurensi, banyak transaksi dimungkinkan untuk diproses secara bersama – sama dalam suatu sistem.
  •  Memperbolehkan banyak transaksi untuk mengupdate data secara konkuren akan menyebabkan beberapa komplikasi dengan konsistensi data.
  •  Untuk memastikan bahwa konsistensi tetap terjaga dengan baik pada eksekusi konkuren, membutuhkan usaha yang lebih kuat. Akan lebih mudah jika transaksi berjalan secara serial.
 Keuntungan konkurensi :

  •    Meningkatkan utilitas disk dan prosesor
  •    Mengurangi rata – rata waktu respon transaksi


Dalam konkurensi dikenal dengan konsep penjadwalan (schedule) yang akan membantu
mengidentifikasi eksekusi agar konsistensi datanya tetap terjaga.

 Sistem Basis Data harus mengontrol interaksi diantara transaksi konkuren supaya transaksi – transaksi tersebut tidak menghancurkan konsistensi basis datanya (data menjadi tidak konsisten).

Eksekusi konkurensi schedule
Penjadwalan / Schedule merupakan urutan yang mengindikasikan urutan kronologis instruksi
yang mana dari transaksi konkuren yang akan dieksekusi.
 Sebuah jadwal merupakan bagian dari suatu transaksi yang harus terdiri dari semua instruksi yang ada di dalamnya.
 Sebuah jadwal harus menjaga urutan instruksi yang muncul di setiap transaksi.

Misal T1 adalah transaksi transfer $50 dari A ke B, dan T2 adalah transfer 10% dari jumlah rekening A ke B. Penjadwalan berikut adalah pada transaksi serial, dimana T1 dulu yang diselesaikan baru diikuti oleh T2


Penjadwalan 1 di text book

Contoh penjadwalan selanjutnya, dengan transaksi yang sama, tetapidalam bentuk transaksi konkurensi, tapi ekivalen dengan penjadwalansebelumnya.

Penjadwalan 3 padaText book

Pada contoh penjadwalan yang pertama dan yang kedua, jumlahrekening A + B sebelum dan sesudah transaksi sama, tapi tidak dengan contoh penjawalan konkurensi berikut :

Penjadwalan 4 pada text book


Serializability


  • Sistem basis data harus dapat mengontrol eksekusi konkurensi dari suatu transaksi untuk memastikan database tetap terjaga konsistensinya.
  •  Asumsi dasar, bahwa setiap transaksi harus tetap menjaga konsistensi database.
  •  Eksekusi secara serial pada suatu transaksi dapat menjaga database tetap konsisten.
  •  Sebuah jadwal (yang mungkin konkuren), serializable jika setara dengan penjadwalan secara serial. Pada bagian ini ada dua bentuk ekivalensi penjadwalan (Schedule Equivalence) : Conflict dan View Serializability.
  • Pada serializability kita abaikan operasi selain dari instruksi read dan write, serta diasumsikan bahwa transaksi dapat melakukan perhitungan terhadap data di dalam buffer lokal diantara instruksi read dan write.

Conflict Serializability

Instruksi Ii dan Ij masing – masing dari transaksi Ti dan Tj , konflik jika dan hanya jika ada beberapa item data yang sama (Q) diakses secara bersama – sama baik oleh Ii dan Ij , serta setidaknya salah satu dari instruksi melakukan operasi write (Q).
    1. Jika Ii = read(Q) dan Ij = read(Q), maka Ii dan Ij tidak konflik
    2. Jika Ii = read(Q) dan Ij = write(Q), maka Ii dan Ij konflik
    3. Jika Ii = write(Q) dan Ij = read(Q), maka Ii dan Ij konflik
    4. Jika Ii = write(Q) dan Ij = write(Q), maka Ii dan Ij konflik

Secara intuitif, konflik diantara Ii dan Ij memaksakan perintah logika temporal diantara keduanya.

Jika Ii dan Ij merupakan instruksi dari transaksi berbeda dan tidak konflik, maka urutan instruksi Ii dan Ij dapat ditukar sehingga menghasilkan jadwal baru dengan hasil yang tetap sama.

Jika jadwal S dapat ditransformasikan menjadi jadwalan S’oleh serangkaian pertukaran instruksi yang non-konflik, maka bisa dikatakan S dan S’ adalah conflict equivalent.

Bisa dikatakan bahwa jadwal S adalah conflict serializable jika conflict equivalent terhadap penjadwalan serial.

Contoh penjadwalan yang tidak conflict serializable

T3                                       T4
read(Q)
                                       write(Q)

write(Q)

Penjadwalan 3 di bawah bisa ditransformasikan ke penjadwalan 1, penjadwalan serial dimana T2 diikuti T1 , dengan serangkaian penukaran instruksi yang tidak konflik. Oleh karena itu penjadwalan di bawah ini conflict serializability.
View Serializability

Misalkan S dan S’ adalah dua jadwal dengan serangkaian transaksi yang
sama. S dan S’ adalah view equivalent.
S dan S’ adalah view equivalent jika memenuhi kondisi sebagai berikut :
    1. Untuk masing – masing data item Q , jika transaksi Ti membaca inisialisasi nilai pada Q           di dalam jadwal S, maka transaksi Ti yang ada di jadwal S’ juga harus membaca                         inisialisasi nilai pada Q.
2. Untuk masing – masing data item Q, jika transaksi Ti mengeksekusi read(Q) di dalam               jadwal S, dan jika nilai yang dihasilkan oleh operasi write(Q) dieksekusi oleh transaksi Tj ,         maka operasi read(Q) pada transaksi Ti yang harus ada di jadwal S‘ juga membaca nilai Q       yang dihasilkan oleh operasi write(Q) yang sama pada transaksi Tj
3. Untuk masing – masing data item Q, transaksi yang sampai ke tahap akhir operasi write(Q)      di dalam jadwal S

Seperti yang terlihat, view serializability juga dilihat berdasarkan pada operasi read dan write saja
Sebuah jadwal S adalah view seralizable , setara dengan penjadwalan serial.

Setiap penjadwalan conflict serializable juga view serializable.

Penjadwalan di bawah ini (penjadwalan 9 di text book) adalah penjadwalan yang view serializable tapi tidak conflict serializable.

Penjadwalan di bawah (penjadwalan 9 di text book) menghasilkan outcome yang sama sebagai jadwal serial (T1, T2)

Recoverability


Recoverable Schedule – Jika transaksi Tj membaca sebuah item data yang sebelumnya ditulis oleh transaksi Ti , maka operasi commit Ti muncul sebelum operasi commit Tj .

Jadwal berikut (jadwal 11 di text book) tidak recoverable jika T9 commit segera setelah read

Jika T8 dibatalkan, maka T9 bisa jadi akan membaca state database inkonsisten. Maka dengan demikian database harus memastikan bahwa jadwal dapat dipulihkan jika terjadi sesuatu hal.

Cascading Rollback – kesalahan pada satu transaksi yang yang dapat berpengaruh pada serangkaian transaksi lainnya sehingga keseluruhan transaksi akan di-rollback.
Misalkan pada penjadwalan berikut dimana belum ada transaksi yang dicommit, sehingga jika terjadi masalah bisa dipulihkan.

Jika T10 transaksinya fail, maka T11 dan T12 juga harus di rollback. Jika tidak demikian, maka akan menyebabkan banyaknya pekerjaan yang tidak akan terselesaikan.

Cascadeless Schedule – cascading rollback tidak dapat terjadi, untuk setiap pasang
transaksi Ti dan Tj dimana Tj membaca sebuah item data yang sebelumnya ditulis oleh Ti dan operasi commit pada Ti muncul sebelum operasi read pada Tj.

Setiap cascadeless schedule juga dapat dipulihkan (recoverable);


Testing Serializability

Pada saat mendesain skema kontrol konkurensi, kita harus tunjukan bahwa jadwal yang dibuat oleh skema tersebut adalah serializable.

Terdapat metode simpel dan efisien untuk menentukan conflict serializability dari suatu jadwal.

Misalkan sebuah jadwal S. Kita dapat membuat suatu grafik langsung yang diberi nama grafik preseden (presedence graph).

Grafik preseden terdiri dari sepasang G = (V,E), dimana V adalah serangkaian simpul dan E adalah serangkaian tepian / busur.

Serangkaian simpul terdiri dari semua transaksi yang berperan serta di dalam penjadwalan. Serangkaian tepian / busur terdiri dari semua bentuk Ti -> Tj untuk masing –
masing dari ketiga kondisi berikut :
1. Ti eksekusi write(Q) sebelum Tj eksekusi read(Q)
2. Ti eksekusi read(Q) sebelum Tj eksekusi write(Q)
3. Ti eksekusi write(Q) sebelum Tj eksekusi write(Q)

Jika bentuk Ti -> Tj ada di dalam grafik preseden, maka di setiap jadwal S’ serial yang ekivalen ke jadwal S, Ti harus muncul sebelum Tj.


Sebagai contoh, grafik preseden untuk penjadwalan 1 digambarkan di (a), terdiri dari bentuk dasar T1 -> T2 , dimana semua instruksi T1 dieksekusi sebelum instruksi pertama pada T2 dieksekusi. Begitu juga sebaliknya untuk contoh yang digambarkan

di (b).


Grafik preseden untuk jadwal 4, terdiri dari bentuk T1 - > T2 , karena T1 mengeksekusi read(A) sebelum T2 mengeksekusi write(A). Grafik ini jg terdiri dari bentuk T2 -> T1 , karena T2 mengeksekusi read(B) sebelum T1 eksekusi write(B).

Jika grafik preseden untuk S membentuk suatu lingkaran, maka jadwal S tidak conflict serializable. Jika sebaliknya, maka jadwal S conflict serializable.

Tugas1_A11.2011.06066

Relasi Aljabar

relasi aljabar : Yaitu sekumpulan operasi yang digunakan untuk melakukan proses manipulasi data dalam
rangka untuk mendapatkan informasi yang diperlukan dari database.

Secara umum dibagi menjadi 2:

  • operasi himpunan (UNION, INTERSECTION,DIFFERENCE, dan CARTESIAN PRODUCT)
  • operasi yang dikembangkan secara khusus untuk database relational. (SELECT, PROJECT dan JOIN)                              
Oprasi SELECT
Untuk memilih baris tertentu dari sebuah himpunan baris data (record) yang memenuhi kondisi dan membuang baris yang lain.

Notasi :
σ<kondisi pilihan> (<nama relasi>)

CONTOH :
σdep_nomor=4(PEGAWAI)

untuk memilih sub himpunan pegawai yang bekerja departemen nomor 4

σgaji>30000 AND dep_nomor=3 (PEGAWAI)

untuk memilih sub himpunan pegawai yang memiliki gaji lebih dari 30000 yang bekerja di departemen 3

Operasi PROJECT
Untuk memilih attribut (kolom) tertentu dari himpunan /subhimpunan dan membuang yang lain
Notasi :

p<daftar attribut> (<nama relasi>)

Jika <daftar attribut> tidak menyertakan primary key, maka dimungkinkan akan terjadi duplikasi.
Duplikasi ini akan dihilangkan sehingga hanyasekali yang muncul.
Contoh :

Untuk memilih atribut JenisKel dan Gaji dari tabel Pegawai:

pJenisKel, Gaji (Pegawai)

Operasi Himpunan

UNION: notasi  è R υ S
    Relasi yang menggabungkan semua baris di R atau S dengan meniadakan duplikasi

INTERSECTION: notasi è R Ç  S
    Relasi yang terdiri dari baris yang ada di R dan juga ada di S

DIFFERENCE: notasi  è R – S
    Relasi yang terdiri dari semua baris di R, tetapi tidak ada di S

Relasi yang dioperasikan dengan operasi-operasi di atas harus memiliki jumlah attribut dan jenis yang sama (union compatible)

CARTESIAN PRODUCT  è R X S
Relasi yang terdiri dari kombinasi baris yang terdapat di R dan S. Yang mana setiap baris di R digabungkan dengan setiap baris di S
Contoh :

Mengambil nama-nama pegawai wanita beserta namanama tanggungan masing-masing:















Operasi Join 

Digunakan untuk mengkombinasikan baris-baris  yang berhubungan dari dua relasi menjadi barisbaris tunggal.
Notasi:
     R |x|<kondisi join> S

Kondisi join dalam bentuk:
    <kondisi> AND <kondisi> AND … AND
    <kondisi>
Operator pembandingan: {=, <, ≤, >, ≥, ≠}

Contoh
Mendapatkan nama departemen beserta nama pimpinan masing-masing

DEPT (dep_nomor, dep_nama, dep_nama, dep_noKTP, dep_TglMulai, dep_JmlPegawai)
<-- DEPARTEMEN
PIM_DEP <-- DEPT |x|dep_noKTP=noKTP PEGAWAI
HASIL <-- pdep_nama, nmDepan, nmBlk (PIM_DEP)

  Operasi join dengan kondisi join secara umum disebut dengan Theta Join.

  Kondisi join yang operator pembandingannya berupa =, disebut dengan Equijoin




Selasa, 19 Maret 2013

Handheld device

Handheld device


handheld device adalah sebuah alat yang dapat digunakan dengan ukuran yang cukup kecil sehingga dapat dibawa kemana saja, sesuai dengan namanya handheld device memiliki ukuran seukuran telapak tangan
contoh: HP
Handheld device menggunakan handheld sistem sebagai sistem kerjanya. sedangkan handheld sistem adalah sebuah system operasi yang lebih kecil dari mikrokomputer yang mempunyai memori yang terbatas, kecepatan Sistem Handheld lebih rendah dan display screen yang kecil. Contoh system handheld adalah Android, Symbian.

Embeded System

Embeded System



Embedded System (System Tertanam) adalah suatu sistem komputer yang didesain untuk menangani pekerjaan/ tujuan spesifik. Secara garis besar mirip dengan Operating System yang ada pada PC, Embedded System yang terdapat dalam suatu perangkat juga mengatur perilaku/fungsi dari Hardware tersebut. Namun, embedded system tidak bisa melakukan hal-hal yang umum seperti main game, mengedit data, memutar file multimedia hingga simulasi. Embedded System hanya mampu melakukan suatu mekanisme untuk tujuan tertentu sesuai dengan kemampuan perangkat dimana Embedded System itu terinstall. Contoh dari embedded system paling sederhana adalah HP jadul yang hanya berisikan teks tanpa ada fitur lainya seperti video,foto,game dsb.

Personal computing

Personal computing


Komputer Personal adalah mikrokomputer yang dianggap lebih kecil dan lebih murah dibandingkan komputer mainframe. Sistem operasi untuk komputer-komputer seperti ini diuntungkan oleh pengembangan sistem operasi untuk komputer mainframe dalam beberapa hal. Namun, semenjak penggunaan komputer untuk keperluan pribadi, maka utilisasi CPU tidak lagi menjadi perhatian utama. Karena itu, beberapa desain untuk komputer mainframe tidak cocok untuk sistem yang lebih kecil.

Time Sharing

Time Sharing


Time sharing merupakan varian dari multiprogramming, yakni tiap pemakai mempunyai satu terminal online.Pemroses hanya memberi layanan pada pemakai pemakai yang aktif dengan bergantian secara cepat.Pemakai pemakai itu akan merasa dilayani secara terus menerus,padahal sebenarnya digilir persatuan waktu yang singkat.Efek ini biasa di sebut pseudoparallelism ,yaitu efek seolah olah terdapat banyak komputer paralel yang melayani banyak pemakai.

Karena sumber daya lambat yang digunakan bersama sering menimbulkan bottleneck, maka dikembangkan teknik spooling.

Multi programming system

Multi programming system

Multi programming system adalah dimana job-job disimpan di main memory di waktu yang sama dan CPU dipergunakan bergantian. Hal ini membutuhkan beberapa kemampuan tambahan yaitu : Penyediaan I/O routine oleh sistem, Pengaturan memori untuk mengalokasikan memory pada beberapa Job, penjadwalan CPU untuk memilih job mana yang akan dijalankan, serta pengalokasian hardware lain.

Teknik multiprogramming dilakukan dengan mempartisi memori menjadi beberapa bagian.Satu bagian memori berisi satu job berbeda.Sistem oprasi menyimpan beberapa job di memori secara simultan.
Saat satu job menunggu oprasi masukan/keluaran diselesaikan,job lain menggunakan pemroses.Teknik ini memerlukan perangkat keras khusus untuk mencegah satu job mengganggu job lain.