BAB 2 TINJAUAN PUSTAKA 2.1 - Analisis Performansi Database Ditinjau dari Aspek Optimasi Query dan Desain Model Data Relational pada DAS dan RAID

BAB 2 TINJAUAN PUSTAKA

2.1 Model Data

  Untuk membangun suatu sistem aplikasi, basis data merupakan pemodelan keadaan dari “Real word” atau dunia nyata. Upaya perancangan basis data dapat ditempuh dengan membuat sebuah model dari awal sama sekali sampai dilakukan perbaikan- perbaikan untuk mendapatkan sebuah model data yang lebih permanen dan lebih mendekati pada keadaan yang sebenarnya.

  Menurut SilberSchatz et al. (2002), model data adalah kumpulan perangkat konseptual untuk menggambarkan data, hubungan data, semantik (makna) data dan batasan data.

  Model basis data relasional merupakan salah satu model basis data disamping ada model basis data hirarki dan model basis data jaringan (network). Model basis data relasional adalah model yang menggunakan kumpulan table yang masing-masing tabelnya terdiri dari kumpulan baris/record dan atribut/field.

2.1.1 Basis Data Relasional

  Basis data relasional adalah basis data yang setiap entitasnya disimpan kedalam tabel- tabel. Basis data akan dipilah-pilah kedalam berbagai tabel 2 dimensi. Setiap table terdiri atas lajur mendatar yang disebut baris data (row atau record) dan jalur vertikal yang biasa disebut kolom (column atau field).

2.2 Entity Relationship Model

  Dalam membuat sebuah Basis Data, hal pertama yang harus dilakukan adalah mendesain tabel tabel yang akan digunakan untuk menyimpan data sesuai bisnis proses yang kita inginkan. Proses konseptual adalah pandangan secara konsep tentang basis data. Pandangan Pandangan konseptual ini tentunya harus bisa diimplementasikan diimplementasikan kedalam bentuk tabel, karena ntuk tabel, karena basis data relasional hanya mengenal tabel. relasional hanya mengenal tabel.

  ER adalah salah satu salah satu pemodelan basis data konseptual yang menggambarkan yang menggambarkan basis data ke dalam bentuk dalam bentuk Entitas-Entitas dan Relasi yang terjadi di antara di di antara entitas- entitas yang ada(SilberSchatz,et SilberSchatz,et al. 2002). Entitas diartikan sebagai ‘objek objek’ didunia nyata yang bisa dibedakan dibedakan dengan ‘objek’ yang lain. Relasi diartikan diartikan sebagai hubungan yang terjadi diantara satu entitas dengan entitas yang lainnya. hubungan yang terjadi diantara satu

2.2.1 Entitas dan Himpunan Entitas Entitas dan Himpunan

  Definisi entitas adalah objek yang dirasa penting di sistem tersebut, ntitas adalah objek yang dirasa penting di sistem tersebut, yg bisa berupa : ersebut, yg bisa berupa : Objek Konkrit

  • – Contoh : Orang, Buku Contoh : Orang, Buku Objek Abstrak –

  Contoh : Jadwal, Pinjaman Contoh : Jadwal, Pinjaman, Tabungan Bambangadalah salah Bambangadalah salah satu contoh dari entitas. Sedangkan bambang, Sedangkan bambang, susi,

  sumarno merupakan him n himpunan entitas orang. Dapat dikatakan bahwa bahwa Himpunan

  Entitas (Entity Set) : Sekelompok Sekelompok entitas yang sejenis dan berada dalam lingkup dalam lingkup yang sama. Kumpulan entitas oran entitas orang dengan karakteristik mempunyai nim, prodi, nim, prodi, dsb bisa dikatakan merupakan himpunan merupakan himpunan entitas mahasiwa. Entitas menunjuk kepada menunjuk kepada pada individu suatu objek sedangkan objek sedangkan himpunan entitas menunjuk pada rumpun pada rumpun (family) dari individu tersebut.

  Gambar 2. Gambar 2.1 Himpunan Entitas Mahasiswa Sebuah entitas / himpunan entitas / himpunan entitas dapat di gambarkan / di notasikan di notasikan dengan sebuah gambar persegi panjang. persegi panjang. Berikut merupakan contoh entitas mahasiwa, entitas mahasiwa, jadwal dan pinjaman.

Gambar 2.2 Contoh Himpunan Entitas Gambar 2.

  Setiap entitas mempunyai mempunyai atribut yang melekat pada entitas tersebut. entitas tersebut. Berikut gambaran konseptual basis konseptual basis data (* entitas dan atribut) yang direfleksikan direfleksikan kedalam bentuk fisik dari basis data (* tabel dan kolom). k dari basis data (* tabel dan kolom).

