Tugas Basis Data
Overview DB2 Kelompok 3
Anggota: Adrianus WK Ardi Darmawan Martin Leonard T Michael BM Muhamad Mulki A Reynaldo Putra
120400005X 120400013Y 120400058Y 120400061Y 1204000637 120400075Y
Pengantar DB2 adalah software yang mempunyai sejarah yang cukup lama, dan merupakan database pertama yang menggunakan SQL. Nama DB2 diberikan diberikan pada Database Mangement System (DBMS) ketika IBM melepaskan SQL/DS. Software database ini juga telah mengadopsi relational mode yang merupakan ide DrF.Codd yang merupakan pegawai IBM. Untuk mendukung gagasan relational database ini IBM membuat sebuah bahasa khusus dalam melakukan query database yaitu SQL(Structure Query Language).
Untuk beberapa tahun, DB2 khusus dibuat untuk IBM mainframe. Namun kemudian, IBM membawa DW2 ke platform lain seperti UNIX , Windows, dan Linux. Sekarang ini DB2 telah mengalami kemajuan yang pesat, dan telah tersedia di Platform 64 bit. IBM mengklaim bahwa DB2 telah mempunyai feature selft tunning, self managing, dan mendukung penyimpan XML secara native.
DB2 mempunyai beberapa edisi software, hal ini untuk menghindarkan user membayar feature yang tidak mereka pakai. Edisi-edisi yang ada di DB2 antara lain seperti Sample Edition
termasuk Workgroup, Workgroup Unlimited, Enterprise
Database, dan Edisi High end nya bernama DB2 UDB Data Warehouse Enterprise Edition. Untuk Menghadapi Oracle dan Microsoft yang telah mengeluarkan versi gratis software nya, IBM mengeluarkan DB2 Universal Database Express C , dengan license free.
Daftar Isi
Kata Pengatar
1
Daftar Isi
2
Features on: Storage & Indexing
3
Platform IBM DB2
7
Harga & Speed
16
Administrative Tools
19
DB2 Security
20
Concurency Control
25
Stored Procedure
29
Daftar Pustaka
32
Minimal Features on: storage & indexing Storage and Indexing DB2 mendukung abstraksi penyimpanan logical database table dalam multi node dan multi disk environtment. Maksud dari multi node ialah gabungan beberapa komputer(Node). Node groups dapat didefinisikan untuk mendukung table partisi di untuk setiap node. Ini memungkinkan fleksibilitas dalam penempatan partisi table pada node mana saja. Sebagai contoh: Table yang berukuran besar dibisa di partisi, lalu disimpan di node yang mana saja, asalkan node itu terhubung. Sedangkan untuk table yang kecil, bisa di simpan dalam node yang sama.
Dalam sebuah node, DB2 menggunakan Table space untuk mengorganisasi table nya. Table space mengandung satu atau lebih container, yang berisi references untuk direktori, devices, atau file. Sebuah Table space bisa mengandung satu atau lebih table dan LOBs(Large Object).
Dua Table space didefiniskan di node group ini. The HUMANRES Table Space diberikan 4 container, sedangkan SCHED dialokasikan hanya 1 container.
Penenmpatan data Employee dan departement pada kontainer HUMANRES dapat dilakukan dengan 2 cara
•
System managed space—System managed space adalah direktori atau file system yang dikerjakan oleh sistem operasi. DB2 akan membuat file object di sebuah direktori dan alokasi data pada tiap file.
•
DMS managed table space—Data Managed System adalah raw device atau prealocated file yang di dikendalikan DB2. Ukuran dari kontainer ini tidak akan berubah DB2 akan membuat peta alokasi dan mengatur DM table space sendiri.
DB2 mendukung strip(pencacahan /penyebaran) antar kontainer. Sebagai contoh: Bila ada penambahan table DB2 akan menempatkan nya di kontainer1 sampai kontainer itu penuh. Bila sudah penuh, DB2 akan menempatkan di kontainer 2, dst. Terdapat keuntungan bila melakukan ini: paralel I/O dan Load balancing.
DB2 juga mendukung prefecthing dan asynchronous writes menggunakan thread yang terpisah.
Tabel, Record dan Index DB2 mengorganisasi data sebagai record pages. Tabel terdiri dari himpunan page. Setiap page berisi himpunan dari record. Page ke-0 berisi sistem record tentang tabel, dan status tabel itu sendiri.DB2 menggunakan sebuah space map record yang bernama Free Space Control Record yang berfungsi untuk menemukan free space yang terdapat dalam tabel. FSCR record biasanya berisi dari map 500 page. FSCR berisi beberapa bit yang menunjukan rata-rata penggunaan pada tiap tabel. Misalkan bila dengan 2 bits, 11 berarti hampir semua free, 01 berarti seperempat nya free. Untuk menekan cost untuk setiap update, isi dari FSCR tidak akan selalu di update. Maka kode untuk insert dan delete harus menvalidasi isi FSCR dengan melakukan physical check untuk melihat free space di dalam page.
Index Index diorganisasikan seperti page biasa, didalam nya terdapat index record yang dirujuknya, pointer kepada anak/ dan saudara nya. DB2 menyediakan dukungan untuk mekanisime index B+ tree. B+ tree berisi internal page dan leaf page. Index memakai bidirectional pointer di leaf level untuk mendukung forward dan reserve scan. Leaf page didalamnya terdapat index entries untuk menunjuk record di tabel. Setiap record mempunyai no unik untuk mengenalinya, yang bernama Record Indentier(RID). RID dibentuk dari angka page indentifier dan slot indentifier. Sebuah index bisa didefinisikan sebagai clustering index dari tabel. Jika begitu, data record di olah dalam page-oriented clustering order berdasarkan index keys.
Gambar Index dengan B+ tree mekanisme
Index pada DB2 juga memungkinkan menyimpan tambahan data selain record identifier di level index. Sebagai contoh, CREATE UNIQUE INDEX I1 ON T1 (C1) INCLUDE(C2) menspesifikasi bahwa C2 menjadi extra coloumn di index pada kolom C1. Dengan cara ini membuat DB2 bisa melayani “index only” query processing teknik. Ini bisa mencegah pembacaan actual record untuk queries yang menggunakan included record. Direktif tambahan seperti MINPCTUSED dan PCTFREE bisa digunakan untuk mengkontrol penggabungan index page dan alokasi inisial space selama bulk load.
Page format •
Terdapat header dan slot direktori
•
Slot direktori berisi 255 entries yang merefer ke record offset di page
•
DB2 mendukung berbagai ukuran record seperti ukuran 4 KB, 8 KB,16 KB dan 32 KB
•
Maksimal tiap page mengandung255 user record.
•
Makin besar ukuran page, makin mendukun data yang mempunyai jumlah kolom yang banyak.
•
Ukuran yang kecil berguna untuk operasi data yang sering di update.
Page 473 •
Record 0 pada offset 3800
•
Record 2 pada offset 3400
Page 1056 •
Record 0 pada ofset 3800
•
Recors 1 pada offset 3700, ternyata isinya pointer yang merujuk ke Page 473, record 2
Platform IBM DB2 Overview DB2 Universal Database Server dapat digunakan pada berbagai hardware dan platform system operasi, mulai dari mainframe dan server besar sampai workstation dan perlatan-peralatan kecil (small hand-held devices). DB2 dapat berjalan baik pada sistem operasi operasi buatan IBM dan non-IBM. DB2 Everyplace Edition dapat berjalan pada sistem operasi seperti PalmOS, Windows CE, dan lainnya. Aplikasi dapat berpindah dari low-end platform ke high-end server
DB2 Database Server Saat Ini Saat ini, DB2 dan produk keluarannya (DB2 family of products) dapat digunakan di berbagai variasi Sistem operasi untuk server, seperti UNIX, Linux, Windows, IBM iSeries(OS/400) dan zSeries(OS/390, z/OS, VM, VSE, dan Linux)
Sementara, DB2 Everyplace mensupport perangkat kompak dan kecil(handheld device), seperti PDA, komputer saku, Linux, dan menyediakan sinkronisasi data dengan sistem besar. Berbagai tools telah disediakan untuk application development dan database administration melalui famili dari DB2
DB2 Family of Products: Database Servers:
DB2 UDB for UNIX, Windows, OS/2, Linux DB2 UDB for OS/390 DB2 UDB for AS/400 DB2 for VM/VSE
Application Development:
VisualAge for Java, C++ VisualAge Generator DB2 Forms for OS/390 Lotus Approach
Content Management:
Content Manager Content Manager VidedoCharger
Business Intelligence:
DB2 OLAP Server DB2 Intelligent Miner DB2 Spatial Extender DB2 Warehouse Manager QMF for OS/390
Database Management Tools:
DB2 Control Center DB2 Admin Tools for OS/390 DB2 buffer Pool Tool DB2 Estimator for OS/390 DB2 Performance Monitor DB2 Visual Explain DB2 Query Patroller Etc.
EBusiness Tools:
DB2 Net Search Extender DB2 XML Extender Net.Data DB2 For Websphere
Mobile Data Access:
DB2 EveryPlace DB2 Satellite Edition
Data Integration:
DB2 DataJoiner DataLinks Data Replication Services DB2 Connect
Multimedia Delivery:
DB2 ObjectRelational Extenders Digital Library
Berikut adalah table dari persyaratan minimum untuk dapat menjalankan bebagai produk DB2: DB2 Universal Database Sistem Operasi Software AIX
HP-UX
Linux
DB2 Universal Database DB2 Universal Database DB2 Universal Database
Solaris
DB2 Universal Database Windows 2000, DB2 Windows 2003, Universal Windows NT, Database Windows XP
Hardware pSeries systems based on POWER 3, POWER 4, and POWER 5 processors are supported. eServer i5 and p5 systems are also supported. For HP-UX, either PA-RISC CPU or Itanium CPU is required x86 requires Intel Pentium 4 or higher, Intel Xeon, or AMD Athlon based systems; x86-64 requires Intel EM64T or AMD64 based systems; POWER requires IBM eServer OpenPower, iSeries, or pSeries systems that support Linux; IA64 requires Intel Itanium 2 based systems; S/390 and zSeries requires S/390 and zSeries systems that support Linux CPUs prior to UltraSparc are not supported.
x86 requires Intel Pentium 4 or higher, Intel Xeon, or AMD Athlon based systems; x86-64 requires Intel EM64T or AMD64 based systems; IA64 requires Intel Itanium based systems.
DB2 Cube Views Servers Sistem Operasi Software
Hardware
AIX HP-UX Linux
AIX 4.3.3 32-bit, 5L 32-bit, or 5L 64-bit HP-UX 11i v2 64-bit for Intel Itanium Linux Red Hat 8 (kernel 2.4.18, glibc 2.2.93-5) 32-bit, Linux SuSE 8.0 (kernel 2.4.18, glibc 2.2.5) 32-bit, Linux SLES 8 SP3 (kernel 2.4.21, glib 2.3.2) 32-bit, Linux on AMD 64-bit, Linux on pSeries 64-bit, Linux on Intel 32-bit (2.6 kernel), Linux on Intel 32-bit (2.4 kernel) Solaris Solaris 8 32-bit or 64-bit, Solaris 9 32-bit or 64-bit Windows 2000, Windows NT 4, Windows 2000 32-bit, Windows 2003, Windows XP Professional 32-bit, Windows NT Windows Server 2003 32-bit, or Windows Server 2003 64-bit
DB2 Cube Views Client Sistem Operasi Linux
Software Linux on AMD 64-bit, Linux on pSeries 64-bit, Linux on Intel 32-bit (2.6 kernel), Linux on Intel 32-bit (2.4
RS6000 PowerPC computers On Linux systems, Intel Itanium, or higher, is required. On Intel systems, Pentium®, or higher, is required.
Sun SPARC or ULTRASPARC computers
Hardware
kernel) Windows 2000, Windows Windows 2000 32-bit, Pentium or later computers 2003, Windows NT, Windows Server 2003 32-bit, Windows XP Windows Server 2003 64-bit, Windows NT 4, Windows XP 32-bit, Windows XP 64bit
DB2 Intelligent Miner Sistem Operasi Software AIX 32-bit operating system
For IM Modeling and IM Scoring for DB2: DB2 Universal Database Version 8.1 or higher 32-bit version For IM Scoring for Oracle: Oracle8i Version 8.1.6 or later, Oracle9i, or Oracle10g For IM Scoring Java Beans, Easy Mining procedures, and IM Visualization: 32-bit JRE 1.3.1 or higher For IM Visualization: JRE 1.4.1 is recommended
AIX 64-bit operating system
Hardware 150 MB additional disk space (including the documentation in one language) On SP2(R) with DB2 ESE installation, this disk space is required on each node. Additional space for sample databases 256 MB minimum
AIX 4.3.3 or higher For IM Modeling and IM Scoring for DB2: DB2 Universal Database Version 8.1 FP 4 or higher 64-bit version For IM Scoring for Oracle: Oracle8i Version 8.1.6 or later, Oracle9i, or Oracle10g For IM Scoring Java Beans and IM Visualization: JRE 1.3.1 or higher For IM Visualization: JRE 1.4.1 is recommended For Easy Mining procedures: 64-bit JRE 1.3.1 or higher
AIX 5.1 or higher HP-UX 11i v2 DB2 Universal Database (B.11.23) Version 8.1 FP 4 for Itanium
Any HP integrity server
RAM
operating system
Linux/Intel 32-bit operating system
For IM Scoring Java Beans and IM Visualization: 32-bit JRE 1.3.1 or higher For IM Visualization: JRE 1.4.1 is recommended For IM Modeling and IM Scoring for DB2: DB2 Universal Database Version 8.1 or higher 32-bit operating system For IM Scoring for Oracle: Oracle8i Version 8.1.6 or later, Oracle9i, or Oracle10g For IM Scoring Java Beans, Easy Mining procedures, and IM Visualization: 32-bit JRE 1.3.1 or higher For IM Visualization: JRE 1.4.1 is recommended glibc 2.3.2 is a required for running DB2 Intelligent Miner 8.2 on PC Linux DB2 Intelligent Miner Modeling 8.2 and DB2 Intelligent Miner Scoring 8.2 do not run properly on Intel Platforms (i586, ia64) with older Linux versions which have a glibc version prior to 2.3.2. The problem appears for example on the following Linux Releases: Red Hat Linux 8 or lower, Red Hat Enterprise Linux 2.1 or lower, SuSE Linux 8.1 or lower, SuSE Linux Enterprise Server 8 or lower DB2 Intelligent Miner Modeling 8.2 and DB2 Intelligent Miner Scoring 8.2 have been compiled on a Linux system with glibc 2.3.2, and this version is not fully backward compatible with glibc 2.2.5 and earlier. You can find out which glibc version is installed on your system by typing: rpm -qa | grep glibc If the output shows a version prior to 2.3.2, you have to update your Linux Release version before running DB2 Intelligent Miner Modeling 8.2 or DB2 Intelligent Miner Scoring 8.2. Upgrade for example to Red Hat Linux 9 or higher, Red Hat Enterprise Linux 3 or higher, SuSE Linux 8.2 or higher, SuSE Linux Enterprise Server 9 or higher. Red Hat Enterprise Linux 3 or
120 MB in the /opt file system for the base product (including the documentation in one language) Additional space for sample databases 256 MB minimum
RAM
Red Hat Linux 9 or SuSe Linux Enterprise Server 9 or SuSe Linux 8.2 Linux on IA64 / Red Hat Enterprise Linux 3 or Itanium2 SUSE Linux Enterprise Server 9 operating systems For IM Modeling and IM Scoring for DB2: DB2 Universal Database Version 8.1 or higher 64-bit operating system For IM Scoring Java Beans, Easy Mining procedures, and IM Visualization: 32-bit JRE 1.3.1 or higher For IM Visualization: JRE 1.4.1 is recommended Linux on Red Hat Enterprise Linux 4 or AMD64/EM64T SUSE Linux Enterprise Server 9 64-bit operating system For IM Modeling and IM Scoring for DB2: DB2 Universal Database Version 8.1 FP9 or higher 64-bit operating system For IM Scoring Java Beans, Easy Mining procedures 64-bit JRE 1.4.2, and IM Visualization: 32-bit JRE 1.3.1 or higher For IM Visualization: JRE 1.4.1 is recommended Linux on POWER Red Hat Enterprise Linux 3, 4 or PC 64-bit SUSE Linux Enterprise Server 9 operating system system For IM Modeling and IM Scoring for DB2: DB2 Universal Database Version 8.1 FP9 or higher 64-bit operating system For IM Scoring Java Beans, Easy Mining procedures 64-bit JRE 1.4.2, and IM Visualization: 32-bit JRE 1.3.1 or higher For IM Visualization: JRE 1.4.1 is recommended
Linux/zSeries 32-bit operating system
DB2 Universal Database Version 8.1 or higher 32-bit operating system For IM Scoring for Oracle: Oracle8i Version 8.1.6 or later, Oracle9i, or Oracle10g For IM Scoring Java Beans, Easy Mining procedures, and IM Visualization: 32-bit JRE 1.3.1 or higher
Solaris 32-bit Operating Environment
For IM Visualization: JRE 1.4.1 is recommended For IM Modeling and IM Scoring for DB2: DB2 Universal Database Version 8.1 or higher 32-bit version For IM Scoring for Oracle: Oracle8i Version 8.1.6 or later, Oracle9i, or Oracle10g For IM Scoring Java Beans, Easy Mining procedures, and IM Visualization: 32-bit JRE 1.3.1 or higher For IM Visualization: JRE 1.4.1 is recommended Solaris Operating Environment 2.7 or higher
200 MB of additional disk space in the /opt file system for the base product (including the documentation in one language) Additional space for sample databases 256 MB minimum
RAM
Solaris 64-bit Operating Environment
For IM Modeling and IM Scoring for DB2: DB2 Universal Database Version 8.1 or higher 64-bit version For IM Scoring for Oracle: Oracle8i Version 8.1.6 or later, Oracle9i, or Oracle10g For IM Scoring Java Beans, Easy Mining procedures, and IM Visualization: 32-bit JRE 1.3.1 or higher For IM Visualization: JRE 1.4.1 is recommended Solaris Operating Environment 2.8: Make sure that the following patches are installed: 109147-09 108434-02 108435-02
Windows 32-bit operating system
To download the patches, go to http://sunsolve.suncom For IM Modeling and IM Scoring for DB2: DB2 Universal Database Version 8.1 FP 4 or higher 32-bit version For IM Scoring for Oracle: Oracle8i (8.1.6 or later), Oracle9i, or Oracle10g Windows NT 4 SP6 or Windows 2000 SP4 or higher (Professional, Server, Advanced Server, Datacenter server) or Windows XP Professional SP1 or higher or Windows Server 2003 (Web Edition, Standard Edition, Enterprise Edition, Datacenter Edition)
150 MB additional disk space for IM Modeling, IM Scoring, and IM Visualization including the documentation in one language Additional space for sample databases 250 MB in the Temp directory during installation 256 MB minimum
RAM
Windows 64-bit operating system
For IM Modeling and IM Scoring for DB2: DB2 Universal Database Version 8.1 FP 4 or higher 32-bit version or 64-bit version For IM Scoring for Oracle: Oracle8i (8.1.6 or later), Oracle9i, or Oracle10g Windows XP 64-bit (IA-64) or Windows Server 2003 64-bit (IA-64)
DB2 Query Patroller adalah sistem manajemen query yang baik (powerful query management system) yang memungkinkan kita mengontrol query di basis data DB2 kita secara proaktif dan dinamis. DB2 Query Patroller server tools(UNIX) Sistem Operasi Software AIX
HP-UX
Linux Solaris
Version 4.3.3 with maintenance level 10 or later, APARs IY22308, IY32690, and IY33024 (32-bit only) Query Patroller can run on HP-UX 11i (11.11) for systems with PA-RISC 2.x (PA-8x00) processors with: December 2001 GOLDBASE11i bundle (HP-UX); December 2001 GOLDAPPS11i bundle (HP-UX); patch PHSS_26560 (HP-UX)
RISC/6000 eServer pSeries HP 9000 series 700 or 800 system
Intel 32-bit Linux Solaris 7 (32-bit) & Security Patches Solaris UltraSPARC-based 107226-17 + 107153-01 + 106327-10 computer Solaris 8 (32-bit) & Security Patches? 108921-12 + 108940-24 + 108434-03 and 108528-12 v Solaris 9 (32-bit)
DB2 Query Patroller client tools(UNIX) Sistem Operasi Software AIX
Hardware
Hardware
AIX Version 4.3.3.78 or later IBM RISC/6000 (AIX) The following AIX filesets are required to eServer pSeries (AIX) install or run Query Patroller in languages other than English: X11.fnt.ucs.ttf (AIX Windows Unicode TrueType Fonts) xlC.rte 5.0.2.x For Asian languages, the following filesets are also required: X11.fnt.ucs.ttf_CN (for zh_CN or Zh_CN); X11.fnt.ucs.ttf_KR (for ko_KR); X11.fnt.ucs.ttf_TW (for zh_TW
HP-UX
Linux Solaris
or Zh_TW) On AIX Version 4.3.3 the following fileset is required: xlC.aix43.rte 5.0.2.x On AIX Version 5.x the following fileset is required: xlC.aix50.rte 5.0.2.x HP-UX 11i(11.11) for systems with PA- HP 9000 series 700 or 800 RISC 2.x (PA-8x00) processors with system March 2002 GOLDBASE11i and March 2002 GOLDAPPS11i bundles and patch PHSS_22535 Intel 32–bit Solaris Version 2.7 or later Solaris SPARC-based The following patches are required for the computer (Solaris Operating Solaris Operating Environment Version Environment) 2.7: Solaris Operating Environment 7 (32bit) patch 106327-8; Solaris Operating Environment 8 (32-bit) patch 108434-01 + 108528-12 The following software is required to install Query Patroller on Solaris Operating Environment: SUNWlibC
Harga dan Kecepatan Harga Harga – Harga Software DB2 dalam Berbagai Edisi
Part description IBM DB2 Universal Database Enterprise Server Edition Processor License + SW Maintenance 12 Months (D518GLL)
*
IBM price 33,125.00
IBM DB2 Universal Database Enterprise Server Edition Database Partitioning Feature Processor License + SW Maintenance 12 Months (D518JLL)
9,950.00
IBM DB2 Universal Database Enterprise Server Edition Geodetic Extender Processor License + SW Maintenance 12 Months (D53Y2LL)
9,375.00
IBM DB2 Universal Database Enterprise Server Edition Authorized User License + SW Maintenance 12 Months (D56CILL)
Part description IBM DB2 Universal Database Workgroup Server Unlimited Edition Processor License + SW Maintenance (D51NDLL) IBM DB2 High Availability Disaster Recovery Processor License + SW Maintenance (D53Z9LL)
938.00
*
IBM price 9,375.00
7,500.00
Part description IBM DB2 Data Warehouse Enterprise Edition Processor License + SW Maintenance 12 Months (D56XZLL)
*
IBM price 75,000.00
IBM DB2 Data Warehouse Enterprise Edition Subcapacity Processor License + SW Maintenance 12 Months (D56XVLL)
75,000.00
IBM DB2 Data Warehouse Base Edition Processor License + SW Maintenance 12 Months (D56Y6LL)
36,875.00
IBM DB2 Universal Database Data Warehouse Standard Edition Processor License + SW Maintenance 12 Months (D56XSLL)
23,750.00
Part description IBM DB2 Universal Database Workgroup Edition User License + SW Maintenance (D5B77LL)
*
IBM price 311.00
IBM DB2 Universal Database Workgroup Edition Server Install License + SW Maintenance (D5B7FLL)
1,211.00
IBM DB2 High Availability Disaster Recovery Processor License + SW Maintenance (D53Z9LL)
7,500.00
IBM DB2 Version 8.11
SQL Server 2000
Product
Price2
Product
Price
Workgroup Edition
$7,500 US
Standard Edition
$4,999 US
Total
$7,500 US
Total
$4,999 US
Product
Price
Product
Price
Enterprise Edition
$25,000 US
Enterprise Edition (EE)
$19,999 US
Add-on
Price
Add-on
Price
Warehouse Manager
$10,600 US
Data Transformation Services
Included with EE
Intelligent Miner
$60,000 US
Data Mining
Included with EE
OLAP Server
$28,000 US
OLAP Server
Included with EE
Total
$123,600 US3
Total
$19,999 US
Kecepatan Hal – hal yang perlu diperhatikan agar kecepatan maksimal koneksi basis data dapat dicapai: 1. Pastikan bahwa memory tidak over commited sehingga system operasi tidak harus melakukan paging untuk mengalokasikan memory untuk proses DB2. 2. Pergunakan perintah ACTIVATE DATABASE sehingga proses – proses, memory dan DB2 logs dialokasikan pertama kali pada saat koneksi yang pertama ke basis data. 3. Pastikan tidak ada error pada konfigurasi jaringan DNS. 4. Sebuah query yang menggunakan index mempunyai banyak pilihan access path sehingga query yang menggunakan index lebih efisien daripada query yang tidak menggunakan query. DB2 optimizer dapat menggunakan index dalam berbagai cara untuk meningkatkan kecepatan pengambilan data dari DB2 tables. Oleh karena itu, gunakanlah query dengan mekanisme index. 5. Pergunakan tipe data dan pangjang data yang sama ketika membandingkan column values dengan host variables or literal. Hal ini akan mengurangi waktu untuk konversi data. 6. Dengan mengurangi banyaknya predikat di dalam SQL statement, kita akan mendapatkan performance yang lebih baik dalam 2 aspek yaitu: a. Berkurangnya BIND time yang diakibatkan oleh lebih sedikitnya pilihan yang harus diperiksa oleh DB2 optimizer. b. Berkurangnya waktu eksekusi yang diakibatkan oleh penghilangan criteria pencarian yang sia – sia dari access path yang telah dioptimasi. DB2 memproses setiap predikat yang dikodekan untuk SQL statement.Penghikangan predikat berakibat penghilangan kerja, dan berkurangnya kerja berakibat berkurangnya waktu yang dibutuhkan untuk memproses SQL.
DB2 Administrative Tools and Security Overview DB2 menyediakan beberapa alat untuk mempermudah penggunaan dan administrasi. Alat-alat ini dapat ditambahkan dari vendor-vendor. Control Center(CC) dari DB2 adalah alat utama untuk penggunaan dan administrasi dari DB2. Control Center ini bekerja pada banyak platform workstation. Control center ini dapat mengatur berbagai maam seperti server, database, table, dan indice. CC ini juga berisi antar muka yang dapat melakukan berbagai operasi dan juga memungkinkan user untuk membuat SQL script.
DB2 Administrative Tools Administrator dapat menggunakan menu pada CC untuk memanggil set-set component tools. Komponen utama dari Control Center adalah •
Command Center—membuat database command dan menjalankan SQL statements
•
Script Center—menjalankan skrip SQL yang disusun secara interaktif atau dari suatu file
•
Performance Monitor—memungkinkan user mengawasi berbagai kejadian di dalam sistem Database dan mengambil snapshot performa
•
Visual Explain—memberikan gambaran secara grafis akan perencanaan terhadap eksekusi query
•
Journal
•
License Management
•
Alert center
•
Remote Database Management
•
Storage Management
•
Replication Support.
DB2 mendukung tools tambahan seperti: •
Audit Facility untuk menjaga jejak audit dari operasi database
•
Governor Facility untuk mengatur prioritas dan waktu eksekusi berbagai aplikasi
•
Query Patroler Facility untuk mengatur job query di dalam system
•
Trace & Diagnostic Facility untuk kegiatan debugging
•
Event Monitoring Facilities untuk memantau resources dan event yang terjadi selama eksekusi sistem
DB2 Security Overview Model keamanan atau security model di dalam DB2 secara garis besar terbagi menjadi dua: Authentification dan Authorization. Berikut adalah keterangan sekaligus bagan sistem keamanan tersebut.
Authentication Authentication atau otentikasi adalah proses yang memvalidasi user ID dan password yang diberikan oleh user dengan menggunakan sebuah mekanisme sekuritas. Otentifikasi user maupun grup pada DB2 dilakukan di fasilitas eksternal DB2 UDB, sseperti sistem operasi, domain controller ataupun sistem keamanan Kerberos. Ini membedakan DB2 dari DBMS lain yang mendefinisikan user account di dalam database itu sendiri dan juga pada fasilitas luar dari database seperti OS. Contoh DBMS itu adalah Oracle dan SQL Server.
Ketika user ID dan password diberikan kepada DB2 UDB sebagai bagian dari instance attachment ataupun connection request database, DB2 UDB akan mengotentifikasi user ID dan password di fasilitas keamanan eksternal. Apabila request ini berasal dari luar dan melibatkan jaringan user dapat memerintahkan plug in Generic Security Service (GSS) untuk melakukan enkripsi atas user ID dan password yang diberikan. Berkut gambaran infrastruktur otentifikasi pada DB2
Dengan arsitektur pengamanan otentifikasi, user DB2 dapat membuat sendiri plug-in otentifikasi atau pun membeli plug-in dari pihak luar. Proses otentifikasi tersebut memiliki API-nya sendiri, seperti GSS-API, SPKM(Simple Public Key Mechanism, [IETF RFC-2025]) dan LIPKEY (A Low Infrastructure Public Key Mechanism Using SPKM, [IETF RFC-2847]) untuk keterangan lebih lanjut dapat dipelajari di website IBM.
Authorization Authorization (otorisasi) adalah sebuah proses yang menentukan akses dan informasi yang boleh diambil dari database tertentu serta operasi yang dapat dilakukan oleh user ID. DB2 UDB menyimpan informasi untuk otorisasi user maupun group secara internal. DB2 pun selalu melakukan pengecekan pada setiap perintah operasi yang diberikan user, apakah user tersebut memiliki hak untuk melakukan operasi tersebut. Apabila user melakukan operasi diluar privilege yang dimilikinya maka DB2 UDB akan menolak operasi tersebut dan mengirimkan pesan error kepada client application. Hak-hak (Privileges) dapat diberikan kepada user ataupun user group, dan definisi dari user dan group ini didefinisikan di luar DB2 UDB. Sepertu yang kita ketahui, group user berarti bahwa setiap member dari group memiliki privilege yang diwariskan dari group tersebut, sehingga semua member dari group tersebut paling tidak memiliki priveledge yang sama. Privilege yang khusus yang diberikan ke user lebih tinggi tingkatannya bila dibandingkan dengan privilege yang didapat dari group, dan tetap akan ada walaupun user tersebut keluar dari group tersebut. Karena itu, privilege yang diberikan secara khusus kepada user harus ditetapkan secara eksplisit. DB2 menggunakan sistem hirarkis untuk penetapan privilege dari user.
Table 1. Summary of each authority level
Level otoritas
Deskripsi penggunaan •
Tingkat tertinggi dari administrative authority pada DB2 UDB
•
Boleh menjalankan utilities, mengeluarkan database and database manager commands, dan mengakses the data di semua tabel pada database manager instance tersebut
•
Menyediakan kemampuan untuk kontrol semua database objects di instance, termasuk databases, tables, views, indexes,
SYSADM
packages, schemas, servers, aliases, data types, functions, procedures, triggers, table spaces, database partition groups, buffer pools, dan event monitors •
Diperuntukkan bagi administrator yang perlu akses penuh utilities dan data
•
Tingkat tertinggi dari system control authority
•
Menyediakan kemampuan untuk melakukan perawatan dan operasi utility pada instance database manager dan database
•
Tidak mempunyai hak untuk mengakses langsung data di dalam database
SYSCTRL
•
Dapat berhubungan ke dalam database dan melakukan fungsifungsi user dengan otoritas setingkat dengan SYSMAINT dan SYSMON. Ini dideklarasikan secara implisit.
•
Diperuntukan bagi user yang mengadministrasi instance database manager yang mengandung data yang sensitif
•
Tingkat tertinggi kedua dari system control authority
•
Menyediakan kemampuan untuk melakukan perawatan dan operasi utility pada instance database manager dan database
•
Tidak mempunyai hak untuk mengakses langsung data di dalam database
SYSMAINT •
Dapat berhubungan ke dalam database dan melakukan fungsifungsi user dengan otoritas setingkat dengan SYSMON. Hal ini dideklarasikan secara implisit
•
Diperuntukkan bagi user yang memaintain database di dalam
suatu database manager instance yang berisi data sensitif •
Memiliki kemampuan untuk mengambil snapshot (pandangan sementara) dari database manager instance atau database dari instance tersebut
•
SYSMON
Diperuntukkan bagi user yang memaintain database di dalam sebuah database manager instance yang berisi data sensitif dan hanya membutuhkan diagnostic data untuk menentukansebuah masalah
•
Tidak dapat mengubah penggunaan resource pada sistem
•
Tingkat tertinggi kedua dari administrative authority untuk database tertentu di dalam sebuah instance
•
Memperbolehkan user untuk menjalankan utility tertentu, mengeluarakan database commands, dan mengakses data pada
DBADM
tabel manapun di dalam database •
Diperuntukkan bagi administrator yang membutuhkan akses penuh dalam objek database dan data, namun tidak memiliki hak untuk maintenance (perawatan)
•
Memperbolehkan user untuk memanggil LOAD utility
•
Memiliki privilege untuk INSERT and DELETE privileges on tabel yang diload, tergantung dari mode operasi mode LOAD
LOAD
tersebut •
Diperuntukkan bagi user yang memerlukan akses untuk mengisi set data baru
DB2USERS dan DB2ADMNS Pada DB2 UDB versi 8.2, sekuritas tambahan diberikan pada DB2 UDB yang bekerja environment Windows. Pada instalasiSB2 UDB diberikan pilihan untuk menambah grup di dalam OS, yaitu: DB2USERS dan DB2ADMNS. Setelah grup ini dibentuk, hanya user dengan keanggotaan grup ini yang boleh mengakses file-file DB2UDB di dalam sistem. Sistem ini dapat digunakan untuk lebih mengamankan server pengguna.
Privilege Selain instan–instan otorisasi yang ada pada DB2 sebagai suatu mekanisme pengamanan, privilege juga bisa diberikan kepada user maupun grup tertentu secara eksplisit tanpa harus termasuk di dalam instan otorisasi yang telah didefinisikan sebelumnya.
Grafik privilege DB2 juga menggunakan schema untuk pengontrolan akses objek di dalam database. Schema dalah objek dari database yang digunakan untuk melakukan pengelompokan objek database yang berhubungan secara logis. Schema juga sering digunakan sebagai
penanda kepemilikan objek. Schema juga memiliki privilege yang terasosiasi di dalamnya, yang juga memampukan user untuk membatasi privilege dari schema dari user lain. User dengan otoritas SYSADM atau DBADM dapat mengubah privilege pada schema manapun milik user manapun.
Concurrency Control Overview Secara umum terdapat 4 macam violation (kerusakan yang berdampak negatif) ketika banyak user/transaksi berusaha mengakses database pada saat bersamaan. Violationviolation tersebut adalah: •
Lost Update—terjadi jika dua transaksi berusaha membaca data yang sama, berusaha mengubah data, dan salah satu hasil pengubahan tersebut hilang (lost) karena ‘tertimpa’ oleh hasil pengubahan (update) dari transaksi lainnya
•
Dirty Reads—terjadi jika sebuah transaksi berusaha membaca data, dimana data tersebut tidak eksis/ada (data tersebut tak terdapat di dalam database), bias jadi karena transaksi lain belum memasukkan data yang bersangkutan
•
Non-repeatable Reads—terjadi ketika sebuah transaksi berusaha membaca baris data yang sama dua kali, tetapi mendapatkan nilai yang berbeda dari data tersebut. Hal ini dikarenakan adanya perubahan (peng-update-an) yang dilakukan oleh transaksi-transaksi lainnya pada saat transaksi tersebut sedang membaca data
•
Phantoms—terjadi ketika sebuah baris data yang sesuai dengan kriteria pencarian, terlihat di sebuah read operation kemudian, tetapi baris data tersebut belum diinisialisasi
Dari banyaknya kemungkinan violation yang dapat terjadi maka DB2 menggunakan fasilitas concurrency control
(pada penjelasan berikut akan lebih banyak
menggunakan istilah isolation) yang pada prinsipnya berusaha mengendalikan pengaksesan data oleh banyak user dalam waktu yang bersamaan (concurrent). Hal ini diperlukan dalam menjamin kekonsistenan data.
Isolation Mode dan Locked Mode DB2 mendukung berbagai modul concurrency control atau yang lebih dikenal sebagai isolation mode. Untuk isolation, DB2 mendukung modul-modul Repeatable Read (RR), Read Stability (RS), Cursor Stability (CS), dan Uncommited Read (UR). RR di dalam DB2 menjamin pemeriksaan menyeluruh sehingga dapat ditemukan bila terdapat pengulangan baris (tuple). Jika seluruh transaksi mengikuti protocol dari RR, maka hasil penjadwalan transaksi akan bersifat serializabel. Ketika isolation level ini digunakan maka seluruh baris yang me-refer ke sebuah transaksi akan dikunci (locked) sepanjang transaksi tersebut berlangsung, dalam hal ini transaksi lain tidak dapat mengubah isi baris dari transaksi yang sedang berlangsung tersebut.
Modul RS akan ‘mengunci’ (locked) hanya pada baris-baris yang berpeluang digunakan pada sebuah aplikasi agar aplikasi tersebut mendapatkan kembali unit kerjanya. Di dalam pemeriksaan kemudian, aplikasi tersebut dijamin dapat melihat keseluruhan baris data (dalam hal ini bersifat seperti RR) namun juga dapat melihat/mengetahui baris-baris yang memenuhi syarat yang diinginkan oleh aplikasi tersebut.
Sedangkan bila level isolation CS digunakan, maka setiap baris yang ditunjuk oleh sebuah cursor yang digunakan pada transaksi yang terisolasi, akan dikunci (locked) sepanjang cursor itu diposisikan pada baris yang bersangkutan. ‘Kunci’ pada baris tersebut akan terus berlangsung selama penunjukan cursor tersebut maupun selama isolation transaksi tersebut berlangsung.
Ketika level isolation UR digunakan oleh sebuah transaksi, maka jika ada transaksi lain berusaha mengubah baris yang dimiliki transaksi tersebut, hal tersebut dapat dicegah selama baris yang bersangkutan menerapkan level isolation UR dan proses ‘isolasi’ terjadi selama transaksi tersebut berlangsung. Dalam hal ini, transaksitransaksi yang menggunakan level isolasi UR dapat melihat perubahan pada baris tabel yang dilakukan oleh transaksi lainnya sebelum perubahan tersebut dikembalikan melalui statemen commit dan rollback (dijelaskan kemudian).
Aplikasi-aplikasi dapat memilih level isolation yang mereka ingin jalankan, bahkan pada aplikasi-aplikasi yang bersifat komersil, aplikasi-aplikasi dapat mendukung berbagai level isolation sehingga user dapat memilih versi yang tepat dari suatu aplikasi yang sesuai dengan requirements mereka.
DB2 mendukung berbagai macam modul ‘penguncian’ (lock mode) di dalam hal untuk memaksimalkan concurrency. Modul-modul tersebut umumnya mengutamakan prinsip bahwa hanya ada satu transaksi saja yang dapat meenggunakan struktur database pada suatu waktu. Karena diterapkan pada DBMS seperti DB2 dimana fasilitasnya cukup terbatas, maka sistem ‘penguncian’ pada dasarnya adalah mengacu pada ‘penguncian baris per baris (tuple)’. Tabel di bawah menunjukkan modul ‘penguncian’ berikut deskiripsi lengkap mengenai tujuan (interpretasi) dari setiap modul penguncian. Gambar modul-modul ‘penguncian’ pada DB2 Modul 'Penguncian'
Objek-objek
Interpretasi
IN (Intent None)
TablesSpace, tables
IS (Intent Share)
TablesSpace, tables
Pembacaan tanpa ada baris yang 'locked' Pembacaan dengan baris yang 'locked'
NS (Next Key Share)
Rows
Pembacaan yang 'locked' pada level isolation RS dan CS
S (Share)
Rows, tables
IX (Intent Exclusive)
TablesSpace, tables
SIX (Share Exclusive)
with
TablesSpace, tables
Pembacaan yang 'locked' secara keseluruhan Kecenderungan ‘penguncian’ umumnya terjadi baris yang baru saja ter-update Tidak ada pembacaan yang 'locked' pada baris namun untuk baris yang ter-update bersifat 'locked' exclusive (X mode)
Rows, tables
Baris yang ter-update bersifat 'locked' tetapi masih memungkinkan user lain untuk membaca baris
Intent
U (Update)
NX (Next Key Exclusive)
Rows
X (Exclusive)
Rows,tables
Next key bersifat 'locked' terutama untuk kegiatan insert/delete demi mencegah 'violation' pada saat pembacaan oleh user Hanya pembaca tertentu yang dapat membaca
(restricted access) Z (SuperExclusive)
TablesSpace, tables
Akses eksklusif lengkap
Dari tabel tersebut dapat dilihat bahwa DB2 menerapkan pula konsep penguncian pada ‘next key’ untuk kegiatan insert/delete yang mempengaruhi indeks level isolation RR, sebegai salah satu langkah untuk mengeliminasi kemungkinan terjadinya ‘violation’ pada saat banyak user membaca data.
Sebuah transaksi dapat men-set ‘lock’ dalam jumlah sangat kecil pada tabel dengan menggunakan statement ’lock table’. Hal ini berguna bagi aplikasi-aplikasi (transaksi) yang memang berkeinginan menggunakan level isolation pada level tabel. Sementara itu, di dalam DB2 terdapat sebuah agen pendeteksi ‘deadlock’ yang berjalan di dalam setiap database dan secara berkala memeriksa deadlock-deadlock yang dapat terjadi pada setiap transaksi.
Commit dan Rollback Aplikasi-aplikasi dapat menjalankan (commit) dan mengulangi (rollback) kegiatankegiatannya dengan menggunakan COMMIT and ROLLBACK SQL statements. Ketika statemen COMMIT dilaksanakan, maka semua perubahan yang dibuat oleh database ketika sebuah transaksi dimulai akan dibuat permanen. Sedangkan ketika statemen ROLLBACK dieksekusi, maka segala perubahan yang dibuat ketika sebuah transaksi dimulai akan di-back out dan status (state) dari database akan dikembalikan ke status awal sebelum transaksi tersebut dimulai.
Aplikasi-aplikasi juga dapat mengeluarkan statemen-statemen BEGIN
dan END
transaction dalam mengatur jalannya suatu transaksi berserta lamanya transaksi tersebut, di dalam hal ini transaksi yang bersifat nested (iteratif) tidak didukung oleh statemen-statemen tersebut. Semua hal tersebut memanfaatkan kemampuankemampuan yang dimiliki oleh DB2.
Stored Procedure Overview Pada waktu dulu, produk DBMS didesain hanya untuk mengatur dan menyimpan data dengan optimal oleh sebuah aturan. Meskipun begitu cara itu masih dibutuhkan oleh produk DBMS yang sudah modern, yang tidak terbatas hanya untuk data saja. Dengan perkembangan metode client/server dan active database, prosedur logika bisnis juga berbasis penyimpanan dan pengaturan data oleh DBMS.
What Is a Stored Procedure? Stored Procedure adalah program special yang bekerja dibawah control dari Relational Database Managemen System. Stored Procedure bisa dikatakan sebuah database lain yang bertabel, dan berindex karena dia diatur dan di-control oleh RDMS. Tapi bisa saja Stored Procedure dibilanng “pengiring” RDMS. Meskipun begitu, sebuah Stored Procedure bukan secara fisik berelasi dengan object dalam database yang bisa akses dan/atau merubah data di beberapa database. Pada dasarnya, Stored Procedure adalah sebuah “programs” yang “hidup” pada RDMS.
DB2's Stored Procedure Implementation Implementasi Stored Procedure DB2 berbeda dari Stored Procedure dengan produkproduk RDMS yang ada. DB2 mengizinkan untuk membuat Stored Procedure dengan bahasa pemprograman biasa, berbeda dengan Microsoft SQL-server dan Oracle yang harus menggunakan bahasa SQL.
Slah satu kelebihan dari stored procedure adalah kemampuannya menjalankan perintah-perintah SQL baik yang static maupun yang dinamik. Oleh karena kelebihannya itu, stored procedure dapat mengakses file-file data, seperti flat, VSAM, dsb seperti pada tabel biasa di DB2. Sebagai tambahan, stored procedure juga dapat mangakses file file dari resource CISC, IMS dan MVS address spaces, tapi tentunya dengan ketidakjamian bahwa datanya bisa berkoordinasi dengan aplikasi DB2.
Why Use Stored Procedures? Stored Procedure DB2 mempunya banyak potensial timesaving dan applikasi yang berguna. Keuntungannnya menggunakan Stored Procedure DB2 dapat dibagai menjadi: •
Reusability—Alasan
utama
menggunakan
Stored
Procedures
adalah
kemampuannya untuk mendukung suatu kode yang reusable. Dengan mereplika kode dalam multiple server dan dalam multiple program, stored procedure mengizinkan kode untuk berdiri dalam sebuah tempat khusus, sehingga kode tersebut bisa terus digunakan apabila dibutuhkan. •
Consistency—Sebuah keuntungan lain dari stored procedure adalah pengembangan
konsistensi
database.
Jika
setiap
user
membutuhkan
pemanggilan requirement yang sama pada stored procedure yang sama pula, DBA bisa menjamin bahwa setiap orang dapat menggunakan kode yang sama tanpa harus terjadi corruption statemant. •
Maintenance—Stored Procedure secara implisit dapat mengurangi kode-kode untuk perbaikan. Dengan stored procedure yang berdiri sendiri perbaikan bisa secara cepat dilakukan tanpa harus mengganggu suatu workstation.
•
Data Integrity—Dalam DB2, kita bisa membuat kode untuk stored procedure untuk mendukung batasan-batasan sehingga setiap database memiliki keutuhan data.
•
Performace—Alasan umum untuk emnggunakan stored procedure adalah untuk meningkatkan performa dari database. Dalam aplikasi client/server, stored procedure dapat mengurangi traffic networking karena perintah-perintah SQL dapat dijalankan dengan hanya sebuah eksekusi procedure saja.
•
Security—Kita dapat menggunakan stored procedure mengimplementasikan dan mensederhanakan seduritas data requirement. Jika sebuah group user membutuhkan
akses
data
yang
spesifik,
stored
Procedure
dapat
memgembalikan hanya data yang diminta saja.
Stored procedure meempunyai beberapa karakteristik yang menguntungkan, antara lain: •
Flexibility—Stored procedure mendukung perintah-perintah SQL yang static maupun dinamik dan akse untuk data DB2 dan non-DB2.
•
Ease of Training—Karena DB2 mendukung pemprograman dengan bahasa pemprograman yang biasa, maka user yang sudah tahu programming dapat langsung mengerti perintah-perintah SQL pada DB2 tanpa harus bersusah payah mengerti bahasa DB2.
•
Database Protection—Stored procedure berjalan dengan space alamat yang berbeda di mesin database, sehingga mengurangi kemungkinan terjadinya corrupting user pada saat instalasi DBMS.
Daftar Pustaka Silberschatz, H.F. Korth, S. Sudarshan, Database System Concept, 4th ed., MscFrawHill, NewYork.(2002) Mullins, Craig, DB2 Developer’s Guide, 4th ed. Sams.(2001) http://www-306.ibm.com (waktu akses terakhir 3 Maret 2006) http://www-128.ibm.com (waktu akses terakhir 2 Maret 2006) http://www.ibm.com/software/database/db2 (waktu akses terakhir 3 Maret 2006) http://en.wikipedia.org/wiki/DB2 (waktu akses terakhir 3 Maret 2006)