[Seri Oracle 11g] Menjalankan fitur Oracle Enterprise Manager (OEM) di Oracle 11g

Fitur Oracle Enterprise Manager (OEM) digunakan dalam rangka mempermudah kerja SYS Administrator dalam mengelola dan memonitoring kinerja databasenya.

Enterprise Manager yang disediakan berbasis web based console.
Untuk mengaktifkannya, perhatikan langkah berikut ini :

1. Asumsi bahwa kita telah menerapkan konfigurasi listener dan membuat instance dengan DBCA
2. Cek status enterprise manager melalui console

emctl status dbconsole

Jika menemukan pesan error seperti ini “Environment variable ORACLE_UNQNAME not defined. Please set ORACLE_UNQNAME to database unique name”, itu artinya anda tinggal selangkah lagi mengelola OEM Anda, yakni dengan mengupdate konfigurasi environment.

3. Untuk selanjutnya , lakukan setting variable environment (nama lokal komputer, database, dan sid) dengan mengetik perintah berikut melalui console

set ORACLE_HOSTNAME=Arfadia-PC
set ORACLE_UNQNAME=databaseku
set ORACLE_SID=databaseku

4. Jika sudah melakukan konfigurasi tersebut, cek status nya kembali menggunakan perintah

emctl status dbconsole

5. Jika muncul pesan seperti gambar dibawah,

berarti konfigurasi yang kita buat sudah sesuai, maka kita tinggal menjalankan control OEM degan perintah

emctl start

perlu diperhatikan bahwa pada pesan gambar diatas terdapat alamat URL dari Oracle Enterprise Manager (*saya marking), yang bisa kita copy paste ke browser kita. Sebagai contoh berikut adalah URL yang saya dapatkan ketika selesai melakukan konfigurasi

https://[nama_lokal_pc]:[port]/em/console

atau dalam hal ini alamat URL saya adalah

https://arfadia-pc:1158/em/console/logon/logon

selanjutnya kita tinggal memasukkan username dan password, jika sudah maka kita akan di redirect masuk ke halaman dashboard dari Oracle Enterprise Manager, yang lain waktu akan saya update tutorialnya.

Catatan Penting :

1. Muncul Pesan Error “OC4J Configuration issue OC4J_DBConsole_<HOSTNAME>_<DBNAME> not found
Jika kita melakukan konfigurasi variable dengan nilai yang salah, maka pesan error inilah yang akan muncul, artinya kita salah menginput (nama lokal/PC atau database atau SID nya).

Terus bagaimana kita mengetahui nilai variable yg benar?
Okey, bukalah path yang dimaksud, dalam contoh saya berada di path “C:\app\Arfadia\product\11.2.0\dbhome_1\oc4j\j2ee“, kemudian cek di baris folder ke 4 ada folder yang penamaan nya berdasarkan dengan nama lokal PC dan database yang benar, dengan structure sbb :

OC4J_DBConsole_[nama_lokal_pc]_[nama_database]

di contoh saya path nya adalah sbb :

OC4J_DBConsole_Arfadia-PC_databaseku


Silakan kita sesuaikan kembali nilai variable environtment tsb dengan nama PC kita dan database yang telah kita buat sebelumnya.

2. Mengetahui port yang digunakan pada alamat URL OEM

Untuk mengetahuinya cukup mudah kita cukup buka

%YOUR_ORACLE_PATH%\dbhome_1\install\portlist.ini

[Seri Oracle 11g] Membuat instance database dengan DBCA

Untuk membuat instance database di oracle 11g, kita bisa memanfaatkan fitur Database Configure Assistant (DBCA) pada oracle.

Untuk mengaktifkan layanan ini pada windows kita bisa buka CMD (as administrator), ketik “dbca”
atau buka melalui Start > All programs > Oracle – OraDb11g_home1 > Configuration and Migration Tools > Database Configure Assistant.

Untuk langkah-langkahnya silakan disimak pada gambar dibawah.














[Seri Oracle 11g] Mengaktifkan Service Listener di Oracle Enterprise 11g

