• Tidak ada hasil yang ditemukan

DAFTAR ISI - System Manajemen Basis Data

N/A
N/A
Protected

Academic year: 2018

Membagikan "DAFTAR ISI - System Manajemen Basis Data"

Copied!
262
0
0

Teks penuh

(1)

i

DAFTAR ISI

1

DASAR PENYIMPANAN DATA ... 1

1.1

Pendahuluan

... 2

1.2

File Sistem dan Sistem Basis Data

... 3

1.3

Keunggulan DBMS

... 4

1.4

Sistem Bilangan

... 4

1.5

Penyimpana Data

... 5

1.5.1

Media Penyimpanan Fisik

... 5

1.5.2

Magnetic-Disk

... 8

1.6

SQL Review

... 9

2

ARSITEKTUR BASISDATA ... 15

2.1

Database structure ... 16

2.1.1

Oracle Instance

... 17

2.1.2

Memory Structures

... 17

2.1.3

Process Structure

... 20

2.1.4

Storage Structure

... 21

3

Database Administration ... 25

3.1

Oracle Enterprise Manager ... 26

3.1.1

Overview dan Konsep Oracle Enterprise Manager

... 27

3.2

Dasar Security Database Oracle

... 36

3.3

Tugas Database Administrator dalam Database Security

... 37

3.4

User Account pada Oracle Database

... 38

4

Konsep Prosedural ... 45

4.1

Pentingnya Konsep Prosedural ... 46

4.2

Program Unit : Prosedur, Fungsi, Trigger

... 47

4.2.1

Prosedur

... 47

4.2.2

Fungsi

... 48

4.2.3

Trigger

... 49

(2)

5

Lebih Lanjut Mengenai Prosedural ... 63

5.1

Struktur Percabangan... 64

5.1.1

Statemen IF

... 64

5.1.2

Statemen CASE

... 70

6

Lebih Lanjut Mengenai Prosedural ... 81

6.1

Iterasi ... 82

6.1.1

Simple LOOP

... 82

6.1.2

Statemen FOR

... 83

6.1.3

Statemen WHILE

... 85

6.1.4

Statemen EXIT dan EXIT WHEN

... 86

6.2

Cursor

... 87

6.2.1

Cursor Eksplisit

... 87

6.2.2

Cursor Implisit

... 89

6.3

Menambahkan Exception Handling

... 90

6.3.1

Predefined Exception

... 90

6.3.2

User Defined Exception

... 93

6.3.3

Non-predefined Exception

... 94

6.3.4

Prosedur RAISE_APPLICATION_ERROR

... 95

7

Tingkat Lanjut Konsep Prosedural ... 107

7.1

Index ... 108

7.1.1

Membuat Index

... 108

7.1.2

Mengganti Nama Index

... 110

7.1.3

Menghapus Index

... 111

7.2

Callable Procedure & Function

... 111

7.2.1

Prosedur

... 111

7.2.2

Fungsi

... 113

7.2.3

Parameter

... 114

8

DATABASE-TRIGGER ... 124

8.1

Definisi Trigger ... 125

8.2

Fungsi dan Kelebihan ... 125

8.3

Aplikasi yang dapat dilakukan oleh Trigger diantaranya

adalah :... 125

(3)

iii

10

DATABASE ADMINISTRATION SECURITY . 159

10.1

Database Security Risk ... 160

10.2

Maintaining Database Security... 163

10.3

Security Manager... 167

10.4

Create Database User ... 169

10.5

Create Database Roles ... 171

10.6

Definisi Profiles ... 172

10.6.1

Sintaks ... 173

10.7

Views ... 175

10.8

Trigger ... 176

10.8.1

Penggunaan Trigger... 176

10.9

Database Column Encryption ... 177

10.10

Virtual Private Databse ... 179

10.10.1

Konsep Virtual Private Database... 180

10.10.2

PRINSIP KERJA VIRTUAL PRIVATE

DATABASE ... 182

11

KONKURENSI BASIS DATA ... 186

11.1

Transaksi

... 187

(4)

11.3

Serializability

... 188

11.4

Lock Based Protocol

... 189

11.5

Multiple Granularity

... 196

12

TUNING ... 203

(5)

Dasar Penyimpanan Data 1

1

DASAR PENYIMPANAN DATA

Overview

DBMS (Database Management System) adalah software yang dirancang untuk melakukan pengaturan pada data yang berjumlah besar dan saling berelasi. DBMS menyembunyikan setiap detail kompleksitas dalam penyimpanan, pengambilan dan pemrosesan data. Namun mahasiswa perlu memahami bagaimana data-data ini tersimpan di media penyimpanan.

Tujuan

(6)

1.1 Pendahuluan

Kebutuhan akan ketersediaan data sangat diperlukan tidak hanya bagi perorangan tetapi juga untuk organisasi dari berbagai level. Organisasi memerlukan data yang akurat dan tersedia setiap saat, untuk membantu memperoleh informasi yang dibutuhkan dalam pengambilan keputusan di setiap level organisasi. Data dalam jumlah yang besar memerlukan pengaturan data yang efektif sehingga dapat diperoleh informasi secara cepat dan informasi yang dihadirkan dapat relevan dengan kebutuhan pengguna saat itu.

Beranjak dari kebutuhan tersebut, dibutuhkan suatu data management system yang kuat, fleksibel dan sanggup menangani kompleksitas data. User

memerlukan alat bantu yang menyederhanakan penganturan data dan mampu memberikan informasi yang berguna pada waktu diperlukan.

Data adalah kumpulan kejadian yang diangkat dari suatu kenyataan (fakta), dapat berupa angka, huruf, symbol khusus atau gabungan ketiganya. Kapan kumpulan data dapat disebut sebagai basis data? Basis data adalah kumpulan data yang didefinisikan sebagai rangkaian aktifitas dari satu organisasi atau lebih yang saling berhubungan. Basis data, beberapa diantaranya, terdiri dari entitas dan relasi. Di Politeknik Telkom terdapat entitas mahasiswa, mata kuliah dan dosen. Relasi yang mungkin terjalin antara entitas-entitas tersebut adalah mahasiswa memiliki nilai mata kuliah, mahasiswa mendapatkan jadwal dari mata kuliah yang diadakan, dan dosen menjadi wali dari mahasiswa.

Basis data yang dicontohkan di atas memiliki data yang cukup banyak. Data mahasiswa untuk setiap angkatan, jumlah mata kuliah yang diadakan untuk semester 1 sampai 6, dan berbagai data lain yang harus disimpan di dalam tempat penyimpanan data (storage). Ada alat yang disediakan untuk membantu menangani penganturan data ini. Database management system (DBMS) adalah software yang dirancang untuk membantu dalam penganturan kumpulan data yang berjumlah besar.

(7)

Dasar Penyimpanan Data 3 1.2 File Sistem dan Sistem Basis Data

Sebelum masa DBMS dimulai, data disimpan dalam bentuk file. file adalah sebutan untuk sekumpulan byte. File bisa berisi sederetan karakter atau kode ASCII yang membentuk sebuah dokumen, atau bisa juga berupa rangkaian instruksi untuk software aplikasi untuk dijalankan oleh komputer.Misalnya data akademik, supaya informasinya tetap berada di komputer maka data disimpan dalam bentuk file. Supaya pengguna dapat melakukan perubahan data, maka dibuat program aplikasi mengikuti kebutuhan masing-masing divisi. Setiap aplikadi memiliki file-file pada system operasi yang digunakan untuk menyimpan data. Sehingga kemungkinan terdapat data yang sama pada divisi yang berbeda. Data ini tiap tahun akan bertambah mengikuti bertambahnya jumlah mahasiswa yang masuk pada setiap ajaran baru. Kebutuhan akan fasilitas program aplikasi akan semakin bertambah.

File-processing system menyimpan record dalam berbagai file dan membutuhkan aplikasi yang berbeda untuk mengubah atau menambah record kedalam file.

Kelemahan menggunakan file system adalah

a. Data redundancy dan inconsistency: terdapat duplikasi data dan ketidakkonsistenan data karena data berada di berbagai tempat dan masing-masing pengguna melakukan perubahan pada masing-masing data tanpa melakukan perubahan pada file yang sama di tempat yang berbeda.

b. Sulit dalam pengaksesan data: data tersebar di beberapa tempat/ divisi sehingga menyulitkan pengguna dalam pencarian data yang berhubungan satu dengan yang lain.

c. Data isolation: data terpisah dalam banyak file dan ada kemungkinan data disimpan dalam format yang berbeda mengakibatkan sulit untuk membuat aplikasi baru untuk mendapatkan informasi yang diinginkan. d. Masalah Integitas dat

