(Mengelola Data).pdf

28
Oleh: Arif Basofi Mengelola Data

Transcript of (Mengelola Data).pdf

Page 1: (Mengelola Data).pdf

Oleh: Arif Basofi

Mengelola Data

Page 2: (Mengelola Data).pdf

9-2

Tujuan

• Memanipulasi data menggunakan SQL• Menggunakan data Pump untuk mengeluarkan

(export) dan mengambil (import) data• Memanggil data dengan SQL Loader

Page 3: (Mengelola Data).pdf

9-3

Memanipulasi data menggunakan SQL

Page 4: (Mengelola Data).pdf

9-4

Perintah INSERT

• Membuat satu baris dalam satu waktu• Menyisipkan banyak baris dari tabel lain

Page 5: (Mengelola Data).pdf

9-5

Perintah UPDATE

Digunakan untuk merubah nol atau lebih baris dari suatu tabel

Page 6: (Mengelola Data).pdf

9-6

Perintah DELETE

Digunakan untuk menghapus nol atau lebih baris dalam suatu tabel

Page 7: (Mengelola Data).pdf

9-7

Perintah MERGE

• Digunakan untuk menggabungkan data menjadi satu table, yang mencakup perintah INSERT atau UPDATE dalam satu perintah.

• Penggabungan dilakukan dgn syarat:– jika data sesuai maka di-UPDATE, dan – jika data tidak sesuai maka di-INSERT.

Page 8: (Mengelola Data).pdf

9-8

Perintah COMMIT dan ROLLBACK

Digunakan untuk menyelesaikan transaksi:• Commit : Membuat perubahan menjadi permanen• Rollback : Mengembalikan apa yang telah dirubah

Page 9: (Mengelola Data).pdf

9-9

Integrity Constraints dan DML

Page 10: (Mengelola Data).pdf

9-10

Export Data dengan Data Pump• Manfaat Oracle Data Pump: memiliki kecepatan tinggi dalam

mentransfer data dari satu database ke database yang lain. • Misal: mengekspor sebuah tabel yg terhubung dgn index dari satu

database dan impor tabel ke dalam database lain.Caranya:• Pada halaman maintenance klik Export to Files untuk menggunakan

Data Pump menuliskan data ke dalam suatu file.1. Pada halaman pertama, pilih yang ingin di-ekspor, dan masukkan login.2. Jika memilih skema / tabel untuk tipe ekspor, halaman selanjutnya akan

diminta memilih sekelompok skema atau tabel yang ingin anda ekspor.3. Halaman Option adalah langkah selanjutnya, jika anda memilih ekspor

database anda akan menuju halaman ini setelah memilih tipe ekspor.4. Halaman selanjutnya adalah files. Anda gunakan halaman files untuk

merincikan nama direktori dan nama file.5. Halaman selanjutnya adalah Schedule, untuk mengekspor pekerjaan.6. Halaman terakhir adalah Review, untuk menampilkan kode PL/SQL dlm

mengenerate perintah ekspor dgn selection yg dibuat dihalaman sblmnya.• Setelah pekerjaan di submit, klik View Job untuk mengawasi proses

pekerjaan

Page 11: (Mengelola Data).pdf

9-11

Export data dengan Data Pump

Page 12: (Mengelola Data).pdf

9-12

Import data dengan Data Pump• Data Pump Import digunakan untuk memanggil data yg akan diekstrak.• Caranya: pada halaman Maintenance klik Import from Files untuk

menggunakan Data Pump Impor.1. Files : nama file yg akan di impor pada database server. Selanjutnya pilih

satu dari tiga pilihan impor: mengimpor seluruh file, perinci schema, atau perinci tabel. Anda juga bisa memilih menghasilkan file log lalu memasukkan credential dalam field host Username dan Host Password.

2. Select Object : untuk memilih objek khusus yg akan di impor, misal. untuk memilih user yg ingin di impor dari user–user yg ada di list dan memindahkannya ke user list yang dipilih.

3. Re-Mapping : untuk menunjukkan apakah mengimpor masing-masing data user ke dalam skema user yg sama atau skema user yg berbeda sesuai field Source User dan Destination User.