Gambar 2.3 Gambaran Himpunan Entitas di Tabel Gambar 2.

  2.2.2 Atribut Atribut merupakan gambaran gambaran karakteristik dari sebuah entitas atau himpunan atau himpunan entitas.

  Contoh : atribut untuk himpunan untuk himpunan entitas mahasiswa adalah nim, nama, nama, alamat, ipk, program studi, hobi, dsb. , dsb.Setiap atribut mempunyai domain value set yaitu batasan batasan yg dibolehkan bagi suatu atribut. yg dibolehkan bagi suatu atribut.

  2.2.3 Relasi ER menggambarkan entitas menggambarkan entitas-entitas dengan atributnya yang saling saling berelasi.

  Relasimenggambarkan hubungan menggambarkan hubungan antara entitas satu dengan entitas yang entitas yang lain sesuai dengan proses bisnisnya. bisnisnya. Notasi relasi didalam diagram ER digambarkan digambarkan dengan notasi belah ketupat.

  Perhatikan contoh relasi antara mahasiswa dengan organisasi berikut. Perhatikan contoh relasi antara mahasiswa dengan organisa i berikut.

Gambar 2.4 Relasi digambarkan dengan belah ketupat Gambar 2.

  Gambar di atas menunjukkan atas menunjukkan hubungan antara entitas mahasiswa mahasiswa dan entitas organisasi. Relasi yang yang terjadi adalah relasi mempunyai, dimana dimana mahasiwa mempunyai organisasi. Entitas organisasi. Entitas mahasiwa memiliki atribut nim, nama, alamat, nama, alamat, prodi, ipk, dsb. Sedangkan Sedangkan entitas organisasi memiliki atribut atribut kd_organisasi, kd_organisasi, nama_organisasi, jenis_org sasi, jenis_organisasi (* olahraga/kesenian/jurusan dsb).

2.2.3.1 Kardinalitas Relas itas Relasi

  Kardinalias relasi menggambarkan asi menggambarkan banyaknya jumlah maksimum entitas maksimum entitas dapat ber-relasi dengan entitas dengan entitas pada himpunann entitas yang lain. Pada himpunan Pada himpunan relasi

  biner, pemetaan kardinalitas relasi da pemetaan kardinalitas relasi dapat berupa salah satu dari pilihan berikut : rupa salah satu dari pilihan berikut :

   Satu ke Satu Satu ke Satu

  Gambar 2. Gambar 2.5 Relasi dengan Kardinalitas 1 ke 1

  Relasi di atas Relasi di atas menggambarkan bahwa untuk setiap entitas di entitas di himpunan entitas A berpasangan entitas A berpasangan dengan maksimal 1 entitas di himpunan di himpunan entitas B. Asumsi si penulis akan membuat sebuah tugas yaitu tugas yaitu menjadi pj_cuci_piring. pj_cuci_piring. 1 Orang di tugaskan untuk menjadi pj_cuci_piring menjadi pj_cuci_piring di maksimal 1 hari. Begitupun juga jika di balik, pada 1 hari, maksimal 1 1 hari, maksimal 1 orang yang menjadi pj_cuci_piring. Dari A ke B kardinalitasnya orang yang B kardinalitasnya maksimal 1, maksimal 1, dan dari B ke A kardinalitasnya maksimal 1. maksimal 1. Oleh karena itu relasi ini berkardi u relasi ini berkardinalitas 1 ke 1.

   Satu ke Banyak

Gambar 2.6 Relasi dengan Kardinalitas 1 ke Banyak

  Relasi di atas menggambarkan bahwa untuk setiap entitas di himpunan entitas A berpasangan dengan banyak entitas di himpunan entitas B. Asumsi yang berbeda di pakai ketika memandang relasi ini, 1 orang bisa memperoleh pj_cuci_piring untuk > 1 hari. Tetapi 1 hari hanya di pj-kan hanya untuk maksimal 1 orang. Dari A ke B kardinalitasnya maksimal adalah banyak, dan dari B ke A kardinalitasnya maksimal 1. Oleh karena itu relasi ini berkardinalitas 1 ke banyak.  Banyak ke Satu

