Senin, 26 Oktober 2009

Oracle

Oracle database merupakan suatu koleksi data yang ada pada suatu file. Dalam fungsi oracle dalam membuat aplikasi, maka kita harus membuat struktur database, seperti tabel dan index. Tabel dan Index Tersebut digunakan untuk menyimpan data dan mempercepat proses pengambilan datanya. Kita bisa membuat sinonim untuk nama obyek, view object pada database yang berbeda dan bahkan Kita bisa membatasi hak akses kepada suatu obyek. Bahkan dapat juga menggunakan tabel eksternal untuk mengakses file di luar database. Oracle instance melibatkan atau menggunakan suatu memory area yang biasa dinamakan System Global Area (SGA) dan juga akan membuat background process yang berguna bagi interaksi antara SGA dan file database di dalam hardisk. Pada Oracle Real Application Server (RAC), lebih dari satu instance akan menggunakan satu database yang sama. Instance ini berada pada server yang berbeda dan terhubung satu sama lain dengan kecepatan yang tinggi.

Mamasuki/Melihat dari dalam Database
Pada Oracle Database 10g telah mendukung banyak tipe tabel, yaitu:

- Relational tables.

Menggunakan tipe data yang disediakan Oracle, maka kita bisa membuat tabel untuk menyimpan data. Tabel yang dibuat akan memiliki definisi kolomnya masing-masing, kita dapat menambah dan menghapus kolom pada tabel sesuai dengan kebutuhan aplikasi kita. dengan menggunakan perintah SQL CREATE TABLE kita sudah bisa membuat tabel.

- Object-relational tables.

Agar bisa mendapatkan manfaat dari fitur seperti type inheritance, kita dapat menggunakan kemampuan object-relational pada Oracle Database, kita juga dapat mendefinisikan tipe data yang kita miliki sendiri dan kemudian menggunakannya sebagai dasar bagi definisi kolom tabel dan lainnya.

- Index-organized tables.

Kita bisa membuat tabel dimana dapat menyimpan datanya sendiri dalam suatu stuktur index, dan data tersebut dibolehkan untuk bisa disortir dalam tabel.

- External tables.

Data yang disimpan dalam flat file dapat diperlakukan sebagai suatu tabel dimana user dapat melakukan query secara langsung dan bisa melakukan join kepada tabel lain di dalam query-nya. Kita dapat menggunakan external table untuk mengakses volume data yang sangat besar tanpa harus me-loading-nya ke dalam database. Oracle Database mendukung tipe data BFILE, yaitu suatu pointer yang menunjuk pada suatu binary file eksternal. Sebelum membuat suatu BFILE atau suatu external table, maka Anda harus membuat sebuah directory alias di dalam Oracle (melalui perintah CREATE DIRECTORY) yang akan menunjuk kepada lokasi fisik dari file tersebut.

- Partitioned tables.

Kita bisa saja membagi suatu tabel ke dalam beberapa partisi, dimana akan membolehkan kita untuk mengatur bagian dari tabel secara terpisah. Aktivitas partisi bisa menyederhanakan atau meningkatkan aktivitas pemeliharaan performa dan juga query dari user.

- Materialized views.

Materialized view yaitu, merupakan suatu replika dari data yang diterima dari suatu query. Query dari user dapat diarahkan ke materialized view untuk menghindari tabel yang besar selama eksekusi. Kita dapat membangun dan mengatur refresh schedule untuk menjaga data pada materialized view agar tetap selalu "fresh" bagi kepentingan aplikasi yang menggunakannya.

- Temporary tables.
Kita dapat menggunakan perintah CREATE GLOBAL TEMPORARY TABLE untuk membuat tabel sementara, dimana beberapa user dapat menggunakannya bersama-sama. Setiap user akan hanya dapat melihat row mereka dalam tabel tersebut.

- Clustered tables.

Jika dua tabel biasa digunakan bersama, maka Anda dapat seara fisik menyimpannya bersama ke dalam suatu struktur yang bernama cluster.

- Dropped tables.

Pada Oracle Database 10g, Kita dapat dengan cepat me-recover tabel yang terhapus dengan perintah FLASHBACK TABLE TO BEFORE DROP. Kita dapat mengembalikan beberapa tabel sekaligus atau mengembalikan seluruh database pada kondisi sebelum dihapus. Oracle juga mendukung flashback query untuk menampilkan versi sebelumnya dari row pada tabel.

Untuk mendukung akses ke tabel, kita dapat menggunakan view yang bisa melakukan join dan agregasi, membatasi jumlah row yang diterima atau mengubah kolom yang ditampilkan. View bisa jadi bersifat read-only atau bisa diupdate, dan mereka dapat mereferensikan ke tabel lokal atau remote. Remote table bisa diakses dengan database link. Kita dapat menggunakan sinonim untuk melakukan mask terhadap lokasi fisik dari tabel.

Untuk tuning akses ke dalam tabel, maka Oracle telah mendukung banyak tipe index, yaitu:
  • B*-tree indexes merupakaan tipe standar dari index yang tersedia pada Oracle, dan sangat berguna pada saat memilih row yang sesuai dengan kriteria tertentu. Bisa dibuat dengan perintah CREATE INDEX.

  • Bitmap indexes digunakan Untuk kolom yang memiliki sedikit nilai yang unik, bitmap index dapat meningkatkan performa query, sebaiknya hanya digunakan ketika data di-load secara batch.

  • Reverse key indexes yaitu, Jika ada isu I/O contention selama proses insert nilai sekuensial berlangsung, Oracle dapat secara dinamis me-reverse nilai index sebelum menyimpannya.

  • Function-based indexes yaitu, melakukan index terhadap kolom, seperti kolom Nama misalnya, maka bisa dapat meng-index suatu kolom yang berbasis function, seperti UPPER(Nama) contohnya. Function-based index akan memberikan kesempatan bagi Oracle optimizer beberapa pilihan ketika memilih execution path.

  • Partitioned indexes yaitu, Kita dapat menggunakan partition index untuk mendukung partitioned tables atau untuk menyederhanakan index management. Index partition dapat bersifat lokal bagi partisi tabel atau dapat pula bersifat global yang berpengaruh pada seluruh tabel.

  • Text indexes yaitu, dapat meng-index nilai text untuk mendukung peningkatan pada kemampuan pencarian. Text indexes merupakan himpunan dari tabel dan index yang dipelihara oleh Oracle untuk mendukung pencarian teks yang sangat kompleks. Oracle Database 10g menawarkan peningkatan pada text indexes yang mana menyederhanakan proses administrasi dan pemeliharaannya.