Feeds:
Posts
Comments

Oracle di Win Vista

Setelah susah Install Oracle dari versi Oracle 9i 2 dan Oracle 10 g rel 2

di windows Vista , akhirnya dapat Trik untuk menjalankan

Oracle 10gR2(10.2.0.1) :

Step 1: Disable DEP

  1. Click Start
  2. Click All Programs
  3. Click Accessories
  4. Right Click on Command Prompt
  5. Left click on Run as Administrator
  6. Click the Allow button if it asks you for permission
  7. Type or past the following into the command prompt window: bcdedit.exe /set {current} nx AlwaysOff
  8. Hit enter and you should see the confirmation: Operation Completed Successfully
  9. Reboot and DEP should be off.

Step 2: Set Windows XP Compatibility Mode

  1. Right-click the setup executable setup.exe and choose Properties from the context menu that appears
  2. Click on the Compatibility tab
  3. Check the [ ] Run this program in compatibility mode for: box and select Windows XP (Service Pack 2)
  4. Check Disable visual themes
  5. Check Disable desktop composition
  6. Check Disable display scaling on high DPI settings
  7. Under privilege level check Run this program as an administrator
  8. Click Apply
  9. Click OK

sumber : www.psoug.org

Atau

Bisa langsung menggunakan Oracle khusus MS Vista :

download 10gR2(10.2.0.3) for MS Vista

Artikel ini menjelaskan tahapan Instalasi Oracle Application Server 10g (9.0.4), Oracle’s J2EE Application Server,di Red Hat Enterprise Linux 3 (RHEL3). Tahapan Instalasi :

  • Download Software
  • Unpack Files
  • Hosts File
  • Set Kernel Parameters
  • Setup
  • Installation
  • Post Installation
  • Startup Otomatis
  • Hak Akses

 

Download Software

 

Download Link di bawah ini:

Oracle Application Server 10g (9.0.4) Software

Patch 3006854

 

Unpack Files

Langkah pertama Ekstrak file dibawah ini:

 

gunzip ias904_linux_disk1.cpio.gz

gunzip ias904_linux_disk2.cpio.gz

gunzip ias904_linux_disk3.cpio.gz

gunzip ias904_linux_disk4.cpio.gz

 

Setelah di ekstrak ikuti perintah di bawah ini:

 

cpio -idmv < ias904_linux_disk1.cpio

cpio -idmv < ias904_linux_disk2.cpio

cpio -idmv < ias904_linux_disk3.cpio

cpio -idmv < ias904_linux_disk4.cpio

 

Hosts File

#vi /etc/hosts

<IP-address> <fully-qualified-machine-name> <machine-name>

Set Kernel Parameters

# vi /etc/sysctl.conf file:

kernel.shmall = 2097152

kernel.shmmax = 2147483648

kernel.shmmni = 142

# semaphores: semmsl, semmns, semopm, semmni

kernel.sem = 256 32000 100 142

fs.file-max = 131072

net.ipv4.ip_local_port_range = 20000 65000

kernel.msgmni = 2878

kernel.msgmax = 8192

kernel.msgmnb = 65535

 

Jalankan perintah dibawah ini :

#/sbin/sysctl -p

Tambahkan pada : #vi /etc/security/limits.conf file:

* soft nproc 16384

* hard nproc 16384

* soft nofile 65536

* hard nofile 65536

 

Tambahkan pada : #vi /etc/pam.d/login file,:

session required /lib/security/pam_limits.so

 

Setup

Install dengan paket RPM di bawah ini:

 

# RedHat AS3 Disk 2

cd /mnt/cdrom/RedHat/RPMS

rpm -Uvh setarch-1.3-1.i386.rpm

rpm -Uvh sysstat-4.0.7-4.i386.rpm

 

# RedHat AS3 Disk 3

cd /mnt/cdrom/RedHat/RPMS

rpm -Uvh openmotif21-2.1.30-8.i386.rpm

rpm -Uvh ORBit-0.5.17-10.4.i386.rpm

rpm -Uvh libpng10-1.0.13-8.i386.rpm

rpm -Uvh gnome-libs-1.4.1.2.90-34.1.i386.rpm

rpm -Uvh compat-glibc-7.x-2.2.4.32.5.i386.rpm

compat-gcc-7.3-2.96.122.i386.rpm

compat-gcc-c++-7.3-2.96.122.i386.rpm

compat-libstdc++-7.3-2.96.122.i386.rpm

compat-libstdc++-devel-7.3-2.96.122.i386.rpm

 

Ikuti perintah di bawah ini :

mv /usr/bin/gcc /usr/bin/gcc323

mv /usr/bin/g++ /usr/bin/g++323

ln -s /usr/bin/gcc296 /usr/bin/gcc

ln -s /usr/bin/g++296 /usr/bin/g++

 

Install patch 3006854 :

 

unzip p3006854_9204_LINUX.zip

cd 3006854

sh rhel3_pre_install.sh

 

Membuat user account dan, groups :

groupadd oinstall

groupadd dba

groupadd oper

useradd -g oinstall -G dba -s /bin/ksh oracle

passwd oracle

 

Buat Direktori untuk tempat dimana Software Oracle akan diinstal :

mkdir -p /u01/app/oracle/product/904_j2ee

chown -R oracle.oinstall /u01

Login sebagai root dan ikuti perintah di bawah ini :

xhost +<machine-name>

Login sebagai user oracle user dan tambahkan pada file .profile file:

 

# Oracle Settings

TMP=/tmp; export TMP

TMPDIR=$TMP; export TMPDIR

ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE

ORACLE_HOME=$ORACLE_BASE/product/904_j2ee; export ORACLE_HOME

ORACLE_TERM=xterm; export ORACLE_TERM

PATH=/usr/sbin:/opt/IBMJava2-131/bin:$ORACLE_HOME/bin:$PATH; export PATH

PATH=$PATH:$ORACLE_HOME/dcm/bin:$ORACLE_HOME/opmn/bin; export PATH

PATH=$PATH:$ORACLE_HOME/Apache/Apache/bin; export PATH

 

#LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH

#CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH

 

if [ $USER = “oracle” ]; then

if [ $SHELL = “/bin/ksh” ]; then

ulimit -p 16384

ulimit -n 16384

else

ulimit -u 16384 -n 16384

fi

fi

 

PS1=”`hostname`> “

set -o emacs

set filec

 

Installation

Login sebagai user into the oracle user

 

DISPLAY=<machine-name>:0.0; export DISPLAY

 

Mulai jalankan Oracle Universal Installer (OUI) pada disk1 :

./runInstaller

 





Post Installation