e. Masalah Atomicity f. Current access anomalies

(8)

1.3 Keunggulan DBMS

Keuntungan menggunakan DBMS untuk pengaturan data, yaitu: a. Data berdiri sendiri (Data Independence): program aplikasi dan

data terpisah. Jadi jika terjadi perubahan aplikasi atau penggunaan bahasa pemrograman yang berbeda, data tidak perlu diubah.

b. Pengaksesan data yang efisien (Efficient data access): DBMS menggunakan teknik penyimpanan dan pengambilan data dari tempat penyimpanan data secara efisien. Kelebihan ini penting karena biasanya data disimpan pada tempat penyimpanan eksternal.

c. Integritas data dan keamanan terjamin (Data integrity and security)

d. Administrasi data (Data administration): data dapat digunakan oleh beberapa pengguna sekaligus, untuk itu pengaturan data diperlukan untuk meminimalisasi redundancy data.

e. Dapat diakses bersamaan dan ada recovery saat terjadi kegagalan (Concurrent access and crash recovery)

f. Mengurangi waktu pembangunan aplikasi (Reduced application development time)

1.4 Sistem Bilangan

Sistem basis data memudahkan pengguna untuk menampilkan data dengan bentuk yang mudah dibaca. Namun pada kenyataannya dalam tempat penyimpanan data, data disimpan dalam bentuk bit.

Sistem bilangan (number system) adalah suatu cara mewakili suatu besaran dari suatu sistem fisik. Logika di komputer diwakili oleh bentuk elemen dua keadaan (two-state elements), yaitu keadaan off (tidak ada arus) dan keadaan on (ada arus). Sistem bilangan yang digunakan oleh computer adakah sistem bilangan biner, namun selain itu ada sisstem bilangan octal dan hexadecimal.

(9)

Dasar Penyimpanan Data 5

pangkat dari nilai 2 berdasarkan posisi digitnya. Digit pertama dimulai dari kanan.

Contoh:

Bilangan binary dengan konversi ke decimal

Binary Perhitungan Desimal

1 20 = 1 1

10 21 + 20 = 2 + 0 2

111 22 + 21 + 20 = 4 +2 + 1 7

Konversi bilangan decimal dengan binary 57= …. 2

57 div 2 = 28, 57 mod 2 = 1

28 div 2 = 14, 28 mod 2 = 0

14 div 2 = 7, 14 mod 2 =0

7 div 2 = 3, 7 mod 2 =1

3 div 2 = 1, 3 mod 2 = 1

57= 111001 2

1.5 Penyimpana Data

Sistem basis data dibangun dengan tujuan menyembunyikan detail proses yang rumit sehingga pengguna tidak harus dipusingkan dengan detail implementasi/proses penyimpanan data itu sendiri. Basis data dapat dilihat dalam bentuk yang sederhana seperti yang dijelaskan pada level konseptual dan logic. Bagaimanapunn juga penting untuk memahami tentang bagaimana data disimpan secara fisik dalam disk.

1.5.1 Media Penyimpanan Fisik

(10)

1. Cache

- Memori paling cepat dan mahal

- Tidak perlu mengatur cache pada sistem basisdata - Diatur oleh perangkat keras sistem komputer 2. Main Memory

- Penampung data yang siap diolah dan instruksi-instruksi yang ingin dijalankan

- Daya tampung sampai dengan megabyte (MB) atau gigabyte (GB), tapi masih terlalu mahal untuk menampung keseluruhan basisdata

- Bersifat volatile (data hilang jika power mati)

3. Flash memory/EEPROM (electrically erasable programmable read-only memory)

- Kecepatan membaca data menyamai main memory 100 nanoseconds (nanoseconds = 1/1000 microseconds). Namun kecepatan penulisan data 4-10 microseconds dan tidak bisa langsung menimpa data yang sudah ada. Untuk menimpa data harus menghapus semua bank data.

- Bersifat non-volatile

- Pengganti magnetic disk yang dapat menyimpan data 5-10 MB, biasanya berada dalam alat elektronik yang memiliki sistem computer contohnya kamera digital

4. Magnetic-disk storage

- Keseluruhan data disimpan dalam magnetic-disk - Kapasitas disk dari range satuan GB sampai ratusan GB

- Data yang siap diproses dipindahkan ke main memory, dan jika data selesai diproses harus dipindahkan kembali ke magnetic-disk

- Data dalam disk akan selamat jika power mati maupun jika ada sistem crash

5. Optical storage

- Contoh compact disk (CD) kapasitas 640 MB, digital video disk

(DVD) kapasitas 4.7 – 8.5 GB.

- Proses pembacaan dan penulisan menggunakan laser - Versi CD/DVD :

o Record-once : disk yang hanya bisa ditulis sekali tapi bisa dibaca berkali-kali atau write-once,read-many

(11)

Dasar Penyimpanan Data 7 o Multiple-write : disk yang dapat ditulis berulang-ulang.

Contoh: CD-RW, DVD-RW 6. Tape Storage

- Digunakan untuk back up data.

- Magnetic tape lebih murah daripada magnetic disk, tapi pengaksesan data lebih lambat karena tape storage harus mengakses ada secara sekuensial yaitu dari rekaman data paling awal

- Kapasitas 40 – 300 GB

Gambar 1.1 menunjukkan hirarki media penyimpanan berdasarkan kecepatan dan harga. Primary storage yaitu cache dan main memory memberikan kecepatan akses data yang tinggi. Secondary storafe memiliki kecepatan akses yang lebih rendah dari primary storage. Tertiary storage adalah kelas penyimpana data yang paling lambat. Panah ke bawah menunjukkan harga per bit data yang disimpan turun sedangkan panah ke atas kecepatan aksesnya bertambah.

(12)

1.5.2 Magnetic-Disk

Gambar 1.2 Struktur Disk [RAM] 13

Magnetic-disk terdiri dari beberapa lempengan disk yang disebut platter. Diameter platter ada yang 3.5 inci dan 5.25 inci Platter memiliki lingkaran konsentris dari dalam keluar disebut track. Dalam satu platter terdapat 16000 track dan terdapat 2-4 platter per disk. Kumpulan track yang memiliki diameter yang sama disebut dengan cylinder. Masing-masing track dibagi menjadi bagian yang lebih kecil yang disebut sector. Sektor ini berukuran tetap biasanya berukuran 512 byte. Pada satu platter memiliki 200 – 400 sektor dari inner track sampai dengan outer track. Angka-angka diatas dapat berbeda untuk setiap model disk.

Track 0 pada disk terletak pada bagian paling dalam dari disk. Pada track ini terdapat pits atau lubang kecil. Daerah diantara pits disebut dengan lands. Perubahan pits dan lands atau sebaliknya direpresentasikan dengan bilangan biner ‗1‘. Jika ada perubahan, direpresentasikan dengan bilangan biner ‗0‘.

(13)

Dasar Penyimpanan Data 9

bertugas untuk melakukan pengecekan pada saat sector dibaca sama dengan perhitungan checksum pada saat data ditulisa pada sector.

Tugas lain dari disk controller sebagai mengatur ulang bad sector. Pada saat disk controller mendeteksi kerusakan pada disk, disk controller secara logic melakukan mapping sector ke lokasi fisik yang berbeda.

Pada saat penulisan atau pembacaan data, disk head bergerak pada track dimana terdapat sector yang menyimpan data. Waktu yang diperlukan disk head untuk bergerak menuju track yang tepat adalah seek time. Rasional delay adalah waktu tunggu yang diperlukan block untuk berputar dibawah disk head, waktu yang dilakukan untuk rata-rata setengah putaran biasanya kurang dari seek time. Transfer time adalah waktu yang diperlukan untuk menbaca atau menuliskan data pada block setelah head berada di posisinya, waktu untuk disk untuk berputar satu block.

Penghubung antara disk dengan computer antara lain ATA (AT attachment) dan SCSI (small-computer-system interconnect; dibaca scuzzy). ATA adalah versi terbaru dan lebih cepat dari IDE (Integrated drive electronics). IDE adalah interface yang digunakan pada awal IBM PC.

1.6 SQL Review

SQL atau Structured query language adalah database language yang sering digunakan. SQL memiliki beberapa bagian:

1. Data Definition language (DDL)

SQL DDL, perintah untuk create, update dan delete skema relasi. Contoh :

Alter table barang add ( tipe_barang varchar(20));

2. Data Manipulatin Language (DML)

(14)

Delete form barang where kode_barang = ‗KOMP‘;

