ini Blog nya Ci Stefi,,,

Selasa, 23 Juni 2009

LOCKING




















LOCKING adalah salah satu mekanisme pengontrol concurency,,

Ketika sebuah transaksi memerlukan jaminan kalau record yang diinginkan tidak akan berubah secara mendadak,maka diperlukan kunci untuk record tersebut.maka

FUNGSI LOCKING adalah untuk menjaga record tersebut agar tidak dimodifikasi oleh transaksi lain...

WK Tour dan MK Tour adalah salah satu biro perjalanan yang menyediakan penjualan tiket antar propinsi maupun keluar negeri .Pada saat menjelang hari libur,,kedua biro perjalanan ini mengalami kenaikan omset akibat banyaknya pemesanan tiket dari para customer.Akibat hal tersebut,WK Tour dan MK Tour sering mengalami concurency saat melakukan pemesanan tiket ke bagian pusat Penerbangan Garuda Indonesia. Berdasarkan informasi ada beberapa kursi yang masih kosong pada pesawat Garuda untuk penerbangan Jakarta – Bali, yaitu A1-A4. Pada waktu yang bersamaan WK Tour dan MK Tour memesan Tiket pada bangku yang kosong. WK Tour memesan tiket untuk kursi A1-A3,sedangkan MK Tour memesan tiket untuk bangku A2-A4. Berdasarkan gambar diatas , Transaksi WK Tour akan membaca A1-A4 pada T1 dan MK Tour akan membaca A1-A4 pada T2, Transaksi WK Tour memodifikasi A1-A4 pada T3, dan Transaksi MK Tour memodifikasi record yang sama pada pada T5. Jika transaksi tersebut dieksekusi secara serial tanpa adanya selang waktu operasi maka Transaksi WK Tour akan kehilangan modifikasi karena Transaksi MK Tour melakukan modifikasi tanpa memperhatikan modifikasi dari Transaksi WK Tour pada T3.

Pada waktu yang bersamaan pula WK Tour dan MK Tour memesan tiket untuk kursi A5-A10,sedangkan MK Tour memesan tiket untuk bangku A11-A15.Dengan demikian , Transaksi WK Tour akan membaca A1-A15 pada T1 dan MK Tour akan membaca A11-A15 pada T4.

SOLUSI :

Untuk mengatasi concurency maka perlu LOCKING (salah satu pengontrol concurency) yaitu dengan cara diberikan kunci X untuk transaksi yang pertama kali di modifikasi, jadi untuk transaksi berikutnya harus menunggu transaksi yang awal melepaskan kunci X ( synpoint ) tersebut. Dan memberikan kunci S untuk melihat saja,karena tidak dapat dimodifikasi.

Rabu, 10 Juni 2009

CONCURANCY (TOUR)

CONCURANCY

























































CONTOH KASUS YANG DIALAMI WK TOUR DAN MK TOUR

KEHILANGAN MODIFIKASI SEMENTARA
pada hari yang sama WK TOUR dan MK TOUR melakukan regristrasi untuk memesan bangku dipesawat terbang.
dipesawat tersebut terdapat 4 bangku yang masih tersisa yaitu A1,A2,A3 dan A4,
WK TOUR memesan bangku A1 dan A3, pada saat bersaman MK TOUR memesan bangku A2 dan A4.
jika transaksi dieksekusi secara serial, transaksi yang satu diproses setelah transaksi lainnya tanpa selang waktu operasi, maka bangku terakhir adalah A2 dan A4, tanpa terkecuali transaksi tersebut diproses secara konkuren, maka bangku terakhir menjadi tidak benar(A3 dan A4)

LOST UPDATE PROBLEM
masalah ini timbul jika 2 transaksi mengakses item database yang sama yang mengakibatkan nilai dari database tersebut menjadi tidak benar.


MASALAH MODIFIKASI SEMENTARA

pada hari yang sama WK TOUR dan MK TOUR melakukan registrasi untuk memesan bangku dipasawat terbang.
dipesawat tersebut terdapat bangku yang kosong adalah A5 s/d A15
WK TOUR memesan bangku A5 s/d A10 pada saat yang bersamaan MK TOUR memesan bangku A11 s/d A15.
jika transaksi 1 membaca suatu record yang sudah dimodifikasi oleh transaksi lain tetapi belum terselesaikan(uncommited)
terdapat kemungkinan kalau transaksi tersebut dibatalkan (roolback), yang dari A11 s/d A15 dibatalkan menjadi A5 s/d A15.

