Normalisasi Optimasi Query TINJAUAN PUSTAKA

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 Form1NF 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 Form2NF 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 Form3NF 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 : Universita Sumatera Utara 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. Universita Sumatera Utara 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 tabelindeks 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,IO 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 Universita Sumatera Utara 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. Universita Sumatera Utara 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 :  kondisi pilihan R 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 : π daftar attribute R 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 RA 1 ,A 2 ,…A n dan SB 1 ,B 2 ,…B m ditunjukkan oleh : R ⋈ kondisi join S Universita Sumatera Utara 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 UPPERfull_name LIKE Pe ; Plan --------------------------------------------- SELECT STATEMENT TABLE ACCESS FULL PER_ALL_PEOPLE_F Universita Sumatera Utara 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