Rabu, 17 Juni 2009

Masalah pada Konkurensi

MASALAH KEHILANGAN MODIFIKASI (LOST UPDATE PROBLEM)


Sebuah maskapai penerbangan memiliki sisa bangku kosong kelas VIP sebanyak 24 buah, yakni nomor A1 - A24. Perusahaan travel WKTOUR memesan kursi melalui pemesanan online sebanyak 3 kursi, yakni A1-A3. Pada saat bersamaan MKTOUR sebuah perusahaan travel lainnya juga melihat bangku kosong yang tersedia A1 - A24, jadi MKTOUR memesan kursi A2 - A4. Jika transaksi dilakukan secara serial, transaksi yang satu diproses setelah transaksi yang lain tanpa operasi interleaved (selang waktu operasi) maka tiket untuk kelas VIP akan berkurang sebanyak 6 buah yakni 3 buah untuk WKTOUR atas pemesanan kursi A1 - A3 dan 3 buah untuk MKTOUR atas pemesanan kursi A2 - A4. Tetapi karena masalah konkurensi bangku kosongnya hanya akan berkurang 4 buah karena tiket untuk bangku A2 - A3 dimiliki dua travel tersebut.

Untuk menyelesaikan masalah tersebut maka solusinya adlah diberikan kunci X untuk transaksi yang pertama kali di modifikasi, jadi untuk transaksi berikutnya harus menunggu transaksi yang awal melepaskan kunci X tersebut. Dan memberikan kunci S jika untuk melihat saja. Jadi pada saat WKTOUR melihat bangku yang kosong secara online dia hanya memakai kunci Sedangkan saat melakukan transaksi yakni memesan bangku A1 - A3, dia memakai kunci X sehingga pada saat MKTOUR juga ingin melakukan transaksi menjadi tidak bisa dan harus menunggu transaksi pertama selesai. MKTOUR hanya bisa melihat bangku yang kosong ada 24 buah yakni A1 - A24.
Pada saat WKTOUR selesai dia melakukan SYNCHPOINT, yaiu pelepasaan kunci X. Pada saat MKTOUR ingin melakukan transaksi kursi kosong yang tersedia sudah berubah menjadi 21 buah yakni A4 - A24.
Jadi MKTOUR memesan bangku A4 - A6. Disini suadh tidak ada lagi konkurensi, sehingga tiket yang sudah dipesan berkurang 6 buah dan bangku kosongnya juga berkuranng 6 buah




MASALAH MODIFIKASI SEMENTARA (UNCOMMITED UPDATE PROBLEM)


Sebuah maskapai penerbangan memiliki sisa bangku kosong kelas VIP sebanyak 15 buah, yakni nomor A1 - A15. Perusahaan travel WKTOUR memesan kursi melalui pemesanan online sebanyak 6 kursi, yakni A5 - A10. Pada saat transaksi WKTOUR belum selesai, sebuah perusahaan travel lain bernama MKTOUR melihat secara online pula tetapi bangku yang tersedia hanya 9 buah yakni nomor A1 - A4 dan A11 - A15. MKTOUR akhirnya memesan bangku A11 - A15. Jadi bangku yang tersisa tinggal 4 buah yakni A1 - A4. Tetapi karena suatu hal, transaksi WKTOUR yang belum terselesaikan mengalami pembatalan (rollback), sehingga bangku yang kosong menjadi 10 buah yakin A1 - A10. Hal ini merugikan pihak maskapai penerbangan, karena pada awalnya MKTOUR akan memesan 11 bangku yakni nomor A5 - A15, tapi tidak jadi karena pada saat melihat yang tersedia hanya A1 - A4 dan A11 - A15. Hal ini menyebabkan bangku kosong yang seharusnya sisa 4 buah menjadi sisa 10 buah.
Untuk menyelesaikan masalah tersebut maka solusinya adalah diberikan kunci X untuk transaksi yang pertama kali di modifikasi, jadi untuk transaksi berikutnya harus menunggu transaksi yang awal melepaskan kunci X tersebut. Dan memberikan kunci S jika untuk melihat saja.
Jadi pada saat perusahaan travel WKTOUR memesan kursi melalui pemesanan online sebanyak 6 kursi, yakni A5 - A10 dia memakai kunci X, sehingga jika MKTOUR ingin melakukan transaksi ia harus menunggu transaksi WKTOUR terselesaikan yaitu saat melakukan SYNCHPOINT (pelepasan kunci X). Pada saat transaksi WKTOUR selesai, MKTOUR melihat bangku yang tersedia ada 9 buah yakni nomor A1 - A4 dan A11 - A15. MKTOUR akhirnya memesan bangku A11 - A15.
Hal ini tidak merugikan pihak maskapai penerbangan, karena tidak ada pembatalan (rollback) sehingga bangku yang terpesan ada 11 buah.


MASALAH ANALISA YANG TIDAK KONSISTEN


