1. Pengenalan
Database = kumpulan relasi data yang terstruktur
DBMS = aplikasi pengolah database
Database system = environment (user, dbms, hardware, dst)
Kenapa ada database?
Untuk mengubah data menjadi informasi
Bagaimana jika desain database buruk?
Informasi yang terambil salah, Performance jelek, redundan
Maintenance
Adayangnamanyapurging,meremovedatayangsudahtidakdibutuhkanuntukmempercepatproses
queries, namun tetap di archive dan tidak hilang dan berbeda dengan delete.
2. Oracle
An Oracle database is a set of files that store Oracle data in persistent disk storage. This section
discusses the database files generated when you issue a CREATE DATABASE statement:
Data files and temp files
A data file isa physical file ondiskthatwas createdby Oracle Database and containsdata structures
such as tablesandindexes.A tempfile isa data file thatbelongstoatemporarytablespace.The data
is written to these files in an Oracle proprietary format that cannot be read by other programs.
Control files
A control file is a root file that tracks the physical components of the database.
Online redo log files
The online redo log is a set of files containing records of changes made to data.
A database instance is a set of memory structures that manage database files.
What is instance in oracle?
explain what a "database" is. Differentvendors use these terminologies to mean different things. In
Oracle-speak, a "database" is the collection of datafiles on disk. These datafiles belong to your
tablespaces. They are also the online redo log files, the parameter file, the password file, and the
control files.A "database"existsondiskandwillbe thereevenif youshutdownthe serverandreboot
it.
But a "database" is not accessible by itself. You have to sign on to SQL*Plus and issue a STARTUP
command. When you do this, Oracle will allocate memory that all Oracle processes will share. This
shared memory is called the Shared(or System) Global Area or SGA. Oracle will also start processes
that Oracle needsto performcertainfunctions,like SMON,PMON,LGWR, and DBWR. The collection
of allocatedmemoryand the runningprocesseson the serveris calledan "instance".Unlessyouare
using Real ApplicationClusters (RAC), only one instance can attach itself to a database. RAC lets you
have multiple instances attach to the same database.
SGA
Dinamis, jadi jika mempunyai 10 GB ram. Kemudian oracle akan mengalokasikan 5 GB, jika kurang
baru ditambah menjadi 10GB
Shared Pool
Berisi statement2 SQL yang baru dieksekusi
Database Buffer Cache
Berisi data dari statement shared pool
Redo Log Buffer
Menyimpan statement yang mengubah database. Mempunyai 2 memory buffer untuk diisi
statement2tersebut.Jikasudahpenuhakandicopyke RedoLogfiles.RedoLogfilesjugamempunyai
3. 2 memory. Jika sudah penuh juga, maka akan dipindah ke Archived Log files yang bisa menampung
banyak data.
Listener
Terdapatlisteneruntuk mengecekjikaadapermintaanaksesmasukke DBMS dengancara membuka
port yang kemudian akan dilanjutkan ke server process. Jika akses sudah masuk dan listener down,
akses tidak akan ikut down.
Connection pool
Berada pada aplikasi danmembatasi banyaknyaserverprocessyang dapat dijalankan.Sehinggabisa
terdapat 1 server process yang dishare.
Database Writer
Dirty buffersreachthreshold= Hubungannyadengandatabase buffer.Jikadi db buffersudahpenuh
danharus diremove,makadbwriterakanmemastikanbahwadatatersebutsudahsama/syncdengan
yang ada di database files.
Kebanyakan intinya adalah untuk melakukan sync agar data di database buffer = di database files
Checkpoint
Berfungsi sebagai counter siklus database agar bisa di restore ke checkpoint tertentu
Log Writer
Commit. Untuk mengganti data di database buffer tapi belum disync di db files.
Intinya setiap ada perubahan dapat dicatat dan dilakukan restore
Commit
Use the COMMIT statement to end your current transaction and make permanent all changes
performed in the transaction. A transaction is a sequence of SQL statements that Oracle Database
treats as a single unit. This statement also erases all savepoints in the transaction and releases
transaction locks.
Until you commit a transaction:
You can see any changes you have made during the transaction by querying the modified
tables,butotheruserscannotsee thechanges.Afteryoucommitthetransaction,the changes
are visible to other users' statements that execute after the commit.
You can roll back (undo) any changes made during the transaction with
the ROLLBACK statement.
Data Dictionary Cache vs Database Buffer Cache
Berisi struktur dari tabel tapi bukan isinya, sedangkan db buffer cache berisi datanya
Automatic Storage Management
Automatic Storage Management automates and simplifiesthe managementof all types of database
files. Database files are automatically distributed across all available disks, and database storage is
rebalanced automatically whenever the storage configuration changes. Automatic Storage
Management also provides redundancy through the mirroring of database files.
4. Jika terdapat huruf ‘n’ di akhir (DBWn, ARCn, dll)
Bisa membuat lebih dari 1 backgorund process
Dari WEB :
Struktur Database
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 denganOracle 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.
5. 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)
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
6. 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
7. Logical Storage
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
8. 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.
9. POSTGRESQL
Client
ClientInterface Library untukmenyaringdan memvalidasi sql statementyangakan dikirimke server
sehingga mengurangi beban server dan sudah menerima statement bersih yang benar.
Postmaster
Berfungsi sebagai listenerdi dalampostgresql.Setelahitumengcreate postgresserver. Selainitujuga
dapat menginstruksi komponen data management.
Postgres server
Bertindak sebagai server process dan memiliki hubungan 1 to 1 terhadap banyaknya client.
Siklusnya :
1. Parser
Mengenali sql query dalam bentuk ASCII text yang kemudian diubah menjadi bentuk parse
tree oleh parser.
2. Traffic Cop
Mengecek apakah query itu simple atau rumit
3. Planner/Optimizer
Mencari path palingoptimal yangbisadigunakanuntuksql queryyang ada. Bedanyadengan
Oracle adalah jika Oracle akan menyimpan query, sedangkan postgresql tidak. Akan
menghasilkan plan tree
4. Executor
Mengeksekusi plan tree.
Bagian DATA MANAGEMENT :
Statistic Collector
Menyimpan data statistik index, dll
Auto-vacuum
Menghandle sistem recovery, release unusable memory
Background Writer
Mirip dengan Log Writer di Oracle, yaitu menyimpan informasi log dan backup terbaru.
Bagian DATA STORAGE
Access
Indexing, scanning, searching, compiling and returning data
Bootstrap
Membentuk database secara struktur. Mengecek kelangsungan hidup system catalog.
Storage
Membentuk pesanan system catalog dari bootstrap
10. Disk
Catalog
The catalog isthe place where--amongotherthings--all of the variousschemas(external,conceptual,
internal) andall of the correspondingmappings(external/conceptual,conceptual/internal) are kept.
In other words, the catalog contains detailed information (sometimes called descriptor
information or metadata) regarding the various objects that are of interest to the system itself