Setelah selesai Instalasi :

  • untuk menjalankan Enterprise Manager Website (http://<nama_computer_server>:1811) dengan logim username “ias_admin” dan isi password sesuai dengan password yang diisi sewaktu proses instalasi. Jika EM tidak aktif maka dapat diaktifkan dengan command “emctl start iasconsole”
  • Mengnonaktifkan enterprise manager dengan command “emctl stop iasconsole”


 

Startup Otomatis

vi /home/oracle/startuporacle.sh

#!/bin/sh

ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE

ORACLE_HOME=$ORACLE_BASE/product/904_j2ee; export ORACLE_HOME

dcmctl start

opmnctl start

imctl start iaconsole

Hak akses

chmod +x startuporacle (jalankan dg user yg sama waktu create file ini. jgn sbg root)

login sbg root . buka file rc.local .

$ vi /etc/rc.d/rc.local

tambahkan lines berikut pada bagian akhir (simpan di /home/oracle):
su – oracle -c /home/oracle/startuporacle


Sumber : Oracle-base

Untuk Instalation siapkan minimum 2 G Swap, untuk secure Linux disabled, Defaultnya seperti di bawah ini :

Centos 5.0:

  • GNOME Desktop Environment
  • Editors
  • Graphical Internet
  • Text-based Internet
  • Development Libraries
  • Development Tools
  • Server Configuration Tools
  • Administration Tools
  • Base
  • System Tools
  • X Window System

Download Oracle 11g:

Hosts File

#vi /etc/hosts

<IP-address>  <fully-qualified-machine-name>  <machine-name>

Set Kernel Parameters

kernel.shmall = 2097152
kernel.shmmax = 2147483648 # Smallest of ->
#(Half the size of the physical memory) or (4GB - 1 byte)
kernel.shmmni = 4096
# semaphores: semmsl, semmns, semopm, semmni
kernel.sem = 250 32000 100 128
fs.file-max = 65536 # 512 * PROCESSES
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default=4194304
net.core.rmem_max=4194304
net.core.wmem_default=262144
net.core.wmem_max=262144

Test apakah Nilai Kernel sudah masuk dengan syntak :

/sbin/sysctl -a | grep <param-name>


Tambahkan pada file :

“/etc/sysctl.conf” file.

 
kernel.shmmni = 4096
# semaphores: semmsl, semmns, semopm, semmni
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default=4194304
net.core.rmem_max=4194304
net.core.wmem_default=262144
net.core.wmem_max=262144

Jalankan perintah dibawah ini untuk mengetahui perubahan pada parameter kernel
/sbin/sysctl -p

Tambahkan di #vi/etc/security/limits.conf file:

oracle              soft    nproc   2047
oracle              hard    nproc   16384
oracle              soft    nofile  1024
oracle              hard    nofile  65536

Tambahkan di #vi/etc/pam.d/login file,:

session    required     /lib/security/pam_limits.so
session    required     pam_limits.so

Edit Disable secure linux di /etc/selinux/config file

SELINUX=disabled

Setup


# Centos 5 Disk 1
cd /media/cdrom/Server
rpm -Uvh binutils-2.*
rpm -Uvh elfutils-libelf-0.*
rpm -Uvh glibc-2.*
rpm -Uvh glibc-common-2.*
rpm -Uvh libaio-0.*
rpm -Uvh libgcc-4.*
rpm -Uvh libstdc++-4.*
rpm -Uvh make-3.*
cd /
eject
 
# Centos 5 Disk 2
cd /media/cdrom/Server
rpm -Uvh elfutils-libelf-devel-0.*
rpm -Uvh glibc-devel-2.*
rpm -Uvh gcc-4.*
rpm -Uvh gcc-c++-4.*
rpm -Uvh libstdc++-devel-4.*
rpm -Uvh unixODBC-2.*
cd /
eject
 
# Centos 5 Disk 3
cd /media/cdrom/Server
rpm -Uvh compat-libstdc++-33*
cd /
eject

# Centos 5 Disk 4
rpm -Uvh unixODBC-devel-2.*
cd /
eject

# Centos 5 Disk 5
rpm -Uvh libaio-devel-0.*
cd /
eject
 
# Centos 5 Disk 6
cd /media/cdrom/Server
rpm -Uvh sysstat-7.*
cd /
eject

Membuat user account dan, groups :  
 
groupadd oinstall
groupadd dba
groupadd oper
groupadd asmadmin
 
useradd -g oinstall -G dba,oper,asmadmin oracle
passwd oracle

Buatkan  Direktori untuk keperluan Instalasi Oracle : 
 
mkdir -p /u01/app/oracle/product/11.1.0/db_1
chown -R oracle:oinstall /u01
chmod -R 775 /u01


Login sebagai root, ikuti perintah dibawah ini:  
xhost +<machine-name>


Login sebagai user oracle dan tambhkan beberapa syntak dibawah ini

pada file .bash_profile :

 
# Oracle Settings
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR
 
ORACLE_HOSTNAME=oel45.localdomain
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/11.1.0/db_1; export ORACLE_HOME
ORACLE_SID=DB11G; export ORACLE_SID
ORACLE_TERM=xterm; export ORACLE_TERM
PATH=/usr/sbin:$PATH; export PATH
PATH=$ORACLE_HOME/bin:$PATH; export PATH
 
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH
 
if [ $USER = "oracle" ]; then
  if [ $SHELL = "/bin/ksh" ]; then
    ulimit -p 16384
    ulimit -n 65536
  else
    ulimit -u 16384 -n 65536
  fi
fi

Installasi

Login sebagai user Oracle, lakukan syntak dibawah ini:

 
DISPLAY=<machine-name>:0.0; export DISPLAY

Mulai jalankan Installer Oracle :

 
./runInstaller
 
  1. Select Installation Method


2. Specify Inventory Directory and Credentials

3.Select Installation Type

4. Install Location


5. Product-Specific Prerequisite Checks

6.Select Configuration Option


7. Select Database Configuration


8. Specify Database Configuration Options


9. Specify Database Configuration Details


10. Select Database Management Option

11. Specify Database Storage Option


12. Specify Backup and Recovery Options


13. Specify Database Schema Passwords


14. Oracle Configuration Manager Registration



15. Summary


16. Install


17. Configuration Assistants


18. Database Configuration Assistant


19. DatabaseConfiguration Assistant Summary

20. Execute Configuration Scripts

21. End of Installation


22. OEM Database Control Login


23. OEM Database Control



Setelah Installasi

Edit e /etc/oratab isikan ‘Y’:

DB11G:/u01/app/oracle/product/11.1.0/db_1:Y
 
Startup Otomatis 
 
vi /home/oracle/startuporacle.sh
 

#!/bin/sh

ORACLE_HOSTNAME=oracleas.pmt.com

ORACLE_BASE=/home/u01/app/oracle; export ORACLE_BASE

ORACLE_HOME=$ORACLE_BASE/product/11.1.0/db_1; export ORACLE_HOME

ORACLE_SID=DB11G; export ORACLE_SID

ORACLE_TERM=xterm; export ORACLE_TERM

PATH=/usr/sbin:$PATH; export PATH

PATH=$ORACLE_HOME/bin:$PATH; export PATH

LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH

CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export LD_LIBRARY_PATH

lsnrctl start

sqlplus “/ as sysdba” <<EOF

startup

quit

EOF

emctl start dbconsole

isqlplusctl start

exit

 
               
Hak akses 
 

chmod +x startuporacle (jalankan dg user yg sama waktu create file ini. jgn sbg root)
login sbg root . buka file rc.local .

$ vi /etc/rc.d/rc.local

tambahkan lines berikut pada bagian akhir (simpan di /home/oracle):
su – oracle -c /home/oracle/startuporacle

 

Source : www.oracle-base.com

 
 

Hal ini dilakukan dalam mengimprovisasikan kemampuan enterprise operating system open source. Oracle pun memiliki hubungan khusus dengan Linux. Perusahaan itu pertama kali merilis database yang mampu berjalan pada Linux pada 1998 lalu.

OS tersebut menjamin kepopulerannya kepada para konsumen. Oracle dengan mantap melancarkan serangan dalam wilayah Linux. Aksi terbaru Oracle saat ini adalah program dukungan kontroversi Unbreakable Linux dan aksi pada bulan Januari berupa penyediaan perangkat manajemen Linux.

Oracle membentuk dirinya sebagai pesaing bari distributor Linux terkemuka, Red Hat pada Oktober lalu ketika menggulirkan Unbreakable Linux, program yang memberikan user dukungan penuh untuk distro Red Hat Enterprise Linux (RHEL) dengan harga agresif. Oracle Enterprise Linux kemudian menjadi nama vendor untuk distro berkemampuan RHEL yang disediakan untuk konsumen. Oracle memang masih ragu-ragu dengan banyaknya user pengadopsi Unbreakable Linux.

Pada ajang LinuxWorld, Oracle mengumumkan telah membuat sejumlah proyek yang bekerja untuk peningkatan ketersediaan Linux di bawah GNU General Public License version 2 (GPLv2). GPL memberikan user hak gratis mempelajari, menyalin, memodifikasi, menggunakan kembali, membagi, dan mendistribusi ulang software. GPL versi 3 diperkenalkan pada akhir Juni, dan beberapa ratus proyek open source saat ini telah mengadopsi lisensi barunya.

Widia Yurnalis

sumber : http://www.sda-indo.com

soource lain :

Oracle and Linux

Unbreakable Linux Oracle Unbreakable Linux is a support program that delivers the highest quality support for Linux at significantly lower cost, with indemnification against intellectual property infringement claims.Oracle’s Linux commitment began in 1998 with the first commercial database on Linux. Today, Oracle Database is #1 on Linux with 82.6% of the market. With the strong momentum of Oracle Applications and Oracle Fusion Middleware on Linux, only Oracle provides complete support for the complete software stack on Linux.

 

source : http://www.oracle.com

Dengan meraih sertifikat pelatihan bersifat internasional, selain terbuka peluang kerja yang lebih luas, juga mendorong kepercayaan siap bersaing, meski di mancanegara.

Bina Nusantara (Binus), salah satu lembaga pendidikan komputer yang memiliki reputasi baik di Indonesia dewasa ini, juga secara teratur mampu menyalurkan tenaga kerja, khususnya pekerja TI (melalui Binus Career Center). Untuk lebih mendukung reputasinya, lembaga pendidikan ini juga menjalin lemitraan akademik dengan Cisco System dan Microsoft dalam pelatihan TI bersertifikasi internasional.

Seperti dituturkan Elda S. Tambara, S.Kom., M.Acc, Director Binus Center, kebutuhan terhadap pekerja TI yang memiliki sertifikasi internasional cukup banyak, seperti Cisco CCNA, Microsoft MCSA, MCSD dan sebagainya.

Ketika itu, jumlah pekerja TI yang memiliki sertifikat internasional masih sangat sedikit, kurang dari 100 orang, sehingga kebutuhan yang ada belum terpenuhi dan kalau dilihat dari segi gaji, relatif sangat mahal. Muncul kemudian inisiatif dari kalangan vendor TI untuk menyelenggarakan pendidikan bersertifikat itu, selain untuk memenuhi kebutuhan bisnisnya, juga meningkatkan jumlah pekerja TI yang memiliki keahlian tertentu. Binus sendiri baru memulai pendidikan bersertifikasi internasional ini sekitar tahun 1999 melalui kerjasamanya dengan vendor, antara lain Cisco dan Microsoft.

Vendor lain, Oracle misalnya, juga mengembangkan pelatihan bersertifikat internasional, yakni melalui OCP (Oracle Certified Professional). OCP juga dimaksudkan sebagai measurement sampai seberapa jauh tingkat seseorang agar bisa mengabstraksikan teknologi Oracle. Seperti diakui Mardjuki, Country Education Manager, Oracle University pada PT Oracle Indonesia, teknologi Oracle berkembang sangat pesat. Tak jarang para pelanggan Oracle mengeluh karena kurangnya pekerja TI yang ahli yang dapat mendukung pengoperasian perangkat dan sistem berteknologi tinggi yang mereka sediakan.

Lebih lanjut diungkapkan, karena kebutuhan itu, Oracle menyelenggarakan pendidikan bersetifikasi dan sekaligus untuk meyakinkan pelanggan bahwa mereka didukung oleh pekerja TI yang memiliki standar tertentu dalam mengoperasikan teknologi Oracle. Itu terjadi sejak 5 tahun yang lalu dan mulai besar sekitar tahun 2000.

Meski Orcale merupakan vendor, namun dalam pendidikan ini ia juga menjalin kerjasama dengan pihak lain, khususnya untuk menjalankan program OAEP (Oracle Approved Education Provider). Kemitraan itu dibangun dengan empat institusi, yakni Inixindo, Metrodata, Asaba dan Sisindosat (anak usaha Indosat). “Institusi ini kami tunjuk sebagai perpanjangan tangan Orcale untuk melakukan pendidikan teknologi Oracle dan sekaligus mendapatkan sertifikasi,” ujar Mardjuki.

Diakui, bahwa selain pendidikan ini membutuhkan biaya yang cukup besar, dalam kenyataannya untuk mendapatkan sertifikat juga tidak mudah. Artinya, harus melalui ujian. Di Oracle sendiri ada empat modul (bidang keahlian) yang harus dilalui untuk mendapatkan sertifikasi OCP.

Sejumlah kalangan menilai pendidikan sertifikasi internasional yang diselenggarakan Oracle lebih sulit dibandingkan dengan Cisco atau Microsoft. Contohnya, tingkat kelulusan peserta pelatihan di Inixindo juga berbeda beda, tergantung program yang diambilnya. Untuk Cisco dan Microsoft, misalnya tingkat kelulusannya lebih tinggi dibandingkan dengan Oracle. Menurut General Manager Inixindo, Didik Partono R, tingginya tingkat kelulusan untuk Microsoft dan Cisco disebabkan karena buku-buku tentang kedua software tersebut cukup banyak tersedia.

Selain itu, kebijakan vendor dalam hal sertifikasi ini, juga sangat berpengaruh terhadap tingkat kelulusan. Cisco, misalnya, untuk mendapatkan sertifikasi, hanya diperlukan satu kali tes saja. Berbeda dengan Oracle, siswa harus lulus empat hingga lima jenis ujian. Demikian juga dengan Microsoft, untuk meraih sertifikat dari perusahaan software terbesar ini, peserta harus melalui setidaknya tujuh jenis ujian.

Bagaimana dengan biayanya? Menurut Elda, pendidikan bersertifikasi Cisco yang dilaksanakan Binus membutuhkan biaya tak kurang dari Rp. 7 juta untuk pendidikan selama satu tahun. Tahun 1999, ketika awal melaksanakannya, biayanya baru Rp. 5 juta. “Di Oracle, untuk meraih modul pertama, seorang peserta pendidikan dikenakan biaya sebesar 90 dollar AS (jika US$ 1 = Rp. 9.000, maka besarnya menjadi Rp. 810.000). Sedang tiga modul berikutnya sebesar 125 dollar AS. Bagi yang akan mengikuti ujian, biasanya akan mendapatkan potongan harga sebesar 40 sampai 60 persen,” ujar Mardjuki menjelaskan.

Untuk pendidikan di Binus, pembiayaan yang dibayarkan peserta sudah termasuk biaya koneksi internet selama belajar. Juga tersedia buku-buku yang dibutuhkan. Mereka juga mendapat kesempatan mengikuti tes internasional. “Dengan biaya sebesar itu, kita mengharuskan mereka untuk ikut ujian. Kita mau tahu hasil akhirnya, bahwa selama mengikuti perkuliahan, mereka benar tidak sih bisa lulus di ujian internasional? Karena ending-nya kan di situ,” ujar Elda menambahkan.

Dalam soal biaya ini, akan berbeda penggunaannya dan tergantung kebijakan dari vendor itu sendiri. Seperti diakui Elda, pendidikan sertifikasi internasional yang dilakukan di Binus merupakan kegiatan akademis, yang membekali mahasiswa dengan konsep-konsep dasarnya.

Sedang kalau di luar, bentuknya adalah semacam membahas soal-soal yang akan keluar di ujian dan waktunya lebih singkat. Pesertanya lebih banyak para praktisi. Kalau di luar biayanya hanya sekitar 4 juta – 5 juta itu pun dalam waktu kurang dari satu bulan, sedang di Binus dengan biaya yang ditetapkan waktu belajarnya selama satu tahun, termasuk kesempatan tes sertifikat internasional.

Beberapa kalangan menilai kebutuhan terhadap pekerta TI yang memiliki sertifikat internasional ini merupakan sesuatu yang sangat urgen bagi Indonesia. Banyak investor asing, yang langsung membawa sistem/software sendiri. Sementara, pada saat yang sama, ada tuntutan dari pemerintah setempat harus menggunakan pekerja TI lokal. Tetapi, pekerja TI yang dibutuhkan harus memiliki kualifikasi tertentu. Disitulah peran sertifikasi menjadi sangat penting. Sayangnya, belum banyak pekerja TI lokal yang telah mencapai taraf sertifikasi ini. “Makanya kita sering melakukan promosi dan kegiatan untuk menggairahkan orang untuk mengambil sertifikasi ini,” tambah Mardjuki.

 
 

Namun seperti diakui Mardjuki, dalam pengembangannya di lapangan ada sejumlah kendala yang dihadapi. Pertama, sertifikasi ini tidak mudah. Artinya harus melalui ujian. Kedua, passing grade-nya juga cukup tinggi, sertifikasi Oracle 70 persen, jadi agak tinggi. Ketiga, kebanyakan orang lokal yang bersertifikasi justru berkarya di luar negeri.

Ironis. Kita ingin mereka bersertifikasi di sini dan berkarya di sini. Tetapi itu tuntutan pasar. Mereka mendapatkan kompensasi lebih besar di luar negeri, dan hal itu tidak bisa dicegah. “Dari sekian orang yang bersertifikasi Oracle, hampir 50 %-nya bekerja di luar negeri, antara lain AS, Inggris, Hong Kong dan Singapura. Mereka ikut sertifikasi, salah satu alasannya juga untuk mengejar kompensasi semacam itu,” ujar Mardjuki menambahkan.

Di Indonesia, diperkirakan tak kurang dari 200 orang yang telah berhasil meraih sertifikasi OCP, yakni mereka yang mampu menyelesaikan ujian untuk empat modul. Sedang kalau yang berhasil menyelesaikan modul 1 dan 2 jumlahnya ribuan.

Namun, belakangan ini ada sedikit perubahan. Kalau dulu lulus empat modul baru bisa meraih OCP, tetapi sekarang ini meski baru lulus dua modul, dia sudah berhak meraih OCA (Oracle Certificate Associate). Hal ini dimaksudkan agar lebih menggairahkan para peserta, paling tidak mereka yang telah lulus dua modul dapat dihargai dengan sertifikat.

Saat ini, seperti diungkapkan oleh Mardjuki, yang banyak dibutuhkan di luar negeri, misalnya, Amerika Serikat adalah yang terkategori software developer. Karena, di sana banyak sekali perusahaan software, yang mereka sendiri tak mampu memenuhinya. “Kebanyakan orang India, sebagian dari Indonesia. Di India, pemegang sertifikasi Oracle jumlahnya ribuan,” tambah Mardjuki.

Di bidang solusi vertikal, kita punya database administrator (DBA), application developer dan Java solution. Masing-masing ada modulnya. DBA empat modul, application developer ada empat, java ada lima. Lebih dari 50 persen yang bekerja di luar negeri umumnya memegang sertifikasi OCP Developer, karena mereka yang lebih banyak dicari. Sedang kalau di Indonesia, lebih banyak dibutuhkan DBA.

Kebanyakan perusahaan dari luar negeri, yang menanamkan investasinya di Indonesia, mereka membawa sistem mereka sendiri atau Oracle. Karenanya, yang mereka butuhkan adalah yang bisa mengoperasikan database, mereka membutuhkan administrator. Trendnya, untuk kebutuhan lokal Indonesia, memang DBA. Kalau di luar negeri yang dicari adalah developer. •insa/as

source :  www.ebizzasia.com

Kalangan pendidikan TI di Indonesia tampaknya cukup bingung menghadapi dua ekstrem orientasi pendidikan. Jika terlalu praktis, dituduh “tak ubahnya dengan kursus, cuma menghasilkan pengekor”. Jika terlalu konseptual atau teoretis, dituduh “tinggal di menara gading, dan toh tetap menjadi pengekor”.

Bagaimanakah caranya agar hasil didikan cukup praktis (tapi tidak terlalu), cukup konseptual (tapi tidak terlalu), tak sekadar menjadi pengekor, dan berbeda mutunya dari orang yang belajar secara otodidak? Sampai kini, saya tak menemukan gagasan yang cukup rinci atau operasional. Tulisan ini mencoba mengisi kekosongan tersebut.

Penghindaran Ekstrem

Penghindaran ekstrem pertama, yaitu yang terlalu praktis, dapat dilakukan dengan mengharuskan siswa memakai produk-produk yang di pasaran, tapi sebagai salah satu saja—bukan satu-satunya—perkakas untuk mengkaji teori.

Penghindaran ekstrem kedua, yaitu yang terlalu teoritis, dilakukan dengan mengajukan pertanyaan bermutu kepada siswa, berkenaan dengan kaitan antara teori dan praktek. Lalu dengan mengajukan pertanyaan-pertanyaan yang menggugah agar siswa bisa membedakan mana fakta mana fiksi. Atau dengan mengharuskan siswa mendalami esai-esai komputasi, seperti yang dimuat di buku karangan Frederick P. Brooks [Mythical Man Month—Red.]

Secara operasional, selama 3 tahun siswa belajar dalam laboratorium dan proyek-proyek yang “terkendali”, yang sangat mendukung mereka untuk fokus pada konsep, bukan pada hapalan akan nama-nama operasi (seperti perintah atau fungsi). Dalam setahun terakhir, yaitu tahun keempat, mereka harus mengerjakan proyek di luar kampus, di lingkungan yang lebih “tak terkendali”. Dengan arahan yang baik, lewat kontrasnya pengalaman 3 tahun di dalam kampus versus 1 tahun di luar kampus, siswa bisa membedakan fakta-fiksi.

Beberapa Contoh Pertanyaan Menggugah

Contoh 1. Misalnya agar siswa bisa dengan kritis menguji kebenaran klaim bahwa Unix atau utilitas Unix dirancang dengan tingkat kepaduan konseptual yang tinggi, kita sajikan pertanyaan berikut: apakah memang perlu ada 4 operasi output pada level shell? Dalam menjawab pertanyaan ini, peserta dipersilahkan melihat adanya 4 operasi pada shell Unix yakni echo, cat, more, dan od; memikirkan kemungkinan untuk memadukannya, mencoba memadukan semuanya dalam satu operasi atau program, dan menyajikan argumentasinya. Contoh kemungkinan jawaban: Mungkin tidak perlu. Keempat operasi di atas bisa digabung menjadi satu, sebut saja write.

Contoh 2. Melihat cara-cara pemanggilan SQL. Berapa jumlah maksimum cara menjalankan operasi SQL pada virtual machine SQL? Dalam menjawab pertanyaan ini, peserta dipersilakan melihat implementasi SQL di dBASE IV, Microsoft Access, dan Oracle, misalnya.

Contoh 3. Tentang C++ dan OOP. Apa perbedaan typedef dan class di C++? Apakah sebetulnya keduanya mendefinisikan hal yang sama? Apakah kelas dan tipe (atau bahkan interface) itu semua sama? Jika sama, kenapa di OOP orang terlalu “mendewakan” kelas?

Contoh 4. Kembali masalah SQL. Mengapa sangat jarang—jika memang ada—dibuat DFD (Data Flow Diagram) untuk operasi-operasi SQL? Apakah karena tidak bisa atau tidak mudah? Mengapa tidak bisa atau tidak mudah? Apakah ada gunanya kalau bisa atau mudah dibuat? Usaha apa yang bisa dilakukan untuk menyelesaikan masalah tersebut?

Contoh 5. Kembali soal Unix. Apakah mungkin menyatukan operasi login, telnet, dan su menjadi satu operasi saja? Dalam menjawab pertanyaan ini, siswa harus dengan seksama menyimpulkan berbagai kesamaan dan perbedaan ketiga operasi, membuat satu operasi bagi ketiganya, dan mengajukan argumentasi. Contoh jawaban misalnya: Ya, mungkin. Operasi login, telnet, dan su memiliki satu kesamaan, yaitu untuk mengakses suatu virtual machine. Ketiganya pada hakekatnya memiliki 3 operan: username, password, dan virtual machine name. Pada login dan su, virtual machine dibatasi kepada current/real machine, sedangkan pada telnet tidak demikian. Ketiganya bisa disatukan ke dalam satu operasi saja, misal: login.

Contoh 6. Tentang Oracle. Apa kira-kira alasan Oracle memakai 4 istilah: TNS name, service name, host string, dan connect string? Apakah bisa kita memakai 1 istilah saja? Jika bisa, istilah apa yang paling cocok? Salah satu jawaban yang mungkin: TNS name dipakai karena Oracle melihat sebuah service name adalah nama pada protokol jaringan level TNS. Service name dipakai karena service dipandang sebagai paduan instans dan database. Host string dipakai karena service ini bisa dipandang sebagai host atau virtual machine (persisnya virtual machine SQL). Connect string dipakai karena nama tersebutlah (nama service) yang dipakai untuk connect. Kita bisa memakai 1 istilah saja. Istilah yang paling cocok adalah service name, karena cukup singkat dan akurat (SQL virtual machine name lebih akurat tapi terlalu panjang). Dengan pengertian ini, kita bisa memodelkan service dalam diagram tipe seperti di Gambar 1 (disederhanakan, dianggap protokol yang dipakai adalah TCP/IP, dan penamaan memakai cara Oracle8, bukan Oracle8i). Terlihat bahwa operasi yang berlaku ke service adalah connect, dan disconnect (bisa dicoba di SQL*Plus). Pembaca dipersilahkan memikirkan diagram tipe untuk memodelkan instans dan database pada Oracle.

Contoh 7. Tentang perbedaan OS Unix dan Windows. Apakah pemaduan DOS/Windows-like volume drive dan Unix-like filesystem bisa diwujudkan? Apakah pemaduan tersebut—bila bisa—akan mempermudah end user? Apakah tidak lebih baik mengganti C:\Documents and Settings\USERNAME, /home/USERNAME (atau /export/home/USERNAME pada satu atau lebih varian Unix) sebagai default home folder bagi user dengan /user/USERNAME atau C:\user\USERNAME? Apakah kesamaan dan perbedaan C:\Documents and Settings dengan /export/home? Apakah mungkin untuk membuat struktur direktori yang bahkan lebih sistematis daripada LSB (Linux Standard Base)? Seperti apa kira-kira solusinya?

Salah satu contoh jawabannya misalnya begini: Pemaduan filesystem mungkin. Adanya Samba sebagai perantara filesystem Linux dengan DOS/Windows menyiratkan hal ini. Pemaduan filesystem ini bisa mempermudah end user. Pengalaman mengajar dan belajar dasar-dasar Unix/Linux meyakinkan saya akan hal ini. Mount point relatif lebih sulit dipahami daripada logical drive/physical drive (drive bisa diganti juga dengan disk atau volume). Penggunaan folder user langsung di bawah root juga mungkin mempermudah. Pengalaman mengajar Oracle di Linux/Unix mengindikasikan demikian. Peserta agak sulit melihat bahwa ada folder /export/home/oracle (atau /home/oracle) adalah karena ada user OS bernama oracle (ini disebabkan ada folder lain yang bernama oracle, yang biasanya /u01/app/oracle). Adanya nama home pada /export/home atau /home juga menambah kebingungan dalam membedakannya dengan ORACLE_HOME. Andai foldernya bernama c:/user/oracle, dan nilai ORACLE_HOME misalnya adalah C:\server\oracle maka peserta akan lebih mudah melihat bahwa c:\user\oracle mengindikasikan adanya user OS bernama oracle, sedangkan c:\server\oracle mengindikasikan adanya software server Oracle.

Refleksi

Berbagai pertanyaan di atas sangat menarik dan menantang untuk dijawab. Jawaban atas satu pertanyaan bisa membimbing penemuan jawaban untuk pertanyaan-pertanyaan lain.

Apakah ada guna praktisnya? Banyak, dan contoh-contoh berikut sekaligus menunjukkan nilai lebih yang [berpotensi] membedakan alumni S1 daripada orang yang sekedar kursus atau otodidak. Saya percaya bahwa setiap pengajar harus berusaha agar hasil didikan pendidikan formal memiliki nilai lebih dari seorang otodidak.

Di sini saya hanya akan memberikan analisis dua dari pertanyaan-pertanyaan yang sebelumnya disebutkan.

Pertanyaan Pertama (Operasi Output)

Telah disebutkan bahwa jawaban untuk pertanyaan pertama bisa berupa jawaban ya. Perintah echo, cat, more, dan od bisa disatukan menjadi katakanlah write. Dengan mencoba menyusun sintaks write, kita bisa belajar hal-hal lain. Misalnya, sintaks yang berperilaku seperti echo:

write 5 * 2
write ' Hello '
write 5 * 2; 1.2; 'Hello'
shellvar1 := 10; shellvar2 := ' Hello '; shellvar3 := 1.2
write $(shellvar1); write $(shellvar2); write $(shellvar3)

Dalam contoh-contoh di atas, write berperilaku seperti operasi echo. Contoh-contoh di atas juga menunjukkan suatu ciri umum bahasa skripting yakni weakly-typed: objek-objek (shellvar1 sampai shellvar3) tak perlu dideklarasikan tipenya. Tanda baca ; dipakai sebagai pemisah antarstatement, sementara newline sebagai penutup statement.

Berikut adalah contoh-contoh operasi write berperilaku seperti cat.

write file1
write file1 file2
write file1 file2 > file3

Operasi write akan menafsirkan suatu nama sebagai nama file, bukan nama variabel shell. Itulah sebabnya untuk variable shell dipakai operasi $ sebagai operasi ekstraksi nilai. Hal ini bisa merangsang pemikiran bahwa pemrograman shell berorientasi file. Tanda > dipakai sebagai tanda operasi redireksi output. Hal ini bisa merangsang pemikiran apakah parser shell bisa dibuat sehingga tanda > juga bisa dipakai sebagai tanda operasi pembandingan (seperti di shell C), dan apa kita bisa menyebutnya operation overloading?

Contoh-contoh berikut memperlihatkan perilaku write seperti perilaku operasi more, yang diakomodasi lewat operan -p yang berarti pause.

write -p file1
write -p file1 file2
write -p file1 file2 > file3
write -p 5 * 2

Contoh-contoh berikut memperlihatkan perilaku write seperti perilaku operasi od, yang diakomodasi lewat operand -o (octal).

write -o file1
write –o -p file1
write -o -p file1 file2
write -o -p 5 * 2

Konsekuensi lebih jauh: siswa bisa membedakan operasi output pada pemrograman shell dengan output pada bahasa-bahasa 3GL (generasi ketiga) seperti pada C, Pascal, Java; mengambil kesimpulan perbedaan esensialnya, dan memikirkan seperti apa operasi output pada shell C (yang merupakan hibrida 3GL dan bahasa skripting).

Pertanyaan Kedua (Pemanggilan SQL)

Mungkin hanya ada 3 cara maksimum pemanggilan operasi SQL pada virtual machine SQL. Melihat contoh dBase IV: 1) lewat operasi DO untuk procedure/function yang ada dalam program-file yang sama; 2) lewat operasi DO untuk procedure/function yang ada di program file yang berbeda (eksternal); 3) lewat pemanggilan langsung (SELECT, CREATE, INSERT, DELETE, UPDATE)

