Thursday, February 15, 2007

Share: Oracle Data Dictionary

Oracle Data Dictionary

Data dictionary dibuat untuk menyimpan semua informasi tentang objek yang ada dalam database Oracle. Data dictionary berisi kumpulan tabel yang disebut dengan base table, sehingga data dictionary biasa disebut dengan "data about data" karena merupakan tabel yang menyimpan informasi tabel atau object di database.
Base tables dimiliki oleh SYS karena tabel tersebut otomatis dibuat ketika sebuah objek dalam database dibuat. Untuk mengatasi akses langsung dan modifikasi dari user maka dibuatlah view untuk kemudahan query, view tersebut merujuk pada base table yang ada.
Oracle memiliki tiga data dictionary view, antara lain :
  • User_ view, yang memungkinkan user untuk melihat informasi objek yang ada dalam schema user tersebut.
  • All_ view, memungkinkan user untuk melihat informasi objek pada schemanya sendiri dan schema lainnya, sesuai dengan privileges yang dimiliki user tersebut.
  • DBA_ view, view yang dibuat khusus untuk DBA yang menyediakan informasi lengkap tentang semua objek yang dibuat oleh siapapun user. Normal user tidak dapat mengakses view ini.

Optimal Flexible Architecture (OFA)

OFA dikenalkan Oracle saat rilis Oracle 8. OFA adalah metode penamaan mount point, directori, datafile dan komponen database sehingga memudahkan DBA untuk alokasi file, pengelolaan database, sekaligus memudahkan performa dan monitoring database. OFA menentukan 3 direktori utama yang harus ada dalam database.
Direktori pertama berisi file binary untuk execute database dan pendukungnya. Direktori ini disarankan tidak boleh diganti (diutak atik). Direktori kedua digunakan untuk menyimpan control file, redo log file dan file administratif lainnya. Direktori ketiga menyimpan semua data file. Untuk lebih mantapnya, ketiga direktori ini bisa diletakkan pada harddisk yang berbeda. Berikut ini adalah beberapa keuntungan dalam menggunakan OFA :
  • Oracle menggunakan metode pendekatan yang terstruktur dalam penempatan file sehingga DBA lebih mudah untuk mengenali file database dan server yang harus dikelola.
  • Kemudahan dalam melakukan backup dan restore karena file-file yang digunakan lebih terstruktur.
  • Peningkatan performa karena OFA menggunakan physical hard disk yang berbeda.
  • Lebih kompatibel dengan Oracle versi lainnya, sehingga menghilangkan kemungkinan overwrite file.
Rekomendasi penamaan menggunakan OFA pada Linux platform:
  • Kombinasi nama dari mountpoint terdiri atas common string constant dan variable value dalam bentuk /pm. Contoh /u01, /u02, /u03, /u04 atau /ora01, /ora02, /ora03.
  • Untuk direktori didalamnya digunakan format /pm/h/u/product/v.
    h: standar nama direktori untuk tujuan tertentu, misal /app atau /db atau /home
    u: name of the owner direcotry, misal /oracle
    product: disarankan untuk tetap menggunakan nama product
    v: versi yang digunakan.
    Contoh komplit : Untuk database: /u02/db/oracle/product/10.2.0.2.0 atau untuk aplikasi server: /u02/app/oracle/product/10.2.0.2.0
  • Untuk tujuan administrator digunakan directory yang berbeda, dengan format /pm/h/admin/d/a.
    admin
    : tetap admin
    d: SID (system identifier) of database
    a: proses spesifik administratif seperti bdump (background dump), adump (audit dump) dsb.
  • Sedangkan untuk penamaan file direkomendasikan menggunakan format:
    Control file --> controlnn.ctl, n:number (control01.ctl)
    Redo log file --> redonn.log, n:number (redo01.log)
    Datafile --> tablespacenamenn.dbf, tablespace:logical database name, n:number (system01.dbf / finance01.dbf)