Gambar 2.7 Relasi dengan Kardinalitas Banyak ke 1

  Relasi di atas menggambarkan bahwa untuk setiap entitas di himpunan entitas A berpasangan dengan maksimal 1 entitas di himpunan entitas B. Asumsikan bahwa untuk 1 hari pj_cuci_piring boleh di berikan pada banyak orang, sedangkan 1 orang hanya di berikan tugas untuk menjadi pj_cuci_piring sebanyak maksimal 1 hari. Dari A ke B kardinalitasnya maksimal adalah 1, dan dari B ke A kardinalitasnya maksima maksimal adalah alitasnya maksimal adalah banyak. Oleh karena itu relasi ini berkardinalitas banyak ke 1. banyak. Oleh karena itu rel berkardinalitas banyak ke 1.

   Banyak ke Banyak Banyak ke Banyak

Gambar 2.8 Relasi dengan Kardinalitas Banyak ke Banyak Gambar 2. ke Banyak

  Relasi di atas menggambarkan bahwa untuk setiap entitas di Relasi di atas entitas di himpunan entitas A berpasangan entitas A berpasangan dengan maksimal banyak entitas di entitas di himpunan entitas B. entitas B. Asumsikan bahwa dalam 1 hari pj_cuci_piring pj_cuci_piring bisa di bebankan pada bebankan pada banyak orang dan 1 orang bisa di bebankan di bebankan untuk menjadi pj_cuci_piring lebih dari 1 hari. Dari A ke B kardinalitasnya menjadi pj_cuci_piring ke B kardinalitasnya maksimal adalah maksimal adalah banyak, dan dari B ke A kardinalitasnya kardinalitasnya maksimal adalah banyak. Oleh karena itu relasi ini berkardinalitas adalah banyak. berkardinalitas banyak ke banyak.

2.2.4 Diagram ER

  Merupakan diagram model diagram model konseptual untuk menggambarkan struktur struktur logis dari basisdata berbasis grafis.

Gambar 2.9 Contoh Diagram ER Notasi yang digunakan di Diagram ER adalah : Notasi yang digunakan o Garis : Link yang menghubungkan atara Entitas atara Entitas dengan atribut,dan entitas dengan dengan relasi atau entitas o

  Elips dobel Elips dobel :Menunjukkan atribut yang multivalued multivalued o Elips garis terputus garis terputus :Menunjukkan atribut turunan

  2.3 Konversi ER ke T Tabel

2.3.1 Himpunan Entitas Lem ntitas Lemah

  Secara umum, Himpunan Himpunan Entitas Lemah tidak memiliki primary key key dan selalu bergantung pada entitas lain. Notasi entitas lain. Notasi entitas lemah digambarkan dengan double rkan dengan double persegi panjang, sedangkan relasi relasi untuk himpunan entitas lemah digambarkan deng digambarkan dengan double diamond. Diskriminator / Diskriminator / key parsialadalah atribut-atribut yang dapat membedak t membedakan entitas-entitas yang terdapat terdapat di himpunan entitas lemah. Diskriminator Diskriminator tidak sama dengan primary key. Konsep . Konsep diskriminator hanya di pakai pada himpunan pada himpunan entitas lemah. Primary key pada Himpuna pada Himpunan Entitas lemah ada 2 yaitu primary key primary key dari entitas kuat yg berelasi dan diskriminator / dan diskriminator / key parsialnya.

  Diskriminator di notas Diskriminator di notasikan dengan garis bawah yang putus putus. putus.

Gambar 2.10 Contoh Himpunan Entitas Lemah Gambar 2.

  Relasi di atas menggambarkan atas menggambarkan bahwa seorang pegawai mendapatkan mendapatkan fasilitas tunjangan dari perusahaan perusahaan tempat dia bekerja. Tunjangan dalam hal ini adalah hal ini adalah entitas lemah. Tunjangan sebagai sebagai entitas tidak bisa berdiri sendiri, tunjangan tunjangan harus bergantung pada entitas pegawai (* tidak akan ada t as pegawai (* tidak akan ada tunjangan jika tidak ada pegawai). k akan ada tunjangan jika tidak ada pegawai).

  Kardinalitas relasi relasi yang terjadi pada himpunan entitas lemah lemah biasanya merupakan banyak ke 1 ke 1 atau 1 ke banyak dengan kardinalitas 1 di himpunan di himpunan entitas yang lebih kuat.