4. Options : untuk mengatur options penggunaan kembali file data, object creation error, dan index yang tidak digunakan.

5. Schedule : utk menjadwalkan prosedur impor sbg job di dalam job system.6. Review : untuk menampilkan kode PL/SQL perintah import yg dibuat.

• Setelah pekerjaan disubmit, klik View Job untuk mengawasi proses dari pekerjaan.

Page 13: (Mengelola Data).pdf

9-13

Import data dengan Data Pump

Page 14: (Mengelola Data).pdf

9-14

Objek DIRECTORY

Page 15: (Mengelola Data).pdf

9-15

SQL*Loader

• SQL Loader adalah tool Oracle untuk me-load data dari flat file (text) ke dalam tabel database Oracle.

• Program (executable) SQL Loader adalah sqlldr, lokasi ada di $ORACLE_HOME/bin.

• SQL Loader sering digunakan untuk mengatasi kendala jaringan. Misalkan perusahaan memiliki kantor cabang yg tidak tersambung scr online dgn pusat; data transaksi biasanya dikirim ke pusat dalam bentuk text file; kemudian di pusat, data tsb di-load ke database menggunakan SQL Loader.

• SQL Loader juga sering digunakan untuk me-load data dari system yang berbeda. Misalkan transaksi yg di-handle oleh database non Oracle, sementara datawarehouse menggunakan Oracle. Nah, data transaksi dari non Oracle ini kemudian di-export ke dalam text file, dan kemudian di-import ke Oracle pakai SQL*Loader.

Page 16: (Mengelola Data).pdf

9-16

SQL*Loader

Page 17: (Mengelola Data).pdf

9-17

SQL*Loader

• SQL*Loader: memanggil data dr file eksternal ke dlm tabel database oracle.

• File – file yang digunakan oleh SQL*Loader antara lain :• Input Data Files : SQL*Loader membaca data dari satu atau lebih file

(atau OS sama dengan files) dispesifikasikan kedalam file kontrol. Dari SQL*Loader, data dalam data file diatur sbg record. Format record bisa di spesifikasikan ke dalam file kontrol dengan parameter INFILE. Jika tidak ada format record yg dispesifikasikan, secara default adalah stream format record.

• Control File : file teks yang ditulis dlm bahasa yang dimengerti oleh SQL*Loader. File kontrol memberitahukan kepada SQL*Loader: dimana menemukan data, bagaimana untuk parse dan interpretasi data, dimana untuk menyisipkan data, dll.

• Log File : ketika SQL*Loader memulai eksekusi, akan dibuat file log. Jika tidak bisa membuat file log maka eksekusi akan dibatalkan. File log terdiri dari detail ringkasan dari load, termasuk deskripsi dari beberapa eror yang terjadi selama proses load.

Page 18: (Mengelola Data).pdf

9-18

SQL*Loader

• Bad Files : Bad file terdiri dari record yang ditolak, baik oleh SQL*Loader atau database oracle. File data yang ditolak oleh SQL*Loader ketika format input tidak benar. Setelah record file data diterima untuk proses SQL*Loader, akan dikirim ke database oracle untuk proses insert kedalam tabel sebagai baris. Jika database oracle menyatakan bahwa baris tersebut benar,maka baris tsb akan di masukkan ke dalam tabel. Jika database oracle menyatakan baris tsb salah, maka record ditolak dan SQL*Loader meletakkan ke bad file.

• Discard file : File ini hanya dibuat ketika dibutuhkan, dan hanya jika anda mempunyai spesifikasi dari discard file yang seharusnya ada. Discard file terdiri dari record yang difilter diluar load karena mereka tidak sesuai dengan kriteria record-selection yang dispesifikasikan didalam file kontrol.

Page 19: (Mengelola Data).pdf

9-19

File kontrol untuk SQL*Loader

File kontrol untuk SQL*Loader berisi:• Dimana menemukan data yang dipanggil• Format data• Detail konfigurasi dari :

• Pengelolaan memory• Penolakan record• Penolakan Detail penanganan isi

• Bagaimana memanipulasi data

Page 20: (Mengelola Data).pdf

9-20

Sintak file kontrol