Update barang set tipe_barang = ‗komputasi‘ where kode_barang = ‗KOMP‘;

(15)

Dasar Penyimpanan Data 11 Rangkuman

1. Basis data adalah kumpulan data yang didefinisikan sebagai rangkaian aktifitas dari satu organisasi atau lebih yang saling berhubungan.

2. Database management system (DBMS) adalah software yang dirancang untuk membantu dalam penganturan kumpulan data yang berjumlah besar.

3. Keuntungan menggunakan DBMS untuk pengaturan data, yaitu: Data Independence, Efficient data access:, Data integrity and security, Data administration, Concurrent access and crash recovery, dan Reduced application development time

4. Sistem bilangan (number system) adalah suatu cara mewakili suatu besaran dari suatu sistem fisik. Contoh ssistem bilangan adalah sistem bilangan binary/biner, sistem bilangan decimal, sistem bilangan hexadecimal dan sistem bilangan octal.

5. Magnetic-disk terdiri dari beberapa lempengan disk yang disebut platter. Platter memiliki lingkaran konsentris dari dalam keluar disebut track. Masing-masing track dibagi menjadi bagian yang lebih kecil yang disebut sector.

6. Track 0 pada disk terletak pada bagian paling dalam dari disk.

7. Track terdapat pits atau lubang kecil. Daerah diantara pits disebut dengan lands. Perubahan pits dan lands atau sebaliknya direpresentasikan dengan bilangan biner ‗1‘. Jika ada perubahan, direpresentasikan dengan bilangan biner ‗0‘.

(16)

Soal

1. Jelaskan pengertian data, basis data, DBMS dan RDBMS! 2. Sebutkan contoh-contoh DBMS!

3. Jelaskan bagaimana mekanisme pengolahan data dari saat pennguna memasukkan data kedalah computer sampai kepada data tersimpan pada database!

4. Sebutkan dan jelaskan media penyimpanan fisik!

5. Jelaskan mekanisme penyimpanan yang terjadi di cache dan main memory!

6. Buatlah perintah SQL untuk membuat table berikut ini: Table Mahasiswa

Nim Nama Alamat Tgl_lahir

30108123 Riyanti Jl.Sunda No.1 12 Agustus

1990

30108124 Linda Jl.Jakarta

No.10

5 Mei 1990

Nim sebagai primary key

Table Mata_kuliah

Kode_mk Nama_mk

IS007 Basis Data

CA008 Manajemen Bisnis

Kode_mk sebagai primary key

Nim Kode_mk Hari jam ruang

30108123 IS007 Senin 08-00-10-00 201

Nim dank ode_mk sebagai foreign key

(17)

Dasar Penyimpanan Data 13 Latihan

1. Buatlah makalah mengenai sejarah perkembangan DBMS!

(18)

Daftar Pustaka

Raghu Ramakrishnan / Johannes Gehrke ―Database Management System‖ Second edition.

Silberschatz-Korth-Sudarshan: Database System Concepts, Fourth Edition.2001

(19)

Arsitektur BasisData 15

2

ARSITEKTUR BASISDATA

Overview

Database memiliki komponen-komponen pembangun untuk melakukan eksekusi pada setiap data yang diminta oleh pengguna. Database perlu untuk mengalokasikan memory untuk menangani pemrosesan data dalam jumlah yang besar. Proses structure melakukan operasi pengolahan yang diperlukan sebelum data disimpan di dalam database files.

Tujuan

(20)

2.1 Database structure

Oracle Server adalah DBMS yang menyediakan pendekatan menyeluruh dan terbuka pada information management. Oracle server harus mampu menagani data dalam jumlah yang besar yang diakses oleh banyak user. Oracle server juga harus mencegah user yang tidak memiliki otoritas dan mampu mengatasi failure. Oracle Server terdiri dari Oracle Instance dan Oracle database.

Database Structure terdiri dari Memory Structure, Process Structure dan Storage Structure yang berhubungan dengan Oracle Server.

(21)

Arsitektur BasisData 17 2.1.1 Oracle Instance

Oracle database selalu diasosiasikan dengan Oracle Instance. Saat database dijalankan pada database server, oracle mengalokasikan memory yang disebut System Global Area (SGA) dan menjalankan beberapa oracle background process. Kombinasi dari SGA dan Oracle processes disebut dengan Oracle Instance. Memory dan proses dari instance mengatur data dalam database secara efisien dan dapat melayani satu atau lebih user yang menggunakan basisdata ini.

Setelah mulai menjalankan instance, Oracle software dihubungkan dengan database tertentu. Hal ini disebut dengan mounting database. Database siap dibuka sehingga dapat diakses oleh authorized user. Multiple instance dapat dieksekusi secara bersamaan pada computer yang sama.

Oracle database menggunakan memory structure dan process structure untuk mengatur dan mengakses database. Semua memory structure ada di main memory computer yang membangun database server.

2.1.2 Memory Structures

Memory di Oracle digunakan untuk menyimpan: - Kode program yang akan dieksekusi - Informasi tentang session

- Data yang akan dieksekusi

- Informasi yang di share dan dikomunikasi oleh proses yang lain. Misalnya locking information

- Cache information

Dasar struktur memory yang berhubungan dengan oracle: - Software code ares

- System Global Area (SGA) - Program Global Area (PGA)

(22)

Virtual Memory

Virtual Memory adalah fitur dari sistem operasi yang memberikan tempat penyimpanan yang nyata daripada yang diberikan oleh main memory dan memberikan keleluasaan dalam penggunaan main memory.

Virtual Memory menduplikasi memori dengan mengkombinasikan main memory dan secondary storage. Sistem operasi mengakses virtual memory dengan membuat secondary storage seperti main memory jika dilihat dari program aplikasi.

Software Code Areas

Bagian dari memory yang digunakan untuk menyimpan kode program yang akan dieksekusi. Perintah/kode oracle disimpan di software code areas yang biasanya berada di tempat yang berbeda-beda sesuai dengan program dari user. Ukuran software codes areas statis, berubah jika dilakukan installasi ulang atau update.

SGA

Gambar 2.2 Struktur Memory

MemoryStructure dasar yang berhubungan dengan Oracle instance adalah : - System Global Area (SGA) : di-share oleh semua server dan

background process

- Program Global area (PGA) : Private untuk masing-masing server dan background process. Satu PGA untuk masing-masing proses.

(23)

Arsitektur BasisData 19

SGA mencakup data struktur berikut ini:

- Database buffer cache : cache block data yang didapat dari database - Redo log buffer : cache redo informasi (digunakan pada saat instance

recovery) hingga informasi siap dituliskan di tempat penyimpanan fisik redo log file pada disk

- Shared pool : cache untuk berbagai macam file yang digunakan oleh semua user

- Large pool : area opsional yang menyediakan memory yang banyak untuk proses besar seperti operasi oracle backup dan recovery - Java pool : digunakan untuk semua session khusus untuk java code

dan data dalam Java Virtual machine (JVM) - Steams pool : digunakan oleh oracle steam

Pada saat menjalankan instance menggunakan Enterprise manager atau SQL*Plus ditampilkan jumlah alokasi memori untuk SGA.

PGA

Program Global Area (PGA) adalah memory yang terdiri dari data dan control information untuk masing-masing proses server. Proses dalam oracle server memberikan layanan bagi client. Masing-masing proses server memiliki PGA sendiri-sendiri yang dibuat saat proses di server dimulai. PGA diakses secara eksklusif oleh server proses, dan PGA ditulis dan dibaca hanya oleh kode oracle.

Dengan SGA infrastruktur yang dinamis, ukuran database buffer cache, shared pool, large pool, java pool, dan steam pool dapat berubah tanpa shutting down instance.

(24)

2.1.3 Process Structure

Gambar 2.3 Process Structure

Process adalah mekanisme dari sistem operasi untuk menjalankan rangkaian perintah secara simultan. Process Structure pada Oracle berfungsi untuk mengatur aktifitas yang terjadi bersamaan dan penyelesaiannya.

Saat menjalankan program oracle seperti Enterprise Manager, oracle server menciptakan beberapa proses yaitu :

a. server process untuk mengeksekusi perintah dari aplikasi

b. background process supaya instance dapat berinteraksi dengan instance yang lain dan dengan sistem operasi untuk mengatur struktur memory, mengatur I/O untuk menuliskan data pada disk dan melakukan task yang lain tergantung dari proses yang sedang dilakukan oleh database

2.1.3.1Single-process Oracle Instance

Biasa disebut single-user Oracle adalah database system yang dimana semua kode oracle dieksekusi oleh satu proses. Hanya satu user dapat mengakses oracle instance dan pada saat itu user lain tidak dapat mengakses database.