UNCOMMITED UPDATE PROBLEM
masalah ini timbul jika transaksi membaca suatu record yang sudah dimodifikasi oleh transaksi lainnya, tetapi belum terselesaikan (uncommited), terdapat kemungkinan kalau transaksi tersebut dibatalkan (roolback)


MASALAH ANALISA YANG TIDAK KONSISITEN

pada hari yang bersamaan WK TOUR dan MK TOUR melakukan registrasi untuk memesan bangku pesawat terbang.
WK TOUR memesan bangku A = A1 s/d A4, B = B10 s/d B20 dan MK TOUR memesan bangku C =C20 s/d C24, A= A5 s/d A10, B = B21 s/d B24
WK TOUR menyelak untuk mengupdate bebesarapa nilai tersebut selama eksekusi transaksi pertama, kemudian transaksi WK TOUR menjadi tidak benar



PROBLEM OF INCONSISTENSI ANALISA

masalah ini timbul jiak sebuah transaksi membaca suatu niali tetapi transaksi yang ke dua mengupdate beberapa nilai tersebut selama eksekusi transaksi pertama

NORMALISASI

TEHNIK NORMALISASI

-Normalisasi merupakan proses pengelompokan elemen - elemen data menjadi tabel-tabel yang menunjukkan entity dan relasinya.


-Normalisasi adalah proses pengelompokkan atribut - atribut dari suatu relasi sehingga membentuk WELL STRUCTURE RELATION..



-Keuntungan dari normalisasi :

1). Menimalkan ukuran penyimpanan yang diperlukan untuk menyimpan data
2). Meminimalkan resiko inkonsistensi data basis data
3). Meminimalkan kemungkinan anomali pembaruan
4). Memasukkan stabilitas struktur data


Contoh Billing rawat inap pada rumah sakit "PUTRI"













--Bentuk Tidak Normal (UNNORMALIZED FORM)
bentuk ini merupakan kumpulan data yang akan direkam, tidak ada keharusan mengikuti suatu format tertentu.Dapat saja data tidak lengkap atau terduplikasi data dikumpulkan apa adanya dengan suatu menginput






















1). Bentuk Normal Ke Satu (1NF / FIRST NORMAL FORM)
suatu relasi 1NF jika dan hanya jika sifat dari setiap relasi atributnya bersifat atomik.
atom adalah zat terkecil yang masih memiliki sifat induknya, bila dipecah lagi maka ia tidak memiliki sifat induknya.
ciri - ciri 1NF :
- setiap data dibentuk suatu record lain dari field berupa atomik value
- tidak ada sset atribut yang berulang atau bernilai ganda
- tiap field hanya satu pengertian

























2). Bentuk Normal Ke D
ua (2NF / SECOND NORMAL FORM)
untuk normal ke dua mempunyai syarat
yaitu bentuk data yang memenuhi kriteria bentuk normal ke satu.
atribut bukan kunci haruslah bergabung secara fungsi pada kunci utama atau primary key sehingga untuk membentuk normal ke dua haruslah sudah ditentukan kunci - kunci field.
kunci field haruslah unik dan dapat mewakili atribut lainnya yang menjadi anggotanya.
kenapa di 2NF bisa ada dua tabel, karena adanya hubungan fungsional dan adanya hubungan transitif.
dan kenapa harus direlasikan, karena adanya hubungan transitif
hubungan fungsional adalah karena adanya atribut yang saling berhubungan atau kekeluargaan sehingga membentuk 1 tabel
hubungan transitif adalah suatu atribut
pada tabel utama menjadi primary key apabila di relasikan akan menjadi foreing key.












3). Bentuk Normal Ke Tiga (3NF / THIRD NORMAL FORM)
untuk menjadi bentuk normal ke tiga maka relasi haruslah dalam bentuk normal ke dua dan semua atribut bukan primer tidak punya hubungan yang transitif, dengan kata lain, setiap atribut bukan kunci haruslah bergantung hanya pada primary key dan pada primary key secara menyeluruh.



Selasa, 09 Juni 2009

Penerapan MySQL




Penerapan SQL

