Pages

Subscribe:

Selasa, 22 Oktober 2013

Transaction

Transaksi merupakan satu atau beberapa aksi program aplikasi yang mengakses atau mengubah isi basis data. Transaksi dalam istilah lainnya merupakan bagian dari pengeksekusian sebuah program yang melakukan pengaksesan basis data dan bahkan juga melakukan serangkaian perubahan data.  DBMS yang kita gunakan harus menjamin bahwa setiap transaksi harus dapat dikerjakan secara utuh atau tidak sama sekali.  Tidak boleh ada transaksi yang hanya dikerjakan sebagian, karena dapat menyebabkan inkonsistensi basis data.  Untuk itu transaksi selalu merubah basis data dari satu kondisi konsisten ke kondisi konsisten lain.
Sifat-sifat yang harus dimiliki transaksi agar integritas dapat terpelihara :
1. Atomik, dimana semua operasi dalam transaksi dapat dikerjakan seluruhnya atau tidak sama sekali.
2. Konsisten, dimana eksekusi transaksi secara tunggal harus dapat menjamin data tetap konsisten setelah transaksi berakhir.
3. Terisolasi, jika pada sebuah sistem basis data terdapat sejumlah transaksi yang dilaksanakan secara bersamaan, maka semua transaksi yang dilaksanakan pada saat yang bersamaan tersebut harus dapat dimulai dan bisa berakhir.
4. Bertahan, dimana perubahan data yang terjadi setelah sebuah transaksi berakhir dengan baik, harus dapat bertahan bahkan jika seandainya sistem menjadi mati.

Constraint

Constraint merupakan suatu batasan atau aturan yang terdapat pada suatu table. Constraint mencegah penghapusan data dari suatu table yang mempunyai keterkaitan dengan table lain. Misalkan saja terdapat keterkaitan antara table department dengan table pegawai. Dimana pada table pegawai menyimpan informasi kolom nomer department yang juga terdapat pada table department. Jika baris dengan nomer department ‘10’ akan dihapus dari table department, sedangkan terdapat data pegawai yang bekerja pada department tersebut, maka dengan adanya constraint antara dua table, penghapusan tersebut tidak bisa dilakukan.
Berikut beberapa tipe constraint : 

• NOT NULL 
Kolom dalam constraint NOT NULL tidak boleh berisi nilai NULL dan kolom yang befungsi sebagai kunci primer (primary key) otomatis tidak boleh NULL.
Contoh penulisannya :

• UNIQUE 
Constraint UNIQUE mendefinisikan suatu kolom menjadi bersifat unik.
Contoh penulisannya :

• PRIMARY KEY 
Constraint ini membentuk key yang unik pada suatu table dan kolom yang didefinisikan sebagai PRIMARY KEY akan mengidentifikasi suatu baris data menjadi unik.
Contoh penulisannya :

• FOREIGN KEY 
FOREIGN KEY constraint didefinisikan pada suatu kolom yang ada pada suatu table, dimana kolom tersebut juga dimiliki oleh table yang lain sebagai suatu PRIMARY KEY.
Contoh penulisannya :

• CHECK 
Constraint CHECK digunakan untuk mendefinisikan suatu kondisi yang harus dipenuhi oleh tiap baris data dalam table.
Contoh penulisannya : 


Keys, SQL Support

Structured Query Language yang sering disebut SQL merupakan suatu bahasa database relasional yang dibuat berdasarkan suatu standart. berikut merupakan bentuk dasar dari SQL

SELECT [DISTINC] select-list
FROM from-list
WHERE qualification

Berikut merupakan batasan Integritas SQL
1. Integritas Entitas
    PRIMARY KEY (Kunci Utama)
    NOT NULL and UNIQUE
2. Integritas Referensial
    FOREIGN KEY
    ON DELETE
    ON UPDATE

SQL itu sendiri mendukung sejumlah kendala integritas yang berbeda. diantaranya adalah Primary Key dan Forgein Key
1. Primary-Key
Primary-Key mengatakan bahwa atribut (Aj1, Aj2,..., Ajm) membentuk primary key untuk relasi. Primary Key dituntut untuk non null dan unik, yaitu, tidak ada tuple yang dapat memiliki nilai null untuk atribut Primary-Key, dan tidak ada dua tupel dalam relasi dapat sama pada semua atribut Primary-Key. Meskipun spesifikasi Primary-Key opsional , biasanya ide yang baik untuk menentukan Primary-Key untuk setiap relasi .
2. Foreign-Key
Spesifikasi Foreign-Key mengatakan bahwa nilai-nilai atribut (AK1, AK2, ..., AKN) untuk setiap tupel dalam relasi harus sesuai dengan nilai-nilai dari atribut Foreign-Key dari beberapa tuple.

