Category Archives: Uncategorized

Give away Pulsa menuju 1juta view

giveaway

Tak terasa blog gak jelas ini hampir dapat 1 juta views, bukan hal yang besar sih, tapi saya seneng saja karena blog ini dapat atensi pembaca walaupun dalam jumlah kecil (soalnya banyak yg dapat views berkali-kali lipat dari blog saya)

Sebagai rasa terimakasih untuk pembaca blog saya, saya mau kasih give away pulsa 10 ribu rupiah untuk 3 orang pemenang, peserta akan mendapat id dan dipilih acak lewat http://random.org.

Pemenang akan dipilih ketika blog ini sudah tembus 1juta views.

Bagi yang ingin ikutan, silahkan inputkan nama, dan nomor hp yang aktif di form pada link di bawah :

http://goo.gl/forms/ibx3OzrjYy

Terimakasih ūüėÄ

Optimasi Query

Optimasi Pada Perintah SQL
Inti dari optimasi query adalah meminimalkan ‚Äújalur‚ÄĚ pencarian untuk menemukan data yang disimpan dalam lokasi fisik.
Index pada database digunakan untuk meningkatkan kecepatan akses data. Pada saat query dijalankan, index mencari data dan menentukan nilai ROWID yang membantu menemukan lokasi data secara fisik di disk. Akan tetapi penggunaan index yang tidak tepat, tidak akan meningkatkan unjuk kerja dalam hal ini kecepatan akses data.
Misal digunakan index yang melibatkan tiga buah kolom yang mengurutkan kolom menurut kota, propinsi dan kode pos dari tabel karyawan, sebagai berikut :
CREATE INDEX idx_kota_prop_kodepos
ON karyawan(kota, propinsi, kode_pos)
TABLESPACE INDX;
Kemudian user melakukan query sebagai berikut :
SELECT * FROM karyawan WHERE propinsi=’Jawa Barat’;
Pada saat melakukan query ini, index tidak akan digunakan karena kolom pertama (kota) tidak digunakan dalam klausa WHERE. Jika user sering melakukan query ini, maka kolom index harus diurutkan menurut propinsi. Selain itu, proses pencarian data akan lebih cepat jika data terletak pada block tabel yang berdekatan daripada harus mencari di beberapa datafile yang terletak pada block yang berbeda.
Misal pada perintah SQL berikut ini :
SELECT * FROM karyawan
WHERE id BETWEEN 1010 AND 2010;
Faktor Lain yang Berpengaruh Terhadap Kecepatan Akses Data
  • Optimasi Aplikasi
Dalam pembuatan aplikasi, yang perlu mendapat perhatian adalah apakah akses terhadap data sudah efisien. Efisien dalam hal penggunaan obyek yang mendukung kecepatan akses, seperti index atau cluster. Kemudian juga bagaimana cara database didesain, apakah desain database sudah melakukan normalisasi data secara tepat atau belum.
Terkadang normalisasi sampai level yang kesekian, tidak menjamin suatu desain yang efisien. Untuk membuat desain yang lebih tepat, setelah melakukan normalisasi perlu dilakukan denormalisasi. Misalnya tabel yang hubungannya one-to-one dan sering diakses bersama, maka lebih baik disatukan dalam satu tabel.
  • Cluster dan Index
Cluster adalah suatu segment yang menyimpan data dari tabel yang berbeda dalam suatu struktur fisik disk yang berdekatan. Konfigurasi ini bermanfaat untuk akses data dari beberapa tabel yang sering di-query. Penggunaan cluster secara tepat dilaksanakan setelah menganalisa tabel-tabel mana saja yang sering di-query secara bersamaan menggunaan perintah SQL join.
Jika aplikasi sering melakukan query dengan menggunakan suatu kolom yang berada pada klausa WHERE, maka harus digunakan index yang melibatkan kolom tersebut. Penggunaan index yang tepat bergantung pada jenis nilai yang terdapat dalam kolom yang akan diindex. Dalam RDBMS Oracle, index B-Tree digunakan untuk kolom yang mengandung nilai yang cukup bervariasi, sedangkan untuk nilai yang cenderung homogen, lebih baik menggunakan index bitmap.

SQL Lanjut

Pada resume ini akan dijelaskan tentang

  • Subquery dan penggunaannya
  • Subquery dengan banyak kolom
  • Pairwise Comparition Subquery
  • NonPairwise Comparition Subquery
  • Penggunaan query dalam klausa from
  • Ekspresi skalar
  • korelasi Subquery dan penggunaannya
  • Penggunaan query dalam klausa with.

