Selasa, 22 Juni 2010
Recycle Bin di Oracle
Apa itu Recycle Bin?
Oracle memperkenalkan fitur "Recycle Bin" pada Oracle 10g yang digunakan untuk menyimpan semua objek database yang sudah di-drop. Jika suatu tabel di-drop maka semua objek yang berasosiasi dengan tabel tersebut seperti constraint, index, dll akan juga tersimpan di recycle bin.
Mengapa Recycle Bin?
Ketika user menghapus tabel yang cukup penting --secara tidak sengaja tentunya-- dan itu masih dibutuhkan secepatnya.
Oracle 9i memperkenalkan konsep flashback query untuk menerima data dari suatu titik di masa lalu, namun tidak bisa menerima query dari operasi DDL seperti drop table. Cara satu-satunya adalah membuat kembali tabel tersebut dari awal. Namun dengan fitur Recycle Bin pada Oracle 10g, user dapat dengan mudah mengembalikan objek database yang sudah terhapus.
Mengaktifkan/Menonaktifkan Recycle Bin
Untuk melihat aktif tidaknya Recycle Bin dapat dilakukan perintah berikut :
SQL > SELECT Value FROM V$parameter WHERE Name = 'recyclebin';
Value
-----
On
Jika value bernilai "On" maka Recycle Bin aktif, sebaliknya jika value bernilai "Off" maka Recycle Bin Belum Aktif.
Berikut adalah perintah untuk mengaktifkan / menonaktifkan Recycle Bin
SQL > ALTER SYSTEM SET recyclebin = ON;
atau
SQL > ALTER SESSION SET recyclebin = ON;
SQL > ALTER SYSTEM SET recyclebin = OFF;
atau
SQL > ALTER SESSION SET recyclebin = OFF;
Contoh Kasus 1 :
Senin, 07 Juni 2010
Antara CHAR, VARCHAR dan VARCHAR2 di Oracle
CHAR
CHAR digunakan untuk menyimpan data dengan panjang karakter tetap. Jika tipe data ini dugunakan untuk menyimpan data yang bermacam-macam panjangnya seperti nama ataupun alamat, maka akan banyak memory yang terbuang dalam disk. CHAR cocok digunakan untuk penyimpanan data dengan nilai tetap seperti Jenis Kelamin.
Contoh :
Table created.
SQL> INSERT INTO char_test VALUES ('qwerty');
1 row created.
COL1 LENGTH(COL1) ASCII Dump
---------- ------------ ------------------------------------------------------------
qwerty 10 Typ=96 Len=10: 113,119,101,114,116,121,32,32,32,32
Dapat dilihat dari hasil query diatas, bahwa col1 menyimpan karakter qwerty sepanjang 10 karakter, yang seharusnya hanya berisi 6 karakter.
Jumat, 28 Mei 2010
Apa itu Transaksi Basis Data
- Atomicity : Transaksi dilakukan sekali dan bersifat Atomic, artinya merupakan satu kesatuan tunggal yang tidak dapat dipisah-baik itu pekerjaan dilaksanakan semua atau tidak satupun.
- Consistency : Jika basis data pada awalnya dalam keadaan konsisten, maka pelaksanaan transaksi dengan sendirinya juga harus meninggalkan basis data tetap dalam status konsiste.
- Isolation : Isolasi memastikan bahwa secara bersamaan (konkuren) eksekusi transaksi terisolasi dari yang lain.
- Durability ; Begitu transaksi telah dilaksanakan (di-commit) maka perubahan yang diakibatkan tidak akan hilang atau tahan lama (durable), sekalipun ada kegagalan system.
Kamis, 27 Mei 2010
Arsitektur Database Oracle
Hirarki dari struktur logis database Oracle adalah sebagai berikut :
· Sebuah database Oracle memiliki paling tidak 1 Tablespace.
· Sebuah tablespace memiliki 1 atau lebih Segment.
· Sebuah segment merupakan kumpulan dari Extent.
· Dan extents adalah kumpulan dari Block.
Block merupakan komponen terkecil yang berisi operasi read dan write terhadap database.
Konsep Dasar Replikasi
- Memungkinkan beberapa lokasi menyimpan data yang sama. Hal ini sangat berguna pada saat lokasi-lokasi tersebut membutuhkan data yang sama atau memerlukan server yang terpisah dalam pembuatan aplikasi laporan.
- Aplikasi transaksi online terpisah dari aplikasi pembacaan seperti proses analisis database secara online, data smarts atau data warehouse.
- Memungkinkan otonomi yang besar. Pengguna dapat bekerja dengan menyalin data pada saat tidak terkoneksi kemudian melakukan perubahan untuk dibuat database baru pada saat terkoneksi
- Data dapat ditampilkan seperti layaknya melihat data tersebut dengan menggunakan aplikasi berbasis Web
- Meningkatkan kinerja pembacaan
- Membawa data mendekati lokasi individu atau kelompok pengguna. Hal ini akan membantu mengurangi masalah karena modifikasi data dan pemrosesan query yang dilakukan oleh banyak pengguna karena data dapat didistribusikan melalui jaringan dan data dapat dibagi berdasarkan kebutuhan masing-masing unit atau pengguna.
- Penggunaan replikasi sebagai bagian dari strategi standby server.
Rabu, 19 Mei 2010
Mengaktifkan Mode Archivelog pada Oracle
Kamis, 24 September 2009
Oracle
Larry Ellison dan kawannya juga mantan rekan kerjanya Bob Miner dan Ed Oates memulai membangun Software and Development Laboratories (SDL) pada tahun 1977. SDL mengembangkan versi original dari Oracle Software. Nama Oracle pun bermula dari code-name CIA dari proyek pribadi ellison ketika ia menjadi pegawai di Ampex.
Sejarahnyaa :
* 1979: Larry Ellison membangun Software Development Laboratories.
* 1979: SDL berubah nama menjadi “Relational Software, Inc.” (RSI) dan mengumumkan produk Oracle V2 sebagai RDMS yang komersil. Versi ini tidak mensuport trabsaksi namun mengimplementasikan fungsi SQL dasar Query dan Joins.
* 1982: RSI kemudain berubah namanya menjadi “Oracle Corporation” yang kita kenal agar lebih dekat dengan produk unggulannya.
* 1983: Perusahaan merilis Oracle version 3, yang ditulis dengan menggunakan bahasa C Programming yang telah mendukung perintah Commit dan Rollback untuk transaksi.
* 1984: Oracle Corporation rilis Oracle version 4.
* 1985: Oracle RDBMS mulai mendukung model client-server, dengan jaringan yang lebih luas di pertengahan 1980. Oracle version 5.0 mendukung distributed queries.
* 1988: Oracle RDBMS version 6 keluar dengan mendukung PL/SQL embedded.
* 1989: Oracle Corporation memasuki produk aplikasi pasar dan mengembangkan ERP produk, berdasarkan Oracle relational database.
* 1990: Dirilis Oracle Applications release 8.
* 1992: Oracle version 7 keluar dengan dukungan referential integrity, stored procedures dan triggers.
* 1997: Oracle Corporation released version 8, mendukung pengembangan object-oriented development dan aplikasi multimedia.
* 1999: Dirilisnya Oracle8i bertujuan untuk memberikan database inter-operating lebih baik dengan internet.
* 2000: Oracle E-Business Suite 11i yang pertama terintegrasi oleh enterprise application software
* 2001: Oracle9i dirilis dengan 400 fitur baru, termasuk kemampuan membaca dan menulis XML document. Juga memberikan opsi untuk Oracle RAC atau “Real Application Clusters”.
* 2003: Oracle Corporation merilis Oracle Database 10g.
* 2005: Oracle Database 10.2.0.1 — yang juga diketahui sebagai Oracle Database 10g Release 2 (10gR2) — muncul.
* 2006: Oracle Corporation mengumumkan Unbreakable Linux
* 2007: Oracle Database 10g Release 2 membuat Rekor Dunia TPC-H 3000 GB Benchmark Result
* 2007: Oracle Corporation merilis Oracle Database 11g untuk Linux dan Microsoft Windows.
* 2008: Oracle Corporation mendapatkan BEA Systems.
diterjemahkan : en.wikipedia.org
Minggu, 23 Agustus 2009
Teori dan Administrasi init file (pfile dan spfile) di ORACLE
Konfigurasi instance disimpan di file bertipe text yang dikenal dengan init file (initial file) atau
Di Unix family, init file ada di directory
Format nama file:
- Pfile:
initNAMAINSTANCE.ora
Di Unix, nama instance adalah case sensitive, instance dataku berbeda dengan DATAKU. Pfile untuk instance dataku adalahinitdataku.ora . Dan Pfile untuk instance DATAKU adalahinitDATAKU.ora Sedangkan di Windows, nama init file tidak case sensitive, instance dataku ya sama saja dengan DATAKU. Kalau kita membuat database dengan dbca, initfile yang terbentuk adalah
INITdataku.ORA . Kalau file ini diganti denganinitDATAKU.ora yang tidak apa-apa, Windows gitu lho! - Spfile:
spfileNAMAINSTANCE.ora
Sama seperti pfile, case sensitive di Unix dan tidak case sensitive di Windows.
Cara membuat initfile:
- pfile
Dibuat secara manual pakai text editor , contoh:notepad di Windows danvi di Unix. Bisa juga dibuat berdasarkan content spfile yang sudah ada.SQL> create pfile from spfile; - spfile
Spfile tidak bisa dibuat dengan text editor sebagimana membuat pfile. Tentu saja, file binary tidak bisa dibuat (diedit) dengan text editor. Spfile hanya bisa dibuat dengan cara berikut ini (content-nya diambil dari pfile yang sudah ada):SQL> create spfile from pfile;
By default, kalau ada spfile maka ketika startup Oracle akan membaca parameter dari spfile. Kalau tidak ada spfile, Oracle membaca pfile. Kalau tidak ada kedua-duanya, instance tidak bisa di-startup. SQL> startup
ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file
‘/mnt01/oracle/10.2.0.3/dbs/initDATAKU.ora’
Mengedit Init file (mengubah parameter instance)
Parameter instance ada dua tipe yaitu
Contoh parameter dinamik adalah
- Kalau instance sedang mati
Naikkan instance dulu, kemudian lakukan perubahan pakai SQLPlusSQL> startup
SQL> alter system set pga_aggregate_target=100m;
Perintah alter system di atas langsung mengubah parameter di instance (memory ) yang berjalan.- Kalau kita pakai spfile, perintah ini langsung mengupdate juga spfile. Sehingga ke depannya kalau kita merestart instance, Oracle membaca
pga_aggregate_target=100m dari spfile. - Kalau kita pakai pfile,
pga_aggregate_target=100m tidak di-update ke pfile sehingga ke depannya kalau kita merestart instance, pga_aggregate_target kembali ke nilai semula. Agar perubahan bersifat permanen, edit juga parameter pga_aggregate_target di pfile
- Kalau kita pakai spfile, perintah ini langsung mengupdate juga spfile. Sehingga ke depannya kalau kita merestart instance, Oracle membaca
- Kalau instance sedang jalan
Langsung lakukan perubahan di SQLPLusSQL> alter system set pga_aggregate_target=100m;Sama seperti penjelasan sebelumnya, kalau pakai spfile maka spfile juga diupdate secara otomatis. Kalau pakai pfile, agar perubahan bersifat permanen maka pfile harus diedit secara manual pakai text editor.
Contoh parameter statik adalah
- Kalau instance sedang mati
Kalau pakai pfile, edit pfile pakai text editor, kemudian startup instance.Edit pfile
SQL> startupSpfile tidak bisa diedit pakai text editor, kalau tetep dipaksa edit pakai text edior maka spfile akan corrupt sehingga tidak dikenali oleh Oracle. Spfile hanya bisa diubah dengan SQLplus ketika instance naik. Jadi naikkan dulu instance, pakai nomount biar cepet toh kita tidak perlu instance mount atau open, yang penting startup dulu. Kemudian
alter system set db_writer_processes=2 scope=spfile . Perintah ini akan mengedit spfile saja, sementara parameter di instance sendiri masih belum berubah. Setelah itu, baru startupSQL> startup nomount
SQL> alter system set db_writer_processes=2 scope=spfile;
SQL> shutdown immediate
SQL> startup - Kalau instance sedang jalan
Kalau pakai pfile, database matiin dulu, edit pfile, kemudian restart instance
SQL> shutdown immediate
Edit pfile
SQL> startup
Kalau pakai spfile, alter system denganscope=spfile , kemudian restartSQL> alter system set db_writer_processes=2 scope=spfile;
SQL> shutdown immediate
SQL> startup
Catatan
- Perintah
alter system set pga_aggregate_target=100m by default kalau pakai spfile, makaalter system set pga_aggregate_target=100m scope=both
Dan kalau pakai pfile. makaalter system set pga_aggregate_target=100m scope=memory - Kita tidak bisa menjalankan
alter system set db_writer_processes=2 karena ini adalah parameter static. Kalau masih dipaksa akan muncul error:SQL> alter system set db_writer_processes=2;
ERROR at line 1:
ORA-02095: specified initialization parameter cannot be modified
Parameter static hanya bisa diubah di scope=spfileSQL> alter system set db_writer_processes=2 scope=spfile;
System altered. - Kalau dilihat pakai text editor, spfile berisi sama seperti pfile, hanya ada entry yang
"aneh-aneh" (yang bukan merupakan parameter instance) di baris pertama. - Contoh kasus.
Instance saya hanya punya spfile (
spfileDATAKU.ora ) dan tidak punya pfile (initDATAKU.ora )> Suatu ketika saya ingin mengubah parameter static (misalnya control_files). Karena ketidak tahuan, parameter control_files saya edit di spfileDATAKU.ora pakai text editor (notepad).Karena spfile adalah file binary, maka spfile menjadi rusak karena diedit pakai text editor, sebagian akibatnya Oracle tidak bisa membacanya. Karena spfile tidak bisa dibaca, maka Oracle mencari pfile. Karena saya tidak punya pfile sementara spfile-nya corrupt, ya akhirnya saya tidak bisa startup instance
SQL> startup
ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file
‘/mnt01/oracle/10.2.0.3/dbs/initDATAKU.ora’Waduh… gimana ini?!! Solusinya, buat pfile
initDATAKU.ora yang isinya sama persis denganspfileDATAKU.ora , dengan catatan: jangan ikut sertakan entryspfileDATAKU.ora yanganeh-aneh di baris pertama itu.Untuk melihat isi spfile spfileDATAKU.ora, di unix gunakan perintah
more . Di Windows, gunakanwordpad ; kalau pakainotepad biasanya tampilannya amburadul.
Rabu, 01 Juli 2009
ENTITY RELATIONSHIP DIAGRAM (ERD)
1. ENTITY
Entity adalah obyek yang dapat dibedakan dalam dunia nyata
Entity set adalah kumpulan dari entity yang sejenis
2. ATRIBUT
Atribut adalah karakteristik dari entity atau relationship, yang menyediakan
penjelasan detail tentang entity atau relationship tersebut.
3. RELATIONSHIP
Relationship adalah hubungan yang terjadi antara satu atau lebih entity.
4. CARDINALITY RATIO CONSTRAINT
Menjelaskan batasan jumlah keterhubungan satu entity dengan entity lainnya.
Jenis Cardinality Ratio :
1:1
5. PARTICIPATION CONSTRAINT
Menjelaskan apakah keberadaan suatu entity tergantung pada hubungannya dengan entity lain .
Terdapat 2 macam Participation Constraint :
Total Participation
Keberadaan suatu entity tergantung pada hubungannya dengan entity lain.
Partial Participation
Keberadaan suatu entity tidak tergantung pada hubungannya dengan entity lain.
Entitas Lemah/Kuat
Entitas Kuat : Entitas yang memiliki atribut kunci (Key)
Entitas Lemah : Entitas yang biasanya berasal dari atribut multivalue pada entitas lain.
Sabtu, 31 Januari 2009
Perancangan Database (Normalisasi)
Ada beberapa bentuk dlm normalisasi, yaitu Unnormalized Form, First Normal Form(1NF), Second Normal Form(2NF), Third Normal Form(3NF) dan Boyce-Codd Normal Form(BNF). Disini saya akan memberi contoh bentuk2 normalisasi pada suatu tabel.
Bentuk Unnormalized Form
Value pada atribut kd_matkul lebih dari 1, itulah mengapa masih disebut Unnormalized Form
Bentuk 1NF