3. Not-null
Kendala Not-null pada atribut menentukan bahwa nilai null tidak diperbolehkan untuk atribut tersebut, dengan kata lain, kendala tidak termasuknilai null dari domain dari atribut tersebut.

Constraints Classification

Constraint ini di bedakan menjadi 2 yaitu :
1. Tuple constraint merupakan constraint yang bisa dievaluasi secara independen pada setiap tuple-nya.
2. Domain constraint  (value constraint) merupakan suatu constraint dengan referensi kepada nilai (value)           tertentu. Implementasi dari penggunaan domain constraint pada SQL adalah penggunaan klausa check
Suatu constraint dikatakan inter-relasional apabila melibatkan lebih dari satu relasi. Bentuk dari constraint ini adalah referential integrity.

Beberapa bentuk dari integrity constraint yaitu

1. Domain constraints
Merupakan bentuk integrity constraint yang paling sederhana. Setiap ada pemasukan data baru, maka akan langsung diperiksa oleh sistem. Domain constraint diterapkan pada atribut basis data sehingga sangat dimungkinkan beberapa atribut memiliki domain yang sama.
Untuk menciptakan domain baru dapat digunakan perintah create domain.
Contoh :
 create domain Dollar numeric (12,2)
 create domain Pound numeric (12,2)

Pada bahasa SQL juga terdapat klausa check yang bisa digunakan untuk memeriksa suatu kondisi nilai tertentu yang diinginkan. Berikut adalah contoh penggunaan klausa check pada perintah create domain.
Create domain HourlyWage numeric(5,2) constraint wage-value-test check (value>=4.00)
Perintah tersebut akan mengecek nilai dari domain HourlyWage harus ≥ 4.00

2. Referential Integrity
Merupakan aturan yang mengatur hubungan antara kunci primer dengan kunci tamu milik tabel-tabel yang berada dalam suatu basis data relasional untuk menjaga konsistensi data . Tujuannya adalah untuk menjamin dan memastikan agar entitas dalam suatu tabel yang menunjuk ke suatu pengenal unik pada suatu baris di tabel lain benar-benar menunjuk pada nilai yang memang ada.

Berdasarkan operasi yang dilakukan, integritas referensial dapat dibedakan menjadi penambahan (insert), penghapusan (delete), peremajaan (update). Integritas referensial membuat ketiga operasi di atas dapat dilaksanakan pada tabel yang memiliki relasi. Sehingga proses penghapusan ataupun peremajaan suatu kolom juga akan terjadi pada kolom tabel lain yang mempunyai referensi dengannya.

Dalam bahasa Data Definition Language SQL, kunci primer, kunci kandidat, dan kunci tamu, dapat dispesifikasikan sebagai bagian dari pernyataan SQL create table. Berikut merupakan contoh pembuatan tabel mata_kuliah.

create table mata_kuliah
    (kode_mk char(6) not null,
     mata_kuliah varcar(25),
     nip char(9),
     primary key (kode_mk),
     foreign key (nip) references dosen on delete cascade)

3. Assertion
Salah satu bentukdari Assertion adalah Domain constraint dan Referential integrity constraint. Assertion digunakan untuk mengekspresikan suatu kondisi basis data sesuai dengan yang kita inginkan. Seperti halnya prosedur, assertion diberikan nama tertentu sehingga bisa dibatalkan apabila ada kondisi tertentu yang menuntut perubahan struktur basis data. Pada beberapa basis data penggunaan kunci primer dan kunci tamu sudah cukup untuk menjaga integritas data. Tetapi pada beberapa kasus basis data diperlukan suatu constraint ataupun aturan yang lebih baik. Metode lain yang sering digunakan dalam pemeliharaan integritas adalah assertion dan trigger
Syntax dari definisi assertion adalah sebagai berikut.

create assertion AssertionName check (predicate)