SQL (yang biasa dibaca sequel) merupakan kependekan dari Structured Query Language yaitu bahasa yang dirancang khusus untuk komunikasi dengan database. Tidak seperti bahasa-bahasa lainnya (seperti bahasa C, basic, pascal atau bahasa pemprograman yang lain) Bahasa SQL sengaja di rancang untuk melakukan hal secara sederhana dan efisien untuk membaca dan menulis data dari suatu database.
Manfaat dari SQl ant
ara lain :
SQL bukanlah bahasa kepemilikan yang digunakan oleh vendor database perorangan. Hampir semua database besar mendukung SQL, sehingga dengan mempelajari bahasa SQL, anda dapat berinteraksi dengan hampir seluruh database besar yang beredar seperti Ms. SQL server, Oracle, Ms. Access, atau MySQL. SQL mudah dipelajari, karena semua statement dibuat berdasarkan kata-kata dalam bahasa inggris yang umum. SQL benar-benar suatu bahasa yang kuat, dan dengan kepandaian menggunakan unsur-unsur bahasa tersebut, anda dapat melakukan pengoperasian database yang kompleks dan sulit.

MySQL adalah Relational Database Management System (RDBMS) yang didistribusikan secara gratis dibawah lisensi GPL (General Public License). Dimana setiap orang bebas untuk menggunakan MySQL, namun tidak boleh dijadikan produk turunan yang bersifat komersial. MySQL sebenarnya merupakan turunan salah satu konsep utama dalam database sejak lama, yaitu SQL (Structured Query Language). SQL adalah sebuah konsep pengoperasian database, terutama untuk pemilihan atau seleksi dan pemasukan data, yang memungkinkan pengoperasian data dikerjakan dengan mudah secara otomatis. Keandalan suatu sistem database (DBMS) dapat diketahui dari cara kerja optimizer-nya dalam melakukan proses perintah-perintah SQL, yang dibuat oleh user maupun program-program aplikasinya. Sebagai database server, MySQL dapat dikatakan lebih unggul dibandingkan database server lainnya dalam query data. Hal ini terbukti untuk query yang dilakukan oleh single user, kecepatan query MySQL bisa sepuluh kali lebih cepat dari PostgreSQL dan lima kali lebih cepat dibandingkan Interbase.


Keistimewaan MySQL

MySQL memiliki beberapa keistimewaan, antara lain :

  1. Portabilitas. MySQL dapat berjalan stabil pada berbagai sistem operasi seperti Windows, Linux, FreeBSD, Mac Os X Server, Solaris, Amiga, dan masih banyak lagi.
  2. Open Source.MySQL didistribusikan secara open source, dibawah lisensi GPL sehingga dapat digunakan secara cuma-cuma.
  3. 'Multiuser'. MySQL dapat digunakan oleh beberapa user dalam waktu yang bersamaan tanpa mengalami masalah atau konflik.
  4. 'Performance tuning'. MySQL memiliki kecepatan yang menakjubkan dalam menangani query sederhana, dengan kata lain dapat memproses lebih banyak SQL per satuan waktu.
  5. Jenis Kolom. MySQL memiliki tipe kolom yang sangat kompleks, seperti signed / unsigned integer, float, double, char, text, date, timestamp, dan lain-lain.
  6. Perintah dan Fungsi. MySQL memiliki operator dan fungsi secara penuh yang mendukung perintah Select dan Where dalam perintah (query).
  7. Keamanan. MySQL memiliki beberapa lapisan sekuritas seperti level subnetmask, nama host, dan izin akses user dengan sistem perizinan yang mendetail serta sandi terenkripsi.
  8. Skalabilitas dan Pembatasan. MySQL mampu menangani basis data dalam skala besar, dengan jumlah rekaman (records) lebih dari 50 juta dan 60 ribu tabel serta 5 milyar baris. Selain itu batas indeks yang dapat ditampung mencapai 32 indeks pada tiap tabelnya.
  9. Konektivitas. MySQL dapat melakukan koneksi dengan klien menggunakan protokol TCP/IP, Unix soket (UNIX), atau Named Pipes (NT).
  10. Lokalisasi. MySQL dapat mendeteksi pesan kesalahan pada klien dengan menggunakan lebih dari dua puluh bahasa. Meski pun demikian, bahasa Indonesia belum termasuk di dalamnya.
  11. Antar Muka. MySQL memiliki interface (antar muka) terhadap berbagai aplikasi dan bahasa pemrograman dengan menggunakan fungsi API (Application Programming Interface).
  12. Klien dan Peralatan. MySQL dilengkapi dengan berbagai peralatan (tool)yang dapat digunakan untuk administrasi basis data, dan pada setiap peralatan yang ada disertakan petunjuk online.
  13. Struktur tabel. MySQL memiliki struktur tabel yang lebih fleksibel dalam menangani ALTER TABLE, dibandingkan basis data lainnya semacam PostgreSQL ataupun Orale