Value pada masing2 atribut hanya satu
Bentuk 2NF
Memiliki ketergantungan fungsional
a.Tabel mhs1
Pada bentuk 1NF,masih terdapat ketidaktergantungan thd beberapa atribut(misal: ttl tidak bergantung pada kd_matkul), sehingga tabel di pecah menjadi 3 bagian agar tabel2 tsb dpt memiliki ketergantungan thd atribut2nya(misal: npm bergantung pada nama_mhs, ttl).
Bentuk 3NF
Tabel mhs1 dan mhs2 sudah memenuhi kriteria bentuk 3NF, namun tidak untuk tabel mhs3. Karena bila kita ingin merubah value bobot dari nilai, maka kita akan melakukan perubahan pada banyak record/baris yang lainnya. Sehingga pada bentuk 3NF, tabel mhs3 dapat dipecah lagi menjadi 2 tabel agar memenuhi kriteria bentuk 3NF.
a. Tabel mhs3a
Bentuk Boyce-Codd Normal Form
Dalam kasus ini,sebenarnya pada bentuk 3nf pun sudah memenuhi kriteria sebagai tabel relasional yang dapat diimplementasikan pada RDBMS, tidak harus dalam bentuk BNF. Jadi bentuk BNF pun tidak mutlak dijadikan sebagai bentuk dalam RDBMS.
Bentuk BNF memiliki syarat harus memenuhi syarat Ketergantungan Fungsional dan Ketergantungan Transitif