Contoh: Oracle di MS-DOS karena MS-DOS tidak dapat menangani banyak proses sekaligus.

2.1.3.2Multiple-process Oracle Instance

Disebut juga dengan multi-user Oracle, menggunakan beberapa proses untuk mengeksekusi bagian yang berlainan dari Oracle. Dengan membagi tugas dari Oracle dan aplikasi database kedalam beberapa proses, multiple-user dan

Server

Process 1 PGA

SGA

User Process

(25)

Arsitektur BasisData 21

aplikasi yang berbeda-beda dapat mengakses ke satu database secara bersamaan dengan performansi yang tetap bagus.

Pada multi-process ini dapat dikategorikan menjadi dua grup yaitu user process dan oracle process.

a. User process, saat user menjalankan program aplikasi seperti oracle Tools.

b. Oracle Process/server process, digunakan untuk mengeksekusi perintah SQL, membaca blok data dari disk ke shared databse buffer di SGA, mengembalikan hasil dari data yang diminta.

c. Untuk meningkatkan perforamansi dan untuk mengakomodasi banyak user multi-process oracle menggunakan proses tambahan disebut background process.

Background process yang sering digunakan adalah :

- system monitor (SMON) : menjalankan crash recovery jika instance mengalami kegagalan

- Process monitor (PMON) : menjalankan process cleanup jika user process gagal

- Database writer (DBWn): menuliskan bloks dari database buffer cache ke data file di disk

- Log writer (LGWR) : menulis redo log ke disk

- Archiver (ARCn) : mengcopy redo log file ke archival starage saat terjadi log switch

2.1.4 Storage Structure

File dalam database terdiri dari :

- Control files: data tentang database itu sendiri sehingga data yang ada di database dapat diakses. Contoh: steuktur fisik basisdata. - Data files: mencakup user dan data aplikasi

(26)

Rangkuman

1. Database Structure terdiri dari Memory Structure, Process Structure dan Storage Structure yang berhubungan dengan Oracle Server.

2. System Global Area (SGA) adalah pengalokasian memory yang dilakukan oleh DBMS. Kombinasi dari SGA dan Oracle processes disebut dengan Oracle Instance.

3. Process Structure pada Oracle berfungsi untuk mengatur aktifitas yang terjadi bersamaan dan penyelesaiannya.

4. Proses Structure terdiri dari Single-process Oracle Instance dan Multiple-process Oracle Instance

Soal

1. Jelaskan implementasi penggunaan instance pada Oracle! 2. Jelaskan pengalokasian memory SGA pada basisdata Oracle! 3. Sebutkan background process lain yang disediakan oleh Oracle! 4. Mengapa pada Oracle yang berjalan pada MS-DOS hanya dapat

melakukan single process!

5. Bagaimana mekanisme atau cara kerja Oracle pada saat menangani multiple-process oracle instance!

6. Jelaskan cara setting virtual memory untuk membantu Oracle menjalankan performansinya menjadi lebih baik!

(27)

Arsitektur BasisData 23 Latihan

1. Buatlah makalah tentang instance yang ada pada minimal tiga DBMS yang anda ketahui.

(28)

Daftara pustaka

(29)

Database Administration - Basic Administration 25

3

Database Administration

Basic Administration

Overview

Database administration merupakan kegiatan yang bertujuan untuk melakukan pengaturan dan penjagaan terhadap database, baik dari kondisi database, kestabilan database, performance database, maupun isi dari data.

Berdasarkan tipenya, maka database administration dapat dibagi menjadi 3 fungsi :

1. System Database Administration

Pada system database administration, kegiatan yang dilakukan lebih fokus terhadap aspek – aspek fisik dari database, seperti installasi, konfigurasi, security, patch, upgrade, backup, restore, performance tuning, maintenance, dan disaster recovery.

2. Development Database Administration

Development database administration, sesuai namanya lebih memfokuskan dari segi logical dan development, atau bisa dikatakan dari segi datanya. Beberapa kegiatannya antara lain pembuatan SQL, maintain dan tuning SQL, pembuatan stored prosedur, trigger, function, dan desain database.

3. Application Database Administration

(30)

Basic administration merupakan kumpulan dari fungsi - fungsi yang ada pada System Database Administration, seperti installasi, konfigurasi, security, monitoring dan tuning. Bab ini akan membahas mengenai konfigurasi dan konsep dasar security pada database oracle . Sebagai alat bantu, maka digunakan aplikasi dari Oracle, yaitu Oracle Enterprise Manager.

Tujuan

1. Mahasisiwa memahami konsep dan penggunaan Oracle Enterprise Manager.

2. Mahasiswa mengerti konsep dasar security pada oracle database 3. Mahasiswa mengetahui tugas database administrator dalam

membentukan dan organisasi oracle database security.

4. Mahasiswa memahami kegunaan user account yang ada pada oracle database

3.1 Oracle Enterprise Manager

Pada Database Oracle, proses pengaturan database dapat dilakukan dengan 2 cara :

1. Secara manual.

Pada pengaturan ini semua perubahan baik dari sisi database maupun isi data dilakukan menggunakan perintah – perintah sql.

(31)

Database Administration - Basic Administration 27 3.1.1 Overview dan Konsep Oracle Enterprise Manager

Oracle Enterprise Manager merupakan aplikasi yang berfungsi untuk melakukan aktifitas pengaturan database, seperti : konfigurasi, monitoring, tuning, backup, restore, dan aktifitas lainnya.

Aplikasi Oracle Enterprise Manager dapat dibagi menjadi dua kategori : 1. Oracle Enterprise Manager Database Control

Pada Database Control, satu Oracle Enterprise Manager dapat melakukan pengaturan terhadap satu database saja. Umumnya aplikasi ini terbentuk saat kita melakukan installasi database. 2. Oracle Enterprise Manager Grid Control

Pada Grid Control, satu Oracle Enterprise Manager dapat melakukan pengaturan terhadap beberapa database. Merupakan product terpisah dari Oracle.

Keuntungan menggunakan Oracle Enterprise Manager :

1. Membantu memaksimalkan performance ( tuning ) dan availability ( monitoring ) baik dari sisi server maupun database.

2. Mempermudah dan mempercepat user dalam melakukan pengaturan database

3. Mengurangi resiko human error yang dapat terjadi saat melakukan pengaturan secara manual.

Pada Oracle Database 10g, aplikasi Oracle Enterprise Manager telah berbasis web, sehingga lebih mudah diakses oleh user ( bisa dari mana saja ).

(32)

3.1.2 Penggunaan Oracle Enterprise Manager / OEM

Penggunaan OEM dapat dibagi menjadi beberapa tahap :

1. Menyalakan Oracle Enterprise Manager Database Console Umumnya setelah installasi database, service OEM akan menyala secara otomatis, tetapi ada baiknya dilakukan check terlebih dahulu.

Aplikasi OEM dapat dinyalakan dari sisi server dengan memakai perintah :

a. Untuk windows

Dari menu windows, pilih start -> control panel -> administrative tools -> services

(33)

Database Administration - Basic Administration 29

Apabila statusnya masih stopped, klik kanan pada service Database Console, pilih start.

b. Untuk linux/unix

Arahkan direktori ke lokasi oracle database diinstall / ORACLE_HOME, pilih direktori bin, kemudian ketik $ ./emctl start dbconsole.

2. Menggunakan Oracle Enterprise Manager Database Console Untuk menggunakan Oracle Enterprise Manager, dari web browser client ketik http://<ip_server oracle database>:<port>/em. Default port yang dipakai adalah 5500.

(34)

Pada halaman ini user akan diminta untuk memasukkan user database yang memiliki akses untuk login ke dalam Enteprise Manager, untuk user defaultnya adalah sys atau system.

Setelah login, user akan dibawa ke halaman utama Oracle Enterprise Manager yang terdiri dari 4 bagian besar :

1. Halaman Home

Halaman ini berisi status dari database instance yang akan diatur, dan terbagi menjadi 10 macam status database :

a. General

(35)

Database Administration - Basic Administration 31

b. Host CPU

Pada Host CPU diperlihatkan status yang menunjukkan seberapa besar CPU percentage yang dipakai oleh database tersebut ataupun proses lain pada server.

c. Active Session

Active Session memperlihatkan berapa jumlah CPU yang dimiliki oleh server, berapa banyak session milik user yang sedang aktif ( status sedang menggunakan User I/O, CPU atau Waiting ) d. SQL Response Time