Pelajar lalu bisa memeriksa kasusnya untuk Microsoft Access dan Oracle.

Apa efek dari belajar hal ini? Alumni bisa punya perkiraan berapa cara yang akan ia temui saat belajar bahasa baru. Misal, ia belajar HTML. Sebelum mendalami, ia sudah punya ancang-ancang varian-varian pemanggilan HTML operation dalam virtual machine HTML (browser, application server). Ini salah satu bentuk keunggulan hasil didikan dibandingkan orang yang belajar otodidak atau lewat kursus semata, nilai tambah yang ditawarkan program pendidikan formal.

Semoga pembahasan ini bisa menjadi suatu langkah kecil untuk pembaruan besar di pendidikan formal S1 Informatika.

Berna Ridho Hutabarat mantan dosen di STT Telkom, Bandung. Kini memilih menjadi praktisi dan kontraktor. Programer C++, DBA Oracle, dan pencipta bahasa pemrograman Batak. Dapat dihubungi melalui Redaksi di feedback@mwmag.com.

Source

 

By Steve Callan

You may think you know everything there is to know about the Scott schema, but part of its overall usefulness lies in how versatile it is with respect to its ability to illustrate many of Oracle’s and SQL’s features. The illustrative point examined in this article concerns trees and hierarchies. An excellent book by Joe Celko (Joe Celko’s Trees and Hierarchies in SQL for Smarties) shows several means of arranging hierarchical data. This article combines the familiar emp table and some of the examples shown in Celko’s book.

