Blogger news

Popular Posts

Diberdayakan oleh Blogger.
RSS

Integritas Basis Data



Integritas Basis Data
Integritas Basis Data
Secara etimologis, integritas berarti kesatuan. Dalam konteks basis data, obyek integritas tersebut adalah data. Sehingga dapat disimpulkan bahwa integritas data merupakan keutuhan dan kesatuan data dalam basis data sehingga data tersebut dapat menjadi sumber informasi yang dapat digunakan.Integritas data sangat erat kaitannya dengan keamanan keberadaan data, dimana dapat terjadi secara institusional atau asidental.
Sekarang kita Sekarang, kita bahas tentang constraint. Constraint merupakan suatu aturan yang membatasi jenis data yang diijinkan untuk dimasukkan ke dalam tabel

Constraint Classification (Tipe-tipe Constraint) :
Terdapat beberapa tipe constraint, yaitu :
·         PRIMARY  KEY Constraint
Berguna untuk menspesifikasikan kolom dalam tabel. Tidak boleh kosong dan harus unik, untuk menghubungkan satu tabel dengan tabel lain.
·         FOREIGN KEY Constraint
Digunakan untuk menspesifikasikan kolom foreign key pada suatu tabel. Foreign Key digunakan untuk menghubungkan dua tabel. Kolom foreign key adalah kolom atau kombinasi beberapa kolom dalam suatu tabel yang selalu merujuk pada kolom primary key pada suatu tabel.
·         UNIQUE Constraint
Digunakan untuk menjamin bahwa data pada suatu kolom atau beberapa kolom tidak diijinkan sama.
·         CHECK Constraint
Digunakan untuk membatasi suatu nilai pada kolom dengan nilai tertentu yang diijinkan masuk.
·         DEFAULT Constraint
Merupakan atribut opsional yang digunakan untuk memberikan suatu nilai tertentu pada suatu kolom jika kolom tersebut tidak dimasukkan suatu data.
·         NOT NULL
Digunakan untuk menjamin tidak ada nilai null (kosong) yang muncul pada suatu kolom tertentu sehingga bila tidak mengisikan nilai pada kolom tersebut maka akan muncul error.

Transition constraints
Transition Constraints adalah cara untuk memastikan database tidak dimasukan data yang tidak mungkin berhubungan dengan data sebelumnya. Transition constraints dapat dimodelkan sebagai diagram transisi untuk memastikan aturan untuk memperbaharui entitas dengan cara tertentu. Ada keadaan awal, flow garis yang menunjukan data berikutnya yang sesuai dengan aturan.

Keys Pada Integritas Basis Data
Key adalah satu atau kombinasi dari beberapa bidang dalam sebuah tabel. Keys digunakan untuk menciptakan hubungan antara tabel database yang berbeda.
 
terdapat beberapa jenis keys/kunci yang terdapat pada integritas basis data, diantaranya :
·         Super Key
Super key adalah satu set satu atau lebih kunci yang dapat digunakan untuk mengidentifikasi rekor unik di table.
·         Candidate Key
Candidate key adalah satu set satu atau lebih field / kolom yang dapat mengidentifikasi catatan unik dalam sebuah tabel.
·         primary Key
Primary key adalah satu set satu atau lebih field / kolom dari tabel yang secara unik mengidentifikasi catatan dalam tabel database. Hal ini tidak dapat menerima null, nilai ganda. Hanya satu Candidate Key yang bisa menjadi Primary Key.
·         Alternatif key
Alternatif key adalah kunci yang dapat bekerja sebagai primary key. Pada dasarnya ini adalah kunci kandidat yang saat ini tidak primary key.
·         Composite / Compound Key
Composite Key adalah kombinasi lebih dari satu bidang / kolom tabel. Hal ini dapat menjadi kunci Calon, Primary key.
·         unique Key
Unique key adalah satu set atau lebih field / kolom dari tabel yang secara unik mengidentifikasi catatan dalam tabel database.
·         Foreign Key
Foreign Key adalah bidang dalam tabel database yang merupakan kunci utama dalam tabel lain. Hal ini dapat menerima beberapa null, nilai ganda.




  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