Sebuah maskapai penerbangan memilki 3 kelas yang masing – masing kelas mempunyai bangku kosong sebenyak, A = (A1 – A20), B = (B10- B24), C = (C20 – C240). Sebuah perusahaan travel bernama WKTOUR memesan kursi A mulai dari A5 – A15dan kursi B mulai dari B10 – B20. Pada saat bersamaan travel lain bernama MKTOUR juga sedang melihat kursi kosong pada maskapai yang sama memesan kursi kelas A dari A16 – A20 dan kelas C dari C20 – C22. Bersamaan dengan MKTOUR yang selesai melakukan transaksi, WKTOUR kembali memesan kelas C dari C20 – C24, teryatakursi yang berhasil di pesan hanya C23 – C24. Hal ini disebabkan pada saat WKTOUR ingin memesan kursi kelas C, dia tidak melakukan pembacaan lagi, padahal nilainya telah berubah karena kursi kelas C sudah di pesan sebelumnya oleh MKTOUR.
Untuk menyelesaikan masalah tersebut maka solusinya adalah diberikan kunci X untuk transaksi yang pertama kali di modifikasi, jadi untuk transaksi berikutnya harus menunggu transaksi yang awal melepaskan kunci X tersebut. Dan memberikan kunci S jika untuk melihat saja.
Jadi pada saat WKTOUR melakukan transaksi travel lain tidak bias melakukan transaksi sebelum transaksi dari WKTOUR selesai atau melepaskan kunci X (SYNCHPOINT). Begitu juga pada saat MKTOUR melakukan transaksi, WKTOUR tidak bisa juga melakukan transaksi sebelum MKTOUR melakukan pelepasan kunci X (SYNCHPOINT)


Selasa, 19 Mei 2009

SQL

Slide 1
Slide 1

MySQL adalah sebuah perangkat lunak sistem manajemen basis data SQL (bahasa Inggris: database management system) atau DBMS yang multithread, multi-user, dengan sekitar 6 juta instalasi di seluruh dunia. MySQL AB membuat MySQL tersedia sebagai perangkat lunak gratis dibawah lisensi GNU General Public License (GPL), tetapi mereka juga menjual dibawah lisensi komersial untuk kasus-kasus dimana penggunaannya tidak cocok dengan penggunaan GPL.

Tidak sama dengan proyek-proyek seperti Apache, dimana perangkat lunak dikembangkan oleh komunitas umum, dan hak cipta untuk kode sumber dimiliki oleh penulisnya masing-masing, MySQL dimiliki dan disponsori oleh sebuah perusahaan komersial Swedia MySQL AB, dimana memegang hak cipta hampir atas semua kode sumbernya. Kedua orang Swedia dan satu orang Finlandia yang mendirikan MySQL AB adalah: David Axmark, Allan Larsson, dan Michael "Monty" Widenius.


Contoh perintah-perintah dalam SQL adalah


Create Database

Create & Decribe tabel Siswa

Create & Decribe tabel kursus

Create & Decribe tabel instruktur

Insert & Select tabel Siswa

Insert & Select tabel Kursus


Insert & Select tabel Instruktur


Selasa, 28 April 2009

Model Data

Model Data

 

PENGANTARMODEL DATA

Definisi Model Data

Sekumpulan perangkat konseptual untuk

menggambarkan data, hubungan data, semantik

(makna) data dan batasan data.

  • disebut juga model data logic
  • Dalam perancangan basis data, model data secara

umum dapat dibagi menjadi beberapa kelompok, yaitu:

1. Model data berbasis objek

2. Model data berbasis record

3. Model data fisik

4. Model data konseptual

1. MODEL DATA BERBASIS OBJEK

(Object Based Logical Model)

Model data berbasis objek menggunakan konsep

entitas, atribut dan hubungan antar entitas.

ΓΌ  Terdiri dari :

1. Entity Relationship Model

2. Binary Model

3. Semantik Data Model

4. Infological Model

1.1 Entity Relationship Model (ER-Model)

Model untuk menjelaskan hubungan antar data dalam

basis data berdasarkan suatu persepsi bahwa real word

terdiri dari objek-objek (entity) dasar yang mempunyai

hubungan atau relasi antara objek-objek tersebut.

E-R MODEL berisi ketentuan/aturan khusus yang

harus dipenuhi oleh isi database. Aturan terpenting

adalah MAPPING CARDINSLITIES, yang menentukan

jumlah entity yang dpt dikaitkan dengan entity lainnya

melalui relationship-set.

Berikut ini kasus dari Er-Model

 

 

 

 

1.2 Semantic Model

Hampir sama dengan Entity Relationship model dimana

relasi antara objek dasar tidak dinyatakan dengan

simbol tetapi menggunakan kata-kata (Semantic).

Sebagai contoh, dengan masih menggunakan relasi

pada Sewa sebagaimana contoh sebelumnya, dalam

