bab 2 landasan teori 2.1 teori umum 2.1 -...
TRANSCRIPT
7
BAB 2
LANDASAN TEORI
2.1 Teori Umum
2.1.1 Data
Menurut Connoly dan Begg (2002, p19-20) data adalah komponen yang
paling penting dalam DBMS, berasal dari sudut pandang pengguna akhir. Data
bertindak sebagai jembatan yang menghubungkan antara mesin dengan user.
Menurut O’Brien (2003, p13) data adalah fakta-fakta atau observasi yang
mentah, biasanya mengenai kejadian / transaksi bisnis.
Menurut Whitten (2004, p27) data adalah fakta mentah mengenai orang,
tempat, kejadian, dan hal-hal penting dalam organisasi.
Jadi arti data adalah fakta-fakta mengenai segala sesuatu yang dapat
diolah untuk menghasilkan informasi yang akan dipakai dalam melakukan
transaksi-transaksi di perusahaan / organisasi.
2.1.2 Basis Data
Menurut Whitten (2004, p548) basis data adalah kumpulan file yang
saling terkait.
Connolly dan Begg (2002, p15-16) menjelaskan bahwa basis data adalah
kumpulan data yang terhubung secara logis yang digunakan bersama-sama dan
8
deskripsi dari data tersebut yang dirancang untuk memenuhi kebutuhan
informasi sebuah organisasi.
Menurut O’Brien (2003, p145) basis data adalah sebuah kumpulan yang
terintegrasi dari elemen data yang terhubung secara logikal. Elemen data
mendeskripsikan entitas dan hubungan antar entitas.
Menurut Hoffer (2002, p4) basis data adalah kumpulan data yang
teroganisir dan secara logika berkaitan. Terorganisir maksudnya adalah data
distrukturkan sehingga mudah untuk disimpan, dimanipulasi, dan diperoleh oleh
user. Berkaitan maksudnya adalah data menggambarkan daerah asal (domain)
kepentingan tertentu bagi kelompok user dan user dapat menggunakan data
untuk menjawab pertanyaan seputar domain itu.
Jadi, basis data adalah kumpulan data atau koleksi file atau record yang
berfungsi untuk menyimpan data yang saling berhubungan dan terstruktur
sehingga mudah untuk disimpan, diperoleh kembali, dimanipulasi dan dapat
memenuhi kebutuhan informasi dari suatu organisasi.
2.1.3 Database Management System (DBMS)
Menurut Whitten (2004, p550) Database Management System (DBMS)
adalah perangkat lunak khusus yang digunakan untuk membuat, mengontrol,
dan mengelola sebuah basis data.
Connolly dan Begg (2002, p16) menerangkan bahwa Database
Management System (DBMS) adalah sistem perangkat lunak yang
9
memungkinkan user untuk mendefinisikan, membuat, memelihara, dan
mengontrol akses ke basis data.
Secara umum ada beberapa fasilitas yang disediakan oleh DBMS, antara
lain:
a. Memungkinkan user untuk mendefinisikan basis data, secara umum ialah
dengan menggunakan Data Definition Language (DDL). Dengan DDL ini,
user bisa menentukan tipe data dan juga struktur dari data yang akan
disimpan dalam basis data.
b. Memungkinkan user untuk melakukan Insert, Update, Delete dan
mengambil data dari dalam basis data, yang secara umum menggunakan
Data Manipulation Language (DML).
c. Menyediakan akses control basis data. Contohnya, DBMS menyediakan:
• Security system yang menjaga agar basis data hanya bisa diakses oleh
orang yang mempunyai otoritas.
• Integrity system yang menjaga konsistensi dari data yang disimpan.
• Concurrency control system yang memperbolehkan untuk melakukan
shared access pada basis data.
• Recovery control system yang akan memulihkan basis data pada keadaan
sebelumnya apabila terjadi kegagalan software.
• User-accessible catalog yang berisi deskripsi data pada basis data.
Komponen DBMS:
• Perangkat keras
10
DBMS dan aplikasi yang dibuat memerlukan perangkat keras
untuk bisa berjalan dengan baik. Perangkat keras yang akan digunakan
bisa bermacam-macam, antara lain Personal Computer (PC), mainframe,
atau jaringan komputer.
• Perangkat lunak
Komponen perangkat lunak terdiri dari DBMS itu sendiri dan
juga aplikasi program, bersama-sama dengan sistem operasi termasuk
jaringannya jika DBMS digunakan dalam sebuah jaringan.
• Data
Data adalah bagian terpenting dari komponen-komponen DBMS.
Data adalah jembatan penghubung antara komponen mesin dan
komponen manusia.
• Procedures
Procedures menunjuk pada instruksi dan aturan yang
menentukan desain dan penggunaan dari basis data. User yang mengatur
basis data memerlukan documented procedures untuk mengetahui
bagaimana cara menggunakan sistem tersebut.
• Manusia
Komponen terakhir adalah manusia yang terlibat dalam sistem
tersebut.
11
2.1.4 Statistic
2.1.4.1 Index Statistic
Petković (2008, p490) menerangkan bahwa index statistic secara umum
dibuat ketika index pada kolom tertentu dibuat. Pembuatan index statistic untuk
sebuah index berarti bahwa database engine membuat histogram berdasarkan
nilai sampai dengan 200 nilai pada kolom itu (Dengan demikian, terdapat 199
jangkauan yang akan dibuat). Histogram ini memberikan spesifikasi, antara lain,
berapa banyak baris yang sesuai dengan setiap jangkauan itu, jumlah rata-rata
baris dari nilai unik yang terdapat dalam setiap jangkauan, dan kepadatan dari
nilai tersebut.
Index statistic dapat dibuat secara eksplisit dengan beberapa alat bantu
yaitu:
• sp_createstats system procedure
sp_createstats system procedure membuat statistik kolom tunggal
untuk setiap kolom untuk setiap user table dalam basis data yang
sedang digunakan. Statistik baru memiliki nama yang sama dengan
nama kolom tempat statistik itu dibuat.
• SQL Server Management Studio
Sebagaimana data dalam sebuah kolom selalu berubah, maka index
statistic akan menjadi kadaluarsa. Keadaan seperti ini akan mempengaruhi
kinerja dari query secara signifikan. Database engine dapat secara otomatis
meng-update index statistic jika pilihan basis data
AUTO_UPDATE_STATISTICS diaktifkan. Pada keadaan ini, statistik
12
kadaluarsa yang diperlukan oleh query untuk optimasi secara otomatis akan di-
update selama optimasi query.
Ada juga pilihan basis data yang lain, yaitu
AUTO_CREATE_STATISTICS, yang membuat kembali statistik yang telah
hilang, yang diperlukan oleh query untuk proses optimasi. Kedua pilihan ini
dapat diaktifkan/non-aktifkan dengan menggunakan statement ALTER
DATABASE atau SQL Server Management Studio.
2.1.4.2 Column Statistic
Petković (2008, p491) juga menerangkan bahwa sistem juga dapat
membuat index untuk kolom yang belum memiliki index yang disebut juga
dengan column statistic. Bersama dengan index statistic, column statistic
digunakan untuk mengoptimasi execution plan.
Database engine membuat statistik bahkan untuk kolom tanpa index
yang merupakan bagian dari kondisi dalam klausa WHERE.
Ada beberapa situasi dimana keberadaan dari column statistic dapat
membantu alat optimasi dalam menghasilkan keputusan yang tepat. Satu
diantaranya ialah ketika adanya sebuah composite index pada dua atau lebih
kolom. Pada index ini, sistem membuat statistik hanya pada kolom pertama
dalam index tersebut. Keberadaan column statistic untuk kolom kedua (dan
untuk kolom-kolom yang lain) dari composite index dapat membantu alat
optimasi untuk memilih execution plan yang optimal.
13
Database engine mendukung dua catalog view dalam hubungannya
dengan column statistic (view ini digunakan untuk mengubah informasi yang
memperhatikan index statistic):
• sys.stats
View sys.stats mengandung sebuah baris untuk setiap statistik pada sebuah
tabel atau view. Selain nama kolom, yang dimana menspesifikasikan nama
dari statistik, catalog view ini memiliki dua kolom yang lain:
o auto_created
auto_created adalah statistik yang dibuat oleh alat optimasi.
o user_created
user_created merupakan statistik yang secara eksplisit dibuat oleh user.
• sys.stats_columns
View sys.stats_column mengandung informasi tambahan yang
memperhatikan kolom sebagai bagian dari view sys.stats.
2.1.5 Index
Menurut Whalen (2001, p339) index adalah alat bantu struktur data yang
digunakan oleh DBMS dalam pengaksesan data. Index akan dibuat di dalam
tabel-tabel dalam basis data tersebut. Satu tabel dapat memiliki satu atau lebih
index yang berguna untuk menunjuk data yang ada dalam tabel tersebut.
Berdasarkan tipenya, index data bisa bersama dengan table data atau secara
terpisah.
14
Tanpa index, semua data diperoleh melalui table scans yang berarti
bahwa semua data yang ada dalam tabel akan dibaca secara sekuensial dan
dibandingkan dengan data yang diminta. Hal ini harus dihindari karena table
scans akan menghasilkan banyak sekali I/O (kecuali pemilihan data dengan
persentase tinggi dari tabel). Tabel yang sangat besar mengkonsumsi banyak
sekali sumber daya sistem ketika proses table scan dilakukan. Dengan
menggunakan index yang tepat, jumlah operasi I/O yang dibutuhkan untuk
mencari data yang tepat bisa dikurangi secara signifikan.
Index secara umum terstruktur seperti B-tree, dimana struktur tersebut
dimulai dengan sebuah root node. Root node mengandung index rows yang
mengandung beberapa jangkauan nilai dari index key dan pointer ke index node
selanjutnya yang disebut juga dengan branch node. Branch node ini juga dapat
mengandung index row dengan nilai yang menunjuk ke branch node yang lain.
Setiap level dari branch node disebut juga dengan index level.
Node yang berada pada level terendah dari index disebut juga dengan
leaf node. Leaf node mengandung data index key dan informasi lainnya dimana
referenced data berada atau data itu sendiri, tergantung dari tipe index, apakah
clustered atau non clustered.
15
Gambar 2. 1 Contoh sebuah index
Gambar 2. 2 Struktur Index
16
Secara umum index terbagi ke dalam beberapa tipe yang akan dijelaskan
dalam sub bab berikut:
2.1.5.1 Clustered Index
Whalen (2001, p341) menyatakan bahwa clustered index merupakan
urutan data harus disimpan di tabel secara fisikal. Tabel data diurutkan dan
disimpan berdasarkan key column atau kolom yang dispesifikasikan untuk
clustered index. Tipe index ini dapat disamakan dengan sebuah kamus, dimana
informasi disimpan dengan urutan alphabetic dan menyediakan informasi untuk
mencari data dengan cepat. Index ini menyatu dengan datanya, jadi seperti
kamus yang menyediakan arti dari sebuah kata tepat di sebelahnya.
Gambar 2. 3 Struktur Clustered Index
17
2.1.5.2 Nonclustered Index
Whalen (2001, p343) menyatakan bahwa index ini berbeda dengan
clustered index yang menyatu dengan data. Nonclustered index dapat
dianalogikan seperti buku yang mempunyai index di halaman akhirnya. Index ini
memberi indikasi tentang halaman mana yang akan dituju, tetapi datanya tidak
terdapat dalam index tersebut.
Gambar 2. 4 Struktur Nonclustered Index
2.1.5.3 Unique Index
Whalen (2001, p345) menyatakan bahwa unique index adalah index yang
dapat berupa clustered atau non clustered yang diciptakan secara spesifik untuk
menjadi unik. Nilai yang dimasukkan ke dalam kolom yang menjadi nilai kunci
18
atau kolom haruslah unik. Hal ini berarti nilai duplikat tidak diperbolehkan.
Untuk composite key, nilai kombinasi dari nilai haruslah unik.
2.1.5.4 Indexes on Calculated Columns
Whalen (2001, p344) menyatakan bahwa versi SQL Server yang
sebelumnya memperbolehkan arsitektur data untuk mendefinisikan kolom
virtual yang dihasilkan dari perhitungan yang berdasarkan satu atau lebih kolom
lain pada tabel yang sama. Hal ini baik sampai seorang user secara tidak
waspada mencoba melakukan query pada sebuah tabel menggunakan virtual
kolom sebagai satu-satunya kriteria. Tanpa sebuah index dalam kolom yang
digunakan, SQL Server harus melakukan scan pada tabel itu dan
memperhitungkan setiap kemungkinan yang didapat untuk memenuhi query
tersebut.
2.1.5.5 Indexed Views
Whalen (2001, p344) menyatakan bahwa indexed views merupakan
index yang membahayakan, karena dapat meningkatkan jumlah I/O dalam
sistem secara signifikan, tetapi index ini menawarkan solusi kepada banyak
masalah query pada umumnya.
Satu kekurangan yang terdapat dalam indexed views ialah keharusan
untuk membuat clustered index pada PRIMARY KEY yang didefinisikan dalam
view. Ini artinya, semua view yang diberikan index harus mempunyai kolom atau
sekumpulan kolom yang selalu unik. Banyak view tidak di desain untuk
19
keperluan ini, jadi untuk memenuhi kebutuhan ini diperlukan pemikiran yang
kreatif.
2.1.5.6 Full-Text Index
Whalen (2001, p345) menyatakan bahwa full-text index lebih kompleks
dibandingkan dengan tipe-tipe index sebelumnya. Index ini lebih seperti sebuah
katalog. Selain melakukan pencarian dalam struktur B-Tree yang terurut, index
ini memungkinkan untuk melakukan pencarian dengan menggunakan kumpulan
kata kunci. Full-Text index ini biasanya digunakan secara ekstensif dalam
sebuah website search engine dan operasi berbasis teks lainnya.
2.2 Teori Khusus
2.2.1 SQL Server
Leiter (2008, p1) menyatakan bahwa mulanya Microsoft masuk ke dalam
ruang basis data perusahaan pada tahun 1987 ketika membentuk kerja sama
antara Sybase dengan pasar DataServer Sybase produk Microsoft / IBM OS / 2
platform. Dari kemitraan tersebut, muncul SQL Server 1.0 yang pada dasarnya
versi UNIX Sybase’s DataServer di-porting ke OS /2.
Setelah beberapa tahun, para pengembang di Microsoft diperbolehkan
untuk lebih banyak lagi mengakses ke sumber kode Sybase untuk pengujian dan
keperluan debug, tetapi aplikasi inti SQL Server terus berlanjut menjadi produk
Sybase sampai SQL Server 4.2 dirilis untuk Windows NT pada Maret 1992.
20
SQL server 4.2 merupakan produk pertama yang dikembangkan oleh
Sybase dan Microsoft. Untuk mesin basis data masih Sybase yang menangani,
tetapi alat dan perpustakaan basis data dikembangkan oleh Microsoft. Sementara
SQL Server dikembangkan untuk dijalankan di OS/2 platform, Windows NT
dirilis di era yang baru. Para pengembang Microsoft meninggalkan
pengembangan OS/2 dan fokus pada versi SQL Server untuk Windows NT.
Seiring bertumbuhnya kesuksesan pada Sybase dalam pasar UNIX dan
Microsoft pada Windows, kedua perusahaan mendapati diri mereka dapat
bersaing untuk pangsa pasar yang pada dasarnya produk dikembangkan oleh
Sybase. Akhirnya, pada tahun 1994, kedua perusahaan mengakhiri kesepakatan
bersama dalam pengembangan mereka, dan Sybase memberikan lisensi terbatas
kepada Microsoft untuk menggunakan dan memodifikasi teknologi Sybase
secara eksklusif yang berjalan pada Windows.
Setahun kemudian, pada bulan Juni 1995, Microsoft meluncurkan versi
pertama SQL Server yang dikembangkan secara eksklusif oleh pengemban g
Microsoft – SQL Server 6.0 – tetapi teknologi intinya sebagian besar masih kode
yang berbasis Sybase. Kurang dari setahun kemudian, banyak perubahan telah
dibuat, dan Microsoft meluncurkan SQL Server 6.5 pada bulan April 1996.
Dengan kelengkapan SQL Server 6.5, para pengembang dari tim SQL
Server mulai bekerja pada sistem kode basis data baru yang bernama Sphinx.
Kode berbasis Sybase ditulis ulang hampir dari nol untuk Sphinx, dan hanya
sedikit kode yang tetap yang menunjukkan awal SQL Server pada OS/2.
21
Pada Desember 1998, Sphinx secara resmi dirilis sebagai SQL Server
7.0. Perubahan dari SQL Server 6.5 mudah dilihat dari detik pertama database
administrator meluncurkan sebuah Enterprise Manager yang baru. Akhirnya,
telah ada sistem basis data yang kuat dan dapat diandalkan serta mudah dikelola,
dipelajari, dan cukup kuat untuk banyak bisnis.
Ketika SQL Server 7.0 telah dirilis, versi baru sudah dalam tahap
pembangunan yaitu kode bernama Shiloh. Shiloh menjadi SQL Server 2000 dan
dirilis pada bulan Agustus 2000. Perubahan yang mendasari adalah mesin data
yang minim, dan banyak perubahan menarik yang memberi dampak pada
penambahan isu skalabilitas SQL Server (seperti indexed views dan server basis
data yang disatukan), bersama dengan peningkatan seperti cascading referential
intergrity.
Selama beberapa tahun berikutnya, tim SQL mengerjakan suatu kode
yang dirilis lebih kuat dan menarik bernama Yukon, yang sekarang dikenal
dengan SQL Server 2005.
Pada Agustus 2008, Microsoft SQL Server 2008 dirilis untuk manufaktur
(RTM). Sementara SQL Server 2008 tidak memiliki banyak pergeseran
paradigma dari SQL Server 2005 yang pendahulunya adalah SQL Server 2000,
maka SQL Server 2008 mengandung banyak peningkatan dan fitur-fitur baru
yang membuat upgrade-nya menjadi menarik.
22
2.2.2 SQL Server 2008
Leiter (2008, p3) menyatakan bahwa SQL Server 2008 sangat dikenal
sebagai Relational Database Management System (RDBMS). Namun tidak
hanya itu saja, tetapi juga dapat lebih akurat digambarkan sebagai data
enterprise platform yang dibangun di atas banyak fitur yang pertama kali
didirikan di SQL Server 2005. Sementara itu, SQL Server 2008 juga
memperluas penawaran untuk menyertakan beberapa perbaikan dan
penambahan. Karena dikenal dengan peran sebagai RDBMS tradisional, SQL
Server 2008 juga menyediakan kemampuan reporting, analisis data yang kuat
dan data mining. SQL Server 2008 tentunya juga mempunyai fitur-fitur yang
mendukung aplikasi data yang berbeda, data-driven event notification dan masih
banyak lagi.
2.2.3 Edisi SQL Server 2008
Leiter (2008, p7) menyatakan bahwa SQL Server 2008 diciptakan
dengan berbagai edisi dengan tujuan yang berbeda-beda dan masing-masing
memiliki tempat khusus dalam infrasturktur pengelolaan data kecuali edisi
Enterprise Evaluation, dimana hanya berguna untuk evaluasi produk jangka
pendek (180 hari). Edisi yang berada pada tingkat teratas adalah edisi Enterprise
Edition, dimana benar-benar mendukung semua yang harus SQL Server 2008
tawarkan. Di sisi sebaliknya adalah Express Edition, dimana menawarkan fitur
yang sangat terbatas. Edisi yang tersedia adalah sebagai berikut:
• Enterprise Edition
23
• Standard Edition
• Developer Edition
• Compact Edition
• Express Edition
• Workgroup Edition
• Web Edition
Tabel berikut ini merupakan tabel perbedaan antara empat edisi dari SQL
Server 2008:
24
Gambar 2. 5 Tabel Perbedaan Antara Empat Edisi dari SQL Server 2008
2.2.3.1 SQL Server 2008 Enterprise Edition
Leiter (2008, p10) menyatakan bahwa Enterprise Edition menyediakan
kemudahan dalam melaksanakan dan mempertahankan platform yang akan
memungkinkan user secara dinamis menambah memori dan CPU, Transparent
Data Encryption, dan operasi indeks paralel. Enterprise Edition juga merupakan
solusi yang tepat jika user hanya memerlukan analisis bisnis yang lebih maju,
dan belum tentu harus jutaan transaksi per detik yang menawarkan edisi ini.
Enterprise Edition ditujukan pada kinerja dan skalabilitas. Meskipun
fitur di Enterprise Edition mungkin lebih banyak daripada rata-rata kebutuhan
perusahaan, perbedaan kinerja antara Standard dan Enterprise Edition memiliki
dampak yang signifikan bahwa skala SQL Server cukup untuk mengakomodasi
pertumbuhan yang cepat dalam organisasi. Fitur-fitur tambahan yang terpenting
pada Enterprise Edition adalah partisi data, database snapshots, dan
pemeliharaan basis data secara online.
2.2.3.2 SQL Server 2008 Standard Edition
Leiter (2008, p10) menyatakan bahwa sebagian besar kemampuan SQL
Server 2008 didukung dalam Standard Edition, yang membuat itu menjadi data
platform yang ideal untuk banyak organisasi. Standard Edition tidak
menyediakan banyak fitur yang dirancang untuk mendukung basis data
perusahaan besar. Fitur-fiturnya terdiri dari banyaknya peningkatan skalabilitas
dan tingginya ketersediaan, seperti partisi tabel dan operasi index secara paralel.
25
2.2.3.3 SQL Server 2008 Developer Edition
Petković (2008, p25) menyatakan bahwa SQL Server 2008 Developer
Edition mencakup fitur yang sama dengan Enterprise Edition tetapi tidak
berlisensi dalam penggunaan produksi dan hanya berlisensi untuk penggunaan
pengembangan, pengujian, dan demostrasi.
2.2.3.4 SQL Server 2008 Compact Edition
Petković (2008, p25) menyatakan bahwa Compact Edition merupakan
sebuah versi SQL Server yang ramping yang dapat digunakan pada Pocket PC,
smart phone, tablet PC, dan dekstop PC. Basis data Compact Edition pada
umumnya digunakan sebagai basis data yang tertanam untuk aplikasi berbasis
desktop.
2.2.3.5 SQL Server 2008 Express Edition
Petković (2008, p24) menyatakan bahwa Express Edition merupakan
versi ringan SQL Server 2008. Produk ini sebaiknya digunakan oleh
pengembang aplikasi karena Express Edition termasuk produk dasar program
Express Manager (XM) dan mendukung CLR integration and native XML.
2.2.3.6 SQL Server 2008 Workgroup Edition
Leiter (2008, p10) menyatakan bahwa SQL Server Workgroup Edition
terdiri dari semua fungsionalitas dari SQL Server 2008 Express Edition. Edisi
26
ini ditargetkan untuk perusahaan kecil yang sudah melebihi kapasitas atau
membutuhkan solusi yang lebih fleksibel dan tidak membutuhkan semua fitur
dari Standard atau Enterprise Edition.
2.2.3.7 SQL Server 2008 Web Edition
Leiter (2008, p9) menyatakan bahwa SQL Server 2008 Web Edition
merupakan jenis yang terbaru dalam produk SQL Server. Web Edition ini
dirancang untuk mendukung penggunaan lingkungan dan aplikasi web. Dengan
dukungan sampai empat prosesor dan tidak ada batasan memori atau basis data,
Web Edition memposisikan dirinya sebagai pengguna biaya yang efisien yang
berarti digunakan untuk layanan hosting yang bergantung pada basis data SQL
Server.
Web Edition mempunyai beberapa pedoman ijin dan persyaratan yang
sangat spesifik. Misalnya SQL Server 2008 Web Edition berlisensi untuk
aplikasi web, situs dan servis yang bersifat umum, tetapi tidak berlisensi untuk
aplikasi bisnis internal. Karena dirancang untuk umum, Client Access Licenses
(CALs) tidak dapat diaplikasikan untuk Web Edition.
2.2.4 Basis data SQL Server 2008
Leiter (2008, p18) menjelaskan bahwa tipe basis data terbagi menjadi
dua yaitu sistem basis data dan user basis data. Sistem basis data digunakan
untuk menyimpan system-wide data dan metadata sedangkan user basis data
27
merupakan basis data yang dibuat oleh user yang memiliki hak akses untuk
menyimpan data aplikasi.
2.2.4.1 Database System
Leiter (2008, p18) menjelaskan bahwa database system terdiri dari
database master, model, msdb, tempdb dan juga termasuk di dalamnya database
resource.
1. Database master
Database master digunakan untuk menyimpan semua objek level
server yang ada di dalam SQL Server 2008. Objek yang dimaksud disini
termasuk seperti Server Logon Account, Linked Server Definitions dan
EndPoints. Basis data ini juga menyimpan informasi mengenai semua basis
data yang ada pada server.
2. Database model
Database model merupakan sebuah template basis data. Ketika
sebuah basis data dibuat, maka database model akan membuat duplikat basis
data dan diberi nama serupa dengan basis data yang dibuat. Keuntungan
yang diperoleh dari hal ini ialah bahwa objek dapat diletakkan pada
database model sebelum pembentukan basis data baru, dan ketika basis data
itu dibuat, objek akan muncul pada basis data baru tersebut.
Hampir setiap objek dari basis data dapat ditambahkan ke database
model sehingga objek tersebut dapat tersedia pada basis data yang dibuat
28
berikutnya. Hal ini termasuk ke user basis data, peran, tabel, stored
procedures, fungsi dan assemblies.
3. Database msdb
Database msdb dapat dianggap sebagai SQL Server Agent Database
karena SQL Server Agent menggunakan database msdb secara ekstensif
sebagai tempat penyimpanan untuk job definitions, job schedules, operator
definitions dan alert definitions yang terotomatisasi.
Service Broker, Database Mail dan Reporting Services juga
menggunakan database msdb sebagai tempat penyimpanan informasi
penjadwalan.
4. Database tempdb
Database tempdb digunakan oleh SQL Server 2008 untuk
menyimpan data secara sementara. Database tempdb digunakan secara
ekstensif selama operasi dalam SQL Server. Setiap user basis data juga
memiliki akses ke basis data ini dan memiliki kemampuan untuk membuat
dan menempatkan objek sementara.
5. Database resource
Database resource merupakan read-only database yang mengandung
semua objek sistem yang digunakan oleh instance pada SQL Server.
Database resource ini tidak dapat diakses selama operasi basis data normal.
29
Basis data ini dipresentasikan secara logikal sebagai SYS schema dalam
setiap basis data. Basis data ini terdiri dari struktur dan deskripsi dari semua
objek sistem.
2.2.4.2 Database User
Database user adalah basis data yang dibuat oleh user untuk menyimpan
data yang digunakan oleh aplikasi data dan merupakan tujuan utama dari
memiliki server basis data.
2.2.5 SQL Server 2008 Database Storage
Menurut Leiter (2004, p20) semua sistem dan pengguna basis data
(termasuk sumber daya basis data) disimpan dalam file. Selalu ada minimal 2
file penyimpanan yaitu satu file data dan satu file transaksi. Ekstensi default
untuk file data adalah .MDF, dan default untuk file log transaksi adalah .LDF.
2.2.5.1 Data File dan Filegroup
Leiter (2004, p21) menjelaskan bahwa ketika account sebuah user basis
data dibuat, itu harus mengandung setidaknya satu file data. File data yang
pertama dikenal sebagai file data primer. File data primer adalah anggota primer
default filegroup. Setiap basis data memiliki satu filegroup primer ketika dibuat,
yang setidaknya terdiri dari file data primer. File data tambahan juga dapat
ditambahkan ke filegroup primer. Filegroup yang lebih banyak dapat
didefinisikan pada pembuatan awal basis data, atau ditambahkan setelah basis
data dibuat. File data dapat dikelompokkan secara logis untuk meningkatkan
30
performa dan memungkinkan untuk pemeliharaan yang lebih fleksibel (Gambar
2.6).
Gambar 2. 6 Data files dan filegroups
2.2.5.2 Log File
Leiter (2004, p21) menjelaskan bahwa setelah membuat suatu basis data,
satu transaksi log harus ditetapkan. Transaksi log digunakan untuk mencatat
semua modifikasi terhadap basis data untuk menjamin konsistensi dan
kemampuan untuk pulih dari suatu transaksi.
Meskipun menguntungkan untuk membuat beberapa file data dan
beberapa filegroup, adalah jarang diperlukan untuk membuat lebih dari satu file
log. Hal ini disebabkan bagaimana SQL Server mengakses data. File data dapat
diakses secara paralel, memungkinkan SQL Server untuk membaca dan menulis
ke beberapa file dan filegroup secara bersamaan. File log dijadikan serial untuk
menjaga konsistensi transaksional. Setiap transaksi dicatat dalam log secara
serial dan dalam urutan tersebut transaksi dieksekusi. File log yang kedua tidak
akan diakses sampai file log pertama benar-benar penuh.
31
2.2.6 Aturan Perancangan User Interface
Shneiderman (2005,p74-75) mengemukakan 8 (delapan) aturan yang
dapat digunakan sebagai petunjuk dasar yang baik untuk merancang suatu user
interface. Delapan aturan ini disebut dengan Eight Golden Rules of Interface
Design, yaitu:
1. Konsistensi
Konsistensi dilakukan pada urutan tindakan, perintah, dan istilah
yang digunakan pada prompt, menu, serta layar bantuan.
2. Memungkinkan pengguna untuk menggunakan shortcut
Ada kebutuhan dari pengguna yang sudah ahli untuk meningkatkan
kecepatan interaksi, sehingga diperlukan singkatan, tombol fungsi, perintah
tersembunyi, dan fasilitas makro.
3. Memberikan umpan balik yang informatif
Untuk setiap tindakan operator, sebaiknya disertakan suatu sistem
umpan balik. Untuk tindakan yang sering dilakukan dan tidak terlalu
penting, dapat diberikan umpan balik yang sederhana. Tetapi ketika tindakan
merupakan hal yang penting, maka umpan balik sebaiknya lebih substansial.
Misalnya muncul suatu suara ketika salah menekan tombol pada waktu input
data atau muncul pesan kesalahannya.
4. Merancang dialog untuk menghasilkan suatu penutupan
Urutan tindakan sebaiknya diorganisir dalam suatu kelompok
dengan bagian awal, tengah, dan akhir. Umpan balik yang informatif akan
32
memberikan indikasi bahwa cara yang dilakukan sudah benar dan dapat
mempersiapkan kelompok tindakan berikutnya.
5. Memberikan penanganan kesalahan yang sederhana
Sedapat mungkin sistem dirancang sehingga pengguna tidak dapat
melakukan kesalahan fatal. Jika kesalahan terjadi, sistem dapat mendeteksi
kesalahan dengan cepat dan memberikan mekanisme yang sedehana dan
mudah dipahami untuk penanganan kesalahan.
6. Mudah kembali ke tindakan sebelumnya
Hal ini dapat mengurangi kekuatiran pengguna karena pengguna
mengetahui kesalahan yang dilakukan dapat dibatalkan; sehingga pengguna
tidak takut untuk mengekplorasi pilihan-pilihan lain yang belum biasa
digunakan.
7. Mendukung tempat pengendali internal (internal locus of control)
Pengguna ingin menjadi pengontrol sistem dan sistem akan
merespon tindakan yang dilakukan pengguna daripada pengguna merasa
bahwa sistem mengontrol pengguna. Sebaiknya sistem dirancang sedemikan
rupa sehingga pengguna menjadi inisiator daripada responden.
8. Mengurangi beban ingatan jangka pendek
Keterbatasan ingatan manusia membutuhkan tampilan yang
sederhana atau banyak tampilan halaman yang sebaiknya disatukan, serta
diberikan cukup waktu pelatihan untuk kode, mnemonic, dan urutan
tindakan.
33
2.2.7 Performance Tuning dan Optimization
Petković (2008, p518) menjelaskan bahwa kinerja dari sebuah Database
Engine diukur berdasarkan 2 kriteria:
• Waktu Respon
Waktu respon mengukur performa dari transaksi individual atau
program. Waktu respon adalah panjang suatu waktu pada saat user
memasukkan sebuah perintah sampai waktu dimana sistem mengindikasikan
perintah tersebut telah selesai dilakukan.
• Hasil Keluaran
Hasil Keluaran adalah performa keseluruhan dari sistem dengan
menghitung jumlah transaksi yang dapat ditangani oleh Database Engine
dalam satuan waktu yang telah diberikan.
Menurut Whallen (2001, p3) Performance Tuning adalah sebuah
tindakan mengubah performa dari sebuah sistem dengan memodifikasi
parameter dari sistem (software tuning) atau dengan merubah konfigurasi sistem
(hardware tuning). Performance tuning melibatkan suatu analisis detil dari
konfigurasi perangkat keras, sistem operasi, dan konfigurasi dari Relational
Database Management System (RDBMS) dan aplikasi yang mengakses
komponen tersebut.
Tujuan utama dari tuning adalah untuk menghilangkan bottlenecks, atau
keterbatasan performa dalam komponen. Komponen yang dimaksud disini dapat
34
berupa perangkat keras atau perangkat lunak yang dapat mempengaruhi
performa dari sistem ketika dikonfigurasi dan di-tuning secara benar.
Bottlenecks dapat diartikan sebagai adanya ketidakseimbangan antara
peningkatan jumlah data yang akan diproses dengan kapasitas jumlah data yang
dapat diproses oleh suatu komponen dalam suatu waktu. Sebagai contoh ialah
ketika jumlah data yang akan diproses meningkat sangat pesat, namun kapasitas
memori untuk memproses data tersebut tidak mengalami peningkatan. Dengan
demikian, maka jumlah data yang dapat diproses dalam suatu waktu oleh
memori akan menjadi terbatas sehingga memerlukan waktu lebih banyak untuk
memproses data. Hal ini tentu akan berakibat menurunnya performa dari basis
data yang digunakan.
Meningkatkan performa dari sebuah sistem basis data memerlukan
banyak pertimbangan, seperti dimana data harus disimpan dan bagaimana cara
menyimpannya. Jika sistem basis data tidak bekerja secara optimal, maka sistem
administrator harus melakukan pemeriksaan terhadap banyak faktor dan jika
memungkinkan, melakukan tuning software terhadap sistem basis data tersebut.
2.2.7.1 Application Tuning
Menurut Whallen (2001, p4) application tuning melibatkan analisis
terhadap Structured Query Language (SQL) statements dan menentukan jika
query yang dimaksud efisien atau tidak. Query yang tidak efisien biasanya
menggunakan sumber daya sistem yang berlebihan dan memakan waktu yang
35
lama. Dengan melakukan tuning pada SQL statements dan bagaimana aplikasi
mengakses basis data, maka dapat meningkatkan bagaimana sistem berjalan.
Secara garis besar, SQL tuning dapat terbagi menjadi dua kategori, yaitu
memodifikasi data access method dan meningkatkan execution plan.
2.2.7.2 SQL Server Tuning
Menurut Whallen (2001, p5) SQL Server Tuning melibatkan modifikasi
terhadap bagaimana cara SQL Server mengalokasikan sumber daya dan
bagaimana SQL Server berfungsi dengan memodifikasi parameter
konfigurasinya.
2.2.7.3 Hardware Tuning
Menurut Whallen (2001, p5) hardware tuning adalah sebuah tindakan
dalam menyediakan sumber daya perangkat keras yang tepat untuk workload
yang diinginkan, berada diantara sizing dan capacity planning. Untuk men-
tuning sistem perangkat keras, sumber daya yang dapat dialokasikan pada SQL
Server harus ditentukan untuk menciptakan performa yang lebih baik.
Tindakan ini melibatkan penambahan memori, CPU, sumber daya dari
I/O, atau kombinasi dari semua ini.