--Contoh penggunaan MySQ
L dalam pembuatan Database LPK(Lembaga Pendidikan Komputer)

Database ini terdiri dari 3 tabel,yaitu :

1.Tabel Siswa
Tabel tersebut mempunyai 3 field yang terdiri dari:
a.NIS dengan tipe Char(8)
b.Nama dengan tipe Char(25)
c.Alamat dengan tipe Char(20)

2.Tabel Kursus
Tabel tersebut mempunyai 3 field yang terdiri dari:
a.ID_kursus dengan tipe Char(3)
b.Nm_kursus dengan tipe Char(15)
c.Satuan dengan tipe Char(10)

3.Tabel Instruktur
Tabel terseb
ut mempunyai 3 field yang terdiri dari:
a.id_instruktur dengan tipe
Char(3)
b.nm_instruktur dengan tipe Char(10)
c.Alamat dengan tipe Char(10)


LANGKAH-LANGKAH PEMBUATAN DATABASE


1.Pembuatan Database

Sintaks:C
REATE DATABASE (Nm_database)
Aplikasi sintaks : mysql> CREATE DATABASE LPK;

2.
Melihat daftar database yang telah dibuat
Sintaks : SHOW DATABASES
Aplikasi sintaks : mysql> SHOW DATABASE;



















3. Mengaktifkan database yang telah dibuat
Sintaks : USE (nama_database)

Aplikasi sintaks : mysql> USE LPK;

4. Pembuatan tabel

Sintaks : CREATE TABLE (nama_tabel)
(nama_kolom1,type_data_kolom1,nama_kolom2,type_data_kolom2,…)
Aplikasi sintaks :
mysql> CREATE TABLE SISWA (NIS CHAR(8) NOT NULL,NAMA CHAR(25) NOT NULL,
->ALAMAT CHAR(25) NOT NULL);
mysql> CREATE TABLE KURSUS (ID_KURSUS CHAR(5) NOT NULL,NAMA_KURSUS CHAR(25) NOT NULL,
->SATUAN CHAR(20) NOT NULL);
mysql> CREATE TABLE INSTRUKTUR (ID_INSTRUKTUR CHAR(5) NOT NULL,NAMA_INSTRUK
TUR CHAR(25) NOT NULL,
->ALAMAT CHAR(25) NOT NULL);















5. Melihat daftar tabel yan
g telah dibuat
Sintaks : SHOW TABLES
Aplikasi sintaks : mysql> SHOW
TABLES;

6. Melihat struktur tabel yang telah dibuat
Sintaks : DESCRIBE (nama_tabel)
Aplikasi sintaks :
mysql> DESCRIBE SISWA;
mysql> DESCRIBE KURSUS;

mysql> DESCRIBE INSTRUKTUR;

















7.Mengisi data baru kedalam tabel
Sintaks : INSER INTO (nama_tabel) values (“Data kolom1”,”Data kolom2”,….);
Aplikasi sintaks :

mysql> INSERT INTO SISWA
->VALUES ('12075887','TATU MARIFAH','JL.GEMBIRA 2 NO.15');
mysql> INSERT INTO KURSUS

->VALUES ('VSP09','Visual FOXPRO','3Jam');
mysql> INSERT INTO INSTRUKTUR
->VALUES ('LD001','LINDA MARLINDA','Jl.FATMAWATI KAV.11');

8. Menampilkan data yang telah
dimasukkan pada tabel
Sintaks : SELECT * FROM (nama_tabel)
Aplikasi sintaks :
mysql> SELECT * FROM SISWA;
mysql> SELECT * FR
OM KURSUS;
mysql> SELECT * FROM INSTRUKTUR;