• Sintaknya adalah format bebas• Sintak tidak case sensitif• Komentar diberikan dari dua hypens (--) yang ditandai

diawal komentar sampai akhir baris• Kata kunci CONSTANT sudah dipesan tidak boleh

digunakan

Page 21: (Mengelola Data).pdf

9-21

Input Data dan Data Files

• SQL*Loader membaca data dari satu atau lebih file yang disebutkan di file kontrol

• Dari pandangan SQL*Loader, data dalam data file dikelola sebagai record

• Data file berupa salah satu dari tiga format berikut:- Format Fixed-record- Format Variable-record- Format Stream-record

Page 22: (Mengelola Data).pdf

9-22

Metode Loading

Page 23: (Mengelola Data).pdf

9-23

Membandingkan Conventional dan Direct Path Loads

Conventional Load Direct Path LoadMenggunakan COMMIT untuk membuat perubahan jadi permanent

Menggunakan penyimpanan data

Entry di Redo Log selalu dibuat Redo dibuat hanya pada kondisi2 tertentu

Semua constraints di jalankan Hanya menjalankan constraints PRIMARY KEY, UNIQUE, dan NOT NULL

Trigger INSERT di-picu Trigger INSERT tidak dipicuDapat digunakan untuk memasukkan data pada table yang dicluster

Tidak dapat digunakan untuk memasukkan data pada table yang di cluster

User yang lain dapat membuat perubahan pada table

User lain tidak dapat membuat perubahan pada table

Page 24: (Mengelola Data).pdf

9-24

Memasukkan data dengan SQL*Loader

Page 25: (Mengelola Data).pdf

9-25

Latihan

• Lakukan operasi DML pada table yang anda buat sebelumnya

• Lakukan operasi export-import data

Page 26: (Mengelola Data).pdf

9-26

Latihan SQl*Loader

1. Buat file penjualan.dat spt dibawah:

2. Load file penjualan.dat tsb ke dalam tabel penjualan:

3. Langkah pertama, buat control file yang berisi parameter-parameter untuk SQL Loader. Misal. beri nama penjualan.ctl

3286;23-DEC-08;SEMARANG3287;24-DEC-08;SURABAYA3288;25-DEC-08;MAKASAR3289;26-DEC-08;MEDAN3290;26-DEC-08;MAGELANG TENGAH

CREATE TABLE penjualan( no_invoice NUMBER,tgl_jual DATE,area varchar2(10));

load dataAPPENDinto table PENJUALANfields terminated by ";"TRAILING NULLCOLS(no_invoice,tgl_jual,area)

Page 27: (Mengelola Data).pdf

9-27

Latihan SQl*Loader…

4. Load data di penjualan.dat ke tabel PENJUALAN, dgn perintah berikut:

Parameter untuk sqlldr adalah:• USERID: user dan password ke database Oracle • CONTROL: control file yang akan digunakan • DATA: file (data) yang akan di-load • LOG: file untuk menyimpan log dari proses loader • BAD: file untuk menyimpan data yang tidak diproses

5. Lihat log-nya di file penjualan.log. Dan ternyata ada error:

sqlldr USERID=test/test CONTROL=penjualan.ctl, DATA=penjualan.dat, LOG=penjualan.log, BAD=penjualan.bad

Record 5: Rejected - Error on table PENJUALAN, column AREA.ORA-12899: value too large for column "TEST"."PENJUALAN"."AREA" (actual: 15, maximum: 10)

Page 28: (Mengelola Data).pdf

9-28

Latihan SQl*Loader...

6. Record (baris) ke-lima tidak diproses karena lebar kolom AREA hanya 10 karakter, sementara nilai yang dimasukkan panjangnya 15 karakter (MAGELANG TENGAH). Record yang tidak diposes ini ditaruh di file penjualan.bad. Sekarang coba query ke tabel PENJUALAN, data yang masuk hanya 4 record.SQL> select * from penjualan;

NO_INVOICE TGL_JUAL AREA---------- --------- ----------

3286 23-DEC-08 SEMARANG3287 24-DEC-08 SURABAYA3288 25-DEC-08 MAKASAR3289 26-DEC-08 MEDAN