Dalam SQL Response Time, akan ditunjukan berapa lama proses untuk melakukan suatu sql process, tetapi terlebih dahulu kita harus menetapkan baseline ( dasar perbandingan awal ) e. Diagnostic Summary

Diagnostic summary memperlihatkan jenis dan jumlah error pada database atau policy database/server.

f. Space Summary

Space Summary memberikan kondisi berapa banyak database size, apakah terdapat problem pada tablespace, dan berapa persen disk space yang tersisa di server tersebut.

g. High Availability

High availability menunjukkan perkiraan berapa waktu yang digunakan database untuk recovery, waktu saat backup database terakhir dijalankan, dan apakah database menggunakan flashback technology atau archivelog.

h. Alert

Alert menunjukkan pesan / status yang lebih detail mengenai error/warning yang ada pada database, sehingga lebih mudah dilihat oleh user

i. Related Alert

Related Alert memberikan pesan warning/error yang lebih detail dari sisi server, seperti sisa disk yang dimiliki server, processor yang digunakan, dan memory.

j. Job Activity

(36)

2. Halaman Performance

(37)

Database Administration - Basic Administration 33

3. Halaman Administration

Halaman ini berisi fungsi administrasi dari database, dapat dibagi menjadi dua bagian besar :

a. Database Administration

Database administration berisi pengaturan mengenai instance database.

- Storage

Storage mengatur semua komponen database yang berhubungan dengan disk pada server, seperti controlfile, tablespace, temporary tablespace group, datafile, rollback segment, redo / archive log

- Database Configuration

Database configuration mengatur tentang parameter – parameter pada database ( spfile/pfile parameter ), memory database ( share, db buffer, java pool, large pool ), undo parameter ( undo retention, undo tablespace ), dan database feature usage yang berisi list feature yang sudah/belum dipakai oleh database tersebug - Database Scheduler

Berisi pengaturan job/scheduler yang akan dijalankan terhadap suatu database.

- Statistic Management

Berisi pengaturan mengenai pengambilan statistic dari database, baik secara berkala ( AWR, gather statistic) ataupun manual.

- Change Database

(38)

- Resource Manager

Berisi pengaturan besarnya Resource yang bisa/tidak bisa oleh user / profil tertentu dan prioritas terhadap user / profil tertentu.

- Policies

Berisi pengaturan mengenai policies dari suatu database, hal apa saja yang boleh dan tidak boleh dilakukan, apa saja yang dianggap error, warning atau hanya status biasa saja.

a) Schema

Schema berisi pengaturan mengenai object – object yang dimiliki oleh suatu database

- Database Object

Database Object berisi pngaturan object – object standard yang dimiliki oleh suatu database, seperti table, views, synonim, index, dll.

- Program

Program berisi pengaturan mengenai script – script yang dibuat dan dijalankan via database, seperti procedur, function, trigger, dll.

- XML Database

XML Database mengatur mengenai penggunaan xml sebagai database.

- Users & Previleges

User & Previleges berisi pengaturan mengenai user, roles maupun profile. Bisa dibilang juga sebagai basic security database.

(39)

Database Administration - Basic Administration 35

Materialized Views mengatur mengenai pembuatan dan monitoring penggunaan materialized views.

- BI & OLAP

BI & OLAP mengatur mengenai penggunaan database dalam Bussiness Intelligence maupun Online Analytical Process, seperti cube, dimension, dll

- User Defined Types

User Defined Types mengatur pembuatan variable / types sesuai kebutuhan aplikasi database

4. Halaman Maintenance

(40)

3.2 Dasar Security Database Oracle

Security pada database oracle merupakan kegiatan / aturan yang dilakukan untuk melindungi asset terpenting dalam database, yaitu data.

Berdasarkan tipenya, security dalam oracle database dapat dikategorikan menjadi beberapa jenis :

a. Authentification

Memberikan pengaturan terhadap bagaimana cara untuk mengakses suatu database. Authentification dibagi menjadi beberapa bagian :

- Authentification by Operating system

Memberikan pengaturan hak akses dari sisi user Operating System. Pada beberapa operating system, database oracle dapat langsung diakses lewat operating system dengan menggunakan ―sqlplus /‖.

- Authentification by Network

Memberikan pembatasan hak akses dari sisi network, misalnya menggunakan SSL, Kerberos, Public Key, dan third party lainnya.

- Authentification by Database

Membatasi hak akses dari sisi database, yaitu dengan user password database

- Authentification by Multitier system

Membatasi hak akses dari sisi system lain, misal hanya bisa akses ke database dari server tertentu saja.

- Authentification by Database Administrator

Membatasi hak akses dari sisi user – user database yang memiliki role tertentu saja, misal SYSDBA dan SYSOPR b. Authorization

Authorization merupakan kegiatan untuk melakukan pembatasan terhadap user apa saja yang bisa mengakses database, dan memberikan pengaturan resource dan hak yang dimiliki user tersebut. Authorization dibagi menjadi :

- Previleges

(41)

Database Administration - Basic Administration 37

Contoh :create table, create session, alter table. - Roles

Roles merupakan kumpulan dari beberapa previleges. Contoh : DBA, RESOURCE, EXP_FULL_DATABASE - Resource Limit

Resource Limit merupakan kegiatan yang bertujuan membatasi suatu user dari penggunaan resource. Contoh : Tablespace Quota, logical read per session. - Profiles

Profiles merupakan kumpulan dari gabungan roles, resource limit, dan previleges.

Contoh : Monitoring Profile, Default. c. Access

Access merupakan pembatasan database dari sisi object, sehingga suatu object tidak dapat diubah oleh user yang tidak berhak. Contohnya : membuat view sehingga user tidak langsung mengakses ke tabel aslinya dan menggunakan FGA ( Fine Grained Auditing )

d. Security Policies

Policies merupakan gabungan dari aturan – aturan ( password complexity, quota, access, dll )

e. Database Auditing

Auditing merupakan sebuah kegiatan yang melakukan penulisan / log terhadap aktifitas yang di lakukan pada database.

3.3 Tugas Database Administrator dalam Database Security

Seorang database administrator memiliki beberapa tugas dasar dalam melakukan organisasi security database, antara lain :

1. Memastikan bahwa instalasi dan konfigurasi database telah dilakukan secara aman ( menambahkan beberapa system parameter pada oracle yang behubungan dengan keamanan database ).

2. Melakukan pengaturan terhadap user account, membuat standarisasi password, membuat dan membagi roles, memastikan bahwa data hanya bisa diakses oleh user yang memiliki hak akses.

(42)

4. Melakukan enkripsi terhadap data – data yang sensitif 5. Memastikan bahwa database tidak memiliki celah yang dapat

ditembus pihak luar.

6. Memutuskan bagian mana dari suatu database yang akan diaudit dan seberapa dalam audit itu dilakukan

7. Melakukan installasi patches database yang berhubungan dengan security.

3.4 User Account pada Oracle Database

Untuk melakukan akses ke dalam database oracle, maka dibutuhkan user account yang memiliki hak terhadap schema tertentu.

User account dalam oracle dapat diidentifikasi berdasarkan nama dan atribut user yang bersangkutan, seperti :

- Metode Authentifikasi ( password / OS autentifikasi ) - Password ( encrypted / normal )

- Quota Tablespace dan Temporary Tablespace - Status account ( lock / unlock )

- Status password ( expire / not expire )

Selain atribut diatas, pada saat dilakukan pembuatan user juga harus ditambahkan akses terhadap system previlieges, object previliges dan role untuk user tersebut.

(43)

Database Administration - Basic Administration 39

Dalam oracle database terdapat user – user default yang memang otomatis terbentuk saat installasi database, antara lain :

User Account Description

Status After Installation

DBSNMP User yang digunakan untuk

melakukan proses monitoring dalam Oracle Enterprise Manager

Open

SYS User tertinggi dalam oracle

database, digunakan sebagai

SYSMAN User yang gunakan pada Oracle

Enterprise Manager untuk

SYSTEM User administrator dalam database

(44)

Rangkuman

1. Database Administration merupakan kegiatan yang bertujuan untuk melakukan pengaturan dan penjagaan terhadap database

2. Database Administration dibagi menjadi tiga jenis, system, aplication dan development database administration.

3. Basic Administration merupakan kegiatan yang berhubungan dengan system database administration

4. Pada oracle database terdapat alat bantu dari oracle untuk melakukan pengaturan database , yaitu Oracle Enterprise Manager

5. Oracle Enterprise Manager dibagi menjadi dua, Database Control dan Grid Control

6. Oracle Enterprise Manager Database Control dibagi menjadi empat bagian besar : Home, Performance, Administration, Maintenance