Setelah selesai menginstall oracle enterprise 11g kita harus mengaktifkan listener, yakni sebuah service yang diperlukan bagi oracle untuk dapat diakses melalui sebuah network/jaringan.
Di sisi server oracle lah, biasanya dipergunakan Listener tersebut, sedangkan di sisi client menggunakan Local Net Service Name (TNS Names).

Jika listener belum di konfigurasi, maka ketika kita akan membuat database, maka biasanya akan muncul pesan error seperti ini

Configuring database with Database Control requires a listener to be configured in the current Oracle home. You need to run Netca to configure a listener before you can proceed. Otherwise you may choose to continue without Database Control configuration.

Okay, untuk menjalankan service tersebut, buka cmd > ketik netca, hingga muncul gambar sebagai berikut :

ketik next , kemudian pilih Add > Tentukan Nama Listener ex: LISTENER > kemudian setup protocol > dan terakhir set portnya ( saya biasanya menggunakan default port 1521

Jika sudah langkah selanjutnya adalah menjalankan service LISTENER yang telah dibuat tersebut dengan menjalankan command “lsnrctl start LISTENER” pada cmd, jika sudah benar maka listener telah diaktifkan seperti gambar dibawah ini

atau dapat dilihat servicenya melalui Service Windows 7 , Start > Programs > Administrative Tools > Services

Oh iya, berhubung listener adalah sebuah service, maka kita perlu setiap kali menyalakan service, maka dari itu pada windows 7 service Listener ini bisa diset Automatic pada startupnya, yang berarti Service akan otomatis berjalan ketika komputer menyala, jadi tidak perlu melakukan startup manual lagi hehe..

dan untuk menutup service bisa menggunakan perintah “lsnrctl stop LISTENER

Pesan Error TNS-00530 protocol adapter error

Sebagai tambahan, jika anda menemukan error ini ketika menjalankan service listener secara manual, tidak perlu khawatir, itu artinya kita hanya perlu menjalankan CMD sebagai administrator, lalu kita lanjutkan kembali.

Demikian sedikit informasi soal Listener di Oracle 11g Enterprise

contoh trigger SQL

Membuat Trigger sederhana di MySQL

Trigger merupakan suatu fasilitas yang disediakan pada MySQL untuk melakukan sebuah aksi Data Manipulation Language (DML) secara otomatis setelah action tertentu , dalam hal ini (before/after).

Untuk menjalankan sebuah trigger, pertama kali kita harus mengetahui alur dan event yang akan dijalankan oleh sebuah trigger. Saya akan mempraktekan secara sederhana pada 2 buah table, yakni table buku dan table log, dimana setelah kita menginput data buku , secara otomatis data trigger akan menginput pula data log.

Berikut contoh table buku dan log nya :

Alurnya, jika kita menginput 1 row buku, maka secara otomatis trigger akan menjalankan fungsi insert 1 row pula pada table log. Untuk itu kita buat dulu triggernya sebagai berikut :

contoh trigger SQL

Fungsi CREATE TRIGGER  [nama trigger] akan membuat trigger baru
AFTER INSERT ON [table] menandakan trigger dibuat setelah menginput data di table buku
FOR EACH ROW menandakan dimulainya perintah baru
BEGIN-END, menandakan area baris perintah yang akan ditulis (bisa lebih dari 1 perintah)

DELIMITER, berfungsi untuk membari tahu kepada MySQL, delimiter yang digunakan, secara default biasanya menggunaan semicolon (;) tapi diatas kita menggunakan $$

oke selajutnya kia tinggal jalankan query tersebut hingga muncul pesan berhasil sbb :

trigger mysql success

Jika sudah berhasil , maka kita tinggal mencoba, menginput 1 data pada table buku, kemudian kita mengecek data pada table log,maka secara otomatis data pada table log juga akan terisi.

Oh iya untuk mencoba trigger secara GUI, kita bisa juga membuat trigger pada PHPMyAdmin pada menu more > triggers, seperti gambar dbawah ini :

Demikian penjelasan tentang trigger, selamat mencoba

By : Adji Hendrawan
1 hari menjelang lebaran 😉

 

Tipe data dan table MySQL

Tipe-tipe data pada MySQL

Hai ketemu lg hehe..

Kali ini saya ingin menyampaikan informasi dasar kembali tentang tipe-tipe data yang terdapat pada MySQL. Beberapa tipe data ini biasanya yang paling sering digunakan dalam membuat database.

Kita bebas menentukan tipe data yang akan digunakan , dengan disesuaikan kebutuhan karakteristik datanya. Beberapa tipe data umum yang sering digunakan yaitu :

  1. NUMERIK (INT)

Tipe data ini biasanya digunakan untuk menyimpan angka numerik. Bilangan numeriknya bernilai bilangan bulat positif atau negatif. Nilai INT yakni -2.147.483.648 s/d 2.147.483.647 atau 4 byte (32 bit). Turunan dari INT antara lain :

  • TINYINT, Jangkauan -128 s/d 127 dan bernilai 1 Byte (8 bit).
  • SMALLINT, jangkauan -32.768 s/d 32.767 dan bernilai 2 Byte (16 bit).
  • MEDIUMINT, jangkauan -8.388.608 s/d 8.388.607 dan bernilai 3 byte (24 bit).
  • BIGINT, jangkauan ± 9,22 x 1018 dan bernilai 8 byte (64 bit).
  • FLOAT, untuk menyimpan bilangan pecahan negatif  presisi tunggal dan positif , bernilai 4 byte (32bit).
  • DOUBLE, untuk menyimpan bilangan pecahan negatif  presisi ganda  dan positif , bernilai 8 byte (64bit).
  • DECIMAL, untuk menyimpan bilangan pecahan positif dan negatif bernilai 8 byte (64 bit)

2. TEKS (STRING)

Tipe data ini digunakan untuk menyimpan data teks/string pada database MySQL. Beberapa tipe data yang sering digunakan antara lain :

  • CHAR, untuk menyimpan data string berukuran tetap, yakni 0-255 karakter
  • VARCHAR, untuk menyimpan data string berukuran dinamis sesuai jumlah karakter 0 – 65.535
  • TINYTEXT, menyimpan data teks dalam ukuran yang kecil yakni 0 – 255 karakter
  • TEXT, menyimpan data teks s/d 65.535  karakter
  • MEDIUMTEXT, menyimpan data teks berukuran medium 0 s/d 224 – 1 karakter
  • LONGTEXT, menyimpan data teks berukuran panjang 0 s/d 232 – 1 karakter

3. DATE TIME

    Tipe data ini digunakan untuk menyimpan data tanggal dan waktu. Biasanya pada tipe data ini memiliki model waktu yang berbeda-beda sesuai kebutuhan. Beberapa tipe data ini yang sering digunakan antara lain :

  • DATE, menyimpan data tanggal antara 1000-01-01 s/d 9999-12-31 (YYYY-MM-DD) dan berukuran 3 byte.
  • TIME, menyimpan data waktu -838:59:59 s/d +838:59:59 (HH:MM:SS) berukuran 3 byte
  • DATETIME, menyimpan data gabungan tanggal beserta waktu, yakni 1000-01-01 00:00:00′ s/d ‘9999-12-31 23:59:59’ dan bernilai 8 byte.
  • YEAR, digunakan untuk menyimpan data tahun, jangkauan 1900 s/d 2155 bernilai 1 byte.

4. BLOB

Merupakan singkatan dari Binary Large Object. Digunakan untuk menyimpan data biner pada database.

5. ENUM

Singkatan dari Enumerasi, tipe data ini khusus digunakan untuk menyimpan beberapa kumpulan data. Saya biasanya menggunakan untuk pilihan  beberapa data (option) pada aplikasi web. Misalnya data agama yang bersifat tetap di Indonesia : ‘Islam’, ‘Kristen’, ‘Katolik’, ‘Hindu’ , ‘Budha’

6. SET

Digunakan untuk mengisi data berupa himpunan data.

 

Selain tipe-tipe data, ada pula yang dimaksud dengan tipe table database ,  yakni tipe yang digunakan pada table. Pada MySQL jika kita tidak men setting tipe table secara manual, maka MySQL akan mengeset nya secara otomatis di konfigurasi pada variabel default-table-type. Berikut beberapa tipe table MySQL yang umum digunakan :

  1. MyISAM, merupakan tipe table yang sederhana, stabil, dan mudah digunakan, sehingga menjadi default pada MySQL. Tipe table ini mampu mengcover semua tipe data mysql yang ada. hanya saja belum mendukung relasi table.
  2. InnoDB, merupakan tipe table yang mendukung transaksi dan hubungan / relasi antar table
  3. HEAP, merupakan tipe table temporary yang disediakan untuk menyimpan data sementara pada proses pengelolaan data di MySQL

 

Demikian beberapa tipe data/field dan table yang umum digunakan pada MySQL, semoga mengingatkan kita kembali dalam merancang database dengan baik ya!

By : Adji Hendrawan
Pondok Aren, 23 Juni 2017, 2 hari menjelang lebaran 🙂

 

 

Apa itu Normalisasi Database ?

Normalisasi database bagi saya merupakan suatu bentuk pengaplikasian / cara dalam memetakan suatu informasi data menjadi beberapa bagian / entitas agar menjadi lebih mudah dalam pengelolaan data.

Hubungan tiap entitas tersebutlah yang dimaksud sebagai sebuah normalisasi, biasanya normalisasi database terbagi menjadi beberapa tingkatan bergantung dengan seberapa kompleksnya data tersebut, seperti bentuk normalisasi pertama (1NF) , normalisasi kedua (2NF), 3NF dan BCNF. Sebelum melangkah lebih jauh, saya ingin menjelaskan bahwa dalam konteks RDBMS istilah-istilah normalisasi tersebut merujuk kepada:

  • Entitas , yakni sebuah table, hubungan antar entitas berarti hubungan antara tiap table
  • Atribut, yakni kelengkapan sebuah table, dalam database hal ini berarti adalah sebuah field yang tentu saja beragam
  • Identifier, yakni atribut pengidentifikasian setiap entitas, dalam Bahasa mudahnya kita mengenalnya sebagai ID
  • Relasi/Hubungan tiap table yang menjadi sebuah nilai foreign key

Oke langsung saja pada prakteknya (dalam hal ini saya menggunakan database MySQL) kita memiliki sebuah data sebagai berikut :

Data diatas masih berupa bentuk Normal Data, yang tentunya dapat membuat fungsi DML (Data Manipulation Language) tidak berjalan sempurna, karena adanya redudansi/duplikasi data. Sehingga misalkan saya ingin mengubah salah satu buku berdasakan jenis buku IT, maka ada 2 row yang akan terupdate.

Bentuk 1NF (First Normal Form)

Sehingga kita perlu mengubahnya dalam bentuk 1NF (First Normal Form), yakni memetakan data redudansi tersebut menjadi beberapa entitas. Berikut hasil 1NF nya :

Table Normalisasi Database - 1NF

 

Dapat kita lihat data normal form sebelumnya dapat kita pecah menjadi 3 entitas baru beserta atributnya. Dan perlu diperhatikan bahwa setiap entitas memiliki identifier / ID masing, masing sehingga menghindarkan lagi terjadinya redudancy data.

Bentuk 2NF (Second Normal Form)

Jika data sudah bisa dibentuk dalam bentuk 1NF, jika kita perlu melakukan hubungan/relasi antara entitas tersebut, (pada contoh nyata : membuat table transaksi untuk menyimpan order) nah bentuk 2NF ini sudah mengakomodir hal tersebut berdasarkan identifier dari masing-masing entitas. Lihat table 2NF nya sebagai berikut :

contoh Table Normalisasi database 2NF

Bentuk 3NF (Third Normal Form)

Bentuk ini adalah pengembangan dari 2NF, Hal ini yakni dengan membuang field/atribut yang tidak bergantung pada identifier / Primary key ID. Itu artinya kita masih bisa menambahkan field jika itu sesuai/berhubungan dengan primary key  Misalkan sebagai berikut :

Demikian penjelasan singkat tentang normalisasi sampai bentuk 3 tingkat, insya allah di trit saya berikutnya saya akan menjelaskan lebih detail. Okay

by: adji hendrawan