OPTIMASI QUERY



Ø    OPTIMASI QUERY
Optimasi query adalah suatu proses untuk menganalisa query untuk menentukan sumber sumber apa saja yang digunakan  oleh query tersebut dan apakah penggunaan dari sumber tersebut dapat dikurangi tanpa merubah output. Optimasi query mencakup beberapa teknik seperti transformasi query ke dalam bentuk logika yang sama, memilih jalan akses yang optimal dan mengoptimumkan penyimpanan data.
Ada 3 aspek dasar yang mempengaruhi optimasi query, yaitu :
·         Search space
·         Cost model
·         Search strategy
Tujuan dari optimasi query :
·         Untuk meminimumkan waktu proses
·         Untuk waktu respon, meminimumkan I/O dan meminimumkan penggunaan memory
·         Menemukan jalan akses yang termurah untuk meminimumkan total waktu pada saat proses sebuah query.
Ø     Optimasi perintah SQL
Cara mengoptimalkan perintah SQL tidak cukup dengan mendesain aplikasinya saja, harus didukung dengan peritah SQL yang digunakan dalam aplikasi tersebut. Dalam mendesain database, seringkali lokasi fisik data tidak menjadi perhatian penting. Karena hanya desain logik saja yang diperhatikan. Padahal untuk menampilkan hasil query dibutuhkan pencarian yang melibatkan struktur fisik penyimpanan data. 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;

Query ini akan melakukan “scan” terhadap sedikit data block jika tabel karyawan
diatas diurutkan berdasarkan kolom id. Untuk mengurutkan berdasarkan kolom yang
berbeda-beda maka tabel disimpan dalam flat file, kemudian tabel diekspor dan
diurutkan sesuai kebutuhan.
Alternatif yang lain, bisa digunakan perintah untuk membuat tabel lain yang
memiliki urutan yang berbeda dari tabel asal, seperti perintah SQL berikut :

CREATE TABLE karyawan_urut
AS SELECT * FROM karyawan
ORDER BY id;

Pada SQL diatas, tabel karyawan_urut berisi data yang sama dengan tabel karyawan
hanya datanya terurut berdasarkan kolom id.
Ø    Informasi Jalur Akses Query
SQL pertama kali digunakan pada sebuah proyek riset laboratorium riset San Jose, IBM. Dan pada saat ini SQL telah banyak digunakan pada berbagai platform, baik dari mikrokomputer maupun mainframe. SQL dapat diletakkan pada bahasa pemrogrman/mesin yaitu C dan Delphi ataupun digunakan secara mandiri/berdiri sendiri. Saat ini SQL telah menjadi bagian dari sejumlah DBMS, antara lain : Sybase, MySQL, Oracle, dan Informix.
Elemen dari SQL yang paling dasar antara lain pernyataan, nama, tipe data, ekspresi, konstanta dan fungsi bawaan.

Perintah dari SQL yang digunakan untuk meminta sebuah tindakan kepada DBMS.
Pernyataan dasar SQL antara lain :
1. ALTER : Merubah struktur tabel
2. COMMIT : Mengakhiri eksekusi transaksi
3. CREATE : Membuat tabel, indeks
4. DELETE : Menghapus baris pada sebuah tabel
5. DROP : Menghapus tabel, indeks
6. GRANT : Menugaskan hak terhadap basis data kepada user
7. INSERT : Menambah baris pada tabel
8. REVOKE : Membatalkan hak kepada basis data
9. ROLLBACK : Mengembalikan pada keadaan semula apabila transaksi gagal
dilaksanakan
10. SELECT : Memilih baris dan kolom pada sebuah tabel
11. UPDATE : Mengubah value pada baris sebuah tabel