7. Security pada database oracle merupakan kegiatan / aturan yang dilakukan untuk melindungi asset terpenting dalam database, yaitu data.

8. Database administrator memiliki tugas untuk memastikan keamanan database dari sisi installasi, konfigurasi, user account, standarisasi password, koneksi database, enkripsi, dan policy.

(45)

Database Administration - Basic Administration 41 Kuis Benar Salah

1. Database administration merupakan semua kegiatan yang berhubungan dengan installasi database.

2. Pembuatan trigger merupakan tugas dari system database administration 3. System database administration termasuk dalam basic administration 4. Oracle Enteprise Manager pada oracle 10g dapat diakses via Web. 5. Pengaturan user di Oracle Enterprise Manager terletak pada menu

Administration

6. Dalam Oracle Enterprise manager, fungsi – fungsi administrasi diatur pada menu Maintenance

7. Data merupakan bagian yang penting dalam database security

8. Salah satu tugas database administration dalam database security adalah melakukan patch operating system

9. Authorization memberikan pengaturan mengenai user apa saja yang bisa mengakses database.

(46)

Pilihan Ganda

1.

Berikut merupakan salah satu kegiatan dalam database administration, kecuali ...

A. Installasi Database D. Security Database

B. Pembuatan Trigger E. Patch Aplikasi

C. Backup Database

2. Tugas dari development database administration adalah

A. Restore D. Desain Database

B. Backup E. Patch

C. Repair Database

3. Berikut adalah aktifitas yang dapat dilakukan dari Oracle Enterprise Manager, kecuali

A. Pembuatan Instance D. Backup Database

B. Restore Database E. Pengaturan User

C. Export Import Schema

4.

Dibawah ini yang bukan merupakan menu pada Oracle Enterprise Manager Database Control

A. Administration D. Performance

B. Control E. Home

C. Maintenance

5. Dibawah ini yang merupakan bagian dari database security :

A. Installasi Database D. Auditing

B. Pembuatan Datafile E. Controlfile

C. Storage

6 User – user ini merupakan user standard dari oracle, kecuali :

A. SYS D. SYSTEM

B. SYSMAN E. SYSDBA

(47)

Database Administration - Basic Administration 43

7 Salah satu kegiatan berikut yang termasuk dalam Autentification adalah

A Network Authentification D Data Authentification

B Auditing E Monitor Authentification

C Performance Authentification

8

User Account memiliki beberapa atribut, berikut merupakan atribut dari user account, kecuali

A Password D Quota tablespace

B Status account E Status password

(48)

Latihan

1. Sebutkan 3 jenis database administration dan jelaskan perbedaanny a ! 2. Jelaskan cara pengaturan suatu database !

3. Apa perbedaan antara Database Control dan Grid Control ? 4. Sebutkan fungsi dari Oracle Enterprise Manager !

(49)

Konsep Prosedural 45

4

Konsep Prosedural

Overview

Untuk meningkatkan performansi saat pengaksesan database, perlu dikenal konsep prosedural menggunakan PL/SQL yang memungkinkan pembuatan blok program layaknya bahasa pemrograman.

Tujuan

1. Mahasiswa memahami konsep prosedural dalam PL/SQL.

2. Mahasiswa memahami jenis-jenis unit program : prosedur, fungsi, dan trigger.

3. Mahasiswa memahami konsep penamaan yang baik.

(50)

4.1 Pentingnya Konsep Prosedural

Konsep prosedural dalam PL/SQL (Procedural Language extensions to SQL) merupakan sebuah teknologi yang memungkinkan kita membuat blok program layaknya dalam bahasa pemrograman prosedural seperti C, Fortran, COBOL, dan lainnya. Tanpa adanya PL/SQL, akan dilakukan proses ekseskusi terhadap statemen-statemen SQL sekali dalam tiap waktu. Apabila program atau aplikasi client hanya menggunakan SQL murni maka program tersebut akan melakukan pemanggilan berulang-ulang yang akan menurunkan performa.

Aplikasi SQL

SQL SQL

Sedangkan dengan PL/SQL, aplikasi dapat mengirimkan sekumpulan statemen ke database secara langsung dalam satu waktu. Tentu saja ini akan mereduksi waktu perjalanan ke dalam suatu jaringan yang terjadi antara database server dan aplikasi client.

Aplikasi

IF … THEN

SQL; ELSE SQL; END IF;

Apabila kita membuat prosedur atau fungsi dalam database (stored procedure/stored function) maka aplikasi cukup melakukan pemanggilan dan menunggu hasil yang diberikan oleh database. Pemanggilan prosedur semacam ini sering disebut RPC (Remote Procedure Call). Ini jauh lebih efisien dari kedua cara di atas.

(51)

Konsep Prosedural 47

Blok PL/SQL secara umum terdiri atas tiga bagian :

DECLARE

-- berisi deklarasi variable, konstanta, -- prosedur, ataupun fungsi

BEGIN

-- berisi statemen-statemen yang akan dieksekusi EXCEPTION

-- berisi perintah untuk mengatasi kesalahan -- yang mungkin muncul

END;

o Blok DECLARE dan EXCEPTION bersifat opsional, hanya dituliskan saat dibutuhkan. Bagian yang wajib adalah BEGIN dan END.

4.2 Program Unit : Prosedur, Fungsi, Trigger

PL/SQL mengijinkan untuk membuat program unit yang merupakan kontainer sekumpulan kode atau statemen. Program unit ini terdiri dari : prosedur, fungsi, package, trigger, dan object type (obejct-oriented class).

4.2.1 Prosedur

Prosedur adalah blok PL/SQL yang menyimpan sekumpulan perintah tanpa disertai pengembalian nilai.

CREATE [OR REPLACE] PROCEDURE nama_prosedur

(parameter1 tipedata, parameter2 tipedata,...) IS

variable_variabel_lokal tipedata; BEGIN

statemen_statemen; ...

(52)

Contoh

/*Prosedur pengecekan stok lemari es*/ CREATE OR REPLACE PROCEDURE prc_stok_brg IS

v_stok INTEGER;

BEGIN

-- Mengambil nilai stok dari barang lemari es -- (nilai stok adalah bilangan positif)

SELECT stok_barang INTO v_stok FROM barang WHERE UPPER(nama_barang) = UPPER(‘lemari es’);

--Memeriksa nilai dari variabel v_stok IF v_stok = 0 THEN

--Jika v_stok = 0, cetak keterangan ke layar DBMS_OUTPUT.PUT_LINE(‘Persediaan barang telah habis’);

END IF; END;

4.2.2 Fungsi

Fungsi adalah blok PL/SQL yang dapat mengembalikan nilai. Karena itu perlu ditambahkan statemen RETURN untuk proses pengembalian nilai.

CREATE [OR REPLACE] FUNCTION nama_fungsi

(parameter1 tipedata, parameter2 tipedata,...) RETURN tipe_data_fungsi IS

variable_variabel_lokal tipedata; BEGIN

statemen_statemen; ...

(53)

Konsep Prosedural 49 Contoh

/*Fungsi pencarian nama supplier*/ CREATE OR REPLACE FUNCTION cari_supp

(pi_kode VARCHAR2)

RETURN supplier.nama_supp%TYPE IS

v_NamaSupp supplier.nama_supp%TYPE;

BEGIN

-- Mengambil nama supplier berdasar parameter SELECT nama_supp INTO v_NamaSupp FROM supplier WHERE UPPER(kode_supp) = UPPER(pi_kode);

-- Mengembalikan nilai RETURN v_NamaSupp; END;

4.2.3 Trigger

Trigger adalah blok PL/SQL yang disimpan dalam database dan akan diaktivasi ketika melakukan statemen-statemen SQL (INSERT, DELELTE, atau UPDATE) terhadap sebuah tabel. Aktivasi trigger didasarkan pada event yang terjadi pada tabel tersebut.

CREATE [OR REPLACE] TRIGGER nama_trigger

BEFORE|AFTER [INSERT|DELETE|UPDATE] ON nama_tabel FOR EACH ROW

DECLARE

-- berisi deklarasi variabel BEGIN

(54)

Kemungkinan event yang dapat mengaktivasi sebuah trigger adalah :

Nama Event Deskripsi

BEFORE INSERT Diaktifkan sekali sebelum statemen INSERT AFTER INSERT Diaktifkan sekali setelah statemen INSERT BEFORE UPDATE Diaktifkan sekali sebelum statemen UPDATE AFTER UPDATE Diaktifkan sekali setelah statemen UPDATE BEFORE DELETE Diaktifkan sekali sebelum statemen DELETE AFTER DELETE Diaktifkan sekali setelah statemen DELETE

