Oracle adalah Object-Relational Database Management System, atau disingkat ORDBMS. RDBMS Tradisional (Oracle Version 7 atau kebawah) menyimpan data pada tables yang disebut relations. Relasi tersebut merupakan representasi 2 dimensi dari data dimana rows, disebut Tuple pada bahasa relasional atau record dalam bahasa umum dan columns, disebut attribut yang merupakan bagian informasi yang ada di dalam record.
Oracle menyediakan ekstensi berorientasi objek ke RDBMS yang membentuk entitas objek relasional database yang baru. Pada Objek Relasional database, columns dapat mewakili salah satu nilai tunggal (seperti dalam database relasional standar), varray()(fixed number pada additional records) atau REF untuk tabel kedua di mana jumlah variabel data dapat disimpan. Dalam suatu kondisi, prosedur pada database objek relasional dikenal sebagai metode yang terikat pada table.
Oracle memperkenalkan konsep baru pada versi barunya yang disebut Grid Computing dan memberu nama versi barunya tersebut dengan nama 10g. Grid Computing adalah langkah menuju cara yang paling fleksibel dan biaya yang efektif untuk mengelola informasi dan aplikasi. Grid Computing secara internal menciptakan kesatuan besar Server, Storage dan networks dimana sumber daya dari satu bagian dengan mudah dapat dialokasikan ke bagian yang lain tergantung pada beban kerja.
Saat Oracle Database bekerja, Oracle software mengalokasikan sebuah area shared memory yang disebut dengan SGA (Shared global Area) dan kemudian menjalankan beberapa background proses. Kombinasi dari SGA dan background process inilah yang disebut dengan Oracle Instance.
Struktur Memory Oracle terdiri dari :
- SGA (Shared Global Area): Merupakan area memory yang menyimpan data dan control information untuk Instance. SGA sendiri dishared oleh server dan background process.
- PGA (Program Global Area): Merupakan area memory yang menyimpan data dan control information untuk setiap server proses. PGA inilah yang meng-handle server proses. Setiap proses memiliki satu PGA. PGA bersifat Private.
- Shared Pool: Menyimpan semua aktivitas pengguna agar tidak terjadi parsing.
contoh : sebuah SELECT statement akan dieksekusi. Statement tersebut disimpan ke cache Shared Pool. Apabila statement tersebut ingin dieksekusi kembali, tidak perlu menyimpan ke cache Shared Pool (parsing) kembali melainkan ambil dari Shared Pool dan langsung eksekusi - Streams Pool : digunakan untuk menyimpan data untuk kepentingan replikasi database.
- Large Pool : Memiliki kapasitas yang besar dan Biasa digunakan untuk recovery, backup, restore. Large Pool menyimpan session information ketika oracle dalam mode shared.
- Java Pool : Memiliki fungsi hampir sama dengan Shared Pool tetapi menyimpan eksekusi yang menggunakan bahasa atau aplikasi Java.
- Database Buffer Cache : Menyimpan hasil eksekusi dari Shared Pool. Hasil eksekusi yang disipan hanya yang bersifat READ ONLY saja. DB Buffer Cache menggunakan LRU (Least Recent Use) sehingga akan menghapus data yang baru masuk apabila sudah full.
- Redo Log Buffer : Menyimpan semua eksekusi yang memodifikasi data database. Hasil modifikasi ini akan disimpan dalam redo log buffer saat user melakukan commit. Apabila user belum melakukan commit, perubahan data yang telah dilakukan tidak dapat dilihat atau diakses oleh user yang lain.