|
Oracle merupakan salah satu perusahaan TI terkemuka di dunia. Anda
mungkin sudah pernah mengenal Oracle melalui produk RDBMS
(Relational Database Management System) mereka yaitu Oracle
Database. Tulisan kali ini kana membahas secara global mengenai apa
itu Oracle Database. Cocok bagi pemula yang mungkin belum mengenal
Oracle Database. Sampai tulisan ini diturunkan, versi Oracle
Database terakhir adalah versi 10g. Database dan Instance
Oracle database adalah suatu koleksi data yang ada pada suatu file
atau sekumpulan file. Database Oracle ini sendiri berisi struktur
secara logic dan juga fisik. Dalam fungsinya ketika membuat
aplikasi, maka Anda pasti akan membuat struktur database seperti
tabel dan index yang digunakan untuk menyimpan data dan mempercepat
proses pengambilan datanya. Anda dapat membuat sinonim bagi nama
obyek, view object pada database yang berbeda dan bahkan Anda bisa
membatasi hak akses kepada suatu obyek. Anda bahkan dapat
menggunakan tabel eksternal untuk mengakses file di luar database.
Sebuah Oracle instance akan 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 pada umumnya berada pada server
yang berbeda dan terhubung satu sama lain dengan kecepatan yang
tinggi.
Melihat ke dalam Database
Di dalam Oracle Database, struktur dasarnya adalah sebuah tabel.
Pada Oracle Database 10g telah mendukung banyak tipe tabel, yaitu:
- Relational tables
Dengan menggunakan tipe data yang telah disediakan oleh Oracle,
maka Anda dapat membuat tabel untuk menyimpan data dan bisa
dimanipulasi oleh aplikasi Anda. Tabel yang Anda buat akan
memiliki definisi kolomnya masing-masing, dan Anda dapat
menambah atau menghapus kolom pada tabel mengikuti kebutuhan
aplikasi Anda. Tabel bisa dibuat dengan menggunakan perintah SQL
CREATE TABLE.
- Object-relational tables
Untuk mendapat manfaat dari fitur seperti type inheritance, maka
Anda dapat menggunakan kemampuan object-relational pada Oracle
Database. Anda dapat mendefinisikan tipe data Anda sendiri dan
kemudian menggunakannya sebagai dasar bagi definisi kolom tabel
Anda dan lain sebagainya.
- Index-organized tables
Anda dapat membuat suatu tabel yang mana menyimpan datanya
sendiri dalam suatu stuktur index, dan membolehkan data untuk
bisa disortir dalam tabel.
- External tables
Data yang disimpan dalam flat file dapat diperlakukan sebagai
suatu tabel yang mana user dapat melakukan query secara langsung
dan bisa melakukan join kepada tabel lain di dalam query-nya.
Anda dapat menggunakan external table untuk mengakses volume
data yang sangat besar tanpa harus me-loading-nya ke dalam
database. Perlu diketahui juga bahwa 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
Anda dapat membagi suatu tabel ke dalam beberapa partisi, yang
mana akan membolehkan Anda untuk mengatur bagian dari tabel
secara terpisah. Anda dapat menambah partisi baru pada suatu
tabel, split partisi yang sudah ada dan mengadministrasi partisi
yang ada. Aktivitas partisi ini bisa menyederhanakan atau
meningkatkan aktivitas pemeliharaan performa dan juga query dari
user. Anda dapat membuat partisi tabel dalam suatu jangkuan
nilai tertentu.
- Materialized views
Suatu materialized view 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 (optimizer akan me-rewrite query secara otomatis). Anda
dapat membangun dan mengatur refresh schedule untuk menjaga data
pada materialized view agar tetap selalu "fresh" bagi
kepentingan aplikasi yang menggunakannya.
- Temporary tables
Anda dapat menggunakan perintah CREATE GLOBAL TEMPORARY TABLE
untuk membuat tabel sementara yang mana 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, Anda dapat dengan cepat me-recover
tabel yang terhapus dengan perintah FLASHBACK TABLE TO BEFORE
DROP. Anda dapat mengembalikan beberapa tabel sekaligus atau
mengembalikan seluruh database pada kondisi sebelum dihapus.
Oracle juga mendukung flashback query, yang mana akan
menampilkan versi sebelumnya dari row pada tabel.
Untuk mendukung akses ke tabel, Anda 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. Anda 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
Suatu B*-tree index adalah tipe standar dari index yang tersedia
pada Oracle, dan itu sangat berguna pada saat memilih row yang
sesuai dengan kriteria tertentu. Index jenis ini bisa dibuat
dengan perintah CREATE INDEX.
- Bitmap indexes
Untuk kolom yang memiliki sedikit nilai yang unik, maka suatu
bitmap index dapat meningkatkan performa query. Bitmap indexes
sebaiknya hanya digunakan ketika data di-load secara batch
(seperti pada banyak aplikasi datawarehouse atau reporting).
- Reverse key indexes
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
Selain melakukan index terhadap kolom, seperti kolom Nama
misalnya, maka Anda juga 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
Anda 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
Anda dapat meng-index nilai text untuk mendukung peningkatan
pada kemampuan pencarian, seperti pencarian frase dan lain
sebagainya. 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.
Menyimpan data
Semua struktur logic di dalam database haruslah disimpan pula pada
suatu lokasi di dalam database. Untuk hal ini Oracle memelihara
suatu data dictionary yang menyimpan metadata untuk setiap obyek,
misalnya object owner, definisi, related privileges dan lain
sebagainya. Bagi obyek-obyek yang membutuhkan ruang penyimpanan
fisik bagi dirinya, maka Oracle menyediakan atau mengalokasikan
ruang di dalam tablespace.
Tablespace
Suatu tablespace terdiri dari satu atau lebih datafiles, yang
mana suatu datafile dapat berupa bagian dari satu tablespace. Oracle
Database 10g membuat sedikitnya dua tablespace bagi masing-masing
database, yaitu SYSTEM dan SYSAUX, untuk mendukung manajemen
internalnya. Anda dapat menggunakan Oracle managed files (OMF) untuk
menyederhanakan proses pembuatan dan pemeliharaan dari datafile.
Pada Oracle Database 10g, Anda dapat membuat suatu tablespace
yang spesial, yang disebut dengan bigfile tablespace, yang mana
ukurannya bisa sampai ribuan terabytes. Bersama dengan OMF,
manajemen dari bigfile membuat manajemen tablespace seluruhnya
menjadi transparan bagi DBA dan DBA dapat mengatur tablespace
sebagai suatu unit tanpa harus khawatir mengenai ukuran dan struktur
dari datafile.
Jika suatu tablespace ditujukan sebagai suatu temporary
tablespace, maka tablespace itu sendiri adalah permanen, yang mana
hanya segment yang disimpan pada tablespace yang bersifat temporary.
Oracle menggunakan temporary tablespace untuk mendukung operasi
sorting seperti index creation dan pemrosesan join. Temporary
segment sebaiknya tidak disimpan pada tablespace yang sama seperti
obyek permanen.
Tablespace dapat bersifat dictionary managed atau locally
managed. Pada dictionary-managed tablespace, maka space management
direkam di dalam data dictionary. Pada locally-managed tablespace
(yang mana merupakan default pada Oracle Database 10g), Oracle
memelihara suatu bitmap pada masing-masing datafile dari tablespace
untuk melacak ketersediaan dari space.
Automated Storage Management
Automatic storage management (ASM), tersedia pada Oracle Database
10g, dan berfungsi untuk mengotomatisasi layout dari datafile dan
sistem operasi lainnya dengan cara mendistibusikannya pada disk-disk
yang tersedia. Ketika disk baru ditambahkan pada instance ASM, maka
file database akan secara otomatis didistribusikan pada seluruh disk
dalam disk group yang telah didefinisikan bagi performa yang
optimal. Fitur multiplexing dari instance ASM akan meminimalkan
kemungkinan hilangnya data dan secara umum lebih efektif daripada
skema manual yang mana menempatkan file-file kritis dan backup pada
drive fisik yang berbeda.
Automatic Undo Management
Untuk mendukung transaksi Anda, Oracle mampu untuk secara dinamis
membuat dan mengatur undo segments, yang mana akan membantu dalam
memelihara images sebelumnya dari perubahan block dan row. User yang
memiliki query sebelum Anda rubah, maka akan tetap bisa melihat row
seperti sebelum query perubahan dilakukan. Automatic Undo Management
(AUM) membolehkan Oracle untuk mengatur undo segments secara
langsung tanpa ada campur tangan DBA. Kegunaan dari AUM juga
menyederhanakan penggunaan dari flashback query. Pada Oracle
Database 10g, Anda dapat mengeksekusi flashback version query untuk
melihat perbedaan versi pada row yang mana telah dirubah pada suatu
rentang waktu tertentu.
Dropped Data
Konsep recycle bin yang diperkenalkan pada Oracle Database 10g
berpengaruh pada kebutuhan ruang bagi tablespace dan datafile Anda.
Pada Oracle Database 10g, perilaku default bagi aktivitas drop table
adalah untuk me-retain alokasi ruangnya, yang mana Anda dapat
melihat penggunaan ruangnya melalui RECYCLEBIN data dictionary view.
Jika Anda membuat dan men-drop tabel dua kali, maka akan ada dua
kopi dari tabel pada recycle bin. Meskipun arsitektur ini bisa
menyederhanakan proses recovery dari kehilangan tabel akibat
ketidaksengajaan, tetapi hal ini sekaligus juga akan menambah ruang
yang digunakan pada database Anda. Gunakan perintah PURGE untuk
menghapus data lama dari dalam recycle bin Anda.
Menjaga Data
Anda dapat mengontrol penuh akses ke dalam data Anda. Anda dapat
memberi hak akses user lain untuk melakukan suatu fungsi yang
spesifik (seperti SELECT, INSERT dan lain sebagainya) pada object
Anda. Anda dapat mengatur hak akses lebih jauh lagi secara
mendetail. Anda dapat memberi hak akses bagi role, yang mana
kemudian bisa diberikan lebih lanjut kepada user.
Oracle mendukung level yang sangat detail dari hak akses ini.
Anda dapat mengontrol mana row yang boleh diakses. Ketika Anda
menggunakan opsi Virtual Private Database (VPD), maka query user
terhadap tabel akan selalu terbatas. Pada Oracle Database 10g, VPD
ditingkatkan lagi sampai pada column masking bagi kolom-kolom yang
berisi data yang sensitif.
Sebagai tambahan dalam hal mengamankan data, Anda dapat mengaudit
aktivitas di dalam database. Ini termasuk monitoring terhadap user
creation, perubahan pada struktur data, akses ke spesifik row atau
table dan lain sebagainya.
Programmatic Structures
Oracle mendukung berbagai macam metode akses secara pemrograman.
Bahasa SQL, merupakan kunci dari berbagai aplikasi yang hendak
memanfaatkan Oracle Database sebagai back-end database-nya. Beberapa
metode akses pemrograman yang lainnya adalah:
- PL/SQL
PL/SQL merupakan komponen yang sangat penting dalam pembangunan
aplikasi yang memanfaatkan Oracle Database. Anda dapat
menggunakan PL/SQL untuk membuat stored procedure dan juga
function, dan kemudian Anda bisa memanggilnya dari dalam
aplikasi Anda. Lebih lanjut, procedure dan function bisa
dibungkus menjadi suatu paket. Anda juga dapat membuat trigger
yang mana bisa dimanfaatkan untuk menjalankan suatu aksi
bilamana suatu event terjadi (misalnya saat database startup),
perubahan terhadap struktur tabel atau juga perubahan terhadap
data pada row. Dalam beberapa kasus, Anda akan menggunakan
PL/SQL untuk mengontrol perilaku dari database atau aplikasi
ketika suatu event trigger terjadi.
- Dynamic SQL
Anda dapat membuat perintah SQL pada saat runtime dan
melemparkannya pada suatu prosedur yang nantinya akan
mengeksekusinya melalui dynamic SQL.
- SQL*Plus
SQL*Plus memberikan suatu interface sederhana ke Oracle
Database. SQL*Plus dapat digunakan untuk membuat reporting
sederhana, akan tetapi yang lebih diunggulkan dari SQL*Plus ini
adalah untuk aktivitas scripting. SQL*Plus enak digunakan untuk
mengambil data dari data dictionary dan membuat obyek database.
- Java dan JDBC
Oracle mendukung Java dan JDBC yang mana ini memungkinkan Anda
menggunakan Java di dalam PL/SQL. Anda bahkan bisa menulis
stored procedure berbasis Java.
- XML
Anda dapat menggunakan interface XML pada Oracle dan tipe data
XML untuk mendukung proses insert dan penerimaan data dalam
format XML.
- Object-oriented SQL and PL/SQL
Anda dapat menggunakan Oracle untuk membuat dan mengakses
struktur berorientasi obyek, yang mana termasuk user-defined
datatypes, methods, large objects (LOBs), object tables dan
nested tables.
- Data Pump
Data Pump Import dan Data Pump Export, keduanya diperkenalkan
pada Oracle Database 10g, telah meningkatkan kemampuannya dalam
hal ekspor dan impor data. Anda dapat menggunakan Data Pump
untuk secara cepat meng-extract data dan memindahkannya ke
database lain.
- SQL*Loader
Anda dapat menggunakan SQL*Loader untuk secara cepat me-load
flat file ke dalam tabel pada Oracle. Suatu flat file tunggal
dapat di-load ke dalam beberapa tabel dan proses loading ini
bisa terjadi secara paralel.
- External program dan procedure
Anda dapat meng-embed SQL di dalam program eksternal, atau Anda
dapat membuat procedural libraries yang kemudian bisa
dihubungkan ke Oracle.
- UTL_MAIL
Sebuah paket yang diperkenalkan pada Oracle Database 10g,
UTL_MAIL membolehkan developer aplikasi PL/SQL untuk mengirimkan
e-mail tanpa harus mengetahui bagaimana menggunakan protokol
SMTP.
Memilih Arsitektur
Oracle memberikan berbagai macam tool untuk membangun aplikasi yang
berbasis pada Oracle Database 10g. Anda dapat menggunakan Oracle
Application Server sebagai aplikasi middle-tier bagi aplikasi
three-tier yang mengakses ke Oracle Database 10g.
Beberapa fitur baru dapat membawa dampak yang positif bagi
performa aplikasi Anda. Sebagai contoh, pencarian dengan regular
expression yang tersedia di Oracle Database 10g.
Referensi
- Kevin Looney, Oracle Database 10g: The Complete Reference,
Oracle Press.
Demikian tulisan singkat mengenai pengenalan dan gambaran umum
Oracle Database 10g. Semoga berguna bagi Anda
semuanya. Jika ada komentar atau saran bisa dikirimkan melalui
pratiwi.mileniawati@gmail.com. Untuk membaca tulisan menarik lainnya
silakan menuju ke situs Sony AK Knowledge Center dengan alamat di
www.sony-ak.com.
Terima kasih.
| Send
your comments or suggestions |
|
|
|