Ketika assertion dibuat, maka sistem akan melakukan pengecekan validitas dari assertion yang dibuat. perubahan terhadap basis data hanya akan berlaku ketika tidak menyalahi assertion yang telah dibuat apabila assertion yang dibuat valid. Pengecekan validitas tersebut akan memakan biaya yang besar terutama apabila assertion yang dibuat cukup rumit, sehingga penggunaan dan pembuatan assertion harus dilakukan dengan hati-hati Karena itu tidak banyak developer sistem dan DBMS yang menyediakan fasilitas seperti berikut : 

Create assertion IC13 check
( ( Select min (s.status) from s ) > 4 );
Create assertion IC18 check
(not exists ( select * from P
                     where not ( P.Weight > 0.0 )));
Create assertion IC99 check
( not exists ( select * from P
            where P.color = ‘Red’
            and P.city <> ‘London’));
Create assertion IC49 check
( not exists ( select * from P, SP
            where P.P# = SP.P#
             and  ( P.weight * SP.Qty) > 20000));
Create assertion IC95 check
( not exists ( select * from S, SP
            where S.status < 20
            and S.S# = SP.S#
            and SP.Qty > 500 ));

5. Trigger
Merupakan suatu pemrograman PL/SQL yang mirip dengan procedure. Perbedaannya adalah aktivasinya, dimana procedure dapat dipanggil secara langsung sementara trigger dipanggil melalui pemicu yang berupa bahasa DML (Data Manipulation Language). Bahasa DML yang digunakan sebagai pemicu adalah insert, update dan delete.
Berikut merupakan beberapa persyaratan yang harus dipenuhi untuk merancang mekanisme trigger :
- Menspesifikasikan kapan trigger harus dieksekusi.
- Menspesifikasikan perintah yang akan dilaksanakan ketika trigger dijalankan


Integritas Basis Data

Hal- hal yang harus dieksplorasi untuk setiap RDBMS antara lain:
o Dukungan untuk pendefinisian berbagai jenis key.
o Dukungan untuk pendefinisian constraints secara deklaratif, mencakup domain constraints, table constraints, dan general constraints (assertions)
o Dukungan untuk pendefinisian constraints secara prosedural
o Dukungan bagi transition constraints
o Fasilitas pendefinisian waktu pemeriksaan constraints, apakah immediate atau deffered
o Perlakuan bagi nilai NULL, termasuk keberadaannya di dalam domain (apakah merupakan bagian dari domain atau bukan), penerapan konsep key dengan memasukkan kemungkinan nilai NULL, dll.

Suatu integritas data pada dasarnya mengacu pada kepercayaan dari sumber daya suatu sistem. atau bisa juga integritas merupakan kesetiaan representasional informasi untuk keadaan sebenarnya dari objek yang mewakili informasi, dimana kesetiaan itu sendiri terdiri dari empat atribut inti yaitu: kelengkapan, ketepatan waktu, akurasi / kebenaran, dan validitas. 
Integritas data sangat penting dalam suatu operasi database tertentu dan umumnya pada data pergudangan dan bisnis intelijens. integritas data dapat memastikan keakuratan, konsistensi, aksesibilitasi, maupun kualitas tinggi dari sebuah data, sehingga sangat penting untuk mengikuti aturan integritas suatu data.

Data yang memiliki integritas identik dipertahankan selama operasi apapun (seperti bisnis transfer, penyimpanan, pengambilan). sedangkan dalam istilah bisnis, integritas data merupakan jaminan bahwa data konsisten, bersertifikat dan dapat dirujukkan.
Sebagai contoh hubungan antara orangtua dan anak dengan record terkait. Jika dalam catatan orangtua memiliki satu atau lebih catatan anak terkait semua proses integritas referensial akan ditangani oleh database itu sendiri, yang secara otomatis menjamin keakuratan dan integritas data sehingga tidak ada catatan anak bisa ada tanpa orang tua dan bahwa tidak ada orangtua kehilangan catatan anak mereka. Ini juga menjamin bahwa tidak ada catatan induk dapat dihapus sementara orangtua memiliki record setiap anak. Semua ini ditangani pada tingkat database dan tidak memerlukan coding cek integritas ke dalam setiap aplikasi.