The standard nested hierarchy

A quick search on the Internet yields numerous sites showing you how to get a nested hierarchy of the emp table. Another typical example of this hierarchy is that of parent-child foreign key relationships. Shown below is an example of the typical hierarchy based on the emp table, but with an extra feature (the mgr_key). This example is available at the askTom Web site (you’ll have to add the mgr_lookup function, and the code for that is at the site).

select /*+ first_rows */
rpad( '*', (level-1)*2, '*' ) || 
   ename ename, empno, mgr_key
from emp
start with mgr_lookup(mgr_key) = -1
connect by prior empno = mgr_lookup(mgr_key);
ENAME                EMPNO MGR_KEY
--------------- ---------- --------
KING                  7839 mgr_
**JONES               7566 mgr_7839
****SCOTT             7788 mgr_7566
******ADAMS           7876 mgr_7788
****FORD              7902 mgr_7566
******SMITH           7369 mgr_7902
**BLAKE               7698 mgr_7839
****ALLEN             7499 mgr_7698
****WARD              7521 mgr_7698
****MARTIN            7654 mgr_7698
****TURNER            7844 mgr_7698
****JAMES             7900 mgr_7698
**CLARK               7782 mgr_7839
****MILLER            7934 mgr_7782

Let’s put this into an organization chart (or wire diagram).