Contoh

/*Trigger yang diaktivasi setelah UPDATE*/ CREATE OR REPLACE TRIGGER trg_upd_barang

AFTER UPDATE ON barang FOR EACH ROW

BEGIN

-- Mencetak keterangan ke layar tiap kali terjadi -- update terhadap tabel barang

DBMS_OUTPUT.PUT_LINE(‘Tabel barang telah diupdate’);

END;

4.3 Naming Convention yang Baik

Naming convention yang tepat akan membuat kode statemen PL/SQL lebih mudah dibaca dan lebih bisa dimengerti. Secara singkat, keuntungan dari naming convention yang baik adalah :

o Lebih mudah dibaca.

o Lebih mudah dipahami.

o Memberikan informasi mengenai fungsionalitas berdasarkan identifier.

o Kemudahan dalam proses debug.

(55)

Konsep Prosedural 51

Beberapa contoh naming convention berdasar identifier :

Identifier Convention Contoh Variabel v_prefix v_product_name Konstanta c_prefix c_tax

Parameter p_prefix p_cust_id

Exception e_prefix e_chk_credit_limit Cursor cur_prefix cur_orders

(56)

Rangkuman

1. Konsep prosedural dalam PL/SQL (Procedural Language extensions to SQL) merupakan sebuah teknologi yang memungkinkan kita membuat blok program layaknya dalam bahasa pemrograman prosedural.

Aplikasi

IF … THEN

SQL; ELSE SQL; END IF;

2. RPC (Remote Procedure Call) : pemanggilan progam unit (prosedur maupun fungsi) terhadap database.

Aplikasi RPC

3. Program unit merupakan kontainer sekumpulan kode atau statemen :

 Prosedur : blok PL/SQL yang menyimpan sekumpulan perintah tanpa disertai pengembalian nilai.

CREATE [OR REPLACE] PROCEDURE nama_prosedur

(parameter1 tipedata, parameter2 tipedata,...) IS

variable_variabel_lokal tipedata; BEGIN

statemen_statemen; ...

(57)

Konsep Prosedural 53

 Fungsi : blok PL/SQL yang dapat mengembalikan nilai.

CREATE [OR REPLACE] FUNCTION nama_fungsi

(parameter1 tipedata, parameter2 tipedata,...) RETURN tipe_data_fungsi IS

variable_variabel_lokal tipedata; BEGIN

statemen_statemen; ...

RETURN nilai_fungsi; END;

 Trigger : blok PL/SQL yang disimpan dalam database dan akan diaktivasi ketika melakukan statemen-statemen SQL terhadap sebuah tabel.

CREATE [OR REPLACE] TRIGGER nama_trigger

BEFORE|AFTER [INSERT|DELETE|UPDATE] ON nama_tabel FOR EACH ROW

DECLARE

-- berisi deklarasi variabel BEGIN

-- berisi statemen-statemen yang akan dieksekusi END;

4. Keuntungan dari naming convention yang baik adalah :

 Lebih mudah dibaca.

 Lebih mudah dipahami.

 Memberikan informasi mengenai fungsionalitas berdasarkan identifier.

 Kemudahan dalam proses debug.

(58)

Kuis Benar Salah

1. RPC (Remote Procedure Call) adalah proses pemanggilan stored procedure atau function pada database oleh aplikasi client.

2. Blok PL/SQL berikut : BEGIN

END;

Akan menghasilkan error.

3. Perbedaan antara prosedur dan fungsi adalah pada proses pengembalian nilai pada saat pemanggilan.

4. Trigger akan diaktivasi untuk setiap proses INSERT, DELETE, maupun UPDATE terhadap table apabila pada trigger tersebut tidak dispesifikasikan event apa yang bisa mengaktivasinya.

(Tanpa memperhatikan naming convention, untuk soal nomor 5 – 6 perhatikan prosedur berikut)

CREATE OR REPLACE PROCEDURE prc_upd_bil IS

bil INTEGER := 3;

BEGIN

bil := 5;

DBMS_OUTPUT.PUT_LINE(‘Nilai bil = ’ ||bil); END IF;

END;

(59)

Konsep Prosedural 55 6. execute prc_upd_bil;

Akan menghasilkan output :

Nilai bil = 5

(Tanpa memperhatikan naming convention, untuk soal nomor 7 – 9 perhatikan fungsi berikut)

CREATE OR REPLACE FUNCTION put_nama (pi_nama VARCHAR2)

7. SET serveroutput ON; DECLARE

(60)

9. SET serveroutput ON; DECLARE

coba VARCHAR2(10); BEGIN

coba := put_nama(‘123412341234’); DBMS_OUTPUT.PUT_LINE(coba);

END;

Akan menghasilkan output :

123412341234

(61)

Konsep Prosedural 57 Pilihan Ganda

1. Pengeksekusian statemen SQL dalam database dapat dilakukan dengan cara :

A. Sintaks SQL D. B dan C benar

B. Blok PL/SQL E. A, B, dan C benar

C. RPC

2. Berikut adalah beberapa jenis program unit, kecuali :

A. prosedur D. trigger

B. fungsi E. package

C. table

3. Blok PL/SQL yang membutuhkan event untuk mengaktivasinya disebut :

A. prosedur D. trigger

B. fungsi E. package

C. table

4. Blok PL/SQL yang membutuhkan statement RETURN adalah :

A. prosedur D. trigger

B. fungsi E. package

C. table

5. Keuntungan dari pengaturan naming convention adalah sebagai berikut, kecuali :

A. Executable D. Informative

B. Readable E. Consistency

(62)

(Tanpa memperhatikan naming convention, untuk soal nomor 6 – 8 perhatikan blok PL/SQL berikut)

SET serveroutput ON; DECLARE

coba INTEGER; BEGIN

coba := 5**3;

DBMS_OUTPUT.PUT_LINE(coba); END;

6 Output dari blok PL/SQL di atas adalah :

A. 555 D. 15

B. 125 E. Error

C. 0

7 Bila baris statemen :

coba INTEGER;

Diganti menjadi :

coba DECIMAL (3,2);

Maka outputnya menjadi :

A 555 D. 15

B 125 E. Error

C 0

8 Pada baris statemen :

coba INTEGER;

coba merupakan sebuah :

A Variabel D Cursor

B Konstanta E Type

(63)

Konsep Prosedural 59 (Untuk soal nomor 9 - 10 perhatikan trigger berikut)

CREATE OR REPLACE TRIGGER trg_coba BEFORE UPDATE ON barang

FOR EACH ROW BEGIN

UPDATE barang SET jumlah = 10; END;

9 Bila dilakukan eksekusi :

UPDATE barang SET jumlah = 20;

Maka setelah eksekusi statemen di atas, field jumlah akan bernilai :

A 10 D 40

B 20 E 50

C 30

10 Bila statemen eksekusi ditambah menjadi :

UPDATE barang SET jumlah = 20

WHERE nama_brg = ‘Lemari Es’;

(64)

Latihan

6. Sebutkan perbedaan antara prosedur, fungsi, dan trigger. Dan tuliskan sintaks masing-masing.

7. Sebutkan 5 keuntungan dari naming convention yang baik.

(Untuk soal nomor 3 - 4 perhatikan prosedur berikut)

CREATE OR REPLACE PROCEDURE prc_cetak_bil IS

bil INTEGER := 5;

BEGIN

-- statemen cetak bilangan ganjil ...

-- statemen cetak bilangan genap ...

END;

8. Pada blok :

-- statemen cetak bilangan ganjil ...

tambahkan statemen SQL untuk mencetak bilangan ganjil antara 1

hingga 5.

9. Pada blok :

-- statemen cetak bilangan genap ...

tambahkan statemen SQL untuk mencetak bilangan genap antara 1

hingga 5.

(65)

Konsep Prosedural 61 CREATE OR REPLACE FUNCTION cek_prima

(pi_bil INTEGER) RETURN BOOLEAN IS

ket BOOLEAN;

BEGIN

-- statemen cek bilangan prima ...

-- akan mengembalikan TRUE bila merupakan -- bilangan prima, dan FALSE bila bukan ...

END;

10. Pada statemen :

ket BOOLEAN;

Tambahkan inisialisasi nilai variabel dengan nilai awal adalah FALSE.

11. Pada blok :

-- statemen cek bilangan prima ...

tambahkan statemen SQL untuk meng-update nilai variabel ket menjadi TRUE bila bilangan yang dimasukkan adalah bilangan prima.

12. Mengembalikan nilai variabel ket sebagai nilai balikan fungsi cek_prima.

(Untuk soal nomor 8 - 10 perhatikan trigger berikut)