Setting Environment
Seorang DBA harus familiar dengan beberapa variable berikut ini:
  • ORACLE_BASE --> root dari OFA dan struktur direktori instalasi semua produk Oracle. Variable ini menentukan path dari instalasi oracle misal /u04/app/oracle
  • ORACLE_HOME --> direktori home dari instalasi oracle. Contoh /u04/app/oracle/product/10.2.0 atau $ORACLE_BASE/product/10.2.0
  • ORACLE_SID --> nama instance Oracle yang terhubung. Biasanya digunakan 8 character atau kurang tetapi untuk RAC (Real Application Cluster) nama SID harus 5 character atau kurang. Keduanya kombinasi antara huruf dan angka.
  • NLS_LANG --> Globalization Setting. Tidak begitu penting tetapi akan lebih baik digunakan untuk standar global. Defaultnya "American_America.US7ASCII"
  • DISPLAY --> Digunakan untuk koneksi X Window pada Unix. formatnya DISPLAY=hostname:display

Note:
  • OUI (Oracle Universal Installer) adalah aplikasi Java untuk semua platform Oracle karena mendukung untuk aplikasi berbasis web, selain itu bisa dijalankan secara otomatis untuk silent installations.
  • oratab file berisi daftar instance database yang terinstall di komputer dan sebagai indikator apakah instance tersebut harus dijalankan secara otomatis saat booting atau tidak.
  • Untuk instalasi di Linux system, dibutuhkan setidaknya 3 macam user yaitu oracle user, oinstall user dan dba group.
  • Untuk menggunakan OUI sesuai dengan requirement sistem kita harus mengedit oraparam.ini file.
  • Pertimbangan menggunakan OFA :
    • Menyediakan standar struktur direktori,
    • Mengurangi pemahaman lebih detil tentang administrasi database di banyak server.

Wednesday, February 14, 2007

Share: Tentang ORDBMS dan Database Objects

Object Relational Database Management System

ORDBMS adalah sebuah model DBMS yang dikembangkan Oracle yang masih mengikuti model database relasional namun memiliki kelebihan dalam hal dukungan fitur yang disediakan di dalamnya. Beberapa karakteristik fitur yang ditambahkan dalam ORDBMS antara lain :
  • Dukungan dalam tipe data definisi pengguna (user-defined datatypes). Fitur ini memberikan keleluasaan kepada user untuk mengembangkan sendiri tipe data yang diinginkannya atau dapat juga menggunakan tipe data yang telah disediakan Oracle. Dengan user-defined datatypes akan meningkatkan keakuratan dalam pemetaan business object di database dan mengurangi waktu proses pengelolaan database setelah database diimpelementasikan.
  • Dukungan terhadap object multimedia dan object ukuran besar. Mulai dari Oracle 8 hingga 10g, Oracle memiliki dukungan terhadap BLOB (Binary Large Object) seperti movie, video, clips, image ataupun text dengan kapasitas besar.
  • Dukungan penuh terhadap konsep database relasional. Meski banyak tambahan object dalam Oracle, namun Oracle tetap menyediakan dukungan paling lengkap untuk konsep RDBMS. Karena Oracle merupakan kekuatan dan kekayaan terbesar untuk fitur pada konsep RDMBS.

