BAB 2 LANDASAN TEORI. adanya sebuah data maka sebuah database tidak akan dibutuhkan, arti dari data sendiri

90 

Teks penuh

(1)

6

2.1 Database

Sebuah database sangat erat hubungannya dengan sebuah data, dimana tanpa adanya sebuah data maka sebuah database tidak akan dibutuhkan, arti dari data sendiri menurut Hoffer, Prescott, & Topi (2009, p46) adalah perwakilan penyimpanan dari objek dan kejadian yang memiliki pengertian dan kepentingan dalam lingkungan pengguna, Connolly & Begg(2010, p14) juga mengatakan bahwa data adalah sebuah jembatan antara komponen mesin dan komponen manusia, dijelaskan juga oleh Deliana, Cahya, & Kaisariza(2009, p1) bahwa data adalah kumpulan fakta yang dikumpulkan sebagai hasil pengalaman, observasi, atau percobaan dengan sistem komputer. Dari ketiga definisi diatas maka dapat disimpulkan bahwa data adalah sekumpulan fakta yang terjadi dan memiliki arti bagi pengguna yang dicatat dan disimpan di dalam suatu

record. Didasari oleh definisi mengenai data yang telah dijabarkan diatas, data memiliki

kegunaan yang penting bagi para pengguna dari data itu sendiri, dimana data merupakan fakta-fakta yang terjadi dan dibutuhkan oleh seorang pengguna atau suatu institusi atau organisasi yang akan diolah menjadi informasi dimana informasi yang terolah merupakan informasi yang dibutuhkan oleh para penggunanya. Dengan data yang fiktif atau tidak benar maka informasi yang dihasilkan akan menyesatkan pengguna informasi tersebut. Gambar 2.1 menunjukan contoh dari data client :

(2)

dimana data pada tabel Client yang ada pada gambar 2.1 berupa CR76, CR74, dan sebagainya dan data-data tersebut menunjukan atau memberikan informasi bahwa clientNo ‘CR76’ memiliki nama depan’John’ dan nama belakang ‘Kay’ beralamat di ’56 High St.London SW1 4EH’ dan no telponnya ‘0171-774-5632’.

Untuk penyimpanan data dan pengolahannya maka dibutuhkan sebuah database untuk menampung atau menyimpan data. Menurut Connolly & Begg (2010,p54)

Database merupakan sekumpulan data yang saling berelasi, selain itu Connolly & Begg

(2010, p54) juga menjelaskan dengan lebih rinci bahwa Database merupakan sekumpulan data yang berelasi secara logika dan deskripsinya, yang di-desain untuk memenuhi kebutuhan informasi dari sebuah organisasi. Kemudian dari kedua definisi mengenai database diatas dapat disimpulkan bahwa database adalah sekumpulan data yang saling berhubungan dimana data tersebut digunakan oleh sebuah organisasi atau perusahaan dalam melaksanakan proses bisnisnya. Sebuah database memiliki beberapa komponen yakni :

1. Entitas : merupakan sebuah objek yang direpresentasikan pada database 2. Atribut : merupakan karakteristik yang mendeskripsikan objek

3. Hubungan : merupakan hubungan antar entitas

Untuk penjelasan lebih lanjut dan contoh dari entitas,atribut, dan hubungan dapat dilihat pada subbab 2.7.1 mengenai Entity Relationship Diagram.

Di dalam suatu database data disimpan ke dalam file-file yang diorganisasikan bedasarkan sebuah schema atau struktur tertentu yang disimpan pada perangkat keras khusus seperti yang tertera pada gambar 2.1 dibawah

(3)

Gambar 2. 2 Contoh Database