Berikut ini kasus dari Semantik Model:


2. RECORD BASED DATAMODEL

(Record-Based Logical Models)

Model ini berdasarkan pada record untuk menjelaskan

kepada user tentang hubungan logic antar data dalam

basis data.

PERBEDAAN DENGAN OBJECT BASED DATA

MODEL

Pada record based data model disamping digunakan

untuk menguraikan struktur logika keseluruhan dari

suatu database, juga digunakan untuk menguraikan

implementasi dari system database (higher level

description of implementation

Model Logik Data Berdasarkan Record (Record-Based

Logical Models), terdiri dari :

1. Model Relational (Relational Model)

2. Model Hirarkis (Hierarchical Model)

3. Model Jaringan (Network Model)

 DUNIA NYATA (Real Word)

Real Word adalah keseluruhan data yang belum

terstruktur yang secara nyata ada/terkait dalam sebuah

lingkup topik yang ditinjau.

2.1 Model Relational

 Dimana data serta hubungan antar data

direpresentasikan oleh sejumlah table, dan masing-masing

table terdiri dari beberapa kolom yang namanya

unique. Model ini berdasarkan notasi teori himpunan

(set theory), yaitu relation.

 Berikut ini kasus dari model relational:


2.2 Model Hirarki

Dimana data serta hubungan antar data

direpresentasikan dengan record dan link (pointer),

dimana record-record tersebut disusun dalam bentuk

tree (pohon), dan masing-masing node pada tree

tersebut merupakan record/grup data elemen

Berikut ini kasus dari model hirarki:

 

2.3 Model Jaringan

Mirip dengan hirarkical model, dimana data dan

hubungan antar data direpresentasikan dengan record

dan links. Perbedaannya terletak pada susunan record

dan linknya yaitu network model menyusun recordrecord

dalam bentuk graph

Berikut ini kasus dari model jaringan:


 

 











Sabtu, 11 April 2009

Contoh DDL & DML dalam database

Sebuah basis data biasanya dapat dipilih ke dalam 2 bentuk yaitu:
1. Data Definition Language(DDL)
2. Data Manipulation Languange(DML)

1. DDL
Struktur/skema basis data yang menggambarkan/mewakili desain basis data secara keseluruhan didefinisikan dengan bahasa khusus yang disebut DDL. Dengan bahasa inilah kita dapat membuat tabel baru, membuat indeks, mengubah tabel, menentukan struktur penyimpanan tabel dan sebagainya. Hasil dari kompilasi perintah DDL adalah kumpulan tabel yang disimpan dalam file khusus yang disebut Kamus Data
Contohnya :
a. Create database : adalah perintah yang di gunakan untuk memulai membuat database.
b. Modify database : adalah perintah yang digunakan untuk memodifikasi database.

c. Create table : adalah perintah yang digunakan untuk membuat tabel.
d. Modify table : adalah perintah yang digunakan untuk memodifikasi table.


  • Contoh Create database di access


  • Contoh Create database di foxpro



  • Contoh Modify database


  • Contoh Create table di access


  • Contoh Create table di foxpro

  • Contoh Modify tabel

2. DML
Merupakan bentuk bahasa basis data yang berguna untuk melakukan manipulasi dan pengambilan data pada suatu basis data. Manipulasi data dapat berupa:
a. Penyisipan/Penambahan data baru ke suatu basis data
b. Penghapusan data dari suatu basis data
c. Pengubahan data dari satu basis data

Contoh - contoh dari DML :

  • Contoh Form di access


  • Contoh Form di foxpro


  • Contoh Query


  • Contoh perintah find

Sabtu, 28 Maret 2009

Enterprise Perpustakaan


Sebuah perpustakaan menyewakan berbagai macam jenis dan judul buku yang bervariasi. Ada berbagai macam jenis buku seperti fiksi, comedi, fiksi ilmiah, novel dan horror. Waktu yang diberikan untuk menyewa ditentukan selama 7 hari, apabila melebihi batas waktu yang ditentukan akan diberikan denda sebesar Rp. 1000/harinya.
Untuk memudahkan setiap kegiatan penyewaan yang berlangsung maka dibuatlah database “Perpustakaan” yang terdiri dari Tabel karyawan, table anggota , table buku dan table sewa. Setiap orang yang ingin meminjam buku harus menjadi anggota perpustakaan tersebut.
Pada tabel karyawan berisi field kd_karyawan, Nama_karyawan, Alamat, No_telp. tabel anggota berisi field kd_anggota, Nama_anggota, Alamat, No_telp. Pada table buku berisi field Kd_buku, Judul_buku, Jenis_buku, Nama_pengarang, Tahun_terbit, Tebal_halaman. Sedangkan pada table sewa terdiri dari field kd_sewa, kd_anggota, Nama_anggota, judul_buku, Tgl_pinjam, Tgl_kembali.