tree1.jpg

This chart is courtesy of Visio’s Organization Chart Wizard. The wizard connects to a data source (a database in this case), queries the table you select, and determines the hierarchical relationship of the table’s elements. Aside from presenting an easier means of interpreting the hierarchical relationships within the emp table, the chart leads us into the first example of how to record the relationships by using a nested set model.

The “emp” family

The algorithm for creating a nested set model is pretty simple. Start at the top, enter the next number in the lower left corner of the element’s box, then move down a level if there is one, or across the element, and enter the next number. If there are no lower elements, traverse across that element and enter the next number, then traverse across to the next sibling, and repeat the numbering. Continue until you return to the top element of the current branch. Traverse across to the next branch and repeat. Return to the top-level element when there are no more lower level branches to traverse to and enter the final/last number of the sequence.

Putting an algorithm into words may make it seem confusing, but when applying the steps, the implementation is usually much easier, and even more so when you have an example to go by. We start with King and enter a 1 in the lower left corner. Move down to Clark and enter a 2. Since Clark has a lower level/child element, move down to Miller and enter a 3. Move across Miller and enter a 4, returning to Clark with a 5. Traverse across to Blake and enter a 6, and so on from there.

tree2.jpg

Now that we have an ordered pair identification scheme (e.g., Martin is [9,10]), we can create a new emp table as shown below.

CREATE TABLE EMP_ORG
(EMPNO NUMBER NOT NULL,
LEFT NUMBER NOT NULL,
RIGHT NUMBER NOT NULL);
INSERT INTO EMP_ORG VALUES (7839,1,28);
INSERT INTO EMP_ORG VALUES (7782,2,5);
INSERT INTO EMP_ORG VALUES (7934,3,4);
INSERT INTO EMP_ORG VALUES (7698,6,17);
INSERT INTO EMP_ORG VALUES (7844,7,8);
INSERT INTO EMP_ORG VALUES (7654,9,10);
INSERT INTO EMP_ORG VALUES (7521,11,12);
INSERT INTO EMP_ORG VALUES (7900,13,14);
INSERT INTO EMP_ORG VALUES (7499,15,16);
INSERT INTO EMP_ORG VALUES (7566,18,27);
INSERT INTO EMP_ORG VALUES (7788,19,22);
INSERT INTO EMP_ORG VALUES (7876,20,21);
INSERT INTO EMP_ORG VALUES (7902,23,26);
INSERT INTO EMP_ORG VALUES (7369,24,25);
SQL> select * from emp_org;
     EMPNO       LEFT      RIGHT
---------- ---------- ----------
      7839          1         28
      7782          2          5
      7934          3          4
      7698          6         17
      7844          7          8
      7654          9         10
      7521         11         12
      7900         13         14
      7499         15         16
      7566         18         27
      7788         19         22
      7876         20         21
      7902         23         26
      7369         24         25
14 rows selected.

Following along with an example in the book, the next step is to create a view.

CREATE OR REPLACE VIEW EMP_ORG_VIEW 
(EMPNO, LEVEL_0, LEVEL_1, LEVEL_2)
AS
SELECT A.EMPNO,
  CASE WHEN COUNT(C.EMPNO) = 2
       THEN B.EMPNO
       ELSE NULL END AS LEVEL_0,
  CASE WHEN COUNT(C.EMPNO) = 3
       THEN B.EMPNO
       ELSE NULL END AS LEVEL_1,
  CASE WHEN COUNT(C.EMPNO) = 4
       THEN B.EMPNO
       ELSE NULL END AS LEVEL_2
FROM EMP_ORG A,
     EMP_ORG B,
     EMP_ORG C
WHERE
   A.LEFT BETWEEN B.LEFT AND B.RIGHT
AND
   C.LEFT BETWEEN B.LEFT AND B.RIGHT
AND
   A.LEFT BETWEEN C.LEFT AND C.RIGHT
GROUP BY A.EMPNO, B.EMPNO;       

The final step is to write the query which shows the hierarchical structure of the organization.

SELECT EMPNO,
       MAX(LEVEL_0) "LVL 0",
       MAX(LEVEL_1) "LVL 1",
       MAX(LEVEL_2) "LVL 2"
FROM EMP_ORG_VIEW
GROUP BY EMPNO;
     EMPNO LVL 0 LVL 1 LVL 2
     ----- ----- ----- -----
      7844  7698  7839
      7839
      7782  7839
      7698  7839
      7521  7698  7839
      7902  7566  7839
      7788  7566  7839
      7654  7698  7839
      7934  7782  7839
      7566  7839
      7499  7698  7839
      7876  7788  7566  7839
      7900  7698  7839
      7369  7902  7566  7839
14 rows selected.

As an alternative, you can replace empno with ename (make changes as appropriate for the data type and references), and generate a name display.

ENAME        LVL 0   LVL 1   LVL 2
------------ ------- ------- -------
ALLEN        BLAKE   KING
JONES        KING
FORD         JONES   KING
MILLER       CLARK   KING
CLARK        KING
SMITH        FORD    JONES   KING
WARD         BLAKE   KING
TURNER       BLAKE   KING
MARTIN       BLAKE   KING
ADAMS        SCOTT   JONES   KING
SCOTT        JONES   KING
BLAKE        KING
JAMES        BLAKE   KING
KING

