1
Fakultas Ilmu Komputer Universitas Indonesia
Database Review Paper 10g
© 2006 Kelompok 1 Basis Data 2006 Fakultas Ilmu Komputer - Universitas Indonesia
1
2
Deskripsi Tugas Paper Basis Data 2006 FASILKOM UI: Spesifikasi tugas:
Features yang direview minimal meliputi (tidak terbatas pada) Platform, Harga, Speed, Storage & indexing, Administrative Tools & Security, Concurency Control, Stored Procedure.
Referensi sebaiknya lebih dari satu sumber, dan diharapkan mengacu pada review di buku Silberschatz / Kroenke selain dari web.
Bentuk review: rangkuman yang singkat pada padat.
Komponen yang dinilai: kelengkapan, akurasi, kejelasan penyajian.
Cara pengumpulan: mengirim email & hardcopy ke Pak Indra Budi, paling lambat 3 Maret 2006 pukul 16.00.
Setiap mhs juga perlu mengirimkan penilaian untuk diri sendiri dan teman dalam mengerjakan tugas tersebut, dengan range nilai antara 0-100. Penilaian ini dikirimkan via email ke Pak Indra Budi
Pembagian DBMS menunggu setelah rekomposisi (ada 12 kelompok, satu kelompok terdiri dari 5 atau 6 orang, dan hanya 4 kelompok yang terdiri dari 6 orang)
Do your best. --Aminah
Kelompok 1: 1. Fandi 2. Intan Sari 3. Isnina Eva H 4. Mellawaty 5. M Rabindra S 6. Verra Mukty
1204000327 1204000459 1204000467 1204000602 1204000564 1204000874
© 2006 Kelompok 1 Basis Data 2006 Fakultas Ilmu Komputer - Universitas Indonesia
2
3
Daftar Isi Daftar Isi..................................................................................................3 Introduction .............................................................................................4 History ................................................................................................... 4 Oracle Database ...................................................................................... 4 Oracle 10g (“g” is for Grid) ....................................................................... 4 Features (Whitepapers) ............................................................................ 5 Platform, Price and Speed ...................................................................... 11 Platform ............................................................................................... 11 Speed................................................................................................... 11 Price .................................................................................................... 11 Storage and Indexing............................................................................. 13 Storing The Data ................................................................................... 14 Tablespaces. ......................................................................................... 14 Automated Storage Management ............................................................. 15 Automatic Undo Management .................................................................. 15 Dropped Data ........................................................................................ 15 Concurency Control and Recovery .......................................................... 16 Pengaturan Concurrency (Concurrency Control)......................................... 16 Struktur Dasar dalam Pemulihan ............................................................. 16 Mengatur Standby Database ................................................................... 17 Stored Procedure ................................................................................... 18 Menulis Prosedur ................................................................................... 18 Membuat Prosedur ................................................................................. 18 Menjalankan Prosedur ............................................................................ 19 Mengubah Prosedur ............................................................................... 19 Men-Debug Prosedur .............................................................................. 20 Menghapus Prosedur .............................................................................. 21 Program aplikasi database VS stored procedure......................................... 21 Keuntungan menggunakan Stored Procedure ............................................ 21 Grid Computing ...................................................................................... 23 What is Grid Computing? ........................................................................ 23 Why Oracle 10g using Grid Computing ? ................................................... 24 How Grid Computing works in Oracle 10g ? ............................................... 24 Administrative Tools and Security .......................................................... 26 Industry-Leading Security for Corporate Compliance .................................. 26 Database Security Options ...................................................................... 26 Database Security Features..................................................................... 26 Perbandingan antara SQL Server 2005, Oracle 10g SE, dan Oracle 10g Enterprise with Advances Security Option ................................................. 28 Bibliography ........................................................................................... 30
© 2006 Kelompok 1 Basis Data 2006 Fakultas Ilmu Komputer - Universitas Indonesia
3
4
Introduction History Oracle pertama kali dibuat pada 1977 oleh Larry Ellison, Bob Miner, dan Ed Oates sebagai Software Development Laboratories menjadi nonkomersial relational database. Kemudian berdiri perusahaan yang bernama Oracle, yang menjadikan produk komersial relational database management system pertama di pasaran. Sejak itu, Oracle menempati posisi puncak dalam pasar relational database management system, bahkan dengan seiringnya waktu Oracle membuat relational database server. Sampai saat ini, Oracle telah berkembang pesat leading technology melalui pengenalan client/server database pertama (1986). 64-bit database (1995), dan Linux database (1999).
Oracle Database Oracle adalah relational database. Sebagai relational database, semua data disimpan pada two-dimensional tables yang terdiri dari baris dan kolom. Oracle Database mampu untuk menyimpan data, meng-updatenya, dan dengan efisien menerimanya. Oracle menyediakan software untuk membuat dan me-manage Oracle database. Database terdiri dari physical dan logical structures dimana sistem, user, dan informasi disimpan. Software yang menangani database disebut Oracle database server. Secara kolektif, software tersebut menjalankan Oracle dan physical database yang disebut Oracle database system.
Oracle 10g (“g” is for Grid) Oracle 10g dengan teknologi grid, mungkin lebih tepat dideskripsikan sebagai dynamic cluster, yang mana applikasi server dapat ditambahkan menjadi kluster jika diperlukan, dan resource kluster dapat disusun ulang sesuai kebutuhan bisnis. Sebagai contoh, katakanlah kita memiliki enam server yang menjalankan OLTP (online transaction processing) dan dua server sebagai data warehousing, dan kita menemukan bahwa OLTP server dalam keadaan rusak atau terganggu. Dengan mengkombinasikan keenam server dalam sebuah grid, maka dua data warehouse server dapat menjadi bagian dari OLTP sementara waktu, dan berbagi resources yang sama. Keuntungan dari 10g grid, mencakup fleksibilitas penggunaan processing power dan meningkatkan fault tolerance. Sebelum kita men-set up sebuah grid, kita harus memiliki clustered environment. Ketika sebuah kluster kita terbentuk, maka kita harus mendefinisikan services dan machines tempat dimana services berjalan. Kemudian kita menentukan primary dan secondary server untuk setiap services. Kita juga akan mendefiniskan level dari resources (70%, misalkan) yang bisa digunakan setiap server. Untuk detail tentang teknologi Grid pada Oracle 10g akan dibahas pada chapter Grid Computing.
© 2006 Kelompok 1 Basis Data 2006 Fakultas Ilmu Komputer - Universitas Indonesia
4
5
Features (Whitepapers) Oracle 10g menyediakan banyak fitur yang belum tentu bisa dimiliki oleh relational database pada umumnya. Pembahasan berikut ini hanya gambaran umum yang kami dapatkan dari situs resmi Oracle. Fitur-fitur yang disediakan oleh Oracle 10g secara umum mencakup delapan kategori, yakni High Avaibility Oracle 10g memastikan akses dan ketersediaan data pada kondisi yang kritis. Scalability Oracle 10g mampu dikembangkan untuk berbagai jenis skala bisnis yang dapat berkembang menjadi sangat besar. Security Oracle 10g menyediakan berbagai macam fitur keamanan yang mencakup Virtual Private Database, Data Encryption, Enterprise User Security, Secure Application Roles, Fine Grained Auditing, serta pilihan Oracle Advanced Security dan Oracle Label Security untuk mendukung kemanan data yang terjamin. Application Development Oracle 10g memiliki berbagai kemampuan untuk membangun berbagai aplikasi yang bisa kita lihat berikut ini: Tabel berikut ini adalah dukungan Oracle 10g terhadap berbagai jenis pengembangan aplikasi dibandingkan application development yang lain. Capability
SQL
XML
PL/SQL, Java, C++
Oracle Database
OLTP
Analysis
Relational Data (Structured)
Documents (Unstructured)
Messages (Semi-Structured)
Integration and Transformation
Business Logic
© 2006 Kelompok 1 Basis Data 2006 Fakultas Ilmu Komputer - Universitas Indonesia
5
6
Sampai saat ini, Oracle memusatkan perhatian pada pengembangan aplikasi berikut:
Application Express Database Web Services Extensibility Framework Globalization Instant Client Java in Oracle Database OCI PHP PL/SQL Project Raptor SQL*Plus SQL/XML Workspace Manager XML DB XML Developer's Kit (XDK)
Manageability Oracle 10g memperkenalkan diri sebagai sebuah sophisticated database yang secara otomatis beradaptasi, memonitor, mendiagnosa dan memperbaiki dirinya sendiri sehingga mudah dimanage. Data Warehousing Oracle 10g menyediakan dasar teknologi untuk membangun Business Intelligence yang lengkap dan solusi Data Warehousing. Oracle 10g merupakan analysis-ready database dengan ETL, OLAP, dan Data Mining yang terintegrasi dengan data server dan Oracle Business Intelligence 10g ini mampu men-develop and men-deploy data warehouses secara cepat dengan integrasi array of query, reporting, analysis, data integration dan management, desktop integration, dan kemampuan BI application development. Integration Integrasi informasi adalah fitur penting dari Oracle 10g ini. Oracle 10g menyediakan banyak fitur yang memperbolehkan customer untuk men-sinkronisasi dan asinkronisasi datanya termasuk Oracle Streams, Oracle 10g Advanced Queuing, replication, dan distributed SQL. Oracle 10g juga menyediakan gateway untuk nonOracle database servers, menyediakan hubungan ke berbagai environment. Content Management Oracle 10g juga mendukung Content Management web bagi penggunanya, antara lain
Oracle Oracle Oracle Oracle Oracle
interMedia Text Ultra Search XML DB HTML DB
© 2006 Kelompok 1 Basis Data 2006 Fakultas Ilmu Komputer - Universitas Indonesia
6
7
Ringkasan Fitur-fitur Oracle 10g Ringkasan Fitur-fitur
Standard Edition One
Standard Edition
Enterprise or Personal
High Availability Fail Safe Mengkonfigurasi dan memverifikasi kluster Windows dan secara otomatis kegagalan aplikasi dan database Oracle secepatnya dan akurat sehingga memiliki high availability software yang terintergrasi dengan Microsoft Cluster Server.
Flashback Query Me-recover data versi lama tanpa melakukan proses yang kompleks dan memakan banyak waktu.
Flashback Table, Database and Transaction Query Diagnosa dan pembatalan error termasuk perubahan pada single row, yang berubah karena transaksi yang tidak disengaja, semua perubahan yang membuat satu atau banyak tables (termasuk dropping of a table), dan semua perubahan yang masuk ke database.
Data Guard Mempertahankan banyak stanby duplikasi dari produksi database secara otomatis; kegagalan proses dari lingkungan produksi ke standby database; mengurangi downtime pada situasi bencana.
Scalability Real Application Clusters Jalan di semua packaged atau custom application dengan banyak terhubungan, atau server yang ter-kluster.
Option
Integrated Clusterware Membuat dan mengoperasikan database kluster (built-in clustering services).
Automatic Workload Management Mengatur connection request ke server yang telah disediakan dengan beban terendah; dalam kegagalan services, secara otomatis mengalokasikan services ke server yang selamat.
Java, PL/SQL Native Compilation Membuat prosedur penyimpan di database yang ter-deploy dalam Java dan PL/SQL.
© 2006 Kelompok 1 Basis Data 2006 Fakultas Ilmu Komputer - Universitas Indonesia
7
8
Security Oracle Advanced Security Privasi alamat dan pelaksanaan kebijakan. Termasuk Transparent Data Encryption, Netwok Encryption dan Data Integrity, serta strong authentication.
Option
Oracle Label Security Menyediakan keamanan tingkat rendah (rowlevel security). Membandingkan kemanan user secara jelas dengan label klasifikasi data yang terdapat pada baris data.
Option
Secure Application Roles Enable roles hanya setelah user melewati semua pemeriksaan keamanan
Virtual Private Database Menguatkan keamanan data dan privasi dengan kostumisasi, kebijakan berbasis access control down to the row level.
Fine-Grained Auditing Memungkinkan untuk data diaudit oleh user yang tidak memiliki background apapun dalam bidang IT.
Proxy Authentication Data Encryption Melindungi data penting, seperti nomor kartu kredit dengan menyediakan lapisan (layer) tambahan perlindungan untuk data pada media penyimpanan.
Application Development Java Support Eksekusi dengan cepat aplikasi Java, integrasi dengan software tersebut, terhubung aplikasi Java/J2EE untuk membuat Grid database, mendukung non-connected client pada Web Services, dan terhubung dengan data lokal dan data dinamis.
HTML DB Men-develop and men-deploy dengan cepat, secure applications dengan web application development tool.
Comprehensive XML Support Menyimpan dan menerima XML dengan dukungan untuk model data W3C XML; menggunakan metode akses standar untuk navigasi danquerying XML.
PL/SQL and Java Server Pages Utilisasi server-side Java dan stored procedural language; secure, portable dan cocok dengan SQL.
COM Automation, Microsoft Transaction Server/COM+ integration, ODBC and OLE DB Mendukung berbagai macam metode akses data Windows.
© 2006 Kelompok 1 Basis Data 2006 Fakultas Ilmu Komputer - Universitas Indonesia
8
9
Manageability Enterprise Manager Me-manage dan me-monitor semua aplikasi serta sistem yang berbasis pada the Oracle stack, terintegrasi dengan console.
Automatic Memory Management Otomasi manajemen pembagian memory yang digunakan oleh instance Oracle Database.
Automatic Storage Management Mendistribusikan beban I/O pada semua resources yang tersedia dan mengoptimalkan kemampuan melalui sistem file yang terintegrasi dan volume manager; menghilangkan ganguan manual I/O.
Automatic Undo Management Monitor konfigurasi dari semua sistem Oracle untuk parameter settings, security set-up, storage, dan kondisi file space.
Server Managed Backup and Recovery Kesederhanaan, otomasi dan peningkatan backup dan recovery kemampuan dengan Oracle Recovery Manager (RMAN).
Data Warehousing Data Compression Mengkompresi data yang tersimpan di relational tables tanpa mempengaruhi query time; mengurangi biaya disk systems.
Oracle Analytic Functions Memiliki built-in analytical workspaces untuk Online Analytical Processing (OLAP).
Transportable Tablespaces, Including Cross-Platform Transportasi sebuah himpunan tablespaces dari satu database ke yang lain, atau dari satu database ke dirinya sendiri.
Star Query Optimization Mengabungkan sebuah fact table dan sejumlah dimension tables.
Summary Management - Materialized View Query Rewrite Meningkatkan query performance melalui pengenalan secara otomatis ketika sebuah materialized view dapat digunakan untuk memenuhi request; secara transparan rewrite request untuk menggunakan materialized view.
© 2006 Kelompok 1 Basis Data 2006 Fakultas Ilmu Komputer - Universitas Indonesia
9
10
Integration Oracle Streams Mempropagasikan dan me-manage data, transaksi, dan events pada sebuah data stream dalam sebuah database, atau dari satu database ke database yang lain.
Advanced Queuing Memperbolehkan antrian database untuk dilayani sebagai penyimpanan sementara message melalui queue-based publishsubscribe.
Workflow Mendukung proses bisnis yang berbasis integrasi dengan sebuah sistem manajemen alur kerja yang lengkap.
Distributed Queries/Transactions Query atau update data dari dua atau lebih distinct nodes dari sebuah distributed database.
Content Management Ultra Search Search and locate data across multiple repositories, including: Oracle databases, ODBC compliant databases, IMAP mail servers, HTML documents, files on disk, and more.
interMedia Develop, deploy, and manage traditional, Web, and wireless applications that include rich media in the most-popular formats.
Text Build text query applications and document classification applications.
Locator Manage geospatial data to leverage the business value of location. You can also support the most sophisticated GIS deployments with the Spatial option for Enterprise Edition.
© 2006 Kelompok 1 Basis Data 2006 Fakultas Ilmu Komputer - Universitas Indonesia
10
11
Platform, Price and Speed Platform Oracle adalah software yang memiliki beberapa keunggulan dan biasanya berjalan pada system operasi Linux, UNIX, Windows, dsb. Perusahaan yang membuat software ini adalah perusahaan Oracle. Salah satu produk Oracle yang terbaru adalah Oracle Database 10g yang bisa digunakan untuk platform Microsoft Windows, UNIX dan Linux. Oracle Database 10g dirancang untuk diimplementasikan dalam berbagai jenis perangkat keras, dari server blade berukuran kecil hingga grup server dan cluster Symmetrical Multi Processing (SMP) berbagai ukuran. Database Oracle dapat memberikan antarmuka SQL/PL SQL, dan dapat mendukung pengembangan dan implementasi lengkap untuk para pengembang Java, NET, PHP dan Windows.
Speed Oracle adalah software yang memiliki kecepatan yang cukup tinggi yaitu 1116 KB/sec. Memori yang dibutuhkan oleh Oracle tergantung jumlah komponen yang di instal. Memori minimum yang dibutuhkan Oracle adalah 32 MB di semua platform.
Price Oracle telah banyak menghasilkan produk-produk yang berkualitas baik itu merupakan aplikasi database atau aplikasi lainnya. Setiap produk yang dihasilkan memiliki keunggulan dan harga masing-masing. Berikut tabel daftar harga produk-produk Oracle Nama Produk Oracle Database Enterprise Edition Processor Perpetual Oracle Database Enterprise Edition Named User Plus Perpetual Oracle Standard Edition One Processor Perpetual Oracle Standard Edition One Named User Plus Perpetual Internet Application Java Edition Named User Plus Perpetual Internet Application Java Edition Processor Perpetual Collaboration Suite Collaboration Program User Perpetual
Harga $40.0000,00 $800,00 $4.995,00 $149,00 $100,00 $5.000,00 $60,00
© 2006 Kelompok 1 Basis Data 2006 Fakultas Ilmu Komputer - Universitas Indonesia
11
12
Speed Comparasion Oracle 9i vs MySQL vs ASE vs IBM DB2 vs SQL Server 2000
Throughput Oracle 9i vs MySQL vs ASE vs IBM DB2 vs SQL Server 2000
© 2006 Kelompok 1 Basis Data 2006 Fakultas Ilmu Komputer - Universitas Indonesia
12
13
Storage and Indexing Dalam Oracle Database, struktur dasarnya adalah table. Oracle Database mendukung banyak tipe table, termasuk yang berikut: • Relational Tables. Menggunakan Oracle-supplied datatypes, kita dapat membuat tabel-tabel untuk meyimpang baris-baris yang dimasukkan dan memanipulasi dengan aplikasi kita. Tabel memiliki column definition, dan kita dapat add atau drop columns jika kebutuhan aplikasi berubah. Table dibuat melalui perintah create table. • Object-relational tables. Untuk memetik nilai tambah dari fitur seperti type inheritance, kita dapat menggunakan Oracle’s object-relational capabilities. Kia dapat mendefinisikan datatypes kita sendiri dan kemudian menggunakannya sebagai basis untuk column definitions, object tables, nested tables, varying arryas, dan lainnya. • Index-organized Tables. Kita dapat membuat sebuah tebel yang menyimpan datanya dalam sebauh index structure, memperbolehkan data untuk di-sort di dalam tabel. • External tables. Data disimpan dalam flat files mungkin diperlakukan sebagai sebuah tabel yang user dapat query secara langsung dan join ke table lainnya dalam query-query. Kita dapa menggunakan external table untuk mengakses volume besar dari data tanpa me-load mereka kepada database kita. Catatan: Oracle juga mendukung datatype BFILE, sebuah pointer kepada sebuah external binary file. Sebelum membuat BFILE atau external table, kita harus membuat sebuah directory alias di dalam Oracle (melalui perintah create directory) menunjuk kepada lokasi fisik dari file. • Partitioned Tables. Kita dapat membagi sebauh table kepada multiple partition, yangmengizinkan kita untuk memanage tiap bagian dari table secara terpisah. Kita dapat menambahkan partisi baru kepada sebuah tabel, split partisi yang sudah ada, dan menagtur sebuah partisi terpisah dari partisi lainnya dari tabel. Pemartisian dapat menyederhanakan atau meningkatkan kinerja dari maintetnace activities dan user queries. Anda dapat mempartisi tabel dalam ranges of values, lists of values, hashes of column values, atau kombinasi dari pilihan-pilihan tersebut. • Materialized Views. Materialized view adalah sebuah replika dari data yang diretrieve oleh query. User queries mngkin di-redirect kepada materialized view untuk menghindarkan large tables selama eksekusi – optimizer akan rewrite query-query secara otomatis. Kita dapat menetapkan dan me-manage jadwal refresh untuk menjada data pada materialized view cukup baru untuk business needs. • Temporary tables. Kita dapat menggunakan perintah create global temporary table untuk membuat sebuah table dimana multiple users dapat insert baris. Tiap user hanya melihat kepunyaannya dalam table terebut. • Clustered Tables. Jika dua tabel sebagian besar di-query bersama, kita dapat secara fisik menyimpan mereka bersama melalui sebuah struktur yang dinamakan cluster. • Dropped Tables. Pada Oracle Database 10g, kita dapat secara cepat merecover dropped tables melalui perintah flashback table to before drop. Kita dapat flash back multiple tables sekaligus atau flash back seluaruh database ke suatu waktu tertentu. Oracle mendukung flashback queries, yang me-return versi sebelumnya dari baris-baris pada table yang sekarang eksis. Untuk mendukung akses ke tabel, kita dapat menggunakan views yang menampilkan joins dan aggregasi, membatasi baris-baris yang di-return, atau menukar kolom yang di-display. Views mungkin read-only atau updatable, dan © 2006 Kelompok 1 Basis Data 2006 Fakultas Ilmu Komputer - Universitas Indonesia
13
14
mereka dapat merefer local atau remote tables. Remote tables dapat diakses melalui database links. Kita dapat menggunakan sinonim untuk untuk mask lokasi fisik dari tabel. Untuk cara-cara akses ke table-table tersebut, Oracle mendukung banyak tipe dari index-index, termasuk yang berikut: • B*-tree indexes. Sebuah B*-tree index adalah tipe standar dari index yang tersedia dalam Oracle, dan sangat berguna untuk menyeleksi yang sesuai dengan equivalence criteria atau range criteria. Indexindex dibuat melalui perintah create index. • Bitmap indexes. Untuk kolom-kolom yang memiliki nilai unik sedikit, bitmap indez mungkin dapat meningkatkan kinerja query. Bitmap indexes sebaiknya digunakan hanya ketika data batch loaded (seperti banyak data warehousing atau reporting application). • Reverse key indexes. Jika terdapat permasalahan I/O selama proses insert dai nilai-nilai yang sekuensial, Oracle dapat secara dinamis membalik indexed values sebelum menyimpannya. • Function-based indexes. Selain mengindeks kolom, seperti Name, kita dapat mengindex sebuah function-based column, seperti UPPER(Name). The functin-based index memberikan Oracle optimizer pilihan tambahan ketika menyeleksi sebuah execution path. • Partitoned indexes. Kita dapat mempartisi index untuk mendukung partitoned tables uatau menyederhanakan managemen index.Pemartisian index dapat local pada partisi tabel atau mungkin diaplikasikan secara global kepada semua baris dalam tabel tersebut. • Text indexes. Kita dapat mengindex nilai text untuk meningkatkan kemampuan searching, seeprti expanding word stems atau mencari frase. Text indexes adalah himpunan-himpunan dari table dan index dipeliahat oleh Oracle untuk mendukung keperluan text-searching yang kompleks. Oracle database 10g mendukung peningkatan kepada text indexes dengan menyederhanakan administasi dan maintenancenya.
Storing The Data Semua struktur logika tersebut pada database harus disimpan di suat tempat dalam database. Oracle menjaga sebuah data dictionary yang menyimpan metadata tentang tiap object – pemilik objek, definisi, related privileges, danseterusnya. Untuk objek yang membutuhkan space penyimpanan fisik sendiri, Oracle akan mengalokasikan ruang dalam sebuah tablespace.
Tablespaces. Sebuah tablespace terdiri dari satu atau lebih datafile;sebuah datafile dapat menjadi sebuah dari sati dan hanya satu tablespace. Oracle Database 10g membuat sedikitnya dua tablespaces untuk tiap-tiap database –SYSTEM dan SYSAUX – untuk mendukung kebutuhan manajemen internalnya. Kita dapat menggunakan Oracle managed files (OMF) untuk menyederhanakan pembuatan dan pemeliharaan dari datafiles. Pada Oracle Database 10g, kita dapat mebuat jenis spesial dari tablespace, dinamakan bigfile tablespace, yang ukurannya dapat berupa beberapa ribu terabyte. Bersamaan dengan OMF, managemen dari bigfiles membuat manajemen tablespace benar-benar transparan terhadap DBA; DBA dapat mengatur tablespace sebagai sebuah unit tanpa perlu khawatir tentang ukuran dan struktur dari datafiles yang mendasarinya. © 2006 Kelompok 1 Basis Data 2006 Fakultas Ilmu Komputer - Universitas Indonesia
14
15
Jika sebuah tablespace di-design sebagai sebuah temporary tablespace, tablespace itu sendiri adalah permanen; hanya segmen yang disimpan dalam tablespace yang temporer. Oracle menggunakan temporary tablespaces untuk mendukung operasi sorting seperti pembuatan index dan join processing. Temporary segments sebaiknya tidak disimpan dalam tablespace yang sama sebagai objek permanen. Tablespaces dapat berupa dictionary managed atau locally managed. Dalam sebuag dictionary-managed tablespace, space managemen direkam dalam data dictionary. Dalams ebuah locally managed tablespace (default di Oracle Database 10g), Oracle memelihara sebuah bitmap dalam tiap datafile dari tablespace untuk mengikuti ketersediaan space. Hanya kuota yang diatur dalam data-dictionary, secara signifikan mengurangi msalah untuk data dictionary tables.
Automated Storage Management Automated Storage Management (ASM), tersedia pada Oracle Database 10g, mengautomatisasi layout dari datafiles dan sistem operasi lainnya – level files digunakan oleh database, dengan mendistribusikan mereka kepada semua disk yang tersedia. Ketika disk baru ditambahkan pada ASM instance, file database secara otomatis diredistribusi kepada semua disk dalam semua disk group yang terdefinisi untuk kinerja optimal. Fitur multiplexibng pada ASM instance meminimalkan kemungkinan hilangnya data dan secara umum lebih efektif dibandingkan skema manual yang meletakkan critical file dan backups pada physical drive berbeda.
Automatic Undo Management Untuk mendukung transaksi, Oracle dapat secara dinamis membuat dan memanage undo segments, yang membantu untuk memelihara images terdahulu dari dari block dan baris yang berubah.User yang sebelumnya telah meng-query baris-barus yang kita ubah akan tetap melihat baris-baris tersebut seperti eksis saat query dia dimulai. Automatic Undo Management (AUM) mengizinkan Oracle untuk mengatur undo segments secara langsung tanpa memerlukan campur tangan database administrator. Kegunaan AUM juga menyederhanakan penggunaan flashback queries. Pada Oracle Database 10g, kita dapat mengeksekusi flashback version queries untuk melihat versi yang berbeda dari sebuah baris jika berubah selama suatu selang waktu yang spesifik.
Dropped Data Konsep recycle bin yang diperkenalkan dengan Oracle Database 10g mempengaruhi keperluan ruang untuk tablespace dan datafile. Dalam Oracle Database 10g, sifat default untuk untuk drop sebuah table adalah memegang alokasi ruang-nya; kita dapat melihat penggunaan space-nya melalui RECYCLEBIN data dictionary view. Jika kita membuat dan drop table dua kali, maka akan ada dua salinan dari table di recycle bin. Walaupun arsitektur ini menyederhanakan proses recovery dari table yang di-drop secara tidak sengaja, tapi dapat meningkatkan penggunaaan space dalam database. Gunakan perintah purge untuk menghapus entry lama dari recycle bin.
© 2006 Kelompok 1 Basis Data 2006 Fakultas Ilmu Komputer - Universitas Indonesia
15
16
Concurency Control and Recovery Pengaturan Concurrency (Concurrency Control) Concurrency control yang dimiliki Oracle berbeda dengan mekanisme concurrency yang dimiliki vendor basis data lainnya. Pada oracle, read-only query memiliki sebuah read-consistent snapshot, yakni pengamatan sekilas tentang basis data yang berisi semua data terbaru pada waktu tertentu. Dengan demikian, read-only query tidak mengganggu aktifitas basis data lainnya pada saat locking. Pengaturan concurrency lainnya yaitu pada hal berikut. Oracle mendukung statement dan transaction level read consistency. Di awal eksekusi salah satu dari keduanya, sistem yang sedang berlangsung mengubah suatu nomor yang disebut nomor SCN. SCN merupakan nomor yang berfungsi sebagai pencatat waktu, yakni waktu yang diukur akibat dilakukannya transaksi. Jika dalam satu bagian query, sebuah blok data memiliki nomor SCN yang lebih besar dibandingkan lainnya dalam satu query tersebut, berarti blok data tersebut dimodifikasi oleh suatu transaksi setelah SCN query ditetapkan. Oleh sebab itu, data pada blok tersebut tidak diikutkan dalam pengamatan sekilas basis data pada waktu SCN query dan mengantinya dengan data versi lama. Versi lama didapatkan Oracle dari suatu proses bernama rollback segment. Dalam model concurrency Oracle, operasi baca tidak memblok operasi tulis, begitu pula sebaliknya. Hal ini mengijinkan long-running query dengan aktifitas transaksi dalam jumlah yang besar berjalan. Oracle mendukung dua level isolasi ANSI/ISO, yaitu “read commited”, dan “serializable”. Dua level isolasi tersebut menandakan penggunaan statement-level atau transaction-level read consistency. Selain itu, Oracle manggunakan penguncian level-baris sehingga peng-update-an pada baris-baris yang berbeda tidak menimbulkan konflik. Jika dua penulis akan memodifikasi baris yang sama, salah satunya akan menunggu yang lain. Hal tersebut bisa menghasilkan error akibat koflik tulis ataupun terus berlangsung yang memodifikasi baris. Dalam hal ini, penguncian dilakukan untuk durasi transaksi. Selain itu, penguncian pada level-baris dilakukan untuk mencegah inkonsistensi selama kegiatan DML. Kunci ini mencegah pengguna yang, katakanlah, mengangkat meja di saat yang lain sedang menggunakan meja tersebut. Oracle mendeteksi deadlock secara otomatis kemudian memecahkan deadlock tersebut dengan me-roll back salah satunya. Oracle mendukung transaksi otonom, yakni transaksi independen yang dihasilkan di dalam transaksi lain.
Struktur Dasar dalam Pemulihan Dalam suatu berkas data, selain mengandung tabel dan indeks, terdapat berkas pengatur, redo log, redo log arsip, dan rollback segment. Berkas pengatur (control file) mengandung bermacam-macam metadata yang dibutuhkan untuk mengoperasikan basis data, termasuk informasi mengenai backup. © 2006 Kelompok 1 Basis Data 2006 Fakultas Ilmu Komputer - Universitas Indonesia
16
17
Oracle menyimpan setiap modifikasi transaksi di redo log dan terdiri dari dua atau lebih berkas. Pencatatan (log) proses modifikasi dilakukan sebagai bagian dari operasi yang menyebabkan hal tersebut tanpa memperhatikan apakah transaksi pada akhirnya dilakukan. Catatan berubah menjadi indeks dan melakukan rollback segment bila ada perubahan pada table data. Saat redo log dipenuhi, catatan-catatan tersebut diarsip oleh satu atau beberapa background proses (jika basis data berjalan dalam modus arsip). Rollback segment mengandung informasi mengenai versi lama data. Informasi ini digunakan untuk mengembalikan data dalam versi lama ketika sebuah transaksi yang telah memodifikasi data tersebut di-roll back.
Mengatur Standby Database Stanby database adalah salinan basis data yang di-install pada sistem terpisah. Jika kekacauan terjadi pada sistem utama, standby database diaktifkan dan mengambil alih. Dengan demikian meminimalkan efek kegagalan yang diakibatkan kekacauan tersebut. Oracle menyimpan standby database up to date dengan menggunakan arsip redo log.
© 2006 Kelompok 1 Basis Data 2006 Fakultas Ilmu Komputer - Universitas Indonesia
17
18
Stored Procedure Oracle stored procedure adalah program yang disimpan dalam database seperti halnya data. Hal ini cukup tidak umum, karena kita mengharapkan yang tersimpan di database adalah data bukannya program. Tapi nanti akan kita lihat bahwa hal ini sangat berguna.
Menulis Prosedur Prosedur ditulis dalam bahasa pemrograman sql/pl. Pada text editor, ketik: CREATE OR REPLACE PROCEDURE skeleton IS BEGIN NULL; END; Simpan file tersebut dengan nama skeleton.sql Penjelasan perbaris : CREATE OR REPLACE PROCEDURE skeleton memerintahkan oracle untuk membuat sebuah prosedur yang bernama skeleton. Jika sebelumnya terdapat prosedur dengan nama yang sama akan di-overwrite. IS menunjukan bahwa PL/SQL body ada dibawahnya. BEGIN menandakan awal dari pl/sql body. NULL; menunjukan bahwa tidak ada aksi yang harus dilakukan. Kita tidak dapat mengosongkannya. karena prosedur ini merupakan contoh yang sangat sederhana, maka untuk sementara kita mengisinya dengan null saja, sehingga prosedur ini tidak melakukan apa-apa. END; menunjukan akhir dari pl/sql block.
Membuat Prosedur Statement CREATE OR REPLACE PROCEDURE akan membuat, meng-kompilasi, dan menyimpan prosedur pada database oracle. Untuk membuat sebuah prosedur, kita membutuhkan hak akses CREATE PROCEDURE ke system. Langkah membuat prosedur : 1. Buka SQL*Plus dari windows, kemudian login pada database anda. 2. dari SQL *Plus, buka file skeleton.sql
© 2006 Kelompok 1 Basis Data 2006 Fakultas Ilmu Komputer - Universitas Indonesia
18
19
SQL*Plus akan me-load isi dari file skeleton.sql ke buffer SQL *Plus atau area memory dan menampilkan SQL *Plus command prompt : 1 2 3 4 5* SQL>
CREATE OR REPLACE PROCEDURE skeleton IS BEGIN NULL; END;
Untuk mengeksekusi isi dari buffer SQL *Plus, ketik slash kemudian tekan <enter>, seperti dibawah ini : SQL> / SQL *Plus akan menginformasikan bahwa procedure berhasil dibuat, kemudian akan menampilkan SQL command prompt : Procedure created. SQL> Sekarang prosedur telah dibuat, dikompilasi, dan disimpan pada database oracle anda.
Menjalankan Prosedur Jalankan prosedur yang sudah anda buat dari SQL *Plus command prompt, dengan mengetik command EXECUTE seperti dibawah ini : SQL> EXECUTE skeleton; SQL*Plus assures you the procedure executed successfully: PL/SQL procedure successfully completed.
Mengubah Prosedur Sekarang kita akan menulis prosedur yang akan menampilkan string “Hello World!”. Buka file skeleton.sql di notepad, replace statement NULL dengan DBMS_OUTPUT.PUT_LINE, sehingga program anda akan menjadi seperti dibawah ini : CREATE OR REPLACE PROCEDURE skeleton IS BEGIN DBMS_OUTPUT.PUT_LINE('Hello World!'); END; Simpan file ini dengan nama skeleton.sql, kemudian Buka file ini dari SQL *Plus. SQL *Plus akan meload isi file skeleton.sql ke buffer SQL *Plus atau memory area, kemudian menampilkan command prompt seperti dibawah ini : SQL> 1 2 3 4
CREATE OR REPLACE PROCEDURE skeleton IS BEGIN DBMS_OUTPUT.PUT_LINE('Hello World!');
© 2006 Kelompok 1 Basis Data 2006 Fakultas Ilmu Komputer - Universitas Indonesia
19
20
5* END; SQL> Untuk mengeksekusi isi dari buffer SQL *Plus, ketik slash kemudian <enter>, seperti dibawah ini : SQL> / SQL *Plus akan menginformasikan bahwa prosedur berhasil dibuat dan akan menampilkan command prompt seperti dibawah ini : Procedure created. SQL> Jalankan prosedur yang anda buat dengan mengetik command EXECUTE seperti dibawah ini : SQL> EXECUTE skeleton; SQL*Plus assures you the procedure executed successfully: PL/SQL procedure successfully completed. Untuk menampilkan output dari DBMS_OUTPUT.PUT_LINE, ketik command seperti dibawah ini : SQL> SET SERVEROUTPUT ON Kemudian eksekusi kembali prosedur dengan mengetik : SQL> EXECUTE skeleton; Kemudian command prompt akan menampilkan Hello World! PL/SQL procedure successfully completed
Men-Debug Prosedur Untuk mempelajari bagaiman men-debug prosedur, pertama kita akan membuat contoh prosedur yang mengandung error. Buka file skeleton.sql kemudian ubah statement NULL menjadi NULLL, sehingga program anda menjadi seperti dibawah ini: CREATE OR REPLACE PROCEDURE skeleton IS BEGIN NULLL; END;
© 2006 Kelompok 1 Basis Data 2006 Fakultas Ilmu Komputer - Universitas Indonesia
20
21
Simpan file tersebut dengan nama skeleton.sql Buka file skeleton.sql kemudian eksekusi dengan cara yang seperti telah dijelaskan sebelumnya. Setelah dieksekusi SQL *Plus akan mengeluarkan compilation error seperti dibawah ini : Warning: Procedure created with compilation errors. Mari kita pelajari compilation error ini. Pertama kita harus menjalankan 2 command untuk meyakinkan bahwa buffer SQL *Plus tidak mengalami overflow, untuk melakukannya masukan command seperti dibawah ini : SQL> SET ARRAYSIZE 1 <enter> SQL> SET MAXDATA 60000 <enter> SQL> Karena SQL *Plus tidak mengeluarkan apa- apa, maka error benar –benar terjadi, untuk mengetahuinya ketik command seperti dibawah ini : SQL> SHOW ERRORS PROCEDURE skeleton Kemudian kita akan dapat melihat error kompilasi yang sebenarnya terjadi, seperti dibawah ini: LINE/COL ---------------------------------------------ERROR ---------------------------------------------4/3 PLS-00201: identifier 'NULLL' must be declared 4/3 PL/SQL: Statement ignored
Menghapus Prosedur Untuk menghapus prosedur ketik command seperti dibawah ini: SQL> DROP PROCEDURE skeleton; SQL*Plus memberikan informasi bahwa prosedur telah dihapus : Procedure dropped.
Program aplikasi database VS stored procedure Program aplikasi berjalan pada komputer client, sedangkan stored procedure disimpan dan dieksekusi oleh DBMS pada server database.
Keuntungan menggunakan Stored Procedure •
jika sebuah program database dibutuhkan oleh beberapa aplikasi, program tersebut dapat disimpan dalam database dan bisa dipanggil oleh aplikasi manapun yang membutuhkannya. Hal ini akan mengurangi pemborosan
© 2006 Kelompok 1 Basis Data 2006 Fakultas Ilmu Komputer - Universitas Indonesia
21
22
resource untuk melakukan duplikasi dan meningkatkan modularitas software. •
mengeksekusi program pada server akan dapat mengurangi transfer data dan cost untuk komunikasi antara client dan server pada situasi tertentu.
Stored procedure dapat memeriksa constraint yang kompleks.
© 2006 Kelompok 1 Basis Data 2006 Fakultas Ilmu Komputer - Universitas Indonesia
22
23
Grid Computing
What is Grid Computing? Definisi Grid Computing dari Oracle Grid Computing Glossary adalah: A computing architecture that provides computing resources using many computers acting as one virtual computing resource. On the client side, grid computing provides a pool of shared resources, allowing complete transparency as to where and how a task is performed. On the server side, grid computing enables enterprises to provision resources to respond to client requests. Grid computing environments are often typified by: Distributed, shared pools of resources to achieve greater performance, scaling, resilience, and utilization. Flexibility, as components are regularly re-provisioned in line with business goals. Application or service architectures, such as Service Oriented Architectures (SOAs), which are disaggregated/distributed. Consolidation into a smaller number of larger resource pools for easier provisioning and greater utilization. Automation of day-to-day manual maintenance—software installation, patching, upgrading, workload balancing, etc. Standardization of components and/or their interfaces, configurations, processes, and applications (see "Virtualization").
Ada dua kata yang membantu menjelaskan definisi di atas yakni: Virtualization, mengarah kepada metode dan tools yang digunkan untuk menerangkan services dari setiap pyhsical dan logical entity pada grid. Sebagai contoh, misalkan empat node Oracle Database 10g RAC divitualisasi menggunakan sebuah sevice name. Seorang user terhubung ke sebuah virtual service, tetapi hanya satu dari empat instance yang tervirtualisasi dengan service name tersebut yang dapat melayani user. Provisioning, adalah pengendalian alokasi dari resources atau privileges ketika diperlukan. Untuk kebutuhan ini, Oracle menyediakan Scheduler dan Database Resource Manager. Secara sederhana, Grid Computing dapat didefinisikan sebagai pengaplikasian resource dari banyak komputer dalam jaringan (network) untuk sebuah masalah, umumnya digunakan untuk proses berskala besar atau pengaksesan data yang dalam jumlah besar.
© 2006 Kelompok 1 Basis Data 2006 Fakultas Ilmu Komputer - Universitas Indonesia
23
24
Why Oracle 10g using Grid Computing ? Perkembangan bisnis menjadi skala enterprise memerlukan aplikasi bisnis yang mendukung tetapi dengan optimalisasi yang tinggi. Oleh karena itu, dengan menggunakan Grid Computing, Oracle 10g menawarkan beberapa keuntungan dengan penggunaan Grid Compting yakni: Standarisasi, dengan infrastruktur teknologi server dan storage yang memiliki standar yang hampir sama memungkinkan untuk menerapkan Grid Computing. Infrastruktur yang dimaksud adalah: Grid Computing bisa diterapkan pada arsitektur komputer dengan biaya rendah seperti Intel atau AMD. Network storage technologies seperti as Network Attached Storage (NAS) and Storage Area Networks (SANs) yang bisa mengurangi biaya disk storage. Gigabit Ethernet dan Fibre Channel menurunkan biaya klustering server. Dukungan operting systems Linux yang berbiaya rendah. Konsolidasi, Oracle 10g mampu mendukung pembangunan grid server cluster secara penuh untuk semua applications–transaction processing (OLTP), decision support (DSS), and enterprise content management. Automasi, grid yang telah terbangun dapat di-manage secara efektif. Karena enterprise grid bisa terdiri dari ratusan, bahkan ribuan server.
How Grid Computing works in Oracle 10g ? Pada Oracle 10g, grid bisa terbentuk jika kita definisikan komponen-komponen yang tergabung dalam sebuah grid, yakni: Computing resources, seperti servers, termasuk komponennya seperti CPUs, memory, dan internal hard disks yang memuat operating system. Storage resources seperti SANs, NAS, dan disk lainya yang berjenis RAID (Redundant Array of Inexpensive Disks).
Networks connecting servers. Umumnya, berkecepatan tinggi, secara geografis clustered networks dengan banyak server yang terhubung satu sama lain dalam sebuah local enterprise grid. Clustering software yang memungkinkan komputasi resources untuk bekerja-sama. Clustering software juga termasuk kemampuan untuk menyediakan high availability.
Application software yang menangani cluter grid. Termasuk software pada lapisan depan seperti Web server dan J2EE containers .
© 2006 Kelompok 1 Basis Data 2006 Fakultas Ilmu Komputer - Universitas Indonesia
24
25
© 2006 Kelompok 1 Basis Data 2006 Fakultas Ilmu Komputer - Universitas Indonesia
25
26
Administrative Tools and Security Industry-Leading Security for Corporate Compliance Lebih dari 25 tahun Oracle telah mengembangkan database security untuk para pemerintah, perusahaan/customer di seluruh dunia. Fitur keamanan Oracle Database 10g dan option address berkembang sesuai dengan kebutuhan akan area privacy, termasuk Virtual Private Database, Fine Grained Auditing, enkripsi data dan sebagainya.
Database Security Options 1. Oracle Advanced Security Oracle Advanced Security menyediakan 3 komponen untuk alamat pribadi dan
pemenuhan kebutuhan: Transparent Data Encryption, Network
encryption dan data integrity, serta autentikasi.
2. Oracle Label Security Oracle
Label
Security
(OLS)
menyediakan
out-of-the-box
row-level
security dengan membandingkan user security clearances terhadap label klasifikasi data yang ditambahkan ke baris-baris data. User security clearances dapat lebih efisien diatur untuk keseluruhan enterprise di Oracle Indentity Management.
Database Security Features 1. Virtual Private Database Oracle Virtual Private Database (VPD) mendukung customizable, policybased akses control down ke level baris untuk menjalankan keamanan dan privasi
data.
Policies
dirancang
programmatically
ditambahkan
ke
database object (table,view), sehingga policy dapat dijalankan tanpa memperhatikan
method akses. Hal ini mengurangi masalah application
security serta menyediakan penggabungan
database, serta melindungi
pemisahan dari individual data set.
2. Data Encryption Oracle Data Encryption menyediakan lapisan perlindungan tambahan untuk data di media penyimpanan. Oleh karena itu, user dapat melindungi data-data penting, seperti nomor kartu kredit.
© 2006 Kelompok 1 Basis Data 2006 Fakultas Ilmu Komputer - Universitas Indonesia
26
27
3. Enterprise User Security Enterprise
User
Security
menyediakan
layanan
untuk
memusatkan
pengaturan dari database user dan otorisasi melalui Oracle Internet Directory, bagian dari Oracle Identity Management suite of offerings. Hal ini mengurangi cost dari managing user akses ke database dan aplikasi.
4. Secure Application Roles Roles sangat berpengaruh, cara mudah untuk menset setiap privilege user. Secure Application Roles merupakan tipe khusus dari database role yang diaktifkan oleh policy tambahan di role. Policy, yang ditulis dengan PL/SQL, dapat menampilkan banyak pengecekan keamanan. Contohnya: seorang pegawai toko dapat menjalankan role ”payment_info” hanya selama jam kerja dan berasal dari corporate network. Tetapi jika pegawai tersebut mencoba untuk menjalankan role dari komputer yang bukan berada di jaringan, atau pada malam hari (bukan jam kerja), maka akses akan ditolak.
5. Fine-Grained Auditing Fine-grained auditing (FGA) dapat dimengerti sebagai ‘policy-based’ auditing. Hanya setelah kondisi spesifik ditemukan, FGA akan menjalankan log audit. Hal ini mengizinkan untuk highly focused auditing with almost no ‘background noise’.
© 2006 Kelompok 1 Basis Data 2006 Fakultas Ilmu Komputer - Universitas Indonesia
27
28
Perbandingan antara SQL Server 2005, Oracle 10g SE, dan Oracle 10g Enterprise with Advances Security Option Security Feature
SQL Server 2005
Oracle 10g Standard Edition
Oracle 10g Enterprise Edition
Oracle 10g Enterprise with Advanced Security Option
Integrated, Single Sign-On with Windows
YES
Not Available
Not Available
YES
Network Packet Encryption
YES
Not Available
Not Available
YES
Data Encryption
YES
Not Available
Not Available
YES
Public Key Infrastructure
YES
Not Available
Not Available
YES
Kerberos Support
YES
Not Available
Not Available
YES
Schemas
YES
YES
YES
YES
Database and Server Roles
YES
YES
YES
YES
Auditing
YES
YES
YES
YES
Profiles/Policies
YES
YES
YES
YES
Certificate Services
YES
Not Available
Not Available
YES
YES
YES
YES
Execution with Least YES Privileges
© 2006 Kelompok 1 Basis Data 2006 Fakultas Ilmu Komputer - Universitas Indonesia
28
29
© 2006 Kelompok 1 Basis Data 2006 Fakultas Ilmu Komputer - Universitas Indonesia
29
30
Bibliography
Silberschatz, H.F. Korth, S. Sudarshan, Database System Concepts, 4th ed., Mc Graw-Hill, New York.(2002)
K. Loney, B. Bryla and Expert at TUSC, Oracle Database 10g DBA Handbook, Mc Graw-Hill, Osborne.(2005)
Kumar R., J. Kanagaraj, Richard S., Oracle Database 10g INSIDER SOLUTIONS, Sams Publishing,(2005).
K. Loney, Oracle Database 10g: The Complete Reference, Mc Graw-Hill, Osborne. (2004)
R. Ramakrishnan, J. Gerhke, Database Management Systems, 2nd ed., Mc Graw-Hill, Osborne.
McGregor, R. Buylis, dkk, Oracle Database 2 Day 10g Release 1 (10.1), Oracle. (2004)
[whitepaper] Oracle Database 10g: The Database for Grid, Oracle.(2005)
[whitepaper] Grid Computing with Oracle, Oracle.(2005)
[whitepaper] Oracle Grid Computing Glossary, Oracle.(2005)
[whitepaper] Oracle Advanced Security, Oracle.(2005)
[url] http://www.oracle.com/database/index.html
[url] www.eweek.com
© 2006 Kelompok 1 Basis Data 2006 Fakultas Ilmu Komputer - Universitas Indonesia
30