Oracle Database
Nama Kelompok :
Novansyah Ifqiawan
[ 13622058 ]
Hendry Hermawan
[ 13622060 ]
BAB I
Pendahuluan
DBMS merupakan software yang digunakan untuk membangun suatu
sistem basis data yang mendekati sempurna. DBMS harus dapat mengatur
basis data tersebut sehingga dapat tersimpan dengan baik tanpa
menimbulkan kekacauan, dapat dipakai oleh banyak user sesuai dengan
kepentingan masing-masing, melindungi dari gangguan pihak-pihak yang
tidak berwenang.
Banyak program basis data yang sudah sering kita gunakan, misalnya
FoxPro, Clipper, Access, dan dBASE. Itu merupakan contoh dari DBMS yang
digunakan pada PC dalam skala yang relatif kecil. Dalam skala yang lebih
besar, dikenal beberapa DBMS yang sering digunakan, antara lain Sybase,
DB2, Informix, Oracle, dan lain-lain.
Oracle mungkin salah satu andalan bagi seorang DBA dalam
pekerjaannya dan disamping itu dapat dikatakan bahwa Oracle begitu
mendominasi pasar database server, hal ini mungkin didasarkan kepada
banyak perusahaan berskala besar mengunakan Oracle dalam mengelola
datanya. Berikut tulisan mengenai sekilas perkembangan Oracle yang di sari
dari berbagai sumber.
Perusahaan Oracle didirikan pada tahun 1977 oleh tiga orang
programmer, yakni Bob Miner, Ed Oates dan Larry Ellison yang menjabat
sebagai CEO (Chief Executive Officer). Konon, dari ketiga programmer
tersebut, Larry adalah yang nomor 3 dalam programming. Larry lebih sering
dan lebih senang mengerjakan pemasaran, dan keluar dari kuliah karena
kegemarannya di Oracle. Perusahaan ini berkonsentrasi pada pembuatan
database server di mainframe. Kisah sukses Oracle Corporation terkait
dengan sejarah dan teori database relasional. Teori database relasional
diperkenalkan hampir secara simultan oleh Edgar F. Codd (dalam artikelnya
yang terkenal Large Shared Data Banks) pada tahun 1969. IBM adalah
perusahaan pertama yang menerapkan model relasional ini dalam bahasa
SQL, dengan produknya DB2. Sayangnya IBM ragu-ragu akan keampuhan
SQL dan model relational (nantinya berpengaruh pada ketertinggalan IBM di
pasar database server sistem operasi Unix dan Windows).
Larry melihat perkembangan teori model relational dan implementasi
database relational dalam DB2. Ia yakin bahwa model relational adalah way
of the future dan memutuskan untuk mengimplementasikan model
relational di produk Oracle. Sebelumnya produk database Oracle memakai
model non-relational (tidak jelas apakah model jaringan atau pohon;
bahasanya COBOL untuk komputer mainframe). Langkah Larry terbukti
benar, dan Oracle menjadi pesaing kuat bagi IBM dalam pasar database
server di mainframe, terutama database bermodel relational.
BAB II
Landasan Teori
A. Oracle Database
Oracle Database adalah basis data relasional yang terdiri dari
kumpulan data dalam suatu sistem manajemen basis data RDBMS.
Perusahaan perangkat lunak Oracle memasarkan jenis basis data ini untuk
bermacam-macam aplikasi yang bisa berjalan pada banyak jenis dan merk
perangkat keras komputer (platform).
Perusahaan perangkat lunak Oracle memasarkan jenis basis data ini
untuk bermacam-macam aplikasi yang bisa berjalan pada banyak jenis dan
merk perangkat keras komputer (platform). Oracle menggunakan SQL
(Structured query language) sebagai bahasa perantara antara user dan
database. Kemudian Oracle Corp mengembangkan sebuah bahasa procedural
yang mereka sebut sebagai PL/SQL. Dengan menggunakan kedua bahasa ini,
seorang user dapat mengoptimalkan penggunaan database Oracle.
manajemen basis data ini juga dapat bekerja lebih cepat dbandingkan
sistem DBMS yang lainnya.
4. Memiliki kemampuan untuk melakukan cluster server
Merupakan keunggulan dari Database Oracle, yang mungkin
tidak dimiliki oleh vendor DBMS lainnya. Database Oracle mampu
untuk mengimplementasikan manaemen basis data ynag bersumber
dari multi server, atau yang dalam istilah Database Oracle disebut
sebagai Technology Cluster Server. Hal ini memungkinkan Database
Oracle dapat melakukan manajemen data dengan menggunakan lebih
dari 1 server. Apabila suatu instansi memiliki 50 server, maka
Database Oracle mampu untuk mengolah seluruh data yang dimiliki
oleh ke-50 server tersebut secara aktif, tanp ada gangguan sama
sekali.
5. Dapat melakukan management User
Database Oracle juga memilikki kelebihan lainnya, yaitu mampu
untuk melakukan management user. Hal ini berkaitan dengan
pembatasan hak yang dimiliki oleh user, jadi anda dapat melakukan
hal tersebut dengan menggunakan Database Oracle.
6. Multi-Platform
Multi platform, berarti Database Oracle bisa digunakan pada
berbagai macam platform. Berbeda dengan Microsoft SQL Server yang
hanya bisa digunakan pada SIstem Operasi Windows saja, maka
Database Oracle bisa beroperasi pada SIstem Operasi lainnya, seperti
Mac, dan juga Linux.
7. Pemrosesan data yang cepat
Keunggulan utama dari sistem basis data yang diberikan oleh
Database Oracle adalah pemosesan dari pengolahan data yang cepat.
Hal ini akan membantu meningkatkan efisiensi waktu dari suatu
instansi, dan membuat banyak biaya penyelenggaraan IT menjadi lebih
kecil.
8. Memiliki kemampuan flashback
Flashback merupakan kemampuan untuk melakukan restore
ulang pada suatu database yang tidak sengaja mengalami error,
seperti mengalami mati listrik. Ketika anda melakukan manajemen
database, pekerjaan yang sudah anda lakukan akan tersimpan
otomatis, sehingga ketika mengalami masalah dengan komputer
ataupun mengalami mati listrik, pekerjaan anad bisa di-restore kembali
dengan menggunaan fitur flashback ini.
F. Kekurangan Database Oracle
Meskipun memiliki banyak kelebihan dibandingkan dengan software
DBMS lainnya, namun ternyata Database Oracle juga memiliki beberapa
kekurangan. Berikut ini adalah beberapa kekurangan dari Database Oracle :
1. Harga software DBMS tinggi dan mahal
Kekurangan pertama dari Database Oracle adalah masalah
harga jual. Apabila dibandingkan degnan software DBMS yang lainnya,
Database Oracle merupakan software DBMS dengan nilai yang paling
tinggi dan paling mahal. Hal in itentu saja akan mubazir apabila anda
UNIVERSITAS MUHAMMADIYAH GRESIK TEKNIK INFORMATIKA
BAB III
Pembahasan
SUBJECTS OF ORACLE DATABASE
A. Introduction
1. Variabel
Variabel adalah suatu wadah yang digunakan untuk menampung
nilai atau informasi. Nilai variabel dapat berubah-ubah ketika
program dijalankan. dengan kata lain variabel adalah suatu memori
dengan identitas tertentu untuk menampung nilai atau informasi
baik yang tetap maupun yang berubah ubah.
Mendeklarasikan Variabel
Prosedur penerapan variabel dalam program utama
haruslah
dideklarasikan
terlebih
dahulu,
pengertian
Example :
Void main(){
Int a=4;
cout << a= <
getch();
2. Konstanta
Adalah suatu identitas memori untuk menampung nilai atau
informasi yang bersifat tetap dan tidak dapat diubah ubah
Example :
Void main(){
const a = 3.14;
cout << a= <
getch();
}
Example Program :
Maka akan menampilkan Isi duaphi = 6.28
Pembuatan variabel tidak selalu di bagian awal
program, tapi boleh dimana saja sebelum dipanggil atau
dioperasikan.
Example Program :
Konstanta
Berbeda dengan variabel, konstanta merupakan wadah
yang
dapat
menyimpan
nilai
tetap
selama
eksekusi
harus
menggunakan
huruf
capital.
C++
1
0
const
adalah
kecepatan
kompilasi,
karena
sebelum
(oleh
sebab
itu
mengapa
dikatakan
prepocessor
1
1
B. Cursor
Blok PL/SQL tidak memungkinkan untuk menangani query
dengan keluaran lebih dari satu baris(record) karena variabel
penampungnya
harus
mempunyai
sebuah
nilai.
Karena
itu,
yang
terdapat
di
dalam
blok
PL/SQL
dan
harus
menghasilkan satu baris record. Jika hasil cursor implisit ini lebih
dari satu baris atau tidak menghasilkan satu baris pun, maka
Oracle akan mengeluarkan pesan kesalahan. Klausa into pada
cursor implisit dipakai untuk menugaskan nilai hasil proses select
ke dalam variabel-variabel yang dipilih.
Atribut
Keterangan
TRUE jika cursor
SQL%FOUND
sebuah
baris
menghasilkan
dari
queri
yang
baris
yang
telah
diambil/ditangkap
(FETCH)
UNIVERSITAS
MUHAMMADIYAH
GRESIK TEKNIK INFORMATIKA
Mengembalikan
SQL%ISOPEN cursor
masih
terbuka (OPEN)
nilai
dalam
TRUE
jika
keadaan
1
2
Contoh :
Cursor eksplisit
Tidak seperti
cursor
implisit,
cursor
eksplisit
harus
nama_cursor
INTO
<variable1,variable2,..>;
1
3
CLOSE nama_cursor;
status
cursor.
Setiap
atribut
dalam
jika
cursor
menghasilkan sebuah
baris dari queri yang
dideklarasikan.
nama_cursor
Sebaliknya FALSE.
Kebalikan
dari
%NOTFOUND
nama_cursor
%FOUND
Jumlah baris yang di-
%ROWCOUNT
fetch
atau
diambil
sebuah
cara
untuk
mengambil
isi
cursor
secara
1
4
FOR_LOOP
tidak
perlu
dideklarasikan
terlebih dahulu
Sintaks:
DECLARE
CURSOR nama_cursor IS ekspresi-query
BEGIN
FOR nama_record IN nama_cursor LOOP
-- nama_record tidak perlu dideklarasikan
...
END LOOP
END;
C. Execption Handling
Setiap kesalahan (error) atau peringatan (warning) yang muncul
karena suatu perintah disebut dengan exception. Bagian exception
ini ditujukan untuk menangani exception tersebut. Bagian ini
disebut juga exception handler, sedangkan mekanisme penanganan
exception itu disebut exception handling. Jika tidak terdapat
EXCEPTION dalam sebuah blok, maka semua proses akan terhenti
dengan tanpa adanya penanganan kesalahan. Sebaliknya jika
terdapat exception section, maka semua perintah berikutnya dalam
bagian executable section tidak dieksekusi dan proses akan
berpindah ke bagian exception handler.
Cara Kerja Exception
1
5
EXCEPTION
WHEN exception1 [OR exception2 [OR ...]]
THEN
Statement-statement
[ WHEN exceptiona [OR exceptionb [OR ...]]
THEN
statement-statement ]
...
[ WHEN OTHERS THEN
statement-statement ]
Keterangan
Misal kurang tanda ; dan dalam
Logic Error
penulisan statement
Loop yang tanpa berhenti, urutan
Compile Error
dari operator
Penggunaan perintah yang salah
yang baru diketahui pada saat di
1
6
compile
Error yang
terjadi
pada
saat
program dijalankan
Predefined Exception
Beberapa jenis error yang sangat umum dimasukkan ke dalam
predefined exception sehingga seorang user dapat membuat
penanganan error terhadap exception yang umum tersebut
tanpa harus mengetahui kode error-nya.
Nama Exception
CURSOR_ALREADY_
OPEN
DUP_VAL_ON_INDEX
INVALID_CURSOR
INVALID_NUMBER
LOGIN_DENIED
NO_DATA_FOUND
NOT_LOGGED_ON
PROGRAM_ERROR
ROWTYPE_MISMATC
Kode Error
ORA-06511
Deskripsi
Membuka
cursor
yang
sedang
ORA-00001
terbuka
Memasukkan
ORA-01001
ORA-01722
kolom unik
Operasi cursor ilegal
Gagal mengkonversi
ORA-01017
NUMBER.
Login
dengan
username
atau
ORA-01403
tidak
ORA-01012
ORA-06501
ORA-06504
terkoneksi.
Terjadi PL/SQL internal error.
Dalam satu penugasan, tipe data
nilai
pada
karakter ke
antara
STORAGE_ERROR
ORA-06500
cursor,
duplikat
variabel
dengan
proses
ORA-00051
besar.
Time out.
URCE
TOO_MANY_ROWS
ORA-01422
SELECT
INTO
statement
1
7
ORA-06502
data.
Kesalahan pada operasi aritmetika,
konversi,
ZERO_DIVIDE
ORA-01476
D. Storage Procedure
Non nested Procedure
truncate
atau
batasan
rentang nilai.
Membagi dengan nol.
atau
stored
procedure
merupakan
akan
dieksekusi
pada
saat
pemanggilan
setelah
Keterangan
nama_procedure
1
8
argumen
parameter-parameter
yang
dipakai
saat
pemanggilan procedure
badan_prosedur
menghapus
procedure
yang
telah
kita
buat,
dapat
1
9
function
harus
mengembalikan
nilai
tertentu
kepada
BEGIN
badan fungsi
END;
2
0
RETURN ekspresi;
F. Trigger
Merupakan blok PL/SQL yang memiliki fungsi hampir sama
dengan procedure maupun function , hanya saja, jika procedure
atau
function
procedure
atau
dijalankan
function
secara
eksplisit
tersebut,
lewat
sedangkan
pemanggilan
untuk
trigger,
lain
untuk
2
1
rollback.
Tidak dapat diimplementasikan pada kolom pada suatu tabel
yang
memilki
constraint,
jika
pada
akhirnya
akan
Statement Trigger
Bagian Trigger
Trigger timing
Trigger event
Keterangan
Menunjukkan
kapan
trigger
akan
dieksekusi
relatif
terhadap suatu event.
Jenis manipulasi data
pada tabel/view yang
menyebabkan trigger
terpacu.
INSERT
UPDATE
DELETE
CREATE
ALTER
DROP
STARTUP
SHUTDOWN
LOGOFF
LOGON
SERVERERROR
SUSPEND
2
2
Jenis-jenis Trigger
Row-level dan Statement-level Trigger
Ketika membuat sebuah trigger, kita dapat menentukan
berapa kali aksi trigger di dalamnya dieksekusi:
Row-level trigger dieksekusi untuk setiap row yang
dimanipulasi pada suatu transaksi. Dengan kata lain,
row-level trigger mengerjakan trigger action satu kali
untuk setiap row yang dimanipulasi. Penerapan trigger ini
ditunjukkan oleh adanya klausa FOR EACH ROW. Row-level
trigger berguna jika kode dalam trigger body bergantung
pada setiap baris yang terpengaruh oleh triggering
statement.
Statement-level trigger dieksekusi satu kali pada
saat transaksi, tanpa memperhatikan jumlah row
yang terlibat. Misalnya, jika terdapat suatu transaksi
yang memasukkan 1000 baris ke dalam tabel, maka
statement-level trigger hanya akan dieksekusi sekali saja.
Statement-level trigger berguna jika kode dalam trigger
body tidak bergantung pada baris yang terpengaruh oleh
triggering statement. Secara default trigger yang dibuat
adalah statement-level trigger.
G. Transaction
Dalam database management system (dbms) ada yang di
sebut transaction. Transaction dalam dbms ini bertujuan untuk
menggabungkan beberapa statement perubahan kedalam database
menjadi dianggap satu kesatuan. Dilakukan semuanya atau tidak
2
3
sama
sekali
(all
or
nothing)
sehingga
tidak
terjadi
perubahan
dilakukan
2
4
2
5