Either way (by empno or ename), the results reflect the same organizational structure, but the ordered representation is somewhat hard to follow. Unfortunately, that is not the worst problem with a nested set. The number one weakness of this model is its inflexibility. What happens if a leaf node/element (Smith) leaves the organization? The structure survives, but what if you need to add a new element? For example, how do you add a new level under Ward?

The “connect by prior” version is indifferent to changes like that. Simply add the new employee, assign a manager (Ward), and the query output reflects the change. In the nested set model, every position after the insertion requires modification. Another real world example of a structure-breaking change is that of adding a new branch/department. Not only is there the reordering issue, but we have now introduced another problem – updating the structure of the view (adding a new level). Clearly, this type of model, although useful for academic purposes, is a maintenance nightmare. In fact, rigid models such as this are analogous to the rigid structure of hierarchical databases before the days of the relational model.

Build in some flexibility

As another example, who says the numbers you use in the ordered pair have to be consecutive? What matters is the relative ordering of the numbers (increasing in value as you walk the chart, but not necessarily increasing by one). Let’s take the ename version and induce a range (multiply each position value by 10).

CREATE TABLE ENAME_BY10_ORG
(ENAME VARCHAR2(12) NOT NULL,
LEFT NUMBER NOT NULL,
RIGHT NUMBER NOT NULL);
INSERT INTO ENAME_BY10_ORG VALUES ('KING',10,280);
INSERT INTO ENAME_BY10_ORG VALUES ('CLARK',20,50);
INSERT INTO ENAME_BY10_ORG VALUES ('MILLER',30,40);
INSERT INTO ENAME_BY10_ORG VALUES ('BLAKE',60,170);
INSERT INTO ENAME_BY10_ORG VALUES ('TURNER',70,80);
INSERT INTO ENAME_BY10_ORG VALUES ('MARTIN',90,100);
INSERT INTO ENAME_BY10_ORG VALUES ('WARD',110,120);
INSERT INTO ENAME_BY10_ORG VALUES ('JAMES',130,140);
INSERT INTO ENAME_BY10_ORG VALUES ('ALLEN',150,160);
INSERT INTO ENAME_BY10_ORG VALUES ('JONES',180,270);
INSERT INTO ENAME_BY10_ORG VALUES ('SCOTT',190,220);
INSERT INTO ENAME_BY10_ORG VALUES ('ADAMS',200,210);
INSERT INTO ENAME_BY10_ORG VALUES ('FORD',230,260);
INSERT INTO ENAME_BY10_ORG VALUES ('SMITH',240,250);

Let’s add someone between Martin and Ward.

INSERT INTO ENAME_BY10_ORG VALUES ('COLE',101,102);

You can see that Cole picks up the same hierarchy as her siblings.

tree3.jpg

So far, so good. Now let’s add someone between Martin and Cole. Oops, we didn’t plan far enough ahead in the insertion/addition scheme because there isn’t any room (numerically speaking, using whole numbers) between 100 (the end of Martin) and 101 (the beginning of Cole). Without having to resort to real numbers (which includes values such as 100.2, 100.74, etc.), one way to preserve the use of whole numbers is to make the range wide enough, and then pack in additions close to the boundary, but not too close so as to leave room for future additions.

With this modification to the nested set model, adding new nodes within existing levels is quite easy due to the increased range of numbers, but we are still faced with the maintenance issue regarding the addition of new levels. You can always create the view with more levels than currently being used, so that helps to minimize the maintenance problem.

Coming back to Oracle

What do connect by prior, start with, and level mean in this query?

select rpad( '*', (level-1)*2, '*' ) || table_name table_name
from temp_constraints
start with fkey_constraint is null
connect by prior pkey_constraint = r_constraint_name;

The SQL Reference guide defines these items as such:

  • START WITH specifies the root row(s) of the hierarchy.
  • CONNECT BY specifies the relationship between parent rows and child rows of the hierarchy. In a hierarchical query, one expression in condition must be qualified with the PRIOR operator to refer to the parent row.
  • LEVEL (pseudocolumn) returns 1 for a root row, 2 for a child of a root, and so on for each row returned by a hierarchical query

“Connect by” is not a SQL-92 ANSI standard, and other versions of SQL use different constructs to perform the same function. You can begin to appreciate the power and usefulness of this feature, especially when faced with having to query hierarchical relationships using nested sets or other set models.

In Closing

One of the hidden tools or algorithms behind hierarchical queries is recursion. The best way to learn to recursion is to first learn recursion. That’s an old joke, but recursion helps drive complex queries, and queries involving hierarchies and trees are certainly among the most complex. Fortunately for us mere mortals, masters of the trade such as Joe Celko and Tom Kyte have reduced the seemingly complex into more understandable chunks of information. Understanding and have some adeptness at using SQL is one of the key requirements for becoming a better DBA.

Source

 

Sebuah perusahaan biasanya tidak hanya menjalankan satu system atau aplikasi yang berjalan di dalamnya. Sebut saja, Supply Chain Management, Customer Relationship Management, dan lainnya. Mereka (perusahaan) biasanya menempatkan masing-masing sistem atau aplikasi di satu mesin. Kalau sistem atau aplikasi berjumlah  tiga dan masing-masing mesin dihargai US$5,000 misalnya, sudah bisa dikalkulasi berapa kocek yang mesti dikeluarkan sebuah perusahaan. Sementara efisiensi adalah sebuah keharusan. Dan tentunya, efisiensi juga berlaku di lingkungan TI sebuah perusahaan. Lingkungan TI memang terkadang dipandang sebagai salah satu  divisi yang Low Profile, High Cost. Dan rasanya hal tersebut sangatlah wajar, mengingat infrastruktur untuk kelancaran operasional memang dibundel dengan harga yang rata-rata mahal. Sialnya, infrastruktur (mulai PC sampai mainframe) yang telah dibeli dengan harga mahal hanya bisa dimanfaatkan kurang dari 50%. Sumber IBM bahkan menyebutkan bahwasannya waktu menganggur untuk mainframe bisa mencapai 40%, untuk server Unix hanya mampu melayani dibawah 10%, dan hampir sebagian besar PC dalam tiap harinya menganggur 95%. Kalaupun terdapat lonjakan sistem dan kebutuhan hardware yang besar, lonjakan hanya berlangsung satu sampai dua hari saja. Khusus di Indonesia, kita tidak pernah meneliti lonjakan seberapa sering lonjakan terjadi. Buat mereka yang tidak yakin sering tidaknya lonjakan terjadi menjadiragu-ragu. Buat yang yakin mereka akan memilih menggunakan mesin yang mendukung komputasi grid, karena harganya lebih murah

Grid Computing

Di tahun 1999, United Devices dan Universitas Oxford bekerja sama dalam proyek pembangunan grid enterprise dengan cara mengumpulkan pengetahuan yang menjadi dasar proyek itu. Tidak hanya United Devices saja yang melakukan penelitian  entanggrid. The Globus Alliance, sebuah lembaga riset dan pengembangan, juga ikut membuat teknologi fundamental dari grid. The Globus Alliance tidak sendiri, mereka bekerjasama dengan Laboratorium Nasional Argonne, Universitas California Selatan, Universitas Chicago, Universitas Edinburgh, dan Pusat Paralel Komputer Swedia. Dari proyek itu, kemudian  bermunculan forum-forum yang mendiskusikan grid lebih lanjut. Salah satu forum itu adalah Global Grid Forum (GGF). Dari penelitian kemudian muncul sebuah standardisasi dan spesifikasi layanan web yang terintegrasi dengan komputasi grid (Open Grid Services Architecture, OGSA). Dengan standardisasi OGSA, memungkinkan komunikasi yang heterogen, tidak terpengaruh dengan letak geografis.

Apa itu Grid ?

Menurut Giga Research, komputasi grid dalam pengertian dasar, merupakan komputer atau server dalam sistem cluster, yang dihubungkan satu dengan yang lainnya, yang memungkinkan menggunakan resources yang ada secara bersamaan. Tidak begitu berbeda dengan Giga Research, komputasi grid menurut Sun Microsystems disingkat menjadi 3 C, yaitu Computing, Colaboration, dan Communication. Dari pengertian itu kita bisa menilai bahwasannya komputasi grid merupakan suatu hal yang luar biasa. Bagaimana tidak hebat, berbagai aplikasi dan mesin yang berbeda dapat dengan mudah dikonfigurasi tanpa harus mengganggu sistem yang tengah berjalan. “Sebuah komputasi grid, idealnya tidak dibatasi oleh penggunaan hardware maupun platform (software). Sun  dalam komputasi grid, yang dimajukan adalah aplikasinya,” kata Yusra Hardiyanto, Technical Consultant PT Sun Microsystems Indonesia.

Dalam kamus IBM, komputasi grid merupakan bagian dari payung IBM e-Business on demand. “Komputasi grid merupakan bagian kecil dari pemanfaatan dari IBM e-Business on demand,” kata Suryo Suwignyo, Country Manager System Group IBM Indonesia. Singkatnya, kalau komputasi grid, sebatas hardware dan software saja, on demand-nya IBM selain services.

Pilih Grid atau…

