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