Paper Basis Data
Anggota Kelompok: Aurora Marsye Desmond Darma Putra Franky Phyllisia A. Yemima Aprilia
1204000165 1204000262 1204000343 1204000661 1204000939
Fakultas Ilmu Komputer Universitas Indonesia 2006 i
DAFTAR ISI MINIMUM HARDWARE REQUIREMENT FOR ORACLE 10G DBMS .....................1 PLATFORM............................................................................................................................1 HARGA....................................................................................................................................1 SPEED (BENCHMARK).......................................................................................................2 STORAGE AND INDEXING ...............................................................................................4 DATABASES AND INSTANCES.................................................................................................4 INSIDE THE DATABASE..........................................................................................................4 STORING THE DATA...............................................................................................................7 GUARDING THE DATA............................................................................................................8 PROGRAMMATIC STRUCTURES..............................................................................................9 CHOOSING ARCHITECTURES AND OPTIONS.........................................................................10 ADMINISTRATIVE TOOLS..............................................................................................10 APLIKASI INSTALASI DAN UPGRADE...................................................................................11 APLIKASI MANAGEMEN BASIS DATA..................................................................................12 SECURITY............................................................................................................................14 BASIC ORACLE SECURITY....................................................................................................14 ADVANCED SECURITY - VPN ( VIRTUAL PRIVATE DATABASE )........................................16 CONCURRENCY CONTROL............................................................................................16 - Roll back segments.......................................................................................................17 - Locks.............................................................................................................................17 TRANSACTION ISOLATION ..................................................................................................18 LOCKING .............................................................................................................................19 DEADLOCK...........................................................................................................................20 STORED PROCEDURE......................................................................................................21 DATA TYPE..........................................................................................................................21 ................................................................................................................................................21 REFERENSI..........................................................................................................................23
i
MINIMUM HARDWARE REQUIREMENT FOR ORACLE 10g DBMS Spesifikasi minimum untuk melakukan instalasi dari Oracle Database 10g: -
512 MB RAM 1 GB swap space 400 MB disk space 1 GB disk space untuk software Oracle 1 GB disk space untuk basis data yang pre-configured sistem dengan 2 GB atau lebih RAM, swap space bisa sebesar satu atau dua kali dari ukuran RAM
PLATFORM Pada bulan Juni 2005, Oracle Corporation mendukung beberapa sistem operasi berikut untuk Oracle Database 10g: -
Linux x86 Linux on zSeries Linux Itanium Microsoft Windows (32-bit) Microsoft Windows (x64) Microsoft Windows (64-bit Itanium) Solaris x86 Solaris SPARC (64-bit) AIX5L HP-UX PA-RISC HP-UX Itanium HP Tru64 UNIX HP OpenVMS Alpha IBM z/OS Mac OS X Server
HARGA Daftar harga produk database dari Oracle pada tanggal 10 Februari 2006 (dalam satuan US $): Named User P lu s
Software Update & License Support
Processor License
Software Update & License Support
Oracle Database Standard Edition One Standard Edition
149
32.78
4,995
1,098.90
300
66.00
15,000
3,300.00
Enterprise Edition Personal Edition Lite
800 400 100
176.00 88.00 22.00
40,000
8,800.00
-
-
1
Enterprise Edition Options Real Application Clusters Partitioning OLAP Data Mining Spatial Advanced Security Label Security
400
88.00
20,000
4,400.00
200 400 400 200 200 200
44.00 88.00 88.00 44.00 44.00 44.00
10,000 20,000 20,000 10,000 10,000 10,000
2,200.00 4,400.00 4,400.00 2,200.00 2,200.00 2,200.00
60 60 60
13.20 13.20 13.20
3,000 3,000 3,000
660.00 660.00 660.00
60
13.20
3,000
660.00
Enterprise M a n a g e m e n t Enterprise
Diagnostics Pack Tuning Pack Change Management Pack Configuration Management Pack
SPEED (BENCHMARK) Real Application Clusters (11.5.9)
Company IBM IBM
System
User Count
eServer xSeries x365 14508 eServer pSeries p5 13020 520
Average Response Time (s) 0.722
Benchmark Date Version Submitted
0.606
Disclosure Report
11.5.9
10-11-04
Detailed Report
11.5.9
10-27-04
Detailed Report
Single System (11.5.9)
Company
System
Online User Average Count Response
Benchmark Date Version Submitted
Disclosure Report
2
Time (s) IBM
Company IBM Fujitsu Siemens Sun Fujitsu Siemens Sun
eServer pSeries p5 570
15004
0.553
11.5.9
07-13-04
Detailed Report
Batch Throughput # of Benchmark Date System (Lines per 62 Workers Version Submitted minutes) eServer pSeries p5 570 16 2,744,000 11.5.9 03-04-05 PRIMEPOWER 850 32 2,664,000 11.5.9 03-21-05 Sun Fire E6900 48 2,571,000 11.5.9 01-17-05 PRIMEPOWER 650 16 1,294,000 11.5.9 02-11-05 Sun Fire E4900 48 1,277,680 11.5.9 12-07-04
Disclosure Report Detailed Report Detailed Report Detailed Report Detailed Report Detailed Report
Real Application Clusters Results by User Count (11.5.6)
Company IBM IBM HP Lenovo
System
Average User Benchmark Date Response Time Count Version Submitted (s)
eServer pSeries 655 21168 eServer xSeries 445 18368 HP Proliant DL580 G2 7504 Legend 1904 SureServerT630
Disclosure Report
0.52 0.59 1.19
11.5.6 11.5.6 11.5.6
10-20-03 11-06-03 06-23-03
Detailed Report Detailed Report Detailed Report
0.72
11.5.6
03-12-03
Detailed Report
Single System Results by User Count (11.5.6) Average User Benchmark Date Response Time Count Version Submitted (s) IBM eServer pSeries 690 22008 0.48 11.5.6 05-29-03 HP HP Proliant DL760 G2 9240 0.64 11.5.6 02-16-04 Sun Microsystems Sun Fire V1280 8120 0.97 11.5.6 11-10-03 HP AlphaServer HP 7728 1.00 11.5.6 04-28-03 GS1280 HP HP Proliant DL580 G2 6664 0.66 11.5.6 02-16-04 HP HP server rx5670 6440 0.6 11.5.6 06-25-03 Sun Microsystems Sun Fire V880 6328 1.29 11.5.6 09-16-03 Fujitsu Siemens PRIMEPOWER 850 6272 1.073 11.5.6 11-07-02 HP HP server rx5670 5992 0.6 11.5.6 07-30-03 IBM eServer xSeries x440 5656 0.49 11.5.6 06-02-03 IBM eServer pSeries 630 5320 0.88 11.5.6 04-02-03 Sun Microsystems Sun Fire V880 5208 1.16 11.5.6 12-13-02 HP HP server rx5670 4200 1.51 11.5.6 01-13-03 Legend Lenovo 3528 0.56 11.5.6 04-23-03 SureServerT630 Company
System
Disclosure Report Detailed Report Detailed Report Detailed Report Detailed Report Detailed Report Detailed Report Detailed Report Detailed Report Detailed Report Detailed Report Detailed Report Detailed Report Detailed Report Detailed Report
3
HP Lenovo
HP Proliant DL580 G2 Legend SureServerT630
3472
0.57
11.5.6
01-21-03
Detailed Report
1008
0.63
11.5.6
03-12-03
Detailed Report
STORAGE AND INDEXING Oracle Database 10g adalah sebuah upgrade signifikan dari Oracle yang telah dirilis sebelumnya. Fitur-fitur baru memberikan para developer, database administrator, dan end user, kontrol yang lebih baik dalam hal storage, processing, dan retrieval data. Databases and Instances Database Oracle adalah koleksi dari data dalam satu atau lebih file. Database memuat physical dan logical structures. Dalam mendevelop sebuah aplikasi, kita membuat struktur seperti tabel dan indeks untuk mengisi baris dan mempercepat retrieval. Kita dapat membuat sinonim untuk nama objek, melihat objek dalam database yang berbeda, dan kita dapat membatasi akses kepada objek tersebut. Kita juga dapat menggunakan tabel eksternal untuk mengakses file di luar database seolah-olah baris-baris dalam file adalah baris-baris dalam tabel. Sebuah instans Oracle comprises sebuah area memori yang disebut System Global Area (SGA) dan proses-proses yang melatarbelakangi interaksi antara SGA dan file-file database pada disk. Pada sebuah Oracle Real Application Cluster (RAC), lebih dari satu instans akan menggunakan database yang sama. Instans-instans tersebut umumnya berada pada server terpisah yang terhubung oleh sebuah interkoneksi kecepatan tinggi. Inside the Database Struktur dasar database Oracle adalah tabel. Oracle Database 10 g mendukung beberapa tipe tabel antara lain: •
Relational table. Menggunakan tipe data Oracle-supplied, kita dapat membuat tabel untuk memasukkan baris dan memanipulasinya dengan aplikasi kita. Tabel memiliki
4
definisi kolom, dan kita dapat menambah atau mengurangi kolom apabila kebutuhan aplikasi mengalami perubahan. Tabel dibuat dengan command create table. •
Object-relational tables. Untuk mendapatkan fitur seperti penurunan sifat tipe (type inheritance), kita dapat menggunakan Oracle's object-relational capabilities. Kita dapat mendefinisikan tipe data kita sendiri dan menggunakannya sebagai basis untuk definisi kolom, tabel objek, nested tables, varying arrays, dan lainnya.
•
Index-organized tables. Kita dapat membuat tabel yang memasukkan datanya dengan struktur indeks, memungkinkan data agar terurut dalam tabel.
•
External tables. Data dimasukkan dalam file flat dapat diperlakukan sebagai tabel yang dapat diquery langsung oleh user dan bergabung ke tabel lain dalam queries. Kita dapat menggunakan tabel eksternal untuk mengakses data ukuran besar tanpa perlu meload terlebih dahulu ke dalam database kita. Perlu diperhatikan bahwa Oracle juga mendukung tiper data BFILE, sebuah pointer kepada file binary eksternal. Sebelum membuat sebuah BFILE atau tabel eksternal, kita harus membuat sebuah direktori alias dalam Oracle (melalui command create directory) yang menuju kepada lokasi fisik pada file.
•
Partitioned table. Kita dapat membagi sebuah tabel dalam beberapa partisi yang memungkinkan kita untuk me-manage setiap bagian dari tabel secara terpisah. Kita dapat menambah partisi-partisi baru pada sebuah tabel, membagi partisi yang sudah ada, dan mengadmin sebuah partisi terpisah dari partisi lain dari tabel. Mempartisi dapat menyederhanakan dan meningkatkan performa dari aktivitas maintenace dan user queries. Kita dapat mempartisi tabel berdasarkan range of values, list of values, hashes of colomn values, atau kombinasi dari pilihan tersebut.
•
Materialized views. Sebuah materialized view adalah replica dari data retrieved oleh sebuah query. User query dapat redirected kepada materialized view untuk menghindari tabel besar selama eksekusi - optimizer akan menulis ulang queries secara otomatis. Kita dapat membuat dan me-manage refresh schedule agar data pada materialized views cukup fresh untuk kepentingan bisnis.
•
Temporary tables.
5
Kita dapat menggunakan command create global temporary table untuk membuat tabel yang dapat ditambahkan barisnya oleh banyak user. Setiap user hanya dapat melihat barisnya pada tabel. •
Clustered tables. Jika dua tabel biasanya queried bersama, secara fisik kita dapat meletakkannya bersama pada sebuah struktur yang disebut cluster.
•
Dropped tables. Pada Oracle Database 10g, kita dapat dengan cepat me-recover dropped table dengan command flashback table to before drop. Kita dapat flash back multiple tables pada suatu waktu atau flash back keseluruhan database pada waktu yang ditentukan. Oracle mendukung flashback queries, yang memberikan baris-baris suatu tabel pada waktu yang telah lampau.
Agar dapat mengakses tabel, kita dapat menggunakan view yang menunjukkan joins dan aggregations, membatasi baris-baris yang di-return, atau alter the columns displayed. Views bisa saja read-only atau dapat di-update, dan mereka dapat me-refer tabel lokal atau remote. Tabel remote dapat diakses lewat database link. Kita dapat menggunakan sinonim untuk menyamari lokasi fisik dari tabel. Oracle mendukung beberapa tipe indeks, antara lain: •
B*-tree indexes Sebuah B*-tree index adalah tipe standar indeks yang tersedia di Oracle, dan tipe ini sangat berguna untuk memilih baris-baris yang memiliki kriteria yang ekuivalen atau sebuah range criteria. Indeks dibuat dengan command create indeks.
•
Bitmap indexes Untuk kolom-kolom yang memiliki beberapa unique value, bitmap index dapat meningkatkan performa query. Bitmap indexed hanya dapat digunakan ketika data batch loaded.
•
Reverse key indexes. Jika ada I/O contention issues selama pemasukan value yang sekuensial, Oracle dapat secara dinamis me-reverse indexed values prior to storing them.
•
Function-based indexes. Selain meng-indeks sebuah kolom, seperti Nama, kita dapat meng-indeks sebuah function-based column, seperti UPPER(Nama). Function-based index memberikan Oracle optimizer tambahan pilihan ketika memilih sebuah execution path.
•
Partitioned indexed
6
Kita dapat mempartisi indeks untuk mendukung partitional tables atau untuk menyederhanakan manajemen indeks. Partisi indeks dapat bersifat lokal untuk partisi tabel atau juga global diaplikasikan kepada seluruh baris pada tabel. •
Text indexes Kita dapat meng-indeks text values untuk mendukung enhanced searching capabilities seperti expanding word stem atau mencari frase. Text indexes adalah himpunan dari tabel dan indeks yang di-maintain oleh Oracle untuk mendukung complex text-searching requirement. Oracle Database 10g menawarkan enhancement untuk text indexes that simplify administrasi dan maintenance mereka.
Storing the Data Keseluruhan stuktur logika dalam database harus diletakkan di suatu tempat pada database. Oracle maintain sebuah kamus data yang menyimpan metadata tentang tiap objek - pemilik objek, definisi, related privileges, dan lainnya. Untuk objek yang membutuhkan ruang pemnyimpanan fisiknya sendiri, Oracle akan mengalokasikan ruang dalam tablespace. •
Tablespaces Sebuah tablespace terdiri atas satu atau lebih datafile; sebuah datafile dapat menjadi bagian dari satu dan hanya satu tablespace. Oracle Database 10g membuat setidaknya dua tablespace untuk setiap database - SYSTEM dan SYSAUX - untuk mendukung kebutuhan manajemen internalnya. Kita dapat menggunakan Oracle Managed Files (OMF) to simplify pembuatan dan mantenance datafile. Pada Oracle Database 10 g, kita dapat membuat jenis spesial dari tablespace, yang disebut bigfile tablespace, yang dapat mencapai ribuan terabytes ukurannya. Dengan OMF, manajemen bigfiles membuat manajemen tablespace transparan untuk DBA; DBA dapat me-manage tablespace sebagai sebuah unit tanpa perlu mengkhawatirkan tentang ukuran dan struktur dari underlying datafiles. Jika sebuah tablespace di-disain sebagai sebuah tablespace sementara, tablespace itu sendiri adalah permanen; hanya segmen-segmen yang disimpan di tablespace yang adalah sementara. Oracle menggunakan tablespace sementara untuk mendukung operasi pengurutan seperti pembuatan indeks dan proses penggabungan. Segmen sementara sebaiknya tidak diletakkan pada tablespace yang sama dengan objek permanen. Tablespace dapat di-manage dictionary managed atau locally managed. Pada dictionary -managed tablespace, manajemen ruang dicatat dalam data dictionary. Pada locally managed tablespace (default pada Oracle Database 10g), Oracle maintains sebuah bitmap dalam setiap datafile dari tablespace untuk track ketersediaan ruang. Hanya kuata yang di-manage dalam data dictionary, dramatically mengurangi contension untuk tabel data dictionary.
•
Automated Storage Management
7
Automatic Storage Management (ASM), tersedia dalam Oracle Database 10g, mengotomatisasi layout dari datafile dan sistem operasi lain - level file digunakan oleh database, dengan mendistribusikan mereka pada semua disk yang tersedia. Ketika disk baru ditambahkan pada ASM intance, database files secara otomatis didistribusikan kembali ke seluruh disk dalam group disk yang telah di-define untuk performa yang optimal. Multiplexing fitur sebuah ASM instance memperkecil kemungkinan data loss dan secara umum lebih efektig daripada skema manual yang meletakkan critical files dan backup pada physical drive yang berbeda. •
Automatic Undo Management Untuk mendukung transaksi kita, Oracle dapat secara dinamis membuat dan memanage undo segments, yang membantu maintain prior image dari blok dan baris yang berubah. User yang telah query sebelumnya pada baris yang sedang kita ubah akan tetap melihat baris seperti ketika mereka memulai query. Automatic Undo Management (AUM) mengizinkan Oracle untuk me-manage undo segments secara langsung tanpa membutuhkan intervensi database administrator. Kegunaan AUM juga simplify kegunaan flashback queries. Pada Oracle Database 10g, kita dapat mengeksekusi flashback version queries untuk melihat versi berbeda sebuah baris yang diakibatkan perubahan yang terjadi pada interval waktu yang spesifik.
•
Dropped Data Konsep recycle bin introduced dengan Oracle Database 10g impacts space requierement untuk tablesapce dan datafile kita. Pada Oracle Database 10g, default behavior untuk drop sebuah tabel adalah untuk retain ruang alokasinya; kita dapat melihat kegunaan ruangnya lewat RECYCLEBIN data dictionary view. Jika kita membuat dan drop sebuah tabel dua kali, akan ada dua kopi dari tabel di recycle bin. Meski arsitektur ini mengakibatkan pemulihan dari accidentally dropped tables, itu dapat juga mengakibatkan meningkatkan penggunaan ruang dalam database kita. Gunakan command purge untuk me-remove old entries dari recycle bin kita.
Guarding the Data Kita dapat mengontrol penuh akses kepada data kita. Kita dapat grant privileges user lain untuk menampilkan fungsi spesifik (seperti select, insert, dsb) pada objek kita. Kita dapat pass along the right untuk mengeksekusi further grants. Kita dapat grants privileges to roles, yang nantinya granted to users, grouping previleges into manageable sets. Oracle mendukung level of previleges yang sangat detail; kita dapat mengontrol baris mana yang dapat diakses dan, selama auditing, baris mana trigger audit events untuk dicatat. Ketika kita menggunakan Virtual Private Database (VPD) option, user's queries of table selalu terbatas regardsless of the mmethod oleh apa mereka mengakses tabel. Pada Oracle Database 10g, VPD has been further enhanced to include column masking for columns containing sensitive data. Sebagai tambahan untuk menjaga keamana pengaksesan data, kita dapat mengaudit aktivitas dalam database. Event yang dapat diaudit termasuk privileged actions (seperti creating users), mengubah struktur data, dan aksesbaris dan tabel yang spesifik.
8
Programmatic Structures Oracle mendukung sebuah array besar dari programmatic access methods yang antara lain: •
PL/SQL PL/SQL adalah critical component dari kebanyakan implementasi aplikasi. Kita dapat menggunakan PL/SQL untuk membuat stored procedures and functions, dan kita dapat memanggil fungsi kita melalui queries. Prosedur dan fungsi dapat dikumpulkan dalam packages. Kita juga dapat membuat triggers, memberitahu database langkah-langkah apa yang diambil ketika event berbeda terjadi dalam database. Trigger dapat muncul selama database events (misalnya seperti database startup), merubah struktur, atau mengubah baris. Dalam setiap kasus, kita akan menggunakan PL/SQL untuk mengontrol behavoir dari database atau aplikasi ketika triggering event terjadi.
•
Dynamic SQL Kita dapat men-generate SQL saat run time dan pass it to procedures yang mengeksekusinya lewat dynamic SQL.
•
SQL*Plus SQL*Plus dapat mendukung rudimentary reporting requirements, tetapi lebih dikenal karena support of scripting. SQL*Plus menyediakan sebuah interface yang konsisten untuk me-retrieve data dari data dictionary dan membuat database object.
•
Java and JDBC Dukungan Oracle terhadapp Java dan JDNC mengizinkan kita untuk menggunakan Java pada PL/SQL untuk banyak operasi. Kita bahkan dapat menulis stored procedure berbasis Java. Tawaran Oracle tentang Java have been expanded and enhanced with each new release.
•
XML Kita dapat menggunakan interface XML dari Oracle dan tipe-tipe XML untuk mendukung inserting and retrieving data via XML.
•
Object-oriented SQL and PL/SQL Kita dapat menggunakan Oracle untuk membuat dan mengakses object-oriented sturctures, termasuk user-defined datatypes, methods, large objects (LOBs), object tables, and nested tables.
•
Data Pump
9
Data Pump Import dan Data Pump Export, keduanya diperkenalkan dalam Oracle Database 10g, greatly enhance the manageability and performance of their earlier Import and Export utilities. Kita dapat menggunakan untuk secara cepat mengekstrak data dan memindahkannya ke database berbeda selama altering skema dan merubah baris. •
SQL*Loader Kita dapat menggunakan SQL*Loader untuk load flat file dengan cepat ke tabel Oracle. Sebuah single flat file dapat di-load ke multiple tables selama load yang sama, dan load dapat diparalelisasi.
•
External program and procedures Kita dapat menyatukan SQL dengan program eksternal, atau kita dapat membuat procedural libraries yang nantinya terhubung ke Oracle.
•
UTL_MAIL Sebuah package yang diperkenalkan dalam Oracle Database 10g, UTL_MAIL mengizinkan seorang developer aplikasi PL/SQL untuk mengirim e-mail tanpa harus tahu bagaimana cara menggunakan underlying SMTP protocol stack.
Choosing Architectures and Options Oracle menyediakan sebuah full array of tools untuk men-develop aplikasi berdasarkan Oracle Database 10g. Kita dapat menggunakan Application Server sebagai middle tier untuk aplikasi three-tier yang mengakses Oracle Database 10g. Banyak fitur diperkenalkan oleh Oracle Database 10g yang akan tersedia untuk kita regardless arsitektur aplikasi yang kita pilih. Fitur ini mencakup fitur administrasi database seperti automatic storage management, automatic tuning, dan automatic resizing of the memory areas pada SGA.
ADMINISTRATIVE TOOLS Database Administrator (DBA) mempunyai beberapa tugas yang umum, antara lain: -
Meng-install dan meng-upgrade DBMS Melakukan upgrade basis data Membuat basis data Mengatur struktur penyimpanan basis data Mengatur masalah user dan security Melakukan penyimpanan data cadangan (backup) dan pemulihan data yang rusak atau hilang (recovery) - Mengatur dan mengawasi basis data serta mengambil tindakan seperlunya untuk pemeliharaan sistem
10
Oracle menyediakan beberapa aplikasi pendukung (tools) untuk membantu DBA dalam melakukan tugas-tugas administratif. Aplikasi-aplikasi pendukung ini terdiri dari aplikasi untuk melakukan instalasi serta upgrade dari DBMS dan aplikasi untuk mengatur serta melakukan pemeliharaan basis data. Aplikasi Instalasi dan Upgrade Aplikasi-aplikasi yang ada untuk melakukan instalasi dan upgrade dari DBMS yang disediakan oleh Oracle, antara lain: •
Oracle Universal Installer (OUI) Oracle Universal Installer dapat digunakan untuk meng-install atau me-deinstall software Oracle dan dapat secara langsung menjalankan Database Configuration Assistant (DBCA). OUI dapat digunakan juga untuk mengatur komponen-komponen pada sisi client dan server. Untuk permulaan OUI akan meng-install starter database, aplikasi untuk managemen basis data, aplikasi untuk pelayanan jaringan dan aplikasi client pada server basis data Oracle bila database option pada saat penginstalasian dipilih. Tipe instalasi terdiri dari: - Enterprise Edition - Personal Edition - Custom Starter database adalah basis data awal yang dikonfigurasi dengan menggunakan Database Configuration Assistant (DBCA). Basis data ini berguna untuk menguji apakah sistem sudah terinstalasi sesuai dengan yang diinginkan
•
Database Configuration Assistant (DBCA) Database Configuration Assistant digunakan untuk membuat basis data dari template yang disediakan Oracle. Template yang disediakan antara lain: - Custom yang berarti DBA dapat membuat sendiri basis data yang diinginkan sesuai dengan keinginannya - Data Warehouse digunakan pada basis data dengan kebutuhan data yang besar dan kompleks - General Purpose digunakan bila DBA masih belum yakin akan kebutuhan basis datanya. Template ini dapat mendukung untuk masalah analisa dan pemrosesan transaksi - Transaction Processing digunakan pada lingkungan dengan banyak user, banyak terjadi transaksi di basis data dan aktivitas utamanya berupa pembuatan dan pembaharuan data. DBCA dapat digunakan untuk: - Membuat basis data - Mengkonfigurasi ulang beberapa parameter dari sistem yang di-set pada saat instalasi - Menghapus basis data yang ada 11
- Mengatur ulang template yang sudah ada atau membuat template sendiri dan menyimpannya •
Database Upgrade Assistant (DBUA) Aplikasi pembantu ini akan memudahkan dalam proses pembaharuan basis data dari versi Oracle yang lama ke versi yang terbaru. Ada beberapa metode dalam melakukan upgrade dari sistem Oracle yang lama, yaitu: - Direct Upgrade yaitu pembaharuan sistem dengan memperbaharui basis data yang lama di tempat. Metode ini adalah cara yang paling cepat dalam melakukan upgrade. Yang termasuk ke dalam metode ini, yaitu: - Menggunakan DBCA - Manual Upgrade - Indirect Upgrade yaitu pembaharuan sistem yang meliputi penyalinan dari basis data yang akan di-upgrade ke bagian lain dari sistem penyimpanan atau dikirim lewat jaringan basis data yang ada. Contohnya adalah metode Export/Import DBUA akan melakukan upgrade dengan menganalisa spesifikasi basis data yang ada sekarang dan membuat rekomendasi dalam pembaharuan sistem. Rekomendasi dapat berupa pengaturan kembali ukuran file-file atau adanya spesifikasi baru.
Aplikasi Managemen Basis Data Aplikasi yang digunakan untuk melakukan pemeliharaan dan pengaturan basis data antara lain: •
Oracle Enterprise Manager (OEM) Oracle Enterprise Manager dapat digunakan sebagai aplikasi yang mencakup semua hal untuk membantu mengatur sistem basis data yang ada. Beberapa hal yang dapat dilakukan dengan menggunakan OEM antara lain: -
•
Melihat performa, status dan informasi dari database instance Membuat struktur penyimpanan Membuat objek dari skema basis data seperti tabel dan indeks Mengatur keamanan penggunaan Melakukan backup basis data Me-recover basis data yang bermasalah Mengimpor dan mengekspor data
SQL*Plus SQL* Plus adalah salah satu aplikasi yang dapat digunakan untuk melakukan hal-hal seperti pada managemen basis data seperti query, insert, update, atau delete data dari basis data. SQL* Plus menggunakan tampilan command-line untuk melakukan managemen tersebut.
•
iSQL*Plus
12
iSQL*Plus adalah salah satu produk dari produk SQL*Plus. Perbedaannya adalah iSQL*Plus menggunakan tampilan berbasis browser. •
SQL*Loader SQL*Loader mengambil data dari file untuk dimasukkan ke basis data Oracle. SQL*Loader menggunakan dua file utama: - datafile: berisi informasi yang akan di-load - control file: berisi infomasi mengenai format dari data, record dan field dalam file, ke mana data akan di-load dan bisa ditambahkan informasi mengenai nama-nama file yang akan di-load. Keuntungan menggunakan SQL*Loader antara lain: - Fleksibilitas dalam memanipulasi data pada saat pertama data akan di-load - SQL*Loader dapat digunakan untuk membagi data yang besar menjadi himpunan data yang lebih kecil dan akan mengurangi banyaknya transaksi yang harus dilakukan pada saat me-load - Fitur tambahan berupa Direct Path untuk me-load data dengan kecepatan yang tinggi
•
Recovery Manager (RMAN) RMAN dapat digunakan untuk melakukan back-up data dan recovery dari basis data secara otomatis lewat OEM atau dengan menggunakan tampilan yang berbasis command-line. RMAN menyediakan beberapa tingkatan dalam melakukan backup data secara bertahap. - level 0 (full backup): menyimpan semua data yang pernah digunakan - level 1 (cumulative backup): data-data yang dipakai sesudah melakukan full backup disimpan - level 2 (incremental backup): memyimpan ulang hanya blok-blok yang berubah Kemampuan untuk melakukan backup secara bertahap ini dapat meningkatkan performa dari sistem basis data. Pada sistem backup tradisional, semua data harus disimpan ulang. Pada sistem backup dengan menggunakan RMAN, hanya data yang berubah saja yang disimpan.
•
Data Pump Data Pump menyediakan fitur untuk melakukan ekspor dan impor data dengan berbasiskan server. Keuntungan data pump sebagai salah satu proses server adalah peningkatan performa dengan melakukan request ekspor dan impor data secara paralel. Hal ini dimungkinkan karena data tidak lagi diproses oleh client. Client yang melakukan suatu pekerjaan dapat memutuskan koneksi dan melanjutkan pekerjaannya lagi nanti dengan kondisi yang sama. 13
SECURITY Basic Oracle Security Dalam membuat suatu database, sekuriti merupakan masalah penting yang harus diperhatikan. Misalnya, dalam suatu perusahaan kita tidak ingin sembarang karyawan dapat mengakses data pembukuan perusahaan. Untuk mengatasi masalah security ini, Oracle telah menyediakan beberapa fitur-fitur sekuriti seperti Object Privileges, Roles, dan System Privileges. - Object Privileges Kita bisa memberikan wewenang kepada user mengenai apa saja yang bisa ia lakukan terhadap objek-objek dalam skema database. Misalnya, kita bisa menentukan apakah user bisa membaca, mengupdate, atau menghapus data. Beberapa jenis objek-objek yang bisa kita kenakan fitur sekuriti ini adalah tables, views, sequences, synonims, dan lain lain. Object privileges dapat kita berikan pada user dengan dengan perintah SQL GRANT. Setiap user dapat memberikan wewenang atau hak-hak khusus hanya terhadap objekobjek yang ia miliki kepada user lain sementara seorang DBA atau database administrator dapat memberikan privileges apa saja kepada user lain. Beberapa wewenang yang dapat diberikan user kepada user lain: - Pada tabel, view, dan materialized view: FLASHBACK, INSERT, UPDTAE, DELETE, dan SELECT. - Pada tabel: ALTER, DEBUG, REFERENCES, INDEX, ON COMMIT REFRESH, QUERY REWRITE, dan ALL. - Pada prosedur, fungsi, pakset, tipe data abstrak, libraries, tipe indeks, dan operator: EXECUTE dan DEBUG. - Pada sequence: SELECT dan ALTER. - Pada direktori: READ dan WRITE - Pada tipe data abstrak dan view: UNDER (digunakan untuk dapat melihat subview dari suatu view atau subtipe dari suatu tipe). - Roles Untuk memudahkan kita dalam mengkontrol dan mengatur privileges apa saja yang dapat diberikan kepada user, kita bisa menggunakan alternatif Roles. Kita menentukan privileges-privileges apa saja yang dimiliki suatu roles, dan kemudian roles tersebut kita kenakan pada user tertentu. Roles dapat dibuat dengan menggunakan perintah SQL CREATE ROLE. Beberapa roles dasar yang perlu dimiliki seorang user untuk dapat membuat suatu database: - CONNECT, RESOURCE, dan DBA 14
Untuk kompatibilitas dengan versi Oracle sebelumnya. CONNECT digunakan agar user bisa login dan melakukan operasi-operasi dasar. RESOURCE digunakan agar user bisa membuat table, sequence, trigger, prosedur, tipe data, indeks, tipe indeks, operator dan cluster miliknya sendiri. DBA digunakan agar user dapat melakukan fungsi-fungsi dari database administrator. - DELETE_CATALOG_ROLE, EXECUTE_CATALOG_ROLE, dan SELECT_CATALOG_ROLE Untuk mengakses data dictionary views and packages. - EXP_FULL_DATABASE dan IMP_FULL_DATABASE Untuk utilisasi Import dan Export. - AQ_USER_ROLE dan AQ_ADMINISTRATOR_ROLE Digunakan untuk Oracle Advanced Queueing. - SNMPAGENT Digunakan oleh Enterprise Manager Intelligent Agent. - RECOVERY_CATALOG_OWNER Diperlukan untuk membuat pemilik skema perbaikan katalog. - SCHEDULER_ADMIN Memungkinkan user dapat mengakses paket prosedur DMBS SCHEDULER. - System priviliges Selain wewenang seperti yang disebutkan di atas, ada beberapa wewenang khusus yang memungkinkan user untuk melakukan high-level tasks seperti membuat tabel. Wewenang khusus ini yang disebut system privileges. Setiap user dari Oracle memiliki username dan password yang dibuat sendiri. Saat pertama kali kita menginstall Oracle kita membuat suatu user untuk diri kita sendiri. Caranya dengan mengetik perintah create user sebagai berikut: create user username indentified by { password | externally | globally as 'extnm' };
Perintah ini berarti kita membuat sebuah user bernama user yang bisa diidentifikasi dengan password atau jika kita ingin identifikasi tersebut digabungkan dengan userid dan password sistem komputer kita, pilihlah externally. Jika kita ingin mengganti password, bisa digunakan perintah sbb: alter user username identified by newpassword; grant CREATE SESSION to username;
Setiap user memiliki suatu profile yang mengatur accountnya. Profile ini berguna misalnya untuk menentukan berapa jangka waktu password sebelum akhirnya ‘kadaluarsa’ untuk suatu account. Beberapa hal yang diatur melalui profile sehubungan dengan akses account dan password kita adalah ‘life time’ dari password suatu user, grace period atau jangka waktu untuk mengganti suatu password yang kadaluarsa sebelum account tersebut dihapus, banyaknya percobaan memasukkan password yang 15
boleh dilakukan sebelum akhirnya account tersebut dikunci, lamanya suatu account terkunci, banyak hari yang harus lewat sebelum kita bisa menggunakan ulang password yang sudah pernah ada, banyak penggantian password sebelum akhirnya diperbolehkan untuk memakai ulang password yang sudah pernah ada. . Perintah yang digunakan untuk membuat profile dinamakan create profile. Advanced Security - VPN ( Virtual Private Database ) Di bagian sebelumnya kita baru melihat sekuriti dasar yang digunakan Oracle untuk melindungi database dari akses yang tidak diperbolehkan. Sekuriti dasar tersebut diterapkan dengan hanya memperbolehkan menampilkan baris yang memenuhi kriteria tertentu. Untuk sekuriti tingkat lanjut yang lebih baik, Oracle punya VPD atau Virtual Private Database. Dengan VPD kita bisa membatasi seorang karyawan hanya bisa melihat baris data yang berisi data dirinya dan bukan data karayawan lain. VPD juga berguna apabila kita ingin seorang karyawan hanya bisa mengubah nilai field marital status, dependents dan bukan field salary. Fitur-fitur keamanan seperti inilah yang disediakan oleh VPD karena sifatnya yang fine-grained access control security. VPD menerapkan record-level security, yang berarti tingkat sekuriti yang diterapkan pada database adalah pada tingkat yang lebih spesifik seperti pada table, view, sinonim. Dalam VPD, setiap SQL yang berusaha mengakses tabel, view, atau sinonim yang dilindungi oleh aturan VPD akan dimodifikasi secara dinamis oleh Oracle untuk kemudian ditambahkan suatu limiting condition. Limiting condition tersebut bisa berupa klausa where atau klausa and. Misalnya seperti pada query di bawah ini: SELECT * FROM PURCHASES WHERE customer_id = ’dora’
Query ini hanya memungkinkan customer mengakses tabel informasi PURCHASES hanya pada bagian tabel yang sesuai dengan customer_id dari customer. Pada Oracle Database 10g telah diterapkan suatu column-level VPD, yang memungkinkan kita menerapkan aturan-aturan sekuriti hanya pada kolom yang sedang diakses. Oracle Database 10g juga memungkinkan adanya column masking, yang mana jika baris dari suatu kolom yang telah dilindungi berusaha diakses akan mengembalikan nilai NULL.
CONCURRENCY CONTROL Oracle menangani concurrency dengan menggunakan multiversion read consistency yang terdiri dari : - Statement-level read consistency Oracle menjamin bahwa data yang dilihat melalui sebuah query ketika suatu SQL statement (SELECT, INSERT, UPDATE, or DELETE) diberikan adalah konsisten pada suatu waktu tertentu dan tidak akan berubah selama eksekusi statement tersebut. - Transaction-level read consistency Oracle menjamin bahwa data yang dilihat dari beberapa query pada suatu transaksi adalah konsisten
16
Features berikut digunakan Oracle untuk mengimplementasi multiversion read consistency:: - Roll back segments Penyimpanan transaksi sebelumnya ketika dilakukan perubahan pada suatu row - System Change Number (SCN) Value yang di-increment oleh Oracle setiap terjadi update pada basis data - Locks Mekanisme yang mencegah akses pada suatu resource jika sedang digunakan oleh suatu transaksi (penjelasan locking setelah transaction isolation level).
Gambar di atas merupakan contoh dari statement-level read consistency. Ketika query dengan statement SELECT dieksekusi, dibuat SCN untuk statement tersebut (10023). Hanya data dengan SCN kurang dari atau sama dengan SCN statement yang akan diperhatikan, sedangkan row dengan SCN 10024 tidak akan diperhatikan. Row dengan SCN 10008 dan 10021 disimpan dalam roll back segment karena row tersebut telah berubah oleh transaksi lain menjadi row dengan SCN 10024 sehingga yang akan digunakan adalah block data dari roll back segment tersebut. Ada tiga masalah yang terjadi berhubungan dengan data integrity : - Dirty reads Transaksi A membaca data yang telah diubah oleh transaksi B, padahal transaksi B belum dilakukan - Nonrepeatable reads
17
Transaksi A dilakukan namun sebelum selesai ada transaksi B yang mengubah atau menghapus data sehingga jika transaksi A dilakukan kembali hasilnya bisa berbeda dengan hasil transaksi A sebelumnya - Phantom reads Transaksi A dilakukan namun sebelum selesai ada transaksi B yang menambah row sehingga hasilnya tidak sesuai dengan yang diinginkan Transaction isolation Suatu transaksi akan diisolasi dari pengaruh akibat dilakukannya transaksi lain
Read Phenomena Transactio n Isolation level
Description
Read Commited
Oracle default. Setiap statement membaca data yang konsisten. (statementlevel)
Serializable
Semua statement dalam suatu transaksi membaca data yang konsisten. (transaction-level)
Read Only
Semua statement membaca data yang konsisten. Tidak ada insert, update, atau deletion yang dapat dilakukan.
Dirty Read
Non repeatab le
Phantom Read
Set the transaction isolation level at the beginning of a transaction SET TRANSACTION ISOLATION LEVEL READ COMMITTED; SET TRANSACTION ISOLATION LEVEL SERIALIZABLE; SET TRANSACTION ISOLATION LEVEL READ ONLY;
Set the transaction isolation level for all subsequent transactions ALTER SESSION SET ISOLATION_LEVEL SERIALIZABLE; ALTER SESSION SET ISOLATION_LEVEL READ COMMITTED;
Pada serializable transaction dapat terjadi error "Cannot serialize access" jika : - Transaksi A berusaha meng-update atau men-delete row dengan data yang telah diubah oleh transaksi B yang terjadi setelah transaksi A dimulai
18
- Melakukan transaksi yang sedang di-block oleh lock tertentu - Terjadi deadlock pada saat melakukan roll back Apabila terjadi error "Cannot serialize access" ada beberapa tindakan yang dapat dilakukan - Melakukan perubahan terhadap eksekusi statement - Roll back seluruh transaksi - Tetap melakukan transaksi atau tindakan lainnya Locking Mekanisme untuk melakukan transaction isolation adalah dengan melakukan locking. Locking adalah mekanisme yang mencegah akses pada suatu resource jika sedang digunakan oleh suatu transaksi, resource tersebut dapat berupa : - User objects, seperti tables dan rows (struktur dan data) - System objects yang tidak terlihat oleh user, seperti shared data structures di memori dan data dictionary rows Pembahasan hanya mencakup user objects. Berdasarkan levelnya (yang di-block), ada dua macam locks yaitu : •
Row Level Lock Lock yang dilakukan terhadap satu atau lebih row. Oracle tidak melakukan escalate dari row menjadi table level lock meskipun ada locks pada banyak row dalam satu table yang menyebabkan locks manager harus mengangani banyak row. Lock escalation beresiko menyebabkan terjadinya deadlock. Read commited and serializable transaction menggunakan row level lock.
•
Table Level Lock Lock yang dilakukan terhadap satu tabel.
Berdasarkan modifikasinya, ada dua macam lock : • write lock atau exclusive lock tidak men-share data, digunakan oleh transaksi yang memodifikasi data •
read locks atau shared lock men-share data tergantung operasinya, digunakan oleh transaksi yang membaca data
Berdasarkan yang membuat, ada dua macam locking yang dilakukan : •
Automatic (implicit) locking Locking yang dilakukan oleh Oracle secara otomatis.
•
Manual (explicit) locking Locking yang dilakukan user secara manual, dapat meng-override default locking yang dilakukan oleh Oracle, tetapi hal ini tidak dianjurkan. Ada dua macam : - Per Session menggunakan ALTER SESSION statement untuk set transaction isolation level.
19
-
Per Transaction menggunakan SQL statements berikut : - SET TRANSACTION ISOLATION LEVEL statement - SELECT ... FOR UPDATE statement - LOCK TABLE statement
Deadlock Deadlock terjadi apabila dua atau lebih user saling menunggu data yang sedang mereka lock. Hal ini menyebabkan eksekusi dari suatu transaksi berhenti. Oracle mendeteksi deadlock secara otomatis dan melakukan roll back satu statement serta me-return error message untuk transaksi yang gagal tersebut.
20
STORED PROCEDURE Stored procedure adalah program yang disimpan dalam basis data. Oracle menyediakan fitur ini dengan menggunakan bahasa pemrograman PL/SQL atau Java. Stored procedure adalah program, dapat memiliki parameter, memanggil program atau fungsi lain, mengembalikan nilai, dan menghasilkan exception. Langkah-langkah menggunakan stored procedure pada Oracle : 1. Write procedure menggunakan PL/SQL atau Java 2. Create procedure pada Oracle, sebuah proses yang akan secara otomatis mengcompile dan menyimpan program 3. Run procedure menggunakan aplikasi yang disediakan Oracle (SQL*Plus) 4. Change procedure dengan meng-create ulang pada basis data Oracle 5. Debug procedure dengan introducing, viewing, dan fixing suatu error dari kompilasi 6. Drop procedure, sebuah proses yang secara permanen akan memindahkan procedure dari basis data Oracle
DATA TYPE Sebagian tipe data yang ada pada Oracle 10g: • Varchar2 Tipe data ini memperbolehkan penyimpanan semua karakter yang dapat dimasukkan melalui keyboard. Maksimum karakter yang dapat disimpan sebesar 4000 bytes atau karakter. Tipe data ini juga memungkinkan untuk menyimpan data numerik. Bisanya whitespace akan langsung dielimansi jika menggunakan tipe data ini. Contoh ”Turkey ” dimasukkan ke dalam kolom yang didefinisikan dengan tipe data varchar2, maka akan menjadi “Turkey” • Char Tipe data ini mempunyai kemampuan yang hampir sama yakni menyimpan karakter, hanya saja maksimum karakter yang disimpan hanya sebesar 2000 bytes. • Number Tipe data ini menyimpan bilangan integer sampai maksimum dari digit integer tersebut. Bagian kiri menunjukkan presisi dan bagian kanan menunjukkan skala. Contoh: Number specification (3,2) (6,3) (17,12)
Column Length
Decimal Digits 3 6 17
2 3 12
21
Jumlah integer yang disajikan adalah merupakan selisih antara kedua angka tersebut. Jadi spesifikasi (9,4) menyatakan 5 bukan 9 digit sebelum koma dan 4 digit di belakang koma. Jika jumlah digit desimal melebihi daripada yang sudah didefinisikan maka akan langsung dibulatkan. • Date Tipe data ini meyimpan waktu dan tanggal dari sebuah informasi, dengan komponen waktu yang dibulatkan ke detik terdekat.Biasanya komponen waktu dari kolom tanggal tidak ditampilkan tanpa manipulasi isinya menggunakan fungsi to_char function. • Timestamp Tipe data ini mirip dengan tipe data date. Di dalam tipe data ini terdapat komponen waktu yang dapat langsung dilihat tanpa harus mengubahnya terlebih dahulu dengan to_char function. • Clob Tipa data ini memperbolehkan penyimpanan objek dengan ukuran yang sangat besar sekitar 4 GB. Clob mirip sekali dengan varchar2 hanya saja tipe data ini mempunyai kapasistas maksimum yang lebih besar. • Blob Tipe data ini memperbolehkan penyimpanan objek binary yang besar dan tidak terstruktur. Contoh dari tipe data blob adalah suara dan video.
22
REFERENSI http://www.ss64.com/orasyntax/10locking.html http://www.oreilly.com/catalog/oressentials/chapter/ch07.html http://www.lc.leidenuniv.nl/awcourse/oracle/server.920/a96524/c21cnsis.htm http://www.databasejournal.com/features/oracle/article.php/2223371 http://www.devshed.com/c/a/Oracle/Oracle-Stored-Procedures/ http://en.wikipedia.org/wiki/Oracle_database http://www.oracle.com/corporate/pricing/eplext.pdf http://www.oracle.com/apps_benchmark/html/white-papers.html http://www.oracle.com/apps_benchmark/html/withdrawn_results_11i.html http://www.oracle.com/apps_benchmark/html/results_1153.html http://www.oracle.com/apps_benchmark/html/results.html#RAC Kroenke, David M. Database Processing,Fundamental, Design & Implementation (Ninth edition).Prentice Hall Ian Abramson, Michael Abbey, and Michael Corey .Oracle Database 10g: A Beginner's Guide.2004.McGraw-Hill, Osborne ORACLE Press Series Loney, Kevin. Oracle Database 10g: The Complete Reference.2004. McGraw-Hill, Osborne ORACLE Press Series Keesling, Donna K.Learn Oracle From Oracle.2004.Oracle Corporation:USA
23