2.3.2 Spesialisasi

  Spesialisasi merupakan proses merupakan proses desain top-down dengan mendesain mendesain subgrouping didalam didalam himpunan himpunan entitas yang berbeda dari himpunan entitas. entitas. Tujuan dari spesialisasi adalah memberikan memberikan gambaran konseptual tentang perbedaan perbedaan karakteristik dari himpunan entitas yang itas yang hampir serupa dengan konsep sub sub grouping / pengelompokan.

  Subgrouping di atas di atas menjadi himpunan entias yang levelnya lebih levelnya lebih rendah dan

  memiliki atribut tersendiri tersendiri yang tidak dimiliki pada level di atasnya. Atribut atasnya. Atribut ini khas dan merupakan pembeda dar pembeda dari entitas di subgroup yang lain. IS A dinotasika dinotasikan dengan gambar segitiga berlabelIS segitiga berlabelISA.

  Sifat dari spesialisasi spesialisasi adalah inheritan atribut yaitu atribut pada atribut pada level tinggi secara otomatis akan di turunkan pada level di bawahnya. otomatis akan di turunkan pada level di bawahnya.

Gambar 2.11 Contoh Spesialisasi

  Contoh di atas menggambarkan atas menggambarkan bahwa entitas pegawai mempunya pegawai mempunyai 2

  subgroup yaitu pegawai tetap pegawai tetap dan pegawai honorer. Kedua entitas pegawai pegawai tetap dan

  pegawai honorer sama sama sama sama mempunyai atribut turunan yaitu nama dan nama dan id_pegawai dari entitas pegawai. Perbedaa pegawai. Perbedaan dari pegawai tetap dan pegawai honorer honorer terdapat di atribut yang melekat pada t pada subgroup-nya. Atribut besar tunjangan dan gaji dan gaji perbulan hanya terdapat di himpunan entitas pegawai tetap, sedangkan atribut upah per jam dan jumlah jam kerja terdapat di himpunan entitas pegawai honorer.

  2.4 Normalisasi

  Normalisasi merupakan cara pendekatan lain dalam membangun desain logik basis data relasional yang tidak secara langsung berkaitan dengan model data, tetapi dengan menerapkan sejumlah aturan dan criteria standar untuk menghasilkan stuktur tabel yang normal.

  Adapun bentuk normalisasi antara lain :

   Bentuk normal tahap pertama (1

  

st

Normal Form/1NF)

  Syaratnya jika sebuah tabel tidak memiliki atribut bernilai banyak (multivalued attribut) atau dengan kata lain atribut yang atomik.

   Bentuk normal tahap kedua (2

  nd Normal Form/2NF)

  Syaratnya, memenuhi bentuk normal tingkat pertama, semua atribut yang tidak termasuk dalam key primer memiliki ketergantungan fungsional (KF) pada key primer yang utuh.

   Bentuk normal tahap ketiga (3

  th Normal Form/3NF)

  Syaratnya, memenuhi bentuk normal tingkat kedua. Tidak terdapat ketergantungan fungsi transitif ( transitive functional dependency), yaitu tidak terdapat ketergantungan fungsi antara atribut – atribut bukan kunci ke atribut bukan kunci lainnya dalam tabel.

  2.5 Optimasi Query

2.5.1 Konsep Dasar Optimasi Query

  Menurut SilberSchatz et al. (2002) , query adalah sebuah pernyataan yang meminta pengaksesan informasi. Query (permintaan) merupakan metode pengaksesan yang paling sering digunakan. Dalam DBMS, query dinyatakan dalam SQL (Structured Query Languange).

  Dalam Database Management System (DBMS), query di proses melalui tahapan berikut :

Gambar 2.12 Tahapan Pemrosesan Query

  Sebuah query yang diekspresikan dalam sebuah bahasa query tingkat tinggi seperti SQL mula-mula harus dibaca, diuraikan dan disahkan (parser and translator). Query tersebut kemudian dibentuk menjadi sebuah struktur data yang biasa disebut dengan query tree. Dan kemudian DBMS (Database management system) harus merencanakan sebuah strategi eksekusi untuk mendapatkan kembali hasil dari query dari file-file database.

  Query Optimizer memeriksa semua ekspresi-ekspresi aljabar yang sama untuk

  query yang diberikan dan memilih salah satu dari ekspresi tersebut yang terbaik yang memiliki perkiraan termurah. Dengan kata lain, tugas dari query optimizer adalah menghasilkan sebuah rencana eksekusi. Proses ini disebut dengan optimisasi query. Output dari Optimizer adalah evaluation plan, yaitu urutan rencana proses eksekusi query oleh DBMS. Optimasi query merupakan sebuah proses untuk memilih

  evaluation plan yang terbaik untuk suatu query (Lewis, 2006). Query optimizer adalah bagian dari DBMS yang melakukan fungsi optimasi query.

  Ada beberapa tahapan dalam optimasi query, yaitu (Ramakrishnan, 1998) :

  1. Membangkitkan plan-plan alternatif yang akan dipilih sebagai evaluation plan.

  2. Mengestimasi biaya eksekusi untuk setiap alternatif plan yang dihasilkan pada tahap satu. Dari beberapa plan yang diperhitungkan, query optimizer memilih satu plan optimal, yaitu plan dengan estimasi biaya terkecil.

  Optimasi query dapat dikategorikan menjadi 2 bagian, antara lain :

  1. Cost Based Optimization Pemilihan plan berdasarkan pada perkiraan biaya untuk setiap alternatif plan. Optimizer akan memutuskan rencana eksekusi (execution plan ) mana yang terbaik dan paling efisien dengan mempertimbangkan pada ketersediaan path aksesnya dan juga berdasar pada statistik informasi untuk skema objek (tabel/indeks) yang di akses oleh sebuah sql statement.

  Secara konsep, pendekatan cost-based terdiri atas 3 langkah berikut :  Optimizer membangkitkan seperangkat rencana eksekusi yang potensial untuk SQL Statement berdasar pada ketersediaan path dan petunjuk tentang sql statement tersebut.

   Optimizer memperhitungkan cost pada tiap rencana eksekusi berdasarkan statistik pada kamus data untuk distribusi data dan karakteristik maupun informasi tentang penyimpanan dari tabel, indeks, dan partisi yang di akses oleh sebuah sql statement.

   Optimizer membandingkan biaya setiap execution plan, dan kemudian memilih plan dengan biaya paling rendah Adapun beberapa catatan mengenai hal ini, yaitu :  Cost dapat diartikan sebagai sebuah nilai resource yg dibutuhkan untuk eksekusi sql statement dari beberapa execution plannya  Optimizer menghitung cost dari tiap kemungkinan metode akses dan urutan pen-joinan berdasar estimasi resource seperti CPU time, memori,I/O untuk ekseskusi statement sql menggunakan plan  Execution plan secara serial dengan cost besar butuh waktu eksekusi lebih banyak daripada cost yg kecil  Execution plan secara parallel, penggunaan resource tidak langsung berpengaruh pada waktu yg dibutuhkan untuk eksekusi statement sql

  2. Rule Base Optimization Pemilihan plan mengacu pada heuristic / petunjuk baku yang menentukan prioritas eksekusi suatu operasi.

  Pada dasarnya tujuan dari optimasi query menemukan jalan akses yang termurah untuk meminimumkan total waktu pada saat proses sebuah query. Untuk mencapai tujuan tersebut, maka diperlukan optimizer untuk melakukan analisa query dan untuk melakukan pencarian jalan akses.

  2.5.2 Metode Akses

  Metode akses /access method adalah metode-metode yang dapat dilakukan untuk mengakses tuple dalam suatu relasi. Sebuah metode akses dapat berupa file scan ataupun indeks dengan kondisi seleksi tertentu (Ramakrishnan, 1998).

  Indeks adalah suatu metoda pengaksesan file data dari disk dengan menyimpan alamat entri data file tersebut pada file lain yang berukuran lebih kecil dan lebih cepat diakses. Indeks yang biasanya dipakai adalah indeks B+Tree dan Hash. Indeks B+Tree dapat menjadi metode akses untuk seleksi operator <, <=, =, !=, >=, atau >. Indeks hash dapat menjadi metode akses untuk seleksi dengan operator =.

  Selektivitas sebuah metode akses adalah jumlah block yang diambil dengan menggunakan metode akses tersebut. Metode akses yang paling selektif adalah metode akses yang mengambil block paling sedikit. Penggunaan metode akses yang paling selektif akan meminimalkan biaya pengambilan data.

  2.5.3 Perhitungan Cost Operasi Query

  Cost dari operasi query dapat dihitung dengan menjumlahkan beberapa parameter, antara lain : biaya pengaksesan disk dan waktu proses CPU. Pengaksesan disk merupakan faktor terpenting. Hal ini dikarenakan pengaksesan disk memakan biaya lebih besar dibandingkan operasi dalam memori utama. Pada tugas akhir ini parameter yang digunakan hanya biaya pengaksesan disk dimana merupakan jumlah pengambilan page dari disk ke memori.

  Sintaks umum SQL adalah sebagai berikut : SELECT <daftar Attribute> FROM <daftar Tabel> WHERE <kondisi>

  Dalam aljabar relasional, pernyataan SQL diatas terdiri atas beberapa operasi yaitu projection, selection, dan join. Operasi select terdapat pada term-term klausa WHERE. Operasi project terdapat pada daftar atribut list klausa SELECT. Operasi join terdapat pada klausa FROM yang menyatakan daftar relasi lebih dari satu. Kondisi join ditentukan dari term-term pada klausa WHERE.

  1. Operasi Select Operasi Select adalah operasi SQL yang digunakan untuk memilih sebuah subset tuple-tuple dari sebuah relasi berdasarkan kondisi tertentu. Kondisi tersebut terdapat dalam bentuk term-term pada klausa WHERE. Pada umumnya, operasi select ditunjukkan oleh :

   (R)

  

