Papaer SBD

Monday, March 17, 2008

Paper DBMS

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 Plus

Software Update & License Support

Processor License

Software Update & License Support

Oracle Database

Standard Edition One

149

32.78

4,995

1,098.90

Standard Edition

300

66.00

15,000

3,300.00

Enterprise Edition

800

176.00

40,000

8,800.00

Personal Edition

400

88.00

-

-

Lite

100

22.00

-

-

Enterprise Edition Options

Real Application Clusters

400

88.00

20,000

4,400.00

Partitioning

200

44.00

10,000

2,200.00

OLAP

400

88.00

20,000

4,400.00

Data Mining

400

88.00

20,000

4,400.00

Spatial

200

44.00

10,000

2,200.00

Advanced Security

200

44.00

10,000

2,200.00

Label Security

200

44.00

10,000

2,200.00

Enterprise Management

Enterprise Managers

Diagnostics Pack

60

13.20

3,000

660.00

Tuning Pack

60

13.20

3,000

660.00

Change Management Pack

60

13.20

3,000

660.00

Configuration Management Pack

60

13.20

3,000

660.00

SPEED (BENCHMARK)

Real Application Clusters (11.5.9)

Company

System

User Count

Average Response Time (s)

Benchmark Version

Date Submitted

Disclosure Report

IBM

eServer xSeries x365

14508

0.722

11.5.9

10-11-04

Detailed Report

IBM

eServer pSeries p5 520

13020

0.606

11.5.9

10-27-04

Detailed Report



Single System (11.5.9)

Online

Company

System

User Count

Average Response Time (s)

Benchmark Version

Date Submitted

Disclosure Report

IBM

eServer pSeries p5 570

15004

0.553

11.5.9

07-13-04

Detailed Report



Batch

Company

System

# of Workers

Throughput (Lines per 62 minutes)

Benchmark Version

Date Submitted

Disclosure Report

IBM

eServer pSeries p5 570

16

2,744,000

11.5.9

03-04-05

Detailed Report

Fujitsu Siemens

PRIMEPOWER 850

32

2,664,000

11.5.9

03-21-05

Detailed Report

Sun

Sun Fire E6900

48

2,571,000

11.5.9

01-17-05

Detailed Report

Fujitsu Siemens

PRIMEPOWER 650

16

1,294,000

11.5.9

02-11-05

Detailed Report

Sun

Sun Fire E4900

48

1,277,680

11.5.9

12-07-04

Detailed Report


Real Application Clusters Results by User Count (11.5.6)

Company

System

User Count

Average Response Time (s)

Benchmark Version

Date Submitted

Disclosure Report

IBM

eServer pSeries 655

21168

0.52

11.5.6

10-20-03

Detailed Report

IBM

eServer xSeries 445

18368

0.59

11.5.6

11-06-03

Detailed Report

HP

HP Proliant DL580 G2

7504

1.19

11.5.6

06-23-03

Detailed Report

Lenovo

Legend SureServerT630

1904

0.72

11.5.6

03-12-03

Detailed Report


Single System Results by User Count (11.5.6)

Company

System

User Count

Average Response Time (s)

Benchmark Version

Date Submitted

Disclosure Report

IBM

eServer pSeries 690

22008

0.48

11.5.6

05-29-03

Detailed Report

HP

HP Proliant DL760 G2

9240

0.64

11.5.6

02-16-04

Detailed Report

Sun Microsystems

Sun Fire V1280

8120

0.97

11.5.6

11-10-03

Detailed Report

HP

HP AlphaServer GS1280

7728

1.00

11.5.6

04-28-03

Detailed Report

HP

HP Proliant DL580 G2

6664

0.66

11.5.6

02-16-04

Detailed Report

HP

HP server rx5670

6440

0.6

11.5.6

06-25-03

Detailed Report

Sun Microsystems

Sun Fire V880

6328

1.29

11.5.6

09-16-03

Detailed Report

Fujitsu Siemens

PRIMEPOWER 850

6272

1.073

11.5.6

11-07-02

Detailed Report

HP

HP server rx5670

5992

0.6

11.5.6

07-30-03

Detailed Report

IBM

eServer xSeries x440

5656

0.49

11.5.6

06-02-03

Detailed Report

IBM

eServer pSeries 630

5320

0.88

11.5.6

04-02-03

Detailed Report

Sun Microsystems

Sun Fire V880

5208

1.16

11.5.6

12-13-02

Detailed Report

HP

HP server rx5670

4200

1.51

11.5.6

01-13-03

Detailed Report

Lenovo

Legend SureServerT630

3528

0.56

11.5.6

04-23-03

Detailed Report

HP

HP Proliant DL580 G2

3472

0.57

11.5.6

01-21-03

Detailed Report

Lenovo

Legend SureServerT630

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 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 di-query langsung oleh user dan bergabung ke tabel lain dalam queries. Kita dapat menggunakan tabel eksternal untuk mengakses data ukuran besar tanpa perlu me-load 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 meng-admin 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.

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

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

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 me-manage 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.

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

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 meng-ekstrak 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

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

- 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

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.

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 objek-objek 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

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 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

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

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

Transaction Isolation level

Description

Read Phenomena

Dirty Read

Non repeatable

Phantom Read

Read Commited

Oracle default. Setiap statement membaca data yang konsisten. (statement-level)

û

ü

ü

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.

û

û

û

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

- 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.

- 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.


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 meng-compile 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

Column Length

Decimal Digits

(3,2)

3

2

(6,3)

6

3

(17,12)

17

12

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.


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