CREATE OR REPLACE TRIGGER trg_delete -- deklarasi event terhadap table ...

FOR EACH ROW BEGIN

-- statemen yang diaktivasi saat event terjadi ...

-- menampilkan keterangan ke layar ...

(66)

13. Pada blok :

-- deklarasi event terhadap table ...

tambahkan deklarasi bahwa trigger akan teraktivasi setelah terjadi proses delete terhadap salah satu row di table barang.

14. Pada blok :

-- statemen yang diaktivasi saat event terjadi ...

tambahkan statemen DELETE untuk nama_brg yang mengandung kata ‗Lemari‘ (gunakan operator LIKE dan fungsi UPPER).

15. Pada blok :

-- menampilkan keterangan ke layar ...

(67)

Lebih Lanjut Mengenai Prosedur 63

5

Lebih Lanjut Mengenai Prosedural

-Percabangan-

Overview

Pada sebuah blok PL/SQL dapat ditempatkan suatu kontrol untuk pengecekan yang dilakukan sebelum statemen-statemen dalam blok PL/SQL dieksekusi. Kontrol inilah yang kemudian disebut sebagai percabangan (decision control / branching). Secara garis besar terdapat dua statemen percabangan : statemen IF dan statemen CASE.

Tujuan

1. Mahasiswa memahami konsep percabangan.

2. Mahasiswa memahami berbagai jenis statemen percabangan.

(68)

5.1 Struktur Percabangan

Percabangan (decision control / branching) adalah suatu kontrol untuk pengecekan yang dilakukan sebelum statemen-statemen dalam sebuah blok PL/SQL dieksekusi. Statemen-statemen tersebut hanya akan dilakukan apabila kondisi yang didefinikan terpenuhi (bernilai TRUE). Dan sebaliknya, statemen-statemen tersebut tidak akan dieksekusi apabila kondisi tidak terpenuhi (bernilai FALSE).

Selain definisi di atas, percabangan juga bisa dikatakan sebagai pemilihan : blok PL/SQL akan memilih statemen-statemen yang akan dieksekusi berdasarkan kondisi yang terpenuhi.

TRUE FALSE PEMILIHAN

Secara garis besar, terdapat dua cara untuk melakukan percabangan, yaitu dengan menggunakan statemen IF dan statemen CASE.

5.1.1 Statemen IF

Penggunaan statemen IF dapat diklasifikasikan ke dalam tiga bagian, yaitu struktur untuk satu kondisi, dua kondisi, dan tiga kondisi atau lebih.

5.1.1.1Satu Kondisi (IF-THEN)

IF kondisi THEN

statemen-statemen;

(69)

Lebih Lanjut Mengenai Prosedur 65

Pada struktur ini, PL/SQL hanya akan mengecek sebuah kondisi. Apabila kondisi tersebut terpenuhi (bernilai TRUE) maka statemen-statemen dalam blok pemilihan tersebut akan dieksekusi terlebih dulu sebelum dilanjutkan ke statemen di bawah blok pemilihan. Akan tetapi bila kondisi tidak terpenuhi (bernilai FALSE) maka eksekusi akan langsung berpindah ke statemen di bawah blok pemilihan.

Contoh

/*Prosedur pengecekan stok lemari es*/ CREATE OR REPLACE PROCEDURE prc_stok_brg IS

v_stok INTEGER;

BEGIN

-- Mengambil nilai stok dari barang lemari es -- (nilai stok adalah bilangan positif)

SELECT stok_barang INTO v_stok FROM barang WHERE UPPER(nama_barang) = UPPER(‘lemari es’);

--Memeriksa nilai dari variabel v_stok IF v_stok = 0 THEN

--Jika v_stok = 0, cetak keterangan ke layar DBMS_OUTPUT.PUT_LINE(‘Persediaan barang telah habis’);

DBMS_OUTPUT.PUT_LINE(‘Persediaan barang telah habis’);

END IF;

(70)

terpenuhi, artinya statemen dalam blok pengecekan tidak akan dieksekusi dan kalimat ―Persediaan barang telah habis‖ tidak akan dicetak ke layar.

5.1.1.2 Dua Kondisi (IF-THEN-ELSE)

Pada struktur ini, perlu didefinikan kondisi khusus untuk mengatasi apabila kondisi yang didefinisikan pada blok IF tidak terpenuhi. Kondisi khusus tersebut diletakkan pada bagian ELSE.

Apabila kondisi IF terpenuhi (bernilai TRUE) maka statemen-statemen A akan dieksekusi terlebih dulu sebelum dilanjutkan ke statemen yang berada di bawah blok pemilihan. Bila kondisi IF tidak terpenuhi (bernilai FALSE) maka statemen-statemen B yang akan dieksekusi terlebih dulu sebelum dilanjutkan ke statemen yang berada di bawah blok pemilihan.

Contoh

/*Prosedur pengecekan stok lemari es*/ CREATE OR REPLACE PROCEDURE prc_stok_brg IS

v_stok INTEGER;

BEGIN

-- Mengambil nilai stok dari barang lemari es -- (nilai stok adalah bilangan positif)

SELECT stok_barang INTO v_stok FROM barang WHERE UPPER(nama_barang) = UPPER(‘lemari es’);

--Memeriksa nilai dari variabel v_stok IF v_stok = 0 THEN

--Jika v_stok = 0, cetak keterangan ke layar DBMS_OUTPUT.PUT_LINE(‘Persediaan barang telah habis’);

(71)

Lebih Lanjut Mengenai Prosedur 67 --Jika v_stok > 0, cetak keterangan ke layar DBMS_OUTPUT.PUT_LINE(‘Persediaan barang masih ada’);

DBMS_OUTPUT.PUT_LINE(‘Persediaan barang telah habis’);

ELSE

DBMS_OUTPUT.PUT_LINE(‘Persediaan barang masih ada’);

END IF;

Sintak tersebut berarti dilakukan pengecekan : jika jumlah lemari es bernilai nol, maka ditampilkan kalimat ―Persediaan barang telah habis‖. Jika stok barang ternyata tidak nol maka pengecekan kondisi IF tidak terpenuhi dan pengecekan akan memenuhi kondisi ELSE, artinya statemen dalam blok ELSE akan dieksekusi sehingga kalimat ―Persediaan barang masih ada‖ yang akan dicetak ke layar.

5.1.1.3 Tiga Kondisi atau Lebih Kondisi

(IF-THEN-ELSIF)

IF kondisi_1 THEN

statemen-statemen A;

ELSIF kondisi_2 THEN

statemen-statemen B;

...

ELSIF kondisi_n THEN

statemen-statemen N;

[ELSE

statemen-statemen lain;]

(72)

Pada struktur ini, minimal terdapat dua kondisi yang harus diperiksa dan satu tambahan kondisi khusus yang akan mengatasi kejadian dimana semua kondisi yang didefinisikan tidak terpenuhi (bernilai FALSE).

Mula-mula dilakukan pengecekan terhadap kondisi_1, jika TRUE maka statemen-statemen A akan dieksekusi dan kemudian mengeksekusi statemen yang berada di bawah blok pemilihan. Tapi bila FALSE maka akan dilakukan pengecekan selanjutnya untuk kondisi_2. Jika kondisi_2 TRUE maka statemen-statemen B akan dieksekusi sebelum statemen di bawah blok pemilihan dieksekusi, dan seterusnya. Apabila seluruh kondisi ELSIF tidak terpenuhi, maka statemen pada blok ELSE yang akan dieksekusi.

Contoh

/*Prosedur untuk menaikkan gaji pegawai*/ CREATE OR REPLACE PROCEDURE prc_upd_gaji

( pi_no_peg VARCHAR2) IS

v_pct_fgaji NUMBER(5,2);

v_gaji_col NUMBER;

BEGIN

-- Penentuan nilai gaji yang digunakan

-- untuk menentukan presentasi kenaikan gaji SELECT gaji INTO v_gaji_col

FROM pegawai

WHERE UPPER(no_peg) = UPPER(pi_no_peg); -- Menetapkan persentase kenaikan gaji IF v_gaji_col >= 3000000 THEN

v_pct_fgaji := 5.00;

ELSIF v_gaji_col >= 2000000 THEN v_pct_fgaji := 8.00;

ELSIF v_gaji_col >= 1000000 THEN v_pct_fgaji := 10.00;

ELSE

Gambar

Gambar 1.2 Struktur Disk [RAM] 13
Gambar 2.1 Struktur Basis Data
Gambar 2.2 Struktur Memory
Gambar 2.3 Process Structure
+7

Referensi

Dokumen terkait