Subquery adalah statement SELECT yang dilampirkan sebagai klausa dalam SQL Statement yang lain. Subquery mengembalikan nilai ke main query. Subquery digunakan untuk menyelesaikan persoalan dimana terdapat suatu nilai yang tidak diketahui (unknown values).
Pada subquery dengan banyak kolom, tiap baris dari main query dibandingkan dengan nilai dari subquery multiple-row dan multiple-column.

Pembandingan kolom dalam subquery banyak kolom dapat berupa :

1. Pembandingan berpasangan (Pairwise Comparison SubQuery)
2. Pembandingan tidak berpasangan (NonPairwise Comparison SubQuery)

Penggunaan Query dalam Klausa From

Query bisa diletakkan di dalam klausa FROM untuk membentuk tabel temporer. Query semacam ini dikenal juga dengan istilah inline view, karena tidak membentuk object database.
Ekspresi Scalar Subquery
Ekspresi scalar subquery adalah subquery yang mengembalikan hanya satu nilai kolom dari satu baris. Scalar subquery pada standart SQL-92 hanya terbatas pada :
SELECT Statement (klausa FROM dan WHERE saja)
Daftar VALUE dari statement INSERT

Pada standart SQL-99, scalar subqueries dapat diguanakan dalam :

Kondisi dan ekspresi sebagai bagian dari perintah DECODE dan CASE.
Semua klausa dari SELECT Statement kecuali GROUP BY.

Korelasi SubQuery
Korelasi SubQuery digunakan untuk pemrosesan baris per baris. Tiap-tiap subquery dijalankan sekali untuk setiap baris dari outer query. Proses korelasi dimulai dengan mengambil baris dari outer query, kemudian inner query dijalankan dengan menggunakan nilai baris kandidat, kemudian nilai dari inner query digunakan untuk melakukan kualifikasi atau mendiskualifikasi baris kandidat.
Korelasi Subquery juga dapat digunakan untuk :

1. meng-update baris pada satu table berdasarkan pada baris dari table yang lain, korelasi seperti itu dinamakan dengan Korelasi Update.
2. menghapus baris pada satu table berdasarkan pada baris dari table yang lain, korelasi seperti itu dinamakan dengan Korelasi Delete.

Operator EXISTS dan NOT EXIST
Operator EXISTS dan NOT EXIST digunakan untuk menguji keberadaan dari baris dalam himpunan hasil dari subquery.
Jika ditemukan, maka pencarian tidak dilanjutkan dalam inner query dan kondisi ditandai TRUE.Jika tidak ditemukan, maka kondisi ditandai FALSE dan kondisi pencarian dilanjutkan dalam inner query.

Penggunaan Klausa WITH

Dengan menggunakan klausa WITH, kita dapat menggunakan blok query yang sama dalam statement SELECT pada saat terjadi lebih dari sekali dalam complex query. Klausa WITH mendapatkan hasil dari blok query dan menyimpannya dalam tablespace temporer kepunyaan user. Klausa WITH dapat meningkatkan performansi.

Dependensi dan Normalisasi

Funtional Dependency
  • FD menggambarkan hubungan,batasan,keterkaitan antar atribut-atribut dalam relasi.
  • Suatu attribute dikatakan functionally dependent pada yang lain jika kita menggunakakn harga atribut untuk menentukan harga atribut yang lain.
Notasi : A –> B

A dan B adalah atribut dari sebuah tabel .   A menentukan B atau B tergantung A   jika dan hanya jika ada 2 baris data dengan nilai A yang sama maka nilai B juga sama.
Contoh :
satt
  • Karakteristik utama dari functional dependency yang digunakan dalam normalisasi :
‚Äst¬†¬†¬†¬†¬†¬†¬†Mempunyai relationship¬†¬†1:1 antar atribut di sebelah kiri dan kanan dependency.
‚Äst¬†¬†¬†¬†¬†¬†¬†Saling terkait (Hold for all time)
  • Normalisasi adalah suatu teknik untuk menghasilkan sekumpulan relasi dengan sifat-sifat (properties) yang diinginkan, memenuhi kebutuhan data pada enterprise.
  • Sebuah relasi dapat dinormalisasi kedalam bentuk tertentu untuk mengatasi kemungkinan terjadinya pengulangan dari update yang tidak baik.
  • Empat bentuk normal yang biasa digunakan yaitu,¬†first normal form(1NF),¬†second normal form¬†¬†(2NF) dan¬†third normal form¬†(3NF), danBoyce‚ÄďCodd normal form¬†(BCNF).