Integritas data dapat dikelompokkan sebagai berikut :
1. Entity Integritas
Entity integritas  mendefenisikan sebuah baris  sebagai sebuah entitas yang unik untuk suatu tabel. Entity integritas memaksa  integritas  dari colum atau primary key dari suatu tabel (melalui index, unique, constrains, primarykey) tidak boleh null.
2. Domain integritas
Domain Integritas merupakan validasi dari masukan untuk sebuah kolom. Anda dapat memaksa domain integritas dengan membatasi tipe (melalui data types), format (melalui  check  constraints  dan  rules),  atau range  nilai-nilai  yang  mungkin  (melalui Foreign Key Constraints, Check Constraints, Default Definitions dan rules).
3. Refferential Integritas
Refferential integritas  memastiakn bahwa seluruh nilai dari foreign key  cocok dengan  nilai primary key yang dihubungkan.
4.  User Defined integritas
User difined integritas mengizinkan  kita untuk menentukan  spesific business rules  sendiri  yang tidak sama pada kategori integrity yang lain

Selasa, 01 Oktober 2013

Informasi Jalur Akses Query

PLAN_TABLE merupakan suatu penyimpanan informasi yang dapat dilihat dari perintah explain plan tentang eksekusi dari suatu query. terlebih dahulu buat table PLAN_TABLE dengan menggunakan script utlxplan.sql
Setelah itu PLAN_TABLE bisa digunakan.
contoh :
SQL> explain plan
Set statement_id=’coba’
Into plan_table for
Select * from karyawan where gaji=2000000;
Dalam PLAN_TABLE rencana eksekusi diatas dikenal dengan nama coba yang terdefinisi pada kolom statement_id.

Berikut merupakan perintah untuk melihat rencana eksekusi dari coba
SELECT LPAD(’ ’,2*Level)||Operation||’ ’||Options||’ ’||Object_Name MUFC
FROM plan_table
WHERE statement_id=’coba’
CONNECT BY PRIOR id=parent_id AND statement_id=’coba’
START WITH id=0 AND statement_id=’coba’;

Hasil dari eksekusi query coba tersebut :
MUFC
----------------------------------------------
SELECT STATEMENT
TABLE ACCESS FULL mahasiswa


Faktor- faktor yang berpengaruh terhadap kecepatan akses data


  • Kecepatan yang diberikan oleh sumber Internet adalah Internet Provider atau ISP. Kecepatan internet biasanya sering disebut sebagai bandwidth dan ukurannya dalam satuan Byte per detik atau  bit per detik. Yang membedakannya adalah 1Byte=8bit.
  • Media penghubung antara user dan Internet Provider (ISP). kapasitas yang digunakan harus lebih besar dari kapasitas source yang diberikan oleh ISP. Selain itu juga jenis media yang digunakan juga mempengaruhi kestabilan. Untuk media Kabel kualitas dan kestabilannya adalah yang terbaik, sedangkan untuk media yang non kabel seperti wireless atau apapun bentuknya seperti wi-fi atau jaringan 3G dan 3.5G masih tergantung pada kualitas sinyal yang diterima oleh modem atau perangkat Radio Frequency yang dipakai.
  • Semakin besar isi dari website tersebut semakin lambat akses kita ke website tersebut. Waktu akses merupakan besarnya file yang akan didownload atau diakses dibagi Kecepatan internet. Selain itu adalah penggunaan aplikasi (software) untuk mempercepat download file bisa menyebabkan kegiatan seperti browsing menjadi lambat.
  • Jumlah user dalam satu local area network (LAN). Semakin banyak user maka semakin banyak file yang didownload, sedangkan kapasitas internet tidak bertambah. Selain itu juga prilaku tiap user berbeda-beda.
  • Penyimpanan file maupun server yang melayaninya. Jjika ISP yang anda gunakan memiliki kapasitas bandwidth yang tersedia sama besar antara ke website lokal dan ke website internasional hal tersebut tidak menjadi masalah. Akan tetapi jika tidak, tentunya pasti ada perbedaan waktu akses antara website lokal dan website internasional. Contoh : Website internasional seperti yahoo amerika tentunya servernya ada di Amerika. 

Optimasi Perintah SQL

Suatu desain aplikasi tidak cukup sebagai peningkat unjuk kerja melainkan harus didukung oleh optimasu dari perintah SQL pada aplikasi tersebut. inti dari optimasi query adalah untuk meminimakan "jalur" pencarian untuk menemukan data yang tersimpan di lokasi fisik. Index database berfungsi sebagai peningkat kecepatan akses data. saat qeury dijalankan index mencari data dan menentukan nilai ROWID dalam membantu menemukan lokasi fisik dari disk.
Misal 3 kolom yang mengurutkan kolom menurut kota, provinsi dan kode pos dari tabel mahasiswa sbb :