Berikut sedikit gambaran apakah Anda membutuhkan komputasi grid atau tidak. Misal sebuah perusahaan membutuhkan mesin yang dilengkapi dengan delapan processor. Karena kebutuhan mesin dengan delapan processor itu hanya di waktu-waktu tertentu saja, sehari-hari si perusahaan hanya membutuhkan mesin dengan empat processor, maka perusahaan tersebut cukup membeli mesin dengan empat processor di dalamnya.“Anda membeli mesin menggunakanempat processor, padahal Anda membutuhkan mesin sampai delapan processor. Kita bisa ship di dalam mesin (yang menggunakan empat processor) itu sampai delapan processor, tetapi Anda hanya membayar empat,” kata Suryo.Begitu Anda membutuhkan dukungan mesin hingga delapan processor, Anda tinggal menghubungi IBM untuk mendapatkan kinerja mesin yang menggunakan delapan processor. Dari IBM akan memberikan sebuah kode aktivasi yang bisa membuat mesin dengan empat processor tadi  erkinerja delapan processor. Dan Anda tidak akan direpotkan untuk memasang processor baru atau instalasi driver tertentu. Begitu juga memori, harddisk, dan peripheral lainnya. Intinya, mesin yang menggunakan empat prosesor tadi, setelah di-tunning  edemikian rupa, akan memiliki kemampuan delapan processor. Sebagai catatan, apabila lonjakan kinerja yang Anda butuhkan lebih dari 30 hari, ada baiknya Anda beli saja mesin dengan delapan processor tadi. Begitu juga sebaliknya, apabila lonjakan hanya Anda rasakan dua tiga hari, akan lebih baik Anda menyewa.

 Grid, Linux, dan Infrastrukturnya

Keandalan dan efisiensi yang diberikan Linux membuat sistem operasi dengan lambang penguin itu dilirik oleh para pemain di komputasi grid. Digunakannya Linux membuat biaya yang Anda keluarkan jauh lebih efektif dibandingkan jika menggunakan OS yang lain. Lebih-lebih, para pemain komputasi grid juga telah memproklamirkan diri mendukung Linux habis-habisan. Para pemain besar itu di antaranya IBM, Sun Microsystems, dan Oracle. Lihat saja Sun. Sun Microsystems bahkan menyediakan resources, berupa kode sumber, panduan, dan dukungan teknis, bagi siapa saja yang ingin mengembangkan aplikasi berbasis grid. Dan resources tersebut bisa Anda jalankan di PC. Salah satu alasan Sun mengapa mereka mendukung Linux, menurut Yusra, kalau sebuah teknologi dibatasi oleh suatu hal yang proprietary, perkembangannya biasanya tidak terlalu dasyat. Linux itu sifatnya open dan komunitasnya besar. Kalau aplikasi grid dilepaskan ke komunitas open source, maka akan lebih banyak orang yang ikut terlibat di dalamnya. Di-open-kannya aplikasi grid ke public bukan berarti tidak memiliki tujuan. “Sun mememiliki tujuan ingin melakukan pembelajaran mengenai apa itu grid, bagaimana grid bekerja, dan lainnya. Sun berharap image Sun yang mendukung komputasi grid dan Linux akan terbentuk,”tambah Yusra.

Lalu apakah di Indonesia sudah ada yang menerapkan komputasi grid untuk masalah-masalah yang kompleks? Kami belum mendapatkan informasi tentang hal itu. Implementasi grid di Indonesia, menurut Suryo, masih terbentur dengan infrastruktur telekomunikasi yang ada. Infrastruktur, sebuah masalah klasik yang sampai saat ini belum ada solusi yang konkrit. Selanjutnya, apa saat ini sudah ada aplikasi yang mendukung komputasi grid?

Beberapa aplikasi yang masuk kategori aplikasi komputasi grid di antaranya HP Utility Data Center, Oracle 10g, Sun One Grid Engine, dan IBM Websphere. Dan semua aplikasi tersebut seharusnya mulus berjalan di mesin apa saja. “Seharusnya Grid engine itu tidak batasan seperti apa hardware-nya,” kata Yusra Semua pihak pada akhirnya akan menyiapkan dirinya ke arah komputasi grid. Contohnya, aplikasi database. Vendor aplikasi tersebut akan menerapkan kebijakan pay by click. Kalau Anda pakai sekian Anda bayar sekian, kalau Anda tidak memakainya Anda tidak perlu membayar.

Implementator Grid

Dari tiga vendor TI yang mendukung konsep komputas grid, masing-masing vendor telah memiliki kustomer yang menerapkan komputasi grid. Berdasarkan abjad, berikut perusahaan-perusahaan yang telah mengimplememtasikan komputas grid:

Hewitt Associates

Hewitt Associates merupakan perusahaan konsultasi SDM dan outsourcing global yang bekerja sama dengan IBM membangun komputasi grid. Hewitt Associates menggunakan solusi WebSphere dan Linux yang dijalankan di atas IBM eServer zSeries untuk aplikasi model pensiun perusahaan tersebut.

Morgan Stanley

Morgan Stanley merupakan perusahaan finansal yang bekerja sama dengan IBM memigrasikan aplikasi-aplikasi analitis agar berjalan di server grid yang ber-processor

Intel. Morgan Stanley terus mencari model-model komputasi terdistribusi yang canggih untuk meningkatkan fleksibilitas dan pemanfaatan aset komputasi mereka.

NLI Research Institute

NLI Research Institute merupakan perusahaan yang tergabung dalam Nippon Life Insurance Group bekerja sama dengan Tokyo Research Laboratory milik IBM menggunakan simulasi Monte Carlo dan memanfaatkan teknologi grid. Tujuan NLI

Research Institute menggunakan komputasi grid mengurangi waktu pemrosesan data keuangan mereka.

CERN

CERN merupakan perusahaan Eropa untuk riset nuklir yang menggunakan aplikasi Oracle grid untuk keperluan riset nuklirnya.

Electronic Art

Electronic Art (EA) merupakan pengembang dan publisher game independen untuk PC, PlayStation®2, Xbox™, Nintendo, dan Game Boy®. Salah satu permainan online EA, Sims Online, menggunakan 18 mesin Intel plus Linux dengan database Oracle. Permainan online itu diikuti 100.000 sampai 150.000 pengguna.

Axyz Animation

Axyz Animation, Inc. merupakan perusahaan yang memfokuskan diri mengolaborasikan engineering dan komputasi teknis untuk mendapatkan performa tinggi (HPTC). Axyz Animation menggunakan aplikasi Sun ONE Grid Engine. Penggunaan Sun ONE Grid Engine membuat para animator dengan bebas memasukkan berbagai proses, baik animasi ataupun rendering, dengan perintah yang sama.

Heriyadi (heriyadi@infolinux.co.id)

 Sumber : http://ilkom.unud.ac.id/infolinux/Tahun%202004/PDF%20LINUX%200104/48_Feature_01.pdf

Perform Without Waiting
By Arup Nanda

Diagnose performance problems, using the wait interface in Oracle 10g.

John, the DBA at Acme Bank, is on the phone with an irate user, Bill, who complains that his database session is hanging, a complaint not unfamiliar to most DBAs. What can John do to address Bill’s complaint?

Acme Bank’s database is Oracle Database 10g, so John has many options. Automatic Database Diagnostic Manager (ADDM), new in Oracle Database 10g, can tell John about the current overall status and performance of the database, so John starts with ADDM to determine whether what Bill’s session is experiencing is the result of a databasewide issue. The ADDM report identifies no databasewide issues that could have this impact on Bill’s session, so John moves on to the next option.

One way to diagnose session-level events such as Bill’s is to determine whether the session is waiting for anything, such as the reading of a block of a file, a lock on a table row, or a latch. Oracle has provided mechanisms to display the waits happening inside the database since Oracle7, and during the last several years, the model has been steadily perfected, with more and more diagnostic information added to it. In Oracle Database 10g, which makes significantly improved wait event information available, diagnosing a session slowdown has become even easier. This article shows you how to use the wait events in Oracle Database 10g to identify bottlenecks.

Session Waits

How can John the DBA determine what’s causing Bill’s session to hang? Actually, the session is not hanging; it’s waiting for an event to happen, and that’s exactly what John checks for.

To continue his investigation, John could use Oracle Enterprise Manager or he could directly access V$ views from the command line. John has a set of scripts he uses to diagnose these types of problems, so he uses the command line.

John queries the V$SESSION view to see what Bill’s session is waiting for. (Note that John filters out all idle events.)

select sid, username, event, blocking_session,
   seconds_in_wait, wait_time
from v$session where state in ('WAITING')
and wait_class != 'Idle';

The output follows, in vertical format.

SID              : 270
USERNAME         : BILL
EVENT            : enq: TX - row lock
                 contention
BLOCKING_SESSION : 254
SECONDS_IN_WAIT  : 83
WAIT_TIME        : 0

Looking at this information, John immediately concludes that Bill’s session with SID 270 is waiting for a lock on a table and that that lock is held by session 254 (BLOCKING_SESSION).

But John wants to know which SQL statement is causing this lock. He can find out easily, by issuing the following query joining the V$SESSION and V$SQL views:

select sid, sql_text
from v$session s, v$sql q
where sid in (254,270)
and (
   q.sql_id = s.sql_id or
   q.sql_id = s.prev_sql_id);

Listing 1 shows the result of the query. And there (in Listing 1) John sees it—both sessions are trying to update the same row. Unless session 254 commits or rolls back, session 270 will continue to wait for the lock. He explains this to Bill, who, considerably less irate now, decides that something in the application has gone awry and asks John to kill session 254 and release the locks.

Wait Classes

After John kills the blocking session, Bill’s session continues but is very slow. John decides to check for other problems in the session. Again, he checks for any other wait events, but this time he specifically checks Bill’s session.