Data redundancy
  • Kerangkapan data dapat menyebabkan anomali
  • Relasi yang mengandung informasi yang redundan dapat diakibatkan oleh¬†¬†update anomalies.
  • Beberapa tipe dari update anomalies, diantaranya¬† :
  • Insertion
  • Deletion
  • Modification
Proses Normalisasi
  • Suatu teknik formal untuk menganalisa relasi berdasarkan¬†primary keyatau¬†candidate¬†key-nya dan functional dependency antar atribut.
  • Dilakukan dalam beberapa langkah. Setiap langkah mengacu ke bentuk normal tertentu, sesuai dengan sifat yang dimilikinya.
  • Setelah normalisasi diproses, relasi secara bertahap menjadi lebih terbatas/kuat bentuk formatnya dan juga mengurangi tindakan update yang anomali.

Unnormalized Form (UNF)

  • Merupakan suatu table yang berisikan satu atau lebih group/data yang berulang.
  • Membuat tabel unnormalized yaitu dengan memindahkan data dari sumber informasi (Contoh : Form) kedalam format tabel dengan baris dan kolom.
First Normal Form (1NF)
  • Merupakan sebuah relasi dimana setiap irisan antara baris dan kolom berisikan satu dan hanya satu nilai.
UNF ke 1NF
  • Tunjuk satu atau sekumpulan atribut sebagai kunci untuk tabel unnormalized.
  • Identifikasikan groups yang berulang dalam tabel unnormalized yang berulang untuk kunci atribut.
  • Hapus group yang berulang dengan cara :
    • Masukkan data yang semestinya kedalam kolom yang kosong pada baris yang berisikan data yang berulang (flattening the table), atau dengan cara
    • Menggantikan data yang ada dengan¬†copy¬†¬†dari kunci atribut yang sesungguhnya kedalam relasi terpisah.
Second Normal Form (2NF)
  • Berdasarkan pada konsep full functional dependency, mengindikasikan bahwa, jika A dan B merupakan atribut dari sebuah relasi,¬†¬†B dikatakan fully dependent terhadap A jika B functionally dependent pada A tetapi tidak pada proper subset dari A.
  • 2NF ‚Äď merupakan sebuah relasi dalam¬†¬†1NF dan setiap atribut non-primary-key bersifat fully functionally dependent pada primary key.
1NF ke 2 NF
  • Identifikasikan primary key untuk relasi 1NF.
  • Identifikasikan functional dependency dalam relasi.
  • Jika terdapat partial¬†¬†dependency terhadap primary key, maka hapus dengan menempatkannya dalam relasi yang baru bersama dengan salinan determinan-nya.
Third Normal Form (3NF)
  • Berdasarkan pada konsep transitive dependency, yaitu suatu kondisi dimana A, B dan C merupakan atribut dari sebuah relasi, maka jika¬†¬†A√†¬†B dan B¬†√†¬†C, maka C transitively dependent pada¬†¬†A melalui¬†¬†B.¬†(menegaskan bahwa A tidak functionally dependent pada¬†¬†B atau C).
  • 3NF ‚Äď Adalah sebuah relasi dalam 1NF dan 2NF dan¬†dimana tidak terdapat atribut non-primary-key attribute yang bersifat transitively dependent pada¬†¬†primary key.
2NF ke 3NF :
  • Identifikasikan primary key dalam relasi¬†¬†2NF.
  • Identifikasikan functional dependency dalam relasi.
Jika terdapat transitive dependency terhadap primary key, hapus dengan menempatkannya dalam relasi yang baru bersama dengan salinan determinan-nya
Definisi umum 2NF dan 3NF
  • Second normal form (2NF) : Suatu relasi yang ada dalam 1NF dan setiap atribut non-primary-key bersifat fully functionally
  • Third normal form (3NF) : Suatu relasi yang ada dalam 1NF dan 2NF dan dimana tidak terdapat atribut non-primary-key attribute yang bersifat transitively dependent pada¬†candidate key.

Hello world!

Welcome to WordPress.com! This is your very first post. Click the Edit link to modify or delete it, or start a new post. If you like, use this post to tell readers why you started this blog and what you plan to do with it.

Happy blogging!