CREATE INDEX idx_kota_prov_kodepos
ON mahasiswa(kota, provinsi, kode_pos)
TABLESPACE INDX;

setelah itu lakukanlah query sbb :

SELECT * FROM mahasiswa WHERE provinsi=’Jawa Tengah’;

Pada query ini index tidak digunakan karena kolom pertama merupakan kota, tidak digunakan dalam klausa WHERE tetapi apabila user sering melakukan query ini, maka kolom index harus diurutkan menurut provinsi.
Misalkan seperti contoh dibawah ini :


SELECT * FROM mahasiswa
WHERE id BETWEEN 1010 AND 2010;

atau bisa juga dengan melakukan alternatif lain sbb :


CREATE TABLE mahasiswa_urut
AS SELECT * FROM mahasiswa
ORDER BY id;



Optimasi Query

Optimasi Query merupakan proses untuk menganalisa query dan menentukan sumber-sumber apa saja yang digunakan oleh query tersebut dan apakah pengguna dari sumber tersebut dan apakah pengguna tersebut di kurangi tanpa merubah output. ada tiga aspek dasar yang mempengaruhi optimasi query yaitu Search Space, Cost Model dan Search Strategy. 

Tujuan Optimasi Query
Dalam tujuannya optimasi query digunakan untuk meminimumkan waktu proses, I/O, pengguna memory dan meminimumkan total waktu pada proses query.

Menurut Chanowich (2001) ada 2 cara pendekatan optimasi yang digunakan untuk saat ini yaitu Heuristik atau Rule-Based dan Cost-Based.

1. Heuristik atau Rule-Based
    Optimasi untuk jenis ini mentransformasikan query yang akan meningkatkan kierja eksekusi yaitu :
  • mereduksi jumlah baris dengan melakukan operasi selection.
  • mereduksi jumlah atribut dengan melakukan operasi projection.
  • mengkonversi query dengan banyak join menjadi query dengan banyak subquery.
  • melakukan operasi selection dan join yang paling kecil keluarnya sebelum operasi lain.
2. Cost-Based
Optimasi untuk jenis ini dipergunakan dari beberapa alternatif untuk dipilih mejadi salah satu cost yang terendah. selain itu teknik ini juga mengoptimalkan urutan join  terbalik pada relasi-relasi R1 sampai Rn. Pada teknik ini juga dipergunakan untuk mendapatkan pohon left-deep join agar menghasilkan relasi pada node sebelah kanan.

Selain Teknik tersebut juga masih ada teknik lainnya yaitu :
  • Join Ordering merupakan suatu aspek penting dalam optimasi query
  • Algoritma Sistem R merupakan optimasi query statis berdasarkan exhaustive search
  • Algoritma Ingres merupakan algoritma optimasi dinamis yang memecah query kalkulus kebagian yang lebih kecil secara rekursif.




Rabu, 25 September 2013

BBM untuk Android dan iPhone


BBM (BlackBery Mesenger) tidak jadi dirilis untuk Android dan iPhone pada minggu ini. menurut Executive Vice President bidang BBM di BlackBery, Andrew Bocking kini timnya masih menyesuaikan sistem agar bisa memblokir versi BBM Android Unreleased yang sudah beredar.
Hampir satu juta orang yang telah mengunduh versi unreleased ini akibatnya lalu lintas data di server BlackBery melonjak tinggi dan tak bisa berjalan dengan normal. Jika versi ini tak diblokir maka versi resminyapun masih belum bisa dirilis.
Aplikasi BBM unreleased Android itu untuk sementara akan ditutup. sedangkan pelanggan yang sudah mengunduhnya harus mendaftar di www.BBM.com

Selasa, 24 September 2013

Urutan warna kabel straight dan crossover

Susunan pengkabelan dalam jaringan yaitu Straight dan Crossover, keduanya biasa menggunakan jenis kabel UTP dan conecctor RJ-45.

  • Straight merupakan skema pengkabelan yang dimulai dari urutan orange putih, orange, hijau putih, biru, biru putih, hijau, cokelat putih, cokelat. 

  • Crossover memiliki urutan hijau putih, hijau, orange putih, biru, biru putih, orange, cokelat putih, cokelat. untuk lebih jelasnya seperti gambar dibawah ini :