In Oracle Database 10g, wait events are divided into various wait classes, based on their type. The grouping of events lets you focus on specific classes and exclude nonessential ones such as idle events. John issues the following against the V$SESSION_WAIT_CLASS view:

select wait_class_id, wait_class,
   total_waits, time_waited
from v$session_wait_class
where sid = 270;

The output, shown in Listing 2, shows the wait classes and how many times the session has waited for events in each class. It tells John that application-related waits such as those due to row locks have occurred 17,760 times, for a total of 281,654 centiseconds (cs)—hundredths of a second—since the instance started. John thinks that this TIME_WAITED value is high for this session. He decides to explore the cause of these waits in the application wait class. The times for individual waits are available in the V$SYSTEM_EVENT view. He issues the following query to identify individual waits in the application wait class (class id 4217450380):

select event, total_waits, time_waited
from v$system_event e, v$event_name n
where n.event_id = e.event_id
and wait_class_id = 4217450380;

Listing 3 shows the output of this query. It shows that lock contentions (indicated by the event enq: TX – row lock contention) constitute the major part of the waiting time in the application wait class. This concerns John. Is it possible that a badly written application made its way through to the production database, causing these lock contention problems?

Being the experienced DBA that he is, however, John does not immediately draw that conclusion. The data in Listing 3 merely indicates that the users have experienced lock-contention-related waits a total of 2,275 times, for 280,856 cs. It is possible that mostly 1- or 2-cs waits and only one large wait account for the total wait time, and in that case, the application isn’t faulty. A single large wait may be some freak occurrence skewing the data and not representative of the workload on the system. How can John determine whether a single wait is skewing the data?

Oracle 10g provides a new view, V$EVENT_HISTOGRAM, that shows the wait time periods and how often sessions have waited for a specific time period. He issues the following against V$EVENT_HISTOGRAM:

select wait_time_milli bucket, wait_count
 from v$event_histogram
 where event =
    'enq: TX - row lock contention';

The output looks like this:

    BUCKET     WAIT_COUNT
-----------    ----------
         1         	  252
         2          	   0
         4          	   0
         8          	   0
        16          	   1
        32          	   0
        64           	  4
       128          	  52
       256         	  706
       512        	   392
      1024         	   18
      2048         	    7
      4096        	   843

The V$EVENT_HISTOGRAM view shows the buckets of wait times and how many times the sessions waited for a particular event—in this case, a row lock contention—for that duration. For example, sessions waited 252 times for less than 1 millisecond (ms), once less than 16 ms but more than 1 ms, and so on. The sum of the values of the WAIT_COUNT column is 2,275, the same as the value shown in the event enq: TX – row lock contention, shown in Listing 3. The V$EVENT_HISTOGRAM view shows that the most waits occurred in the ranges of 256 ms, 512 ms, and 4,096 ms, which is sufficient evidence that the applications are experiencing locking issues and that this locking is the cause of the slowness in Bill’s session. Had the view showed numerous waits in the 1-ms range, John wouldn’t have been as concerned, because the waits would have seemed normal.

Time Models

Just after John explains his preliminary findings to Bill, Lora walks in with a similar complaint: Her session SID 355 is very slow. Once again, John looks for the events the session is waiting for, by issuing the following query against the V$SESSION_WAIT view:

select event, seconds_in_wait,
   wait_time
from v$session_wait
where sid = 355;

The output, shown in Listing 4, shows a variety of wait events in Lora’s session, including latch contention, which may be indicative of an application design problem. But before he sends Lora off with a prescription for an application change, John must support his theory that bad application design is the cause of the poor performance in Lora’s session. To test this theory, he decides to determine whether the resource utilization of Lora’s session is extraordinarily high and whether it slows not only itself but other sessions too.

In the Time Model interface of Oracle Database 10g, John can easily view details of time spent by a session in various activities. He issues the following against the V$SESS_TIME_MODEL view:

select stat_name, value
from v$sess_time_model
where sid = 355;

The output, shown in Listing 5, displays the time (in microseconds) spent by the session in various places. From this output, John sees that the session spent 503,996,336 microseconds parsing (parse time elapsed), out of a total of 878,088,366 microseconds on all SQL execution (sql execute elapsed time), or 57 percent of the SQL execution time, which indicates that a cause of this slowness is high parsing. John gives Lora this information, and she follows up with the application design team.

OS Statistics

While going over users’ performance problems, John also wants to rule out the possibility of the host system’s being a bottleneck. Before Oracle 10g, he could use operating system (OS) utilities such as sar and vmstat and extrapolate the metrics to determine contention. In Oracle 10g, the metrics at the OS level are collected automatically in the database. To see potential host contention, John issues the following query against the V$OSSTAT view:

select * from v$osstat;

The output in Listing 6 shows the various elements of the OS-level metrics collected. All time elements are in cs. From the results in Listing 6, John sees that the single CPU of the system has been idle for 51,025,805 cs (IDLE_TICKS) and busy for 2,389,857 cs (BUSY_TICKS), indicating a CPU that is about 4 percent busy. From this he concludes that the CPU is not a bottleneck on this host. Note that if the host system had more than one CPU, the columns whose headings had the prefix AVG_, such as AVG_IDLE_TICKS, would show the average of these metrics over all the CPUs.

Active Session History

So far the users have consulted John exactly when each problem occurred, enabling him to peek into the performance views in real time. This good fortune doesn’t last long—Janice comes to John complaining about a recent performance problem. When John queries the V$SESSION view, the session is idle, with no events being waited for. How can John check which events Janice’s session was waiting for when the problem occurred?

Oracle 10g collects the information on active sessions in a memory buffer every second. This buffer, called Active Session History (ASH), which can be viewed in the V$ACTIVE_SESSION_HISTORY dynamic performance view, holds data for about 30 minutes before being overwritten with new data in a circular fashion. John gets the SID and SERIAL# of Janice’s session and issues this query against the V$ACTIVE_SESSION_HISTORY view to find out the wait events for which this session waited in the past.

select sample_time, event, wait_time
from v$active_session_history
where session_id = 271
and session_serial# = 5;

The output, excerpted in Listing 7, shows several important pieces of information. First it shows SAMPLE_TIME—the time stamp showing when the statistics were collected—which lets John tie the occurrence of the performance problems to the wait events. Using the data in the V$ACTIVE_SESSION_HISTORY view, John sees that at around 3:17 p.m., the session waited several times for the log buffer space event, indicating that there was some problem with redo log buffers. To further aid the diagnosis, John identifies the exact SQL statement executed by the session at that time, using the following query of the V$SQL view:

select sql_text, application_wait_time
from v$sql
where sql_id in (
  select sql_id
  from v$active_session_history
  where sample_time =
   '22-FEB-04 03.17.31.188 PM'
  and session_id = 271
  and session_serial# = 5
);

The output is shown in Listing 8.

The column APPLICATION_WAIT_TIME shows how long the sessions executing that SQL waited for the application wait class. In addition to the SQL_ID, the V$ACTIVE_SESSION_HISTORY view also lets John see specific rows being waited for (in case of lock contentions), client identifiers, and much more.

What if a user comes to John a little late, after the data is overwritten in this view? When purged from this dynamic performance view, the data is flushed to the Active Workload Repository (AWR), a disk-based repository. The purged ASH data can be seen in the DBA_HIST_ACTIVE_SESSION_HIST view, enabling John to see the wait events of a past session. The data in the AWR is purged by default after seven days.

Conclusion

Oracle Database 10g introduces a number of enhancements designed to automate and simplify the performance diagnostic process. Wait event information is more elaborate in Oracle Database 10g and provides deeper insight into the cause of problems, making the diagnosis of performance problems a breeze in most cases, especially in proactive performance tuning.


Arup Nanda (arup@proligence.com) is the manager of Database Systems at Starwood Hotels and Resorts, in White Plains, New York. He is recipient of Oracle Magazine‘s 2003 DBA of the Year award and the coauthor of Oracle Privacy Security Auditing, from Rampant Press (rampant-books.com).source : http://www.oracle.com/technology/oramag/oracle/04-jul/o44tech_perf.html

Oracle 11g (Beta) New Features

Oracle Database 11gThe new Oracle 11g database has 482 new features, cutting across such areas such as manageability, high availability, scalability, content management, infrastructure and business intelligence. The key theme of 11g is to provide “change assurance”. The following is a glimpse of a subset of all the new features:

  • Compression technology that can reduce the amount of storage required for data sets by up to two thirds
  • Speed boost allowing Oracle to finally beat file systems on reading data
  • Data Guard – the ability to create a standby snapshot for the purpose of regression testing and to keep it in sync with your production database
  • Replay Workload – the ability to capture all (or just SQL) database activities and then moving it to a testing environment without using a midtier tool
  • Online Application Upgrades – hot patching, the ability to install upgrades or patches online with no downtime
  • Quick Fault Resolution – the ability to capture of all diagnostics related to a fault automatically
  • Database Repair Advisor – a wizard/expert system that guides DBAs through the fault diagnosis and resolution process
  • Partition by logical object and automated partition creation to help manage Very Large Databases (VLDBs)
  • New high-performance Large Objects (LOB) infrastructure
  • Native Java & PL/SQL compilers
  • Re-engineered driver for PHP

source : http://www.itechnote.com/2006/10/29/oracle-11g-beta-new-features/