<kondisi pilihan>

  2. Operasi Project Operasi Project adalah operasi SQL yang digunakan untuk memilih atribut-atribut tertentu dari suatu relasi dan membuang atribut-atribut lainnya yang tidak diperlukan. Pada umumnya operasi project ditunjukkan oleh :

  (R)

π <daftar attribute>

  3. Operasi Join Operasi Join adalah operasi SQL yang digunakan untuk mengkombinasikan hubungan tuple-tuple dari dua relasi dengan suatu kondisi penggabungan tertentu.Pada umumnya operasi project pada dua relasi R(A ,A ,…A ) dan S(B ,B ,…B ) ditunjukkan oleh :

  1 2 n

  1 2 m R (S) <kondisi join>

  ⋈ Dua relasi yang terlibat dibedakan menjadi relasi luar dan relasi dalam. Untuk memudahkan, dalam left deep plan terdapat konversi yaitu sub plan kiri (L) dianggap sebagai relasi luar dan sub plan kanan (R) dianggap sebagai relasi dalam.

  2.5.4 Pemrosesan Querypada Oracle 10g

  Pada saat sebuah query diproses, Oracle server prosesakan memeriksa apakah blok data yang dibutuhkan ada di database buffer cache. Jika blok yang dibutuhkan tidak terdapat di database buffer cache, maka server process akan melakukan pembacaan untuk mencari blok yang dibutuhkan di data file untuk kemudian meletakkan salinannya di database buffer cache. Jika saat pemrosesan query berikutnya memerlukan blok yang sama dengan query sebelumnya, maka pemrosesan query tersebut tidak memerlukan pembacaan data ke file fisik. Blok data yang berada di memory dan tidak sering diakses akan dikeluarkan dari database buffer cache.

  2.5.5 Explain Plan

  Explain plan adalah suatu perintah yang digunakan untuk menampilkan perintah eksekusi suatu query.

  Dengan memanfaatkan explain plan kita bisa melihat langkah eksekusi yang diambil oleh oracle, sehingga kita bisa meningkatkan performansi query kita. Optimizer mengambil informasi tentang objek dan tipe dari query yang dijalankan, kemudian memberikan keputusan bagaimana suatu query akan dieksekusi.

  Contoh dari explain plan : EXPLAIN PLAN SET statement_id = 'example_plan1' FOR SELECT full_name FROM per_all_people_f WHERE UPPER(full_name) LIKE 'Pe%' ;

  Plan

  • SELECT STATEMENT

  TABLE ACCESS FULL PER_ALL_PEOPLE_F Diatas menunjukan suatu contoh execution plan dari sebuah SELECT statement. Tabel per_all_people_f diakses menggunakan full table scan.Seriap baris dalam tabel per_all_people_f diakses, klausa WHERE clause dievaluasi untuk setiap row.Kemudian SELECT statement mengembalikan row yang memenuhi klausa where.

2.6 RAID

2.6.1 Konsep RAID

  Dalam media penyimpanan data, disk rentan akan kerusakan yang akan mengakibatkan hilangnya data dan turunnya kinerja disk. Salah satu cara dalam meningkatkan kinerja dan performansi disk adalah RAID. RAID singkatan dari

  Random Array of Inexpensive Disk. Metodenya dengan membentuk suatu sistem

  dari beberapa harddisk/drive sehingga terbentuk satu partisi dari beberapa harddisk, dimana biasanya kita melakukan pembagian banyak partisi pada satu harddisk. Kegunaan RAID adalah sebagai media perlindungan penyimpanan data sehingga reliability data terjaga. RAID merupakan gabungan beberapa harddisk fisik ke dalam sebuah unit logis penyimpanan, dengan menggunakan perangkat lunak atau perangkat keras khusus.

  Peningkatan Kehandalan dan Kinerja dari disk dapat dicapai melalui dua cara (SilberSchatz,et al. 2002) :

  1. Redudansi Peningkatan kehandalan disk dapat dilakukan dengan redundansi, yaitu menyimpan informasi tambahan yang dapat dipakai untuk membentuk kembali informasi yang hilang jika suatu disk mengalami kegagalan.Salah satu teknik untuk redundansi ini adalah dengan caramirroring atau shadowing, yaitu dengan membuat duplikasi dari tiap - tiap disk. Jadi, sebuah disk logical terdiri dari 2 disk physical, dan setiap penulisan dilakukan pada kedua disk, sehingga jika salah satu disk gagal, data masih dapat diambil dari disk yang lainnya, kecuali jika disk kedua gagal sebelum kegagalan pada disk pertama diperbaiki.Pada cara ini, berarti diperlukan media penyimpanan yang dua kali lebih besar daripada ukuran data sebenarnya. Akan tetapi, dengan cara ini pengaksesan disk yang dilakukan untuk membaca dapat ditingkatkan dua kali lipat dengan menggunakan RAID controller. Hal ini dikarenakan setengah dari permintaan membaca dapat dikirim ke masing-masing disk.

  2. Paralelisme Peningkatan kinerja dapat dilakukan dengan mengakses banyak disk secara paralel. Pada disk mirroring, di mana pengaksesan disk untuk membaca data menjadi dua kali lipat karena permintaan dapat dilakukan pada kedua disk, tetapi kecepatan transfer data pada setiap disk tetap sama. Kita dapat meningkatkan kecepatan transfer ini dengan cara melakukan data striping ke dalam beberapa disk. Data striping, yaitu menggunakan sekelompok disk sebagai satu kesatuan unit penyimpanan, menyimpan bit data dari setiap byte secara terpisah pada beberapa disk (paralel).

  Adapun teknik-teknik yang digunakan dalam RAID sebagai berikut :

  1. Teknik Stripping Stripping merupakan teknik atau cara untuk pemecahan data ke beberapa disk.

  Teknik ini meningkatkan performansi harddisk, dimana sekumpulan data dapat dibaca dari beberapa harddisk pada satu waktu. Namun, apabila salah satu harddisk mengalami kegagalan, maka harddisk lain pun tidak dapat berfungsi.

  2. Teknik Mirroring Mirroring merupakan teknik atau cara untuk penyalinan data ke lebih dari satu harddisk. Teknik ini dapat meningkatkan proses pembacaan data, namun untuk menulis kinerjanya lebih buruk karena data yang sama akan tertulis pada beberapa harddisk yang tergabung dalam penggabungannya.

2.6.2 Standar Level

  Untuk skema level standard tersusun atas beberapa level. Beberapa variasi dikembangkan untuk non nested level dan nested level.

  Berikut ini jenis-jenis dari RAID non-nested level :

1. RAID 0

  Dikenal dengan modus stripping.Membutuhkan minimal

  2 harddisk.Sistemnya adalah menggabungkan kapasitas dari beberapa harddisk.Sehingga secara logikal hanya "terlihat" sebuah harddisk dengan kapasitas yang besar (jumlah kapasitas keseluruhan harddisk). Pada awalnya, RAID 0, digunakan untuk membentuk sebuah partisi yang sangat besar dari beberapa harddisk dengan biaya yang efisien.

  Contoh: Peneliti membutuhkan suatu partisi dengan ukuran 2TB. Harga sebuah harddisk berukuran 500GB adalah Rp.400.000,- sedangkan harga harddisk berukuran 2TB adalah Rp.2.500.000,-. Maka peneliti dapat membetuk suatu partisi berukuran 2TB dari 4 unit harddisk berukuran 500GB dengan menggunakan RAID 0. Tentunya skenario ini lebih murah karena memakan biaya lebih murah: 4 x Rp.400.000,- = Rp.2.000.000,-. Lebih murah daripada harus membeli harddisk yang berukuran 2TB.Oleh sebab itu kenapa pada awalnya disebut redundant array of inexpensive

  disk.

  Data yang ditulis pada harddisk-harddisk tersebut terbagi-bagi menjadi fragmen-fragmen.Dimana fragmen-fragmen tersebut disebar di seluruh harddisk.Sehingga, jika salah satu harddisk mengalami kerusakan fisik, maka data tidak dapat dibaca kembali. Namun ada keuntungan dengan adanya fragmen-fragmen ini: kecepatan. Data bisa diakses lebih cepat dengan RAID 0, karena saat komputer membaca sebuah fragmen di satu harddisk, komputer juga dapat membaca fragmen lain di harddisk lainnya.

Gambar 2.13 RAID 0

2. RAID 1 Biasa disebut dengan modus mirroring.Membutuhkan minimal 2 harddisk.

  Sistem ini memiliki kelebihan, yaitu menyalin isi sebuah harddisk ke harddisk lain dengan tujuan: jika salah satu harddisk rusak secara fisik, maka data tetap dapat diakses dari harddisk lainnya. Proses untuk membaca data dapat dilakukan dengan setengah dari permintaan membaca dikirim ke masing-masing disk (proses membaca data baik) atau membaca data dilakukan dengan membaca dari kedua disk (proses membaca data buruk). Hal ini tergantung kepada RAID Controllernya. Contoh: Sebuah server memiliki 2 unit harddisk yang berkapasitas masing-masing 500GB dan dikonfigurasi RAID 1. Setelah beberapa tahun, salah satu harddisknya mengalami kerusakan fisik.Namun data pada harddisk lainnya masih dapat dibaca, sehingga data masih dapat diselamatkan selama bukan semua harddisk yang mengalami kerusakan fisik secara bersamaan.

Gambar 2.14 RAID 1

  3. RAID 2

  RAID 2, juga menggunakan sistem stripping. Namun ditambahkan tiga harddisk lagi untuk pariti hamming, sehingga data menjadi lebih handal.Karena itu, jumlah harddisk yang dibutuhkan adalah minimal 5 (n+3, n > 1).Ketiga harddisk terakhir digunakan untuk menyimpan hamming code dari hasil perhitungan tiap bit-bit yang ada di harddisk lainnya. Contoh: Peneliti memiliki 5 buah harddisk (sebut saja harddisk A,B,C, D, dan E) dengan ukuran yang sama, masing-masing 500GB. Jika mengkonfigurasi keempat harddisk tersebut dengan RAID 2, maka kapasitas yang didapat adalah: 2 x 500GB = 1TB (dari harddisk A dan B). Sedangkan harddisk C, D, dan E tidak digunakan untuk penyimpanan data, melainkan hanya untuk menyimpan informasi pariti hamming dari dua harddisk lainnya: A dan B. Ketika terjadi kerusakan fisik pada salah satu harddisk utama (A atau B), maka data tetap dapat dibaca dengan memperhitungkan pariti kode hamming yang ada di harddisk C,D, E.

Gambar 2.15 RAID 2

  4. RAID 3

  RAID 3, juga menggunakan sistem stripping. Namun hanya ditambahkan sebuah harddisk lagi untuk parity.. Karena itu, jumlah harddisk yang dibutuhkan adalah minimal 3 (n+1 ; n > 1). Harddisk terakhir digunakan untuk menyimpan parity dari hasil perhitungan tiap bit-bit yang ada di harddisk lainnya. Contoh: Peneliti memiliki 4 harddisk (sebut saja harddisk A,B,C, dan D) dengan ukuran yang sama, masing-masing 500GB. Jika mengkonfigurasi keempat harddisk tersebut dengan RAID 3, maka kapasitas yang didapat adalah: 3 x 500GB = 1,5TB. Sedangkan harddisk D tidak digunakan untuk penyimpanan data, melainkan hanya untuk menyimpan informasi parity dari ketiga harddisk lainnya: A, B, dan C. Ketika terjadi kerusakan fisik pada salah satu harddisk utama (A, B, atau C), maka data tetap dapat dibaca dengan memperhitungkan parity yang ada di harddisk D. Namun, jika harddisk D yang mengalami kerusakan, maka data tetap dapat dibaca dari ketiga harddisk lainnya.

Gambar 2.16 RAID 3

5. RAID 4

  Sama dengan sistem RAID 3, namun menggunakan parity dari tiap block harddisk, bukan bit. Kebutuhan harddisk minimalnya juga sama, 3 (n+1 ; n >1). Kelebihannya yaitu pembacaan data transaksi dan tingkat perpindahan saat penggabungan proses baca sangat tinggi. Akan tetapi data sulit dibentuk ulang jika terjadi kegagalan disk,serta penulisan data transaksi dan tingkat perpindahan saat penggabungan proses tulis sangat buruk.

Gambar 2.17 RAID 4

6. RAID 5

  RAID 5 pada dasarnya sama dengan RAID 4, namun dengan pariti yang terdistribusi. Yakni, tidak menggunakan harddisk khusus untuk menyimpan paritinya, namun paritinya tersebut disebar ke seluruh harddisk. Kebutuhan harddisk minimalnya juga sama, 3 (n+1 ; n >1). Hal ini dilakukan untuk mempercepat akses dan menghindari bottleneck yang terjadi karena akses harddisk tidak terfokus kepada kumpulan harddisk yang berisi data saja. Kekurangan dari RAID 5 adalah sulit untuk membentuk kembali jika terjadi kegagalan disk.