Database Objects
Setiap RDBMS memerlukan dukungan minimal dari object database untuk memenuhi kebutuhan konsep database relational yang digunakan. Berikut ini adalah beberapa object yang disedikan Oracle sekaligus kelebihan fitur object yang disediakan seperti packages, object type, synonyms, sequence dsb.
  • Table. Sebuah kumpulan kolom dan baris yang merepresentasikan sebuah satu entitas.
  • Column. Sebuah atribut entitas yang disimpan dalam tabel. Sebuah kolom memiliki nama dan tipedata. Sebuah table boleh memiliki satu kolom atau lebih sesuai dengan definisi dari tabel tersebut.
  • Row. Sebuah instance dari entitas pada tabel dan kolom yang ada.
  • Cell. Istilah cell lebih mengarah pada irisan antara satu kolom dan satu baris.
  • Constraint. Sebuah objek database yang digunakan untuk menerapkan aturan bisnis dan integritas dari database. Primary Key, Foreign key, Not Null dan Check adalah beberapa constraint yang disediakan Oracle.
  • View. Sebuah gambaran logic dari beberapa tabel yang ditampilkan menggunakan SQL query. View digunakan untuk memberi kemudahan terhadap query yang kompleks dan sering digunakan.
  • Index. Sebuah object database yang digunakan untuk mempercepat pengambilan data dengan menyimpan pointer untuk nilai tertentu. Dengan melihat index yang telah diatur sesuai urutan tertentu maka, pengambilan data akan lebih cepat dibandingkan dengan melihat semua baris.
  • Index-organized Table. Sebuah tabel yang secara fisik dikelola layaknya sebuah index. Tidak seperti tabel biasa, data yang dimasukkan dengan 'bebas' (-tidak menggunakan urutan tertentu) dan dilakukan query terhadap semua barisnya akan mengambil data secara acak. Gini deh, gampangnya perbedaan antara table biasa dan index-organised table sama seperti menyimpan dokumen di lemari secara acak dan secara berurutan, dan ketika ada pengambilan maka pengambilan juga dilakukan secara acak sedangkan yang teratur akan diambil sesuai aturan tersebut.
  • Partition. Untuk meningkatkan efisiensi penyimpanan secara fisik. Oracle menyediakan fitur partisi yang membagi data dalam table ke dalam beberapa disk yang terpisah sehingga pengambilan data lebih cepat karena pembacaan dilakukan dengan secara simultan.
  • Cluster. Mekanisme penyimpanan objek yang memungkinkan data dari lebih dari satu table disimpan bersamaan untuk pengambilan yang lebih cepat. Misalkan terdapat table customer dan table order, jika menggunakan metode cluster maka data yang berkaitan misal customer id dan order id, akan disimpan pada block yang sama.
  • Sequence. Sebuah sequence memungkinkan kita untuk membuat counter yang secara otomatis bertambah yang dapat digunakan untuk menghasilkan nilai numerik yang dapat digunakan sebagai primary key dalam tabel.
  • Synonym. Alias yang dipake untuk nama objek yang terlalu panjang sehingga memudahkan untuk mengingat pada objek tertentu.
  • Stored procedure. Stored procedure adalah kumpulan perintah-perintah SQL dan PL/SQL yang digunakan untuk menjalankan perintah tertentu seperti insert, query dsb.
  • Trigger. Trigger merupakan prosedur khusus yang berhubungan dengan tabel dan dijalankan secara otomatis ketika terdapat action berupa insert, update atau delete, ataupun action yang dimiliki oleh system administrator seperti logon, logoff, startup dan shutdown.
  • Function. Sebuah fungsi harus mengembalikan sebuah nilai. Perbedaan dengan prosedur, dalam prosedur tidak wajib mengembalikan nilai, tetapi dalam fungsi sebuah nilai pengembalian wajib adanya.
  • Package. Package adalah kumpulan dari prosedur dan fungsi yang dikelompokkan dengan nama yang umum. Maintenance dan performa adalah alasan mengapa butuh package.
  • User-defined datatype. adalah objek database yang dapat digunakan dalam table apapun atau objek lain. Hal ini memberikan konsistensi antar tabel dan penerapan method sebagai bagian dari definisi.
  • BLOB. binary large object digunakan untuk menyimpan video, image, dan text skala besar. BLOB didefinisikan sebagai column dalam table dan bisa berisi banyak tipe data seperti BLOB, CLOB, NCLOB atau BFILE.

Sunday, February 11, 2007

Cerita: Sabtu

Ahh... weekend hari pertama yang cerah, Sabtu 10 February 2007. Memasuki minggu ke-enam dalam hitungan mundur perjalanan kembali ke Indonesia.

Sesuai rencana yang telah disusun tadi malam, aku dan rekan-rekan melakukan survey dan 'studi banding' terhadap harga laptop di beberapa toko yang mencantumkan namanya di iklan koran kemarin. Setelah semuanya siap kami berangkat menuju ke node yang paling ujung yaitu FC Road. Toko yang menjadi 'korban' survey pertama kami adalah IT Power.

Hm, nice welcome. Service yang diberikan lumayan bagus untuk skala India, karena kebiasaan orang-orang sini sering mengabaikan customer yang datang ke tokonya. Penawaran mereka yang pertama adalah Compaq, mereka memberikan harga dan spesifikasi yang membuatku cukup tertarik tetapi untuk brand Compaq, aku kurang yakin terhadap durabilitasnya. Brosur-brosur yang diberikanpun lumayan terjangkau untuk ukuran kantongku. Mereka juga menawarkan brosur Lenovo sebagai alternatif tetapi produk pilihanku dengan spesifikasi yang lumayan ternyata sudah discontinued, apa boleh buat. Setelah beberapa menit diskusi, kita putuskan untuk check out. Menuju ke 'korban' selanjutnya. He.

Susah juga mencari toko yang satu ini, Cybernet IT. Sudah susah-susah, eh service yang diberikan juga ga begitu berkesan. Harga yang diberikannyapun tidak dapat memberikanku interest, gila! mahal-mahal banget. Cuman sebentar si, ga ada 5 menit, kita memutuskan untuk segera out dari sana.

Jalan-jalan sebentar ke tempat yang mirip dengan mall, meski kenyataannya jauh sekali dengan apa yang bisa kita lihat di Surabaya. Lihat beberapa titik sudut yang ramai pengunjung dan menarik perhatian, halah... ternyata game center yang kebanyakan permainannya AOE dan CS. "Tantang mereka ta?" Haha.. keangkuhan yang muncul karena setiap hari kita mesti melakukan hal yang sama dengan mereka.

Ok, time to go to the next node. Next node is Sharda Centre, node dadakan yang muncul setelah temenku titip untuk dibelikan kartu perdana Hutch. Ketemu dengan Manoj, temen yang paling membantu dalam urusan jual beli kartu dan voucher hape. Urusan dengan Manoj selesai, kita segera cek out menuju node ketiga. House of Laptops, Kavre Road.

Dapat oto (autorickshaw) yang nganterin kita ke House of Laptops dengan lumayan baik, coz kita ma pak supir sama-sama ga ngerti dimana tepatnya posisi toko yang kita maksud. Lihat kanan-kiri, akhirnya ketemu juga itu toko. Nah, poin yang bener-bener berkesan adalah disini. Ketika kita menuju ke House of Laptops, ternyata satu sebelah dari toko tersebut terdapat juga toko laptop, namanya Smart Choice. Ok, akhirnya kita sepakat mampir dulu kesana. Meski terlihat baru, tetapi service yang diberikannya lumayan friendly. Wah, enak ni diajak ngobrol. Setelah beberapa promosi akhirnya dia menawari kita dua pilihan dengan harga yang sama. Lenovo dan HP (Hewlett Packard), yang jelas meski dengan harga yang sama, spesifikasi mereka berbeda, karena Lenovo memberikan fitur yang lebih yaitu Dolby Surround dan Face Recognition.

Menuju ke tahap tawar menawar. Memang dasar, marketing itu pintar. Kita diberi harga yang menurut kita mampu dan itu adalah best price menurut dia. Kita sebenarnya boleh untuk menanyakan produk yang sama dengan toko lain, tetapi yang menjengkelkan adalah jika kita keluar dari toko itu dan kemudian kembali lagi ke dia, maka harga awal yang dia berikan tidak akan berlaku lagi terhadap kita. Alasannya, harga yang diberikan adalah harga terbaik untuk kita saat penawaran ini berlangsung. Wah, wah... dasar orang marketing.

Akhirnya...