(Sumber : http://pbsabn.lecture.ub.ac.id/files/2012/05/Untitled5.jpg)

Bedasarkan gambar diatas data yang disimpan dalam sebuah database dinamakan sebuag field, dan kumpulan dari field tersebut dinamakan record, dimana record-record yang ada akan akan disimpan pada sebuah file dan file-file tersebut akan disimpan dalam database. Hirarki data dapat dilihat pada gambar 2.3 :

Gambar 2. 3 Hirarki Data

(4)

Dalam melakukan aktivitasnya untuk mendukung kebutuhan informasi perusahaan database memiliki dua jenis konsep dalam pemrosesan data. Kedua konsep dalam pemrosesan data yakni :

1. Online Transaction Processing(OLTP)

Menurut Connolly & Begg(2010,p1199) OLTP merupakan sebuah sistem pemrosesan datayang dirancang secara khusus untuk menangani high transaction dengan transaksi yang merubah data operasional yang digunakan dalam operasi sehari-hari seperti sistem Point Of Sales(POS), pengecekan stok barang, pembuatan invoice. Connolly & Begg(2010,p1199) juga mengatakan pada umumnya Sistem OLTP digunakan untuk menangani transaksi yang dapat diprediksi, berulang-ulang, dan di-update secara instensif(sering dilakukan).

2. Online Analytical Processing(OLAP)

Menurut Connolly & Begg(2010,p1250) OLAP merupakan proses sintetik dinamik, analisa, dan consolidasi dari multi-dimensi data dalam jumlah besar. Dalam penerapannya OLAP memungkinkan seorang pengguna untuk melihat data organisasi dalam bentuk yang dibutuhkan oleh pengguna tersebut, sebagai contoh OLAP digunakan oleh suatu perusahan untuk menampilkan data perbandingan antara penjualan properti antar kota dalam bentuk tabel perbandingan seperti yang ditunjukan pada gambar 2.4

(5)

Gambar 2. 4 Tabel tiga kolom, dan (b) matriks dua dimensi (Sumber:Connolly & Begg(2010, p1254)

Seperti yang dapat dilihat pada gambar 2.4 data yang ditampilkan oleh OLAP dapat berbentuk tabel tiga kolom(a) atau matriks dua dimensi(b) sesuai dengan kebutuhan perusahaan dalam melihat data.

2.2 The Database Management System (DBMS)

Menurut Connolly & Begg (2010,p66) DBMS merupakan sebuah perangkat lunak yang berinteraksi antara program aplikasi pengguna dengan database dan memungkinkan seorang pengguna untuk mendefinisikan, membuat, menjaga, dan mengatur data yang ada di dalam database. Seperti yang dikatakan oleh Connolly pada penjelasan DBMS diatas DBMS merupakan sebuah perangkat lunak yang digunakan sebagai perantara antara database dengan pengguna untuk mengatur data yang ada di dalam database.

Dalam penggunaan DBMS, untuk mengakses data yang ada di dalam DBMS pengguna diharuskan menggunakan bahasa query, Bahasa query yang paling umum

(6)

adalah SQL lalu menurut Connolly & Begg(2010, p184) SQL dikatakan sebagai sebuah bahasa yang di desain untuk mengubah sebuah input menjadi output yang diinginkan, Sedangkan menurut Ashdown & Kyte (2011, p7-1), SQL merupakan bahasa pemograman tingkat tinggi dimana semua program dan user-nya mengakses Data di dalam database. Lalu dari kedua definisi mengenai SQL yang telah disebutkan dapat ditarik kesimpulan bahwa SQL merupakan sekumpulan perintah yang digunakan oleh

user untuk memanipulasi data yang ada di dalam database, baik menambah, mengubah,

ataupun menghapusnya.

DBMS sendiri dalam penerapannya ke dalam proses bisnis sebuah organisasi/pengguna memiliki beberapa kelemahan dan kelebihan seperti yang dikatakan menurut Connolly&Begg(2010,p77) kelebihan dan kekurangan dari DBMS adalah : 1. Kelebihan

Control of Data redundancy, dengan DBMS maka pengulangan/duplikasi data

dapat dikendalikan. Pada umumnya pendekatan database akan mengeliminasi data yang berulang/duplikasi sehingga tidak akan ditemukan data yang sama persis, namun dengan digunakannya DBMS maka pengguna dapat mengatur duplikasi data yang terjadi pada database dengan proses denormalisasi. Sebagai contoh :

(7)

Gambar 2. 5 Denormalisasi Tabel Order

(http://www.objectarchitects.de/ObjectArchitects/orpatterns/Performance/Denorm alization/index.6.gif)

Dengan dilakukannya proses denormalisasi seperti pada gambar diatas, dimana

orderPosition menjadi terduplikasi pada tabel Order maka kecepatan akses data

akan meningkat.

Data consistency, dengan pengendalian redudansi data seperti yang dijelaskan pada point diatas maka resiko terjadinya ketidak-konsisten-an data dapat dikurangi. Dengan penggunaan DBMS jika data diubah oleh pengguna maka perubahan data yang terjadi dapat dilihat dan dirasakan oleh semua pengguna yang sedang menggunakan data tersebut, DBMS juga mencegah pengguna lain untuk mengakes data yang sedang digunakan oleh pengguna yang lain. Sebagai contoh :

Andi sedang mengakses data gaji pada database dan mengubah nilai gaji Andi dari RP.500.000,- menjadi RP.1.500.000,- maka Badrun sebagai pengguna lain tidak dapat mengubah gaji Andi pada saat yang bersamaan. Setelah Andi selesai mengubah nilai gaji-nya, maka nilai gaji andi yang dilihat badrun pun ikut berubah menjadi RP.1.500.000,-

(8)

More information from the same amount of data, dengan terintegrasinya data

yang ada di dalam database maka sebuah organisasi dapat mendapat informasi yang lebih banyak dari data yang sama. Sebagai contoh :

Bagian Sales dari suatu perusahaan mempunyai data penjualan yang berisi ‘kode_Barang, Pemilik_barang’ dan bagian gudang memiliki data gudang yang berisi ‘Kode_barang, Nama_barang’. Dengan terintegrasinya data pada

database maka bagian sales dapat mengakses data gudang untuk mendapatkan

‘nama barang’ begitu pula dengan bagian gudang yang dapat mengakses data ‘pemilik barang’.

Improved security and integrity, dengan pemakaian DBMS maka integritas data

dan keamanan data dapat dijaga, dimana Integritas data dapat ditekankan pada kepastian dan konsistensi data yang pada umumnya integritas data diekspresikan sebagai Constraint. Sedangkan keamanan data mengacu pada proteksi data pada database terhadap pengguna yang tidak memiliki hak(unauthorized user). Tanpa adanya keaman yang kuat integritas data membuat data pada database menjadi mudah dilihat oleh siapa saja, oleh karena itu system keamanan yang ada pada DBMS memungkinakan keamanan data dapat dijamin. System keamanan pada DBMS bisa berupa username dan

password.

2. Kekurangan

Complexity, dikarenakan fungsinya yang beragam macam, maka DBMS

(9)

yang menggunakan DBMS haruslah mengerti semua fungsi yang dapat dilakukan oleh DBMS karena penyalahgunaan yang terjadi dalam penggunaan DBMS dapat berakibat fatal bagi sebuah organisasi. Sebagai contoh seorang DBA yang ingin mengubah username dan password seorang pengguna, namun dikarenakan DBA tersebut tidak mengerti sepenuhnya tentang fitur yang ada pada DBMS yang digunakan, DBA tersebut secara tidak sengaja menghapus username dan password pengguna.

Cost, biaya yang harus dikeluarkan dalam menjaga, dan penggunaan DBMS

relative besar dan beraneka ragam tergantung dari kemampuan yang ditawarkannya. Sebagai contoh DBMS untuk 1 orang pengguna mungkin hanya seharga RP. 1 juta sedangkan DBMS untuk sebuah perusahaan besar dengan jumlah pengguna ratusan orang akan memakan biaya sebesar RP. 10 juta. Performance, dengan banyaknya aplikasi yang harus mengakses DBMS secara

bersamaan maka performa database akan menurun karena resource yang ada pada database akan dibagi-bagi ke untuk mengangani setiap aplikasi yang mengakses database tersebut. Sebagai contoh seorang pengguna mengakses ke dalam database untuk penampilan data yang terhitung berlangsung selama 15 detik, namun dengan penggunaan DBMS dimana banyak pengguna dapat mengakses database yang sama dalam waktu yang relatif bersamaan maka waktu yang terhitung untuk penampilan data dari database akan memakan waktu sebesar 60 detik.

(10)

Higher impact of a failure, proses centralisasi yang terfokus pada sebuah

DBMS akan meningkatkan resiko yang terjadi apabila terjadi sebuah kerusakan pada salah satu komponen DBMS. Sebagai contoh apabila salah satu komponen DBMS rusak atau mengalami gangguan maka semua operasi yang terjadi akan mengalami hambatan. Sebagai contoh jika salah satu data pada database hilang atau corrupt maka semua data yang terhubung dengan data tersebut menjadi tidak dapat diakses dikarenakan Constraint yang ada pada data tersebut dan mengakibatkan semua operasi bisnis tidak dapat beroperasi sebagaimana mestinya.

Dalam penggunaannya DBMS juga menyediakan tiga fasilitas kepada pengguna DBMS, fasilitas yang diberikan DBMS kepada pengguna adalah DDL, DML, Acces-Control yang akan dibahas lebih lanjut pada subbab 2.2.2 mengenai DDL, subbab 2.2.3 mengenai DMLdan subbab 2.2.4 mengenai Access-Control.

Seperti yang telah dibahas diatas DBMS merupakan software yang dibutuhkan dalam mengatur atau me-manage data yang ada di dalam database, maka dari itu software DBMS yang beredarpun beraneka ragam yakni MS Access, Oracle, SQL Server,dan masih banyak lagi. Oracle yang merupakan salah satu jenis DBMS akan dibahas lebih lebih lanjut pada point 2.2.1.

2.2.1. Oracle

Oracle database merupakan sebuah DBMS yang mendukung SQL, PL/SQL, dan Java dan digunakan untuk menyimpan serta mengambil informasi secara terintegrasi dan komprehensif dalam jumlah yang besar. Seperti yang dikatakan oleh Sthrom

(11)

(2011, p1-1), Oracle database merupakan kumpulan dari data yang dianggap sebagai sebuah unit dimana Oracle database dibentuk untuk dapat menangani berbagai tingkat komplektivitas, mulai dari hirarki yang simpel hingga jaringan yang kompleks dengan hubungan multilevel dan menyediakan operating platform yang kokoh dalam mengimplementasikan fitur object-oriented seperti user-defined types, inheritance, dan

polymorphism. Oracle database juga telah melakukan ekstensi terhadap relational model menjadi object-relational model, yang membuatnya cocok untuk menyimpan

permodelan bisnis yang kompleks pada relational database. Disamping itu Oracle

database merupakan database pertama yang didesain untuk enterprise grid computing

yang menyediakan cara untuk mengelola informasi dan aplikasi secara fleksibel dan

cost-effective dimana Enterprise grid computing membuat large pool untuk standar

industri, ruang penyimpanan modular dan server. Oleh karena itu dengan adanya arsitektur ini, setiap sistem baru dapat secara cepat disediakan dari kumpulan komponen maka tidak dibutuhkan workload yang tinggi, dikarenakan kapasitas yang ada dapat ditambahkan atau dialokasikan dari resource pool sesuai yang diinginkan.

Fitur-fitur yang dimiliki oleh Oracle hingga versi terbarunya saat ini yaitu Oracle 11g adalah sebagai berikut :

Adanya data integrity yang memastikan bahwa adanya konsistensi, keakuratan dan kebenaran dari data yang disimpan sehingga user mendapat jaminan bahwa data diterima olehnya merupakan data yang benar-benar berasal dari sumber yang valid. Contohnya jika sudah terdapat user yang memiliki kode karyawan “123” maka tidak boleh terdapat user lain yang memiliki kode yang sama.

(12)

Adanya data concurrency yang menunjukan bahwa data yang ditunjukkan baik data yang berasal dari sumber asal dan duplikasinya memiliki hasil yang sama. • Memiliki fasilitas self-managing database sehingga proses administratif dapat

diotomatisasi dan mempermudah tugas dari DBA dikarenakan adanya

performance diagnostics, dan space and memory management. Dengan fitur ini

maka Oracle juga secara otomatis akan mengirim alert jika ditemukan adanya masalah pada database.

Menyediakan fasilitas Online backup dan crash recovery apabila database mengalami error.

Dapat melakukan adaptasi secara otomatis terhadap berbagai kondisi workload dari database server.

Menyediakan teknologi high-performance bagi data warehousing, OLAP, dan data mining.

• Dapat dengan mudah mengelola keseluruhan siklus hidup dari informasi dalam jumlah besar.

• Memiliki tingkat keamanan data yang tinggi serta terdapat penyesuaian untuk keamanan unique row, auditing, enksripsi data secara transparan, dan pemanggilan secara penuh terhadap data.

Melindungi data dari server failure, human error, dan mengurangi waktu

downtime yang dibutuhkan.

Memiliki Enterprise Manager agar pengelolaan database dapat dilakukan dengan mudah.

(13)

Disamping kelebihan yang diberikan oleh oracle, oracle sendiri memiliki beberapa kekurangan, kekurangan yang dimilliki oleh Oracle diantaranya sebagai berikut :

• Membutuhkan biaya yang cukup tinggi untuk diimplementasikan terlebih lagi jika user tidak memperhitungkan downtime cost.

• Kompleksitas yang tinggi menyebabkan membutuhkan waktu pembelajaran yang cukup lama bagi user yang ingin mendalami Oracle database secara menyeluruh.

Sebagai sebuah DBMS dengan kompleksitas yang tinggi oracle database memiliki arsitektur tersendiri dimana pada arsitektur tersebut oracle dipecah menjadi dua macam struktur yakni struktur database storage dan struktur database instance dimana akan dijelaskan lebih lanjut pada subbab 2.2.1 poin 1

1. Struktur Database Storage

Gambar 2. 6 Struktur Oracle Database Storage

(14)

Menurut Ashdown dan Kyte (2011, p1-8), struktur database storage pada Oracle database dibagi menjadi dua yaitu struktur logical dan physical seperti yang tertera pada Ilustrasi struktur database storage pada gambar 2.6 untuk penjelasan lebih lanjut mengenai struktur database Oracle berikut merupakan penjelasan dari struktur

physical dan logical yang dimiliki oleh Oracle database : a. Struktur Logical Database

Struktur logical database pada Oracle terdiri dari tablespace, data block, extents, dan segment. Dimana dengan adanya struktur ini maka Oracle memiliki fasilitas pengaturan dari disk space yang baik. Untuk penjelasan lebih lanjut mengenai struktur logical dari oracle berikut merupakan komponen-komponen yang terdapat pada struktur

logical oracle database :

Tablespace

Tablespace merupakan suatu logical storage unit yang terdapat di dalam Oracle database. Tablespace dikatakan logical karena tablespace tersebut tidak terlihat

di file system tempat database tersebut berada. Lalu Setiap tablespace memiliki paling sedikit satu datafile dimana datafile ini secara fisik terletak di file system server dimana setiap datafile hanya dimiliki oleh satu tablespace. Begitu pula setiap table dan index yang tersimpan di Oracle Database, setiap tabel dan

index tersebut dimiliki oleh sebuah tablespace dimana tablespace membangun

suatu “jembatan penghubung” antara Oracle Database dengan filesystem dimana index atau tabel disimpan.

(15)

Data Block

Oracle menyimpan data pada Data Blocks (dapat juga disebut Logical Blocks, Oracle Blocks, atau Pages). dimana satu data blocks akan berhubungan dengan sejumlah spesifik byte dari ruang database fisik di dalam disk.

Extent

Extent merupakan jumlah spesifik dari data block yang berkesinambungan dimana data tersebut dialokasikan untuk menyimpan tipe tertentu dari suatu informasi.

Segment

Segment merupakan kumpulan dari extent, dimana masing-masing dialokasikan

untuk struktur data tertentu dan semuanya disimpan pada tablespace yang sama.

b. Struktur Physical Database

Struktur fisikal dari ORACLE database terdiri dari datafiles, control files, redo log

files, archive log files, alert and trace log files, backup files, parameter files. Untuk

pemahaman lebih lanjut mengenai struktur fisik dari database oracle, berikut merupakan penjelasan singkat terhadap struktur fisik database :

Datafiles

Datafile merupakan file yang terasosiasi dengan tablespace, dimana datafile

hanya bisa dimiliki oleh sebuah tablespace. Dalam pembuatan datafile Oracle biasanya membuat datafile untuk tablespace dengan mengalokasikan jumlah tertentu dari disk space ditambah overhead yang dibutuhkan untuk file header.

(16)

Pada saat suatu datafile dibentuk, OS yang menjalankan Oracle bertanggung jawab untuk membersihkan informasi-informasi lama dan authorisasi dari suatu file sebelum dialokasikan ke Oracle dimana Semakin besar ukuran dari suatu

file, maka semakin lama proses authorisasi yang dibutuhkan. Pada umumnya Datafile berisi object-object dari suatu schema.

Control Files

Control files mengandung data – data mengenai struktur fisik dari database

seperti nama database, nama serta lokasi dari datafile dan redo log file, juga

timestamp dari pembuatan database dimana File-file ini sangat penting bagi database, Jika tidak ada control file, maka user tidak dapat membuka data file

untuk mengakses data – data yang terdapat di dalam database. Red Log Files

Online Redo Log File bertujuan untuk instance recovery suatu database yang

apabila database mengalami crash dan tidak kehilangan data files, maka

instance dapat melakukan prosedur recovery terhadap database dengan

informasi yang terkandung di dalamnya. • Archive Log Files

Archive log file merupakan catatan historis yang mengandung perubahan data

yang telah terjadi yang dikeluarkan oleh instance, dengan file ini dan backup dari database, user dapat melakukan proses recovery data-data file yang hilang.

Archive log juga memungkinkan adanya recovery dari data files yang telah di restore.

(17)

Parameter Files

Parameter file digunakan untuk menentukan bagaimana suatu instance

dikonfigurasi ketika mulai berjalan. Dimana Pada parameter file terdapat daftar dari sekumpulan configuration parameter bagi instance dan database.

Alert dan Trace Log Files

Alert Log File dianggap sebagai special trace file, dimana Alert log files merupakan catatan mengenai pesan dan error yang diatur secara kronologis .

Trace log files merupakan file yang berasal dari write server dan background process. dimana ketika internal error ditemukan oleh sebuah proses, maka

proses tersebut akan mencatat error tersebut ke trace file. Backup Files

Backup File digunakan untuk melakukan pemulihan terhadap database jika database mengalami kegagalan yang dapat disebabkan oleh media failure atau

human error yang menyebabkan original file terhapus. 2. Struktur Oracle Database Instance

Menurut Ashdown dan Kyte (2011,p1-9), Oracle database memiliki memory

structure dan process yang digunakan untuk mengelola dan mengakses database.

sehubungan dengan pernyataan diatas ketika aplikasi terhubung ke Oracle database, maka aplikasi tersebut akan terhubung dengan database instance yang merupakan sebuah kumpulan memori yang berfungsi untuk mengelola file database. lalu Instance akan melayani aplikasi tersebut dengan mengalokasikan area pada memory untuk membentuk memory structures dan proses-proses lainnya. Untuk penjelasan lebih lanjut

(18)

mengenai cara kerja oracle database yang terdapat pada gambar 2.6, dibawah ini merupakan komponen – komponen yang terdapat dalam Oracle Instance Structures :

a. Oracle Database Processes

Gambar 2. 7 Struktur Oracle Database Processes

(Sumber : Oracle Database 10g : Administration Workshop I)

Menurut Ashdown dan Kyte (2011, p1-10), Setiap instance yang terdapat di dalam Oracle database memiliki tiga tipe proses seperti yang terlihat pada gambar 2.7, tiga proses tersebut adalah :

Client Processes

Client processes merupakan proses yang dibentuk dan dikelola untuk

menjalankan kode aplikasi atau Oracle tool. dimana Sebagian besar

environment memiliki komputer yang terpisah bagi client processes.

Background Processes

Background processes merupakan proses yang berfungsi untuk menggabungkan fungsi-fungsi yang digunakan oleh Oracle database program yang berjalan untuk setiap client process.

(19)

Server Processes

Server processes merupakan proses yang melakukan komunikasi dengan client processes dan berinteraksi dengan Oracle database untuk memenuhi request

yang diterima dari user. b. Instance Memory Structures

Gambar 2. 8 Oracle Memory Structure

(Sumber : Oracle Database 10g : Administration Workshop I)

Menurut Ashdown dan Kyte (2009,p1-10), Oracle database membuat dan menggunakan memory structures (struktur dapat dilihat pada gambar 2.8) untuk kebutuhan menampung data yang disebar diantara para user serta terdapat private data

areas untuk setiap user yang terhubung. Menurut (Rani, Singh, & Sharma, 2011)

(20)

SGA (System Global Area)

SGA merupakan struktur memori yang dibentuk pada saat instance diinisialisasikan pertama kali, dimana Komponen – komponen yang terdapat pada SGA adalah sebagai berikut :

Database Buffer Cache

Database buffer cache digunakan untuk menampung data ke dalam memori.

Setiap kali user mengakses data, data tersebut akan ditampung ke dalam buffer

cache dan akan dikelola dengan menggunakan algoritma LRU. Penjelasan lebih

lanjut mengenai buffer cache dapat dilihat pada subbab 2.4 Redo Log Buffer

Berupa cache redo (digunakan untuk instance recovery) yang digunakan untuk menulis ke redo log files fisik ke dalam disk.

Shared Pool

Shared pool merupakan wadah yang berisi cache dari beragam construct yang

dapat digunakan secara bersama oleh banyak user. Large Pool

Large pool merupakan area optional yang menyediakan alokasi memori dalam

jumlah yang besar untuk beberapa proses besar, seperti Oracle backup dan operasi recovery, dan proses server I/O.

Java Pool

(21)

Streams Pool

Streams pool digunakan untuk menyimpan pesan yang berada pada buffered queue dan menyediakan memori untuk pencatatan proses oracle streams.

PGA (Program Global Area)

PGA merupakan area pada memori dengan fungsi mengatur informasi bagi

server process yang akan dibentuk pada saat sebuah server process mulai dijalankan.

Dikarenakan setiap server process memiliki PGA tersendiri yang dibentuk ketika proses server mulai berjalan maka akses read beserta write terhadap PGA bersifat eksklusif yaitu hanya kepada server process tersebut. Komponen – komponen yang terdapat pada PGA adalah sebagai berikut :

• Private SQL Area

Private SQL area berfungsi untuk menampung informasi mengenai SQL

statement yang telah diurai dan informasi lainnya yang berhubungan dengan

session untuk melakukan pemrosesan. Ketika server process mengeksekusi

sintaks SQL atau PL/SQL, maka private SQL area akan digunakan untuk menampung nilai bind variable.

• Session Memory

Session memory merupakan yang dialokasikan untuk menampung session variables (misalnya informasi logon) dan informasi lainnya yang terkait

dengan session tersebut. Jika terdapat di dalam shared server, maka session memory tidak bersifat private melainkan bersifat shared.

(22)

• SQL Work Area

SQL work area merupakan tempat dimana sekumpulan alokasi khusus dari

memori PGA digunakan untuk operasi yang bersifat memory-intensive yaitu operasi yang menggunakan memori dalam jumlah besar seperti penggunaan

sort-based operator, bitmap merge, dan bitmap create. Ukuran dari SQL work area dapat diatur sesuai dengan kebutuhan pada umumnya semakin

besar ukuran dari work area maka peforma dari operator tertentu akan meningkat namun dengan konsekuensi penggunaan memori yang juga semakin besar.

2.2.2. DDL Statement

DDL statement merupakan sebuah statement yang berfungsi untuk meng-definisikan, mengubah struktur, dan menghapus objek dari dalam database.

Statement DDL mengijinkan pengguna untuk :

Membuat, mengubah, dan men-drop objects dan struktur database lainnya, termasuk database itu sendiri dan pengguna database. Statement ini dimulai dengan keyword CREATE, ALTER, or DROP.

Membuang semua Data di dalam object schema tanpa menghilangkan struktur dari object tersebut. Statement ini dijalankan dengan keyword TRUNCATE. Melakukan proses GRANT dan REVOKE hak aksses dan peran. Statement

ini dijalankan dengan keyword GRANT, REVOKE.

Berikut adalah penjelasan lebih lanjut tentang Statement DDL dan contoh pemakaian serta hasil yang di-munculkan :

(23)

1. Create

Syntax Create digunakan apabila pengguna ingin membuat sebuah tabel, schema, view, ataupun index di dalam database. berikut adalah contoh pemakaian syntax Create:

a. Create Schema

“Create Schema” digunakan saat user ingin membuat sebuah schema, format

syntax yang digunakan adalah sebagai berikut :

Dimana Schema name adalah nama dari schema yang ingin dibuat, dan AUTHORIZATIOn merupakan nama dari pembuat schema tersebut, sebagai contoh pemakaian syntax CREATE CHEMA berikut adalah syntax yang digunakan untuk membuat schema “haha” dengan nama pembuat schema “hihi”

b. Create Table

Untuk membuat suatu tabel di dalam database maka pengguna dapat menggunakan syntax Create table dengan format syntax sebagai berikut :

CREATE TABLE table_name (

column_name1 data_type(Length), [NOT NULL] [DEFAULT default option][UNIQUE],

column_name2 data_type(Length), [NOT NULL] [DEFAULT], ………,

column_name n data_type(Length), [NOT NULL] [DEFAULT], CONSTRAINT “Constraint Name” {Condition} Primary Key (column_name),

FOREIGN KEY (Column_name) REFERENCES (table_name) ON DELETE [CASCADE|NO ACTION] ON UPDATE [CASCADE|NO ACTION] )

CREATE SCHEMA haha AUTHORIZATION hihi;

(24)

Dimana table_name merupakan nama table yang ingin dibuat, column_name1-2-n merupakan nama-nama kolom yang ingin dibuat, Data_Type merupakan jenis Data yang akan dimasukan pada tiap kolom yang ada, Length merupakan panjang dari tipe data yang diperbolehkan. [NOT NULL] [DEFAULT] [UNIQUE] merupakan alternative penambahan keterangan dari kolom yang dibuat, apabila NOT NULL digunakan maka pada kolom tersebut haruslah memiliki data, opsi DEFAULT akan memberikan ‘Default option’ sebagai data Default apabila pada opsi insert pengguna tidak memasukan nilai pada kolom, opsi [UNIQUE] berguna untuk menentukan apakah data pada kolom tersebut unik atau tidak, CONSTRAINT bisa digunakan sebagai Constraint pada kolom ataupun Constraint pada tabel, apabila digunakan pada kolom maka Constraint tersebut hanya berpengaruh pada kolom yang digunakan, apabila pada tabel maka Constraint tersebut akan berpengaruh pada semua tabel. PRIMARY KEY digunakan untuk menentukan

primary key pada tabel tersebut, sedankan FOREIGN KEY akan menentukan foreign key di tabel tersebut pada opsi ON DELETE dan ON UPDATE foreign key opsi

CASCADE dan NO ACTION merupakan aksi yang dilakukan, CASCADE berarti saat tabel tersebut dihapus maka semua data yang terintegrasi dengan tabel tersebut akan ikut hilang sedangkan pada opsi NO ACTION apabila tabel tersebut dihapus maka semua data yang terintegrasi dengan tabel tersebut akan tetap seperti apa adanya. Berikut adalah contoh pemakaian syntax create table

(25)

Pada contoh diatas Constraint yang dipakai berupa Constraint table, dan hasilnya akan menjadi sebagai berikut :

Gambar 2. 9 Tabel Persons

c. Create Index

Penjelasan lebih lanjut mengenai index akan dibahas pada subbab 2.3. berikut merupakan format dari syntax create index :

Dimana “indexName” adalah nama index yang ingin dibuat, table_name adalah nama tabel tempat index akan dibuat dan “Column_name”adalah kolom yang diberikan index. Sebagai contoh syntax dibawah ini akan membuat index001 pada tabel mahasiswa di kolom nama

CREATE INDEX Index_name ON table_name (column_name)

CREATE INDEX idx001 ON Mahasiswa (Nama) CREATE TABLE Persons

(

P_Id int NOT NULL,

LastName varchar(255) NOT NULL, FirstName varchar(255),

Address varchar(255), City varchar(255),

CONSTRAINT pk_PersonID PRIMARY KEY (P_Id) )

(26)

d. Create View

“Create View” digunakan saat user ingin membuat sebuah View, format syntax yang digunakan adalah sebagai berikut :

Dimana View_name adalah nama dari View yang ingin dibuat,

New_Column_Name adalah nama kolom yang ingin dibuat, subselect adalah syntax select yang digunakan untuk memasukan data ke dalam view. Sebagai contoh pemakaian syntax CREATE VIEW berikut adalah syntax yang digunakan untuk membuat view “haha” dengan sumber data tabel persons

2. Alter

Syntax ALTER digunakan untuk mengubah struktur tabel yang ada setelah

tabel tersebut dibuat, untuk mengubah sebuah tabel ada 6 tipe dari ALTER TABLE yang dapat digunakan yaitu :

Menambah kolom

Menghapus kolom

Manambah Constraint Menghapus Constraint

Menambah DEFAULT pada kolom Menghapus DEFAULT pada kolom

CREATE VIEW haha

AS SELECT * FROM persons;

CREATE VIEW view_name [New_Column_name 1, New_Column_name 2,…., New_Column_name n]

(27)

Bentuk syntax umum dari Alter adalah sebagai berikut

Dibawah ini akan dijelaskan lebih lanjut mengenai syntax ALTER TABLE dan contohnya :

a. Menambah kolom pada table Format :

Dimana table_name adalah nama table yang ingin diubah, column_name adalah nama kolom yang ingin ditambahkan, dan datatype adalah jenis Data dari kolom yang baru dan length adalah panjang dari tipe data pada kolom. Contoh Pemakaian syntax ALTER TABLE untuk menambahkan kolom DateofBirth pada tabel persons adalah sebagai berikut :

Maka Hasil yang akan diperoleh dengan penambahan kolom “DateofBirth” adalah seperti gambar berikut :

ALTER TABLE table_name

ADD column_name datatype(length);

ALTER TABLE Persons ADD DateOfBirth date;

ALTER TABLE table_name

{[ADD [COLUMN] column_name datatype(length) [NOT NULL][UNIQUE][DEFAULT default_option]] |

[DROP [COLUMN] column_name [RESTRICT|CASCADE]] | [ADD CONSTRAINT “constraint_name” Constraint Definition] | [DROP CONSTRAINT “constraint_name” [RESTRICT|CASCADE]] | [ALTER [COLUMN] SET DEFAULT defaultoption] |

[ALTER [COLUMN] DROP DEFAULT] }

(28)

Gambar 2. 10 Tabel Persons Beserta Datanya-Altered b. Menghapus kolom pada table

Untuk menghapus kolom dari sebuah tabel maka format dari Syntax ALTER TABLE yang digunakan adalah sebagai berikut:

Dimana table_name adalah nama table yang ingin diubah, column_name adalah nama kolom yang ingin dihapus. Sebagai contoh, untuk menghapus kolom DateofBirth dari tabel persons seperti yang ditampilkan pada gambar 2.10 diatas adalah sebagai berikut

Maka hasil dari penghapusan kolom DateofBirth dapat dilihat pada gambar 2.11 dibawah ini :

Gambar 2. 11 Tabel Persons Beserta Datanya-Altered 2

c. Menambah Constraint pada table

Untuk menambahkan sebuah Constraint pada kolom P_id maka format syntax ALTER TABLE yang dapat digunakan adalah

ALTER TABLE table_name DROP COLUMN column_name;

ALTER TABLE Persons DROP COLUMN DateOfBirth;

(29)

Dimana table_name adalah nama tabel yang ingin ditambahkan Constraint, dan Constraint_name adalah nama Constraint yang ingin ditambahkan, berikut adalah contoh penambahan Constraint pk_PersonID pada tabel Persons :

d. Menghapus Constraint pada table

Untuk menghapus sebuah Constraint pada kolom P_id maka format syntax ALTER TABLE yang dapat digunakan adalah

Dimana table_name adalah nama tabel yang ingin dihapus Constraint-nya, dan Constraint_name adalah nama Constraint yang ingin dihapus, berikut adalah contoh penghapusan Constraint pk_PersonID pada tabel Persons

e. Menambah Default pada kolom table

Untuk menambahkan default pada kolom dalam sebuah tabel maka format syntax yang dapat digunakan adalah sebagai berikut:

ALTER TABLE table_name

DROP CONSTRAINT constraint_name;

ALTER TABLE Persons

DROPCONSTRAINT pk_PersonID ; ALTER TABLE table_name

ADD CONSTRAINT constraint_name;

ALTER TABLE table_name

ALTER column_name SET DEFAULT default_option; ALTER TABLE Persons

(30)

Dimana table_name adalah nama table yang ingin diubah, column_name adalah nama kolom yang ingin ditambahkan Default, dan Default_option adalah opsi Default yang ingin ditambahkan. Contoh Pemakaian syntax Alter Table untuk men-set Default pada kolom “Address” pada tabel persons adalah sebagai berikut :

f. Menghapus Default pada kolom table

Untuk menghapus Default dari kolom sebuah tabel maka format dari Syntax ALTER TABLE yang digunakan adalah sebagai berikut:

Dimana table_name adalah nama table yang ingin diubah dancolumn_name adalah nama kolom yang ingin dihapus Default-nya. Contoh Pemakaian syntax ALTER TABLE untuk menghapus Default kolom “Address” pada tabel persons adalah sebagai berikut :

3. Drop

Syntax drop digunakan oleh user untuk menghapus object yang ada di dalam

database seperti table, schema, index, constraint, view, syntax drop ini dapat digunakan

dengan format sebagai berikut ALTER TABLE Persons

ALTER Address SET DEFAULT “Homeless”;

ALTER TABLE table_name

ALTER column_name DROP DEFAULT;

ALTER TABLE Persons

(31)

a. Drop Schema

“Drop Schema” digunakan saat user ingin menghapus sebuah schema, format

syntax yang digunakan adalah sebagai berikut :

Dimana Schema name adalah nama dari schema yang ingin dihapus, dan RESTRICT|CASCADE merupakan jenis pen-delete-an dimana jika RESTRICT dipilih maka SCHEMA yang mau dihapus haruslah kosong apabila tidak kosong maka proses penghapusan akan gagal, sedangkan pada CASCADE operasi penghapusan akan dijalankan walaupun SCHEMA masih memiliki isi(tidak kosong) jika pengguna tidak menetapkan RESTRICT atau CASCADE maka Default dari DROP SCHEMA adalah RESTRICT. Sebagai contoh pemakaian syntax DROP SCHEMA berikut adalah syntax yang digunakan untuk menghapus schema “haha” dengan asumsi bahwa pada SCHEMA “haha” sudah kosong

b. DropTable

“Drop Table” digunakan saat user ingin menghapus sebuah Table, format

syntax yang digunakan adalah sebagai berikut :

DROP [TABLE,VIEW, CONSTRAINT, SCHEMA, INDEX] “ObjectName” RESTRICT|CASCADE

[WHERE condition]

DROP TABLE table_name [RESTRICT|CASCADE] DROP SCHEMA haha;

(32)

Dimana Table_name adalah nama dari tabel yang ingin dihapus, dan

RESTRICT|CASCADE merupakan jenis pen-delete-an dimana jika RESTRICT dipilih maka TABLE yang mau dihapus tidak boleh memiliki objek apapun yang bergantung pada tabel yang ingin digapus, sedangkan pada CASCADE operasi penghapusan akan dijalankan dan menghapusTABLE dan objek lain yang

bergantung pada tabel tersebut. Jika pengguna tidak menetapkan RESTRICT atau CASCADE maka Default dari DROP TABLE adalah RESTRICT. Sebagai contoh pemakaian syntax DROP TABLE berikut adalah syntax yang digunakan untuk menghapus tabel “haha” dengan asumsi bahwa pada tabel tidak ada objek yang bergantung pada tabel “haha”

c. Drop View

“Drop View” digunakan saat user ingin menghapus sebuah View, format syntax yang digunakan adalah sebagai berikut :

DimanaView_name adalah nama dari View yang ingin dihapus, dan

RESTRICT|CASCADE merupakan jenis pen-delete-an dimana jika RESTRICT dipilih maka view yang mau dihapus tidak boleh memiliki objek apapun yang bergantung pada view yang ingin digapus, sedangkan pada CASCADE operasi penghapusan akan dijalankan dan menghapus VIEW dan objek lain yang bergantung pada tabel tersebut. Jika pengguna tidak menetapkan RESTRICT atau CASCADE maka Default dari DROP VIEW adalah RESTRICT. Sebagai contoh pemakaian

DROP VIEW view_name [RESTRICT|CASCADE] DROP TABLE haha;

(33)

syntax DROP VIEW berikut adalah syntax yang digunakan untuk menghapus view “haha” dengan asumsi bahwa pada view tidak ada objek yang bergantung pada view “haha” :

d. Drop Index

Syntax ini digunakan untuk menghapus index yang ada, penjelasan lebih lanjut mengenai index akan dibahas pada subbab2.3. berikut merupakan format dari syntax Drop index :

Dimana “indexName” adalah nama index yang ingin dibuat, sebagai contoh syntax dibawah ini akan menghapus index001 :

4. Grant

Syntax grant ini dipakai untuk memberikan akses atau hak khusus atas objek

dari database ke pada user tertentu, pada umumnya syntax grant ini dipakai untuk memberikan user tertentu sebuah akses atas suatu objek milik user lainnya. format yang dipakai dalam pembuatan syntax grant adalah sebagai berikut :

DROP INDEX Index_name ON table_name (column_name)

DROP INDEX idx001; DROP VIEW haha;

GRANT “Privilege1, Privilege2,…., Privilegen” | ALL PRIVILEGES ON “object Name”

TO “User Name”|PUBLIC [WITH GRANT OPTION];

(34)

Dimana “ Privilege” yang dimaksud adalah hak khusus yang ingin diberikan kepada

user seperti

SELECT

Fungsi dari privilege select akan memberikan user tertentu hak akses untuk

mengambil/ menampilkan data dari tabel tertentu, sebagai contoh user Andi sebagai pemilik tabel persons, memberikan hak kepada user badrun untuk menampilkan (dengan perintah select) data atas tabel persons miliknya

UPDATE

Fungsi dari privilege update akan memberikan user tertentu hak akses untuk

melakukan update data pada tabel tertentu, sebagai contoh user Andi sebagai pemilik tabel persons, memberikan hak kepada user badrun untuk mengubah data di tabel persons miliknya.

INSERT [ColumnName1, ColumnName2,….,ColumnName n]

Fungsi dari privilege insert akan memberikan user tertentu hak akses untuk

melakukan insert data pada tabel tertentu, sebagai contoh user Andi sebagai pemilik tabel persons, memberikan hak kepada user badrun untuk menambahkan kolom dengan nama “keluarga” di tabel persons miliknya. DELETE [ColumnName1, ColumnName2,….,ColumnName n]

Fungsi dari privilege delete akan memberikan user tertentu hak akses untuk

melakukan penghapusan terhadap tabel tertentu, sebagai contoh user Andi sebagai pemilik tabel persons, memberikan hak kepada user badrun untuk menghapus kolom dengan nama “DateOfBirth” di tabel persons miliknya.

(35)

REFERENCE [ColumnName1, ColumnName2,….,ColumnName n]

Fungsi dari privilege reference akan memberikan user tertentu hak akses untuk

melakukan referensi atas suatu kolom tertentu, untuk penjelasan lebih lanjut mengenai reference silahkan lihat subbab 2.2.2 poin 1 tentang create table pada bagian constraint.

dan “ object name´ adalah nama table,view, objek lainnya dimana user mendapat hak khusus dan dapat menjalankan hak khususnya, ´user name´ adalah user id yang akan diberikan hak khusus apabila memakai PUBLIC maka semua user yang ada akan mendapat hak khusus yang sudah di deklarasikan atas objek tersebut, dan WITH GRANT OPTION berguna apabila user yang diberikan hak atas object tersebut diperbolehkan untuk memberikan hak kepada user lain, sebagai contoh dibawah ini seorang DBA akan memberikan hak SELECT atas table mahasiswa kepada User andi.

Contoh diatas berarti DBA tersebut memberikan hak “SELECT” atas tabel “mahasiswa” kepada user “andi” dimana user “andi” dapat memberikan privileges tertentu kepada user lain.

5. Revoke

Syntax revoke ini akan mencabut privileges dari user tertentu sesuai yang telah

diberikan pada syntax GRANT. Bentuk pemakaian syntax revoke adalah sebagai berikut GRANT SELECT ON mahasiswa TO andi

WITH GRANT OPTION;

REVOKE [GRANT OPTION FOR] ““Privilege1, Privilege2,…., Privilege n” | ALL PRIVILEGES, ON “Object Name”

(36)

Dimana “ Privilege” yang dimaksud adalah hak khusus yang ingin diberikan kepada user seperti yang telah dijelaskan pada syntax grant diatas, GRANT OPTION FOR digunakan untuk mencabut hak yang telah diberikan WITH GRANT OPTION pada syntax grant diatas,“ object name´ adalah nama table,view, objek lainnya dimana

user mendapat hak khusus dan dapat menjalankan hak khususnya, ´user name´ adalah user id yang akan diberikan hak khusus apabila memakai PUBLIC maka semua user

yang ada akan mendapat hak khusus yang sudah di deklarasikan atas objek tersebut, dan CASCADE atau RESTRICT memili fungsi sama seperti pada syntax drop yang telah dijelaskan pada subbab 2.2.2 poin 3.

Gambar 2. 12 Ilustrasi Syntax REVOKE

Dalam contoh dibawah ini DBA akan mencabut hak SELECT atas table

mahasiswa dari user Andi.

(37)

2.2.3. DML Statement

DML Statement merupakan statement SQL yang digunakan untuk

menambahkan, mengubah, menghapus, dan menampilkan data yang ada di dalam

database. Untuk lebih jelasnya DML Statement mengijinkan pengguna untuk :

Menampilkan Data dari satu atau lebih table. Hal ini dilakukan dengan Syntax SELECT.

Menambahkan baris Data baru ke dalam table atau view. Hal ini dilakukan dengan Syntax INSERT.

Mengubah nilai dari suatu Data pada table atau view. Hal ini dilakukan dengan Syntax UPDATE.

Menghilangkan baris Data dari table atau view. Hal ini dilakukan dengan

Syntax DELETE.

Sebagai penjelasan lebih lanjut mengenai format DML Statement dan pemakaiannya, maka semua contoh yang digunakan akan merujuk pada gambar 2.13 yang menunjukan tabel persons dan order.

(38)

1. Select

Syntax ini digunakan untuk menampilkan data dari 1 atau lebih tabel dari dalam

database. untuk menampilkan data dari 1 tabel maka akan digunakan syntax select

dengan format syntax seperti di bawah ini

Dimana dalam syntax select pengguna dapat memilih untuk menampilkan data dengan distinct(menampilkan data tanpa ada redudansi/duplikasi) sehingga data yang ditampilkan berupa unique, column name adalah nama-nama kolom yang ingin di tampilkan datanya. Lalu ‘FROM’ merujuk kepada nama tabel sumber data yang ingin ditampilkan, table_name adalah nama sumber table yang ingn ditampilkan. Setelah pengguna menentukan data yang ingin ditampilkan dan tabel asal data, maka pengguna juga dapat mengatur data-data yang ditampilkan dengan syntax WHERE, GROUP BY, ORDER BY, dimana syntax WHERE berguna sebagai Filter terhadap data-data yang ingin ditampilkan, syntax GROUP BY digunakan apabila syntax select memiliki data agregat yang berupa hasil perhitungan, dan ORDER BY digunakan untuk mensortir data. Contoh penggunaan syntax select :

Contoh dibawah User akan menampilkan seluruh data dari table persons

SELECT [DISTINCT] column_name1,column_name2,column_name n [AS newColumnName] FROM table_name [alias]

[WHERE Condition] [GROUP BY Condition] [ORDER BY Condition]

(39)

Gambar 2. 14 Tabel Persons beserta datanya 2

Sedangkan untuk menampilkan data lebih dari satu tabel maka syntax join, atau

Cartesian product dapat digunakan. Untuk penjelasan lebih lanjut mengenai syntax join

dan Cartesian product akan dibahas pada poin a&b.

a. Join

Join merupakan query yang bertujuan untuk menggabungkan baris Data dari dua

atau lebih table atau view. Dimana Join biasanya memiliki paling sedikit satu kondisi

join yang terletak pada klausa WHERE dimana kondisi join tersebut akan

membandingkan dua kolom dari table yang berbeda sebelum dilakukan penggabungan. Dalam penggunaannya syntax join memiliki dua jenis join yang dapat digunakan pengguna dalam melakukan penggabungan dua tabel atau lebih, jenis-jenis join yang dapat digunakan oleh pengguna adalah INNER JOIN, dan OUTER JOIN. Untuk contoh dan penjelasan lebih lanjut mengenai syntax Join semua contoh penggunaan syntax join yang akan dibahas lanjut pada seksi (i) dan (ii) dibawah ini akan didasari pada tabel

persons dan order seperti yang tertera pada Gambar2.14 diatas

i. INNER JOIN

Inner Join merupakan salah satu jenis join dimana baris Data yang

dikembalikan hanya baris yang memenuhi syarat pada kondisi join. Syntax INNER JOIN dapat digunakan dengan format sebagai berikut

(40)

Dimana Column_name merupakan nama colom yang akan digabung,

table_name adalah nama table yang akan digabungkan, table_name1.column_name = table_name2.column_name adalah syarat penggabungannya.

Contoh Penggunaan syntax INNER JOIN yang akan menggabungkan tabel persons dan orders adalah sebagai berikut:

Dan Hasil dari penggabungan syntax join tabel persons dan orders adalah :

Gambar 2. 15 Hasil Join Tabel Persons dan Order 2

ii. OUTER JOIN

Outer Join merupakan syntax join dimana Data yang ditampilkan merupakan

data yang memenuhi syarat dan semua Data dari salah satu table, walaupun pada table lainnya tidak terdapat Data yang sama, untuk penjelasan lebih lanjut dibawah ini akan dibahas mengenai tiga jenis Syntax outer join yaitu :

SELECT column_name1,column_name2,column_name n FROM table_name1

INNER JOIN table_name2

ON table_name1.column_name=table_name2.column_name

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo FROM Persons

INNER JOIN Orders

ON Persons.P_Id=Orders.P_Id ORDER BY Persons.LastName

(41)

LEFT JOIN

LEFT JOIN merupakan outer join yang akan mengembalikan semua baris Data

yang terdapat pada tabel pertama (tabel pertama akan dianggap menjadi sisi sebelah “kiri”). Format dari Syntax LEFT JOIN dalam penggunaanya adalah sebagai berikut:

Dimana Column_name merupakan nama-nama kolom yang akan digabung,

table_name adalah nama table yang akan digabungkan,

table_name1.column_name=table_name2.column_name adalah syarat penggabungannya. Sebagai contoh penggunaan LEFT JOIN yang akan menggabungkan tabel persons dan tabel orders maka bentuk syntax yang akan digunakan adalah sebagai berikut :

Dari penggunaan syntax left join diatas maka data yang dihasilkan adalah seperti pada gambar 2.16 dibawah ini.:

Gambar 2. 16 Hasil Left Join Tabel Persons dan Order

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo FROM Persons

LEFT JOIN Orders

ON Persons.P_Id=Orders.P_Id ORDER BY Persons.LastName

SELECT column_name1,column_name2,column_name n FROM table_name1

LEFT JOIN table_name2

(42)

RIGHT JOIN

RIGHT JOIN merupakan outer join yang akan mengembalikan semua baris

Data yang terdapat pada tabel kedua (tabel pertama akan dianggap menjadi sisi sebelah “kanan”). Format dari Syntax LEFT JOIN dalam penggunaanya adalah sebagai berikut:

Dimana Column_name merupakan nama-nama kolom yang akan digabung,

table_name adalah nama table yang akan digabungkan, table_name1.column_name = table_name2.column_name adalah syarat penggabungannya. Sebagai contoh penggunaan RIGHT JOIN yang akan menggabungkan tabel persons dan tabel orders maka bentuk syntax yang akan digunakan adalah sebagai berikut :

Dari penggunaan syntax right join diatas maka data yang dihasilkan adalah seperti pada gambar 2.17 dibawah ini.:

Gambar 2. 17 Hasil right Join Tabel Persons dan Order

SELECT column_name1,column_name2,column_name n FROM table_name1

RIGHT JOIN table_name2

ON table_name1.column_name=table_name2.column_name

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo FROM Persons

RIGHT JOIN Orders

ON Persons.P_Id=Orders.P_Id ORDER BY Persons.LastName

(43)

FULL OUTER JOIN

FULL OUTER JOIN merupakan outer join yang memadukan LEFT JOIN

dengan RIGHT JOIN sehingga baris Data yang akan dikembalikan dapat berasal dari sisi sebelah “kiri” table maupun sebelah “kanan” table. Format dari Syntax Full Outer Join dalam penggunaanya adalah sebagai berikut:

DImana Column_name = nama colom yang akan digabung, table_name adalah nama table yang akan digabungkan, table_name1.column_name =

table_name2.column_name adalah syarat penggabungannya. Sebagai contoh penggunaan FULL OUTER JOIN yang akan menggabungkan tabel persons dan tabel orders maka bentuk syntax yang akan digunakan adalah sebagai berikut :

Dari penggunaan syntax Full Outer join diatas maka data yang dihasilkan adalah seperti pada gambar 2.18 dibawah ini.:

Gambar 2. 18 Hasil Full Join Tabel Persons dan Order

SELECT column_name1,column_name2,column_name n FROM table_name1

FULL JOIN table_name2

ON table_name1.column_name=table_name2.column_name

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo FROM Persons

FULL JOIN Orders

ON Persons.P_Id=Orders.P_Id ORDER BY Persons.LastName

(44)

b. Cartesian Product

Cartesian product merupakan Top join dimana semua Data ditampilkan dari

masing-masing table dikarenakan tidak menggunakan kondisi penggabungan pada syntax join. Cartesian Product ini dapat digunakan dengan format :

Dari syntax diatas “Table 1”, “Table 2”, “Table n” merupakan Cartesian product Contoh :

c. Subquery

Subquery merupakan Statement SELECT yang bersifat nested di dalam SQL Statement lainnya. Subquery berguna ketika ada banyak query yang harus dieksekusi

untuk memecahkan satu masalah. Subquery ini dapat digunakan dengan format :

Sebagai Contoh penggunaan subquery adalah sebagai berikut:

SELECT “Column Name 1”, “Column Name 2”,….., “Column Name n” FROM “Table 1”, “Table 2”, “Table n”

SELECT * FROM EMPLOYEE, DEPARTMENT

SELECT “Column Name 1”, “Column Name 2”,….., “Column Name n” FROM “Table Name”

WHERE “Condition” IN (

SELECT “Column Name” FROM “Table Name” WHERE “Condition” );

SELECT first_name, last_name FROM employees WHERE department_id

IN (SELECT department_id FROM departments WHERE location_id = 1800);

(45)

d. Exists & IN

Penggunaan Syntax exists akan mengecek apakah sebuah row itu eksis atau tidak bedasarkan syarat yang ditentukan. Dan dianjurkan digunakan ketika terjadi komparasi atas satu kolom dengan kolom lainnya. Bentuk pemakaian syntax Exists adalah sebagai berikut :

Dimana column name adalah nama kolom yang data-datanya ingin dijadikan sebagai persyaratan, dan table_name adalah nama sumber table yang ingn ditampilkan dan condition adalah syarat pemanggilan, berikut merupakan contoh penggunaan syntax exists yang mengacu pada gambar 2.12 untuk menampilkan data persons dimana data yang ditampilkan merupakan data yang memiliki LastName “hansen” atau “peter”

Bedasarkan query exists diatas maka gambar 2.19 merupakan hasil dari query exists

Gambar 2. 19 Tabel Persons – Exists

Dan Penggunaan Syntax IN juga akan mengecek apakah sebuah row itu eksis atau tidak bedasarkan syarat yang ditentukan. Berikut merupakan format yang dipakai dalam menggunakan syntax In:

SELECT “Column Name 1”, “Column Name 2”,….., “Column Name n” FROM table_name

WHERE column_name EXISTS (SELECT ‘COLUMN_NAME1, COLUMN_NAME1,…, COLUMN_NAME n ’ FROM ‘TABLE_NAME’ WHERE ‘Condition’)

SELECT *

FROM persons

WHERE EXISTS (SELECT LastName FROM persons WHERE LastName =’Hansen’ or LastName=’Peter’ )

(46)

Dimana column name adalah nama kolom yang ingin di tampilkan data-datanya, dan table_name adalah nama sumber table yang ingn ditampilkan dan

value adalah syarat pemanggilan. Dibawah ini merupakan contoh penggunaan syntax in

untuk menampilkan data persons dimana data yang ditampilkan merupakan data yang memiliki LastName “hansen” atau “peter”

Dari sytax in diatas maka Hasil dari query In adalah seperti yang ditampilkan pada gambar 2.20 :

Gambar 2. 20 Tabel Persons – In e. Group By & Distinct

Syntax Distinct digunakan untuk menampilkan satu (Non-Duplikasi) baris Data dari

sebuah tabel. Berikut merupakan bentuk dari syntax distinct :

Dimana column name adalah nama kolom yang ingin di tampilkan data-datanya, dan table_name adalah nama sumber table yang ingn ditampilkan. Contoh Penggunaan

SELECT DISTINCT column_name FROM table_name

SELECT “Column Name 1”, “Column Name 2”,….., “Column Name n”) FROM table_name

WHERE column_name IN (value1,value2,...)

SELECT * FROM Persons

(47)

dari syntax distinct untuk menampilkan data “city” dari tabel persons yang terdapat pada gambar 2.12 adalah sebagai demikian

Bedasarkan syntax distinct diatas maka hasil yang diberikan adalah seperti yang tertera pada gambar 2.21:

Gambar 2. 21 Tabel Persons-Distinct

Dan untuk pemakaian Syntax group by bentuk dasar dari syntax group by adalah sebagai demikian :

Dimana column name adalah nama kolom yang ingin di tampilkan data-datanya, dan table_name adalah nama sumber table yang ingn ditampilkan. Berikut merupakan penggunaan syntax group by untuk menampilkan data Nim, Nama, Alamat dikelompokan bedasarkan Nim, Nama, Alamat

Bedasarkan query group by diatas maka hasil yang didapat dari peng-eksekusian query adalah sebagai demikian :

SELECT DISTINCT City FROM Persons

SELECT ‘COLUMN_NAME’ FROM ‘TABLE_NAME’

GROUP BY ‘COLUMN_NAME’

SELECT Nim, Nama, Alamat FROM ‘Mahasiswa’

(48)

Gambar 2. 22 Tabel Persons-Group By

2. Insert

Untuk menambahkan data kedalam sebuah database maka pengguna dapat menggunakan kedalam sebuah database maka pengguna dapat menggunakan syntax

insert. Syntax insert dapat digunakan untuk menambahkan data kedalam sebuah table

dengan format seperti yang terdapat dibawah ini.

Dimana table_name adalah nama table yang ingin diinput datanya dan value berupa nilai-nilai dari data yang ingin dimasukan. Sebagai contoh gambar 2.23 merupakan table persons sebelum dilakukan perintah insert

Gambar 2. 23 Tabel Persons beserta datanya 3

Dan berikut merupakan syntax insert yang akan memasukan data ke dalam table persons INSERT INTO table_name

VALUES (value1, value2, value n,...)

INSERT INTO Persons

(49)

Setelah proses insert selesai maka tabel persons akan berubah menjadi seperti gambar 2.24 :

Gambar 2. 24 Tabel Persons Beserta Datanya – Inserted

3. Update

Untuk merubah data yang terdapat dalam database maka pengguna dapat menggunakan syntax update. Syntax update dapat digunakan untuk mengubah data kedalam sebuah table dengan format sebagai berikut:

Dimana table_name adalah nama tabel yang ingin di-update column1-2 adalah nama kolom yang ingin diupdate, value1-2 adalah nilai dari updatenya, some_column dan some_value adalah syarat kolom dannilai dari yang akan diubah. Sebagai contoh pemakaian syntax update, berikut adalah table persons :

Gambar 2. 25 Tabel Persons Beserta Datanya 4

UPDATE table_name

SET column1=value, column2=value2, column n=value n ,... WHERE some_column=some_value

(50)

Lalu berikut adalah syntax Update yang digunakan untuk mengubah data ‘Jakob’

Setelah proses update selesai maka hasil dari syntax update adalah sebagai berikut

Gambar 2. 26 Tabel Persons Beserta Datanya - Updated

4. Delete

Untuk menghapus data dari dalam database, maka pengguna dapat menggunakan syntax delete. Syntax delete dapat digunakan untuk menghapus data dari sebuah table dengan format sebagai berikut :

Dimana table_name adalah nama table yang ada, some_column dan some_value adalah syarat kolom dannilai dari yang akan dihapus datanya. Sebagai contoh pemakaian syntax delete berikut adalah tabel persons beserta datanya sebelum dilakukan perintah Delete

Gambar 2. 27 Tabel Persons Beserta Datanya 5

UPDATE Persons

SET Address='Nissestien 67', City='Sandnes'

WHERE LastName='Tjessem' AND FirstName='Jakob'

DELETE FROM table_name WHERE some_column=some_value

(51)

Dan untuk menghapus ‘Johan’ dengan P_ID=4, Berikut adalah contoh syntax delete yang digunakan

Setelah syntax delete dijalankan dengan sukses maka data yang dihasilkan akan menjadi seperti gambar 2.28 :

Gambar 2. 28 Tabel Persons Beserta Datanya - Deleted

2.2.4. Access-Control

Menurut Connolly & Begg (2010,p66), Salah satu fitur lainnya yang disediakan DBMS dalam mengelola database adalah Kontrol-akses, dimana control-akses menyediakan :

Security System

Fasilitas dari DBMS ini dapat digunakan untuk melindungi data-data yang ada di dalam database dengan menolak user tanpa ijin untuk mengakses database, contoh dari sistem keamanan adalah username dan password.

Intergrity System

Fasilitas dari DBMS ini berupa system integrasi data yang akan mengatur konsistensi Data yg tersimpan, sehingga data yang ada di dalam database menjadi terintegrasi satu dengan yang lainnya

(52)

Concurency Control System

Fasilitas DBMS ini berguna untuk memungkin pembagian akses ke database sehingga pengguna yang dapat mengakses database tidak selalu bergantung pada DBA.

Recovery Control System

Fasilitas DBMS ini merupakan system yang akan menyimpan keadaan konsisten database sebelum terjadi kerusakan sehingga mempermudah proses

recovery pada saat data/database itu sendiri mengalami kegagalan.

User-accessible catalog

Fasilitas DBMS ini berguna untuk menyimpan deskripsi dari Data yang ada di dalam database yang akan mempermudah pengguna dalam mengenali data yang ada di dalam database.

2.3 Index

Menurut Ashdown & Kyte (2011, p61), Index adalah sebuah struktur optional yang diasosiasikan dengan table atau table cluster yang dapat mempercepat akses Data. sedangkan menurut Connolly & Begg(2010,p242) index adalah sebuah struktur yang menyediakan percepatan akses kepada sebuah baris dalam tabel didasari pada nilai dari satu atau lebih kolom. Dari ke dua definisi diatas dapat ditarik kesimpulan bahwa index adalah sebuah struktur yang digunakan untuk mempercepat akses data dan didasari dari sebuah nilai. Oleh karena itu dengan jika suatu tabel dengan jumlah data yang besar tidak menggunakan Index, maka database harus melakukan full table scan dalam

(53)

mencari nilai yang akan menyebabkan waktu akan semakin bertambah seiring dengan meningkatnya volume Data. index memiliki dua karakteristik sebagai berikut :

1. Usability

Index dapat berupa usable ataupun unusable, dimana suatu unusable index tidak

diatur oleh operasi DML dan diabaikan oleh optimizer sehingga meningkatkan peforma bulk loads yaitu kejadian dimana dilakukannya proses entry data dalam jumlah besar ke dalam tabel dimana jika index sedang dalam kondisi usable dapat memperlambat proses entry data tersebut. Selain itu penggunaan

Unusable Index dan Index partitions tidak mengkonsumsi space dan ketika suatu Index dibuat menjadi unusable, database akan melakukan proses drop pada Index Segment.

2. Visibility

Index dapat berupa visible atau invisible, dimana suatu invisible Index akan diatur

oleh operasi DML dan tidak digunakan secara default oleh optimizer. Selain itu suatu invisible Index merupakan suatu alternatif untuk membuat Index tersebut menjadi unusable atau men-drop nya. Kemudian, Invisible Index sangat berguna untuk melakukan testing terhadap suatu Index sebelum Index tersebut di drop atau digunakan secara temporer tanpa mengganggu kinerja aplikasi.

(54)

1. B-Tree Index

Gambar 2. 29 B-Tree Index (Sumber : Oracle Database Concepts 11g Release 2) B-Tree merupakan singkatan dari balanced trees, dan merupakan jenis index

yang paling sering dipakai dimana B-tree index merupakan sederetan nilai terurut yang dibagi dalam jarak nilai tertentu. Lalu B-tree juga memberikan performa pengambilan sejumlah baris query yang sangat baik.

(55)

Berikut adalah Jenis-jenis B-Tree index : a. Index-Organized Tables

Gambar 2. 30 Index-Organized Tables (Sumber : learningdrop.com)

Index-Organized Tables merupakan tabel yang disimpan di dalam variasi

struktur B-Tree Index. Index-organized tables terlihat seperti tabel pada umumnya dengan primary key index yang terdapat pada satu atau lebih atribut miliknya. Namun, jika pada tabel biasa terdapat dua ruang penyimpanan yang harus dikelola (ruang penyimpanan untuk tabel itu sendiri dan untuk B-Tree index), pada index-organized

tables seluruh atribut yang ada pada tabel tersebut disimpan sebagai index sehingga

hanya cukup mengelola satu B-Tree index yang mengandung primary key beserta atribut-atribut yang lain. Jadi dapat dikatakan bahwa selain berperan sebagai tabel yang menyimpan baris data pada umumnya, tabel tersebut juga berperan sebagai index. Sebagai contoh, terlihat pada gambar 2.29 terdapat ilustrasi perbedaan antara tabel yang menggunakan index biasa dengan index-organized tables. Pada index biasa, setiap data dari atribut memiliki rowid yang berfungsi sebagai pointer kepada lokasi dari data yang ada pada tabel yang bersangkutan sedangkan pada index-organized tables, tidak

Figur

Memperbarui...

Referensi

Memperbarui...

Related subjects :