Nama digunakan sebagai identitas, yaitu identitas bagi objek pada DBMS. Misal : tabel, kolom dan pengguna.
Tipe data yang ada dalam MYSQL :
a. Tipe data numerik antara lain :
1. TINYINT : Nilai integer yang sangat kecil
2. SMALLINT : Nilai integer yang kecil
3. MEDIUMINT : Nilai integer yang sedang
4. INT : Nilai integer dengan nilai standar
5. BEGINT : Nilai integer dengan nilai besar
6. FLOAT :Bilangan decimal dengan single-precission
7. DOUBLE :Bilangan decimal dengan double-precission
8. DECIMAL(M,D) : Bilangan float yang dinyatakan sebagai string. M : jumlah
    digit yang disimpan, D : jumlah angka dibelakang koma
b. Tipe data String antara lain :
1. CHAR : Karakter yang memiliki panjang tetap yaitu sebanyak n
2. VARCHAR : Karakter yang memiliki panjang tidak tetap yaitu maksimum n
3. TINYBLOB : BLOB dengan ukuran sangat kecil
4. BLOB : BLOB yang memiliki ukuran kecil
5. MEDIUMBLOB : BLOB yang memiliki ukuran sedang
6. LONGBLOB : BLOB yang memiliki ukuran besar
7. TINYTEXT : teks dengan ukuran sangat kecil
8. TEXT : teks yang memiliki ukuran kecil
9. MEDIUMTEXT : teks yang memiliki ukuran sedang
10. LONGTEXT : teks yang memiliki ukuran besar
11. ENUM : kolom diisi dengan satu member enumerasi
12. SET : Kolom dapat diisi dengan beberapa nilai anggota himpunan
c. Tipe data tunggal dan jam :
1. DATE : date memiliki format tahun-bulan-tanggal
2. TIME : time memiliki format jam-menit-detik
3. DATETIME : gabungan dari format date dan time

Ekspresi digunakan untuk menghasilkan/menghitung nilai.
Misalnya : jumlah=harga-diskon
Ekspresi aritmatika antara lain :
1. + : tambah
2. – : kurang
3. / : bagi
4. * : kali
Fungsi adalah subprogram yang dapat menghasilkan suatu nilai apabila fungsi tersebut dipanggil. Fungsi Agregat adalah fungsi yang digunakan untuk melakukan summary, statistik yang dilakukan pada suatu tabel/query.
1. AVG(ekspresi) : digunakan untuk mencari nilai rata-rata dalam kolom dari tabel.
2. COUNT(x) : digunakan untuk menghitung jumlah baris dari sebuah kolom
dari tabel
3. MAX(ekspresi) : digunakan untuk mencari nilai yang paling besar dari suatu
kolom dari tabel
4. MIN(ekspresi) : digunakan untuk mencari nilai yang paling kecil dari suatu
kolom dari tabel
5. SUM(ekspresi) : digunakan untuk mengitung jumlah keseluruhan dari suatu
kolom dari tabel
Ø    Faktor-faktor yang berpengaruh terhadap kecepatan akses data
Faktor lain yang berpengaruh terhadap kecepatan akses data, tidak hanya terletak pada optimasi perintah SQL, tapi terhadap hal-hal lain yang berpengaruh. Diantaranya adalah optimasi aplikasi dan penggunaan cluster dan index. Hal yang akan dibahas dalam optimasi query berikut ini tidak melibatkan penggunaan komponen yang ada dalam Arsitektur database engine, misal pada database Oracle kecepatan akses data dipengaruhi oleh penyesuaian pada shared pool, buffer cache, redo log buffer dan system operasi yang digunakan.
a.       Optimasi Aplikasi
Dalam pembuatan aplikasi, yang perlu mendapat perhatian adalah apakah aksesterhadap 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. Kadangkala normalisasi sampai level yang kesekian, tidak menjamin suatu desain yang efisien. Untuk membuat desain yang lebih tepat, kadang setelah melakukan normalisasi perlu dilakukan denormalisasi. Misalnya tabel yang hubungannya one-toone dan sering diakses bersama lebih baik disatukan dalam satu tabel.
b.      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 tidak memiliki variasi cukup banyak, lebih baik menggunakan index bitmap.

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS