Struktur Database

database structure

Untuk Memahami Arsitektur Oracle Database, kita harus tahu terlebih dahulu mengenai Oracle Server. Oracle Server adalah sebuah Database Management System (DBMS) yang memiliki sifat terbuka, comprehensive, dan terintegrasi untuk mengelola informasi. Oracle Server inilah yang harus reliable dalam mengelola data dalam jumlah yang sangat besar yang dimiliki oleh banyak user sehingga data tersebut dapat diakses dalam waktu yang bersamaan dengan performance yang baik. Oracle Server sendiri terdiri dari :

  1. Oracle Instance
  2. Oracle Database

Pada artikel kali ini, kita akan membahas tentang memahami Arsitektur Oracle Database. Arsitektur Oracle Database terdiri dari 3 struktur yaitu :

  1. Struktur Memory (Memory Structures)
  2. Struktur Proses (Process Structures)
  3. Struktur Penyimpanan (Storage Structures)

Struktur Memory (Memory Structures)

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.

SGA terdiri dari :

  • 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.

Struktur Proses (Process Structures)

proses update

Terdapat 3 Struktur Proses pada Oracle :

  1. User Process
    User Process adalah proses ketika user melakukan suatu aktivitas pada instance. Contohnya ketika user ingin melakukan login atau membuka suatu program. Satu user process dapat memiliki 2 server process yaitu ketika user login sebagai sys dan login kembali sebagai hr pada terminal yang lain
  2. Server Process
    Server Process Terjadi ketika pengguna berhasil melakukan login (Connect Database / Connect SQL Plus). Server process dihapus ketika user berhasil logout
  3. Background Process
    Background Process adalah proses yang tidak terlihat oleh user

Beberapa Background Process antara lain :

  • SMON (System Monitor) : SMON melakukan koneksi oracle instance ke dispatcher / listener. Selain itu, SMON melakukan monitoring dispatcher pada saat mode shared server. SMON juga melakukan crash recovery apabila instance terjadi failure
  • PMON (Process Monitor) : Berfungsi mengecek background process yang sedang mati / idle.  PMON bertugas untuk merestart process yang di kill.
  • DBWN (Database Writer) : DBWn berfungsi mencegah hard parsing seperti cek sintaks dan cek semantic pada statement. DBWn juga berfungsi untuk menulis modified block dari db buffer cache ke data file.
  • LGWR (Log Writer) : Berfungsi untuk menulis data yang berubah ke redo log files.
  • ARCn (Archiver): Berfungsi untuk mengcopy data dari redo log file ke archive log file.
  • CKPT (Checkpoint) : berfungsi untuk mengupdate control file dan data file

Berikut merupakan proses ketika user connect ke instance dan melakukan  update

Instancenya running -> User login -> diverifikasi oleh server proses -> user update row -> ditanggapi oleh server proses -> menuju ke sga -> di cek oleh server proses ada ga statement updatenya di shared pool.

Kalau ada, dia ga perlu parsing lagi tinggal gunain yang ada di shared pool tetapi sebelum bisa digunain bakal di cek lagi privilege dari si user.

Kalau ga ada dia bikin area shared sql yang baru di shared pool untuk statement tersebut ->  Server proses bakalan nerima data yang dibutuhkan dari data file (table) atau dari data blok yang tersimpan di dalam sga -> server proses mengubah data tabel yang diterimanya -> saat transaksinya di commit, LGWR akan menuliskan perubahan tersebut ke dalam redo log file dan DBWn akan menulis data blok yang telah dirubah ke dalam disk -> server proses mengirimkan pesan kepada user

Struktur Penyimpanan (Storage Structures)

Terdapat 2 tipe struktur penyimpanan pada oracle database, yaitu :

  1. Logical Storage
  2. Physical Storage

Logical Storage

logical stucture

Database : Tempat penyimpanan data

Schema : Kumpulan object – object database yang dimiliki user

Tablespace : Tempat penyimpanan untuk segment

Segment : Merpukan object database yang memiliki data

Extend : sekumpulan data blok membentuk extend

Oracle Data Block : bagian terkecil dari database

Dari gambar di atas dapat dijelaskan bahwa satu database memiliki satu atau banyak schema atau tablespace. Satu tablespace memiliki satu atau banyak segment atau datafile. Satu segment mempunyai banyak extend. Satu extend hanya mempunyai satu datafile dan banyak data block.

Physical Storage

File Fisikal database terdiri dari dua jenis, yaitu critical dan Noncritical file. Critical File adalah file yang  harus ada, karena jika file ini hilang, database tidak akan dapat bekerja. Noncritical file adalah kebalikannya.

Critical File

Control File

Control File : adalah sebuah binary file yang menyimpan informasi tentang physical structure dari sebuah database. Control file merupakan critical file. Apabila control file hilang database tidak bisa mounted dan sulit untuk direcovery. Di dalam control file terdapat :

  • Nama Database
  • Nama dan Lokasi dari datafile dan redo log file yang terkait
  • Timestamp dari pembuatan database
  • The current log sequence number
  • Informasi checkpoint

Data File

Data File : Sebuah binary file yang digunakan untuk menyimpan user dan data database

Redo Log File

Redo Log File digunakan untuk kepentingan recovery database apabila suatu ketika database-nya crash tetapi data filenya tidak ada yang hilang, maka instancenya  dapat merecovery database dengan menggunakan informasi yang ada pada file ini

Noncritical File

  • Parameter File: Menyimpan konfigurasi pada saat startup instansi.
  • Backup files: Untuk kepentingan recovery database.
  • Archive Log files: Menyimpan perubahan data yang dibuat oleh instance. Datanya sendiri diambil dari redo log file.
  • Password file: Mengijinkan pengguna untuk masuk ke dalam database dan biasa digunakan jika user ingin melakukan proses administrative database-nya secara remote.
  • Alert and Trace log files: Trace untuk menyimpan informasi error pada proses, alert adalah Trace yang bersifat special karena menyimpan informasi error database.

References : Oracle Administation 10g