online stats Tips and tricks about computer
Blinkie Text Generator at TextSpace.net
BERANDATENTANG SAYAFACEBOOKFRIENDSTERTWITTERCLIXSENSEGOOGLEYAHOO!MSNBLOGGER

Rabu, 09 Desember 2009

ORACLE

BAB 1

ORACLE

1.1 Sejarah Berdirinya Oracle Corporation

“An oracle is a person or agency considered to be a source of wise counsel or prophetic opinion; an infallible authority, usually spiritual in nature. ” en.wikipedia.org

Itu yang dinamakan Oracle. Jika ada yang belum mengetahuinya. Nah, kalau Oracle Corporation adalah salah satu perusahaan besar yang menjadikan DBMS sebagai software utama yang dikembangkan. Akan tetapi, seiring berjalannya waktu, mereka pun mulai mengembangkan sayapnya dengan membuat perangkat lunak ERP, CRM, dan SCF. Oracle ditemukan tahun 1977 dan hingga kini sudah terdapat 145 cabang di seluruh dunia. Di tahun 2005 jumlah pegawai yang mereka punya lebih dari 50.000 orang, dan hingga kini Oracle merupakan perusahaan pengembang perangkat lunak terbesar di dunia setelah Microsoft.

Sejarah pendirian Oracle dimulai ketika Larry Ellison terinspirasi dengan paper yang ditulis oleh Dewa Basis Data Edgar F.Codd dengan judul “A Relational Model of Data for Large Shared Data Banks”. Awal didirikan pada tahun 1977 dengan nama Software Development Laboratories. kemudian berubah nama menjadi Relational Software Inc (RSI) pada tahun 1979. Dan akhirnya, perusahaan ini berubah nama menjadi Oracle System agar sejalan dengan produk utama mereka yang selama ini mereka kembangkan yaitu, Oracle Database. Produk mereka dibangun diatas bahasa pemrograman Java dan sudah mulai ada sejak tahun 1978 dengan nama Oracle version 1, dan hingga kini (tahun 2007) versi terakhir dari produk ini adalah version 11. Dalam menjual produk-produk mereka, Oracle menggunakan slogan “Can’t break it, can’t break in” atau “Unbreakable”.

Pertanyaan yang banyak diajukan oleh banyak orang adalah, kenapa Oracle sangat populer. Ternyata, yang menjadi competitive advantage mereka adalah karena mereka adalah DBMS dengan performansi terbaik. Hingga kini lebih dari 100 produk dan solusi bisnis telah mereka tawarkan.List produk dan solusi bisnis dari A-Z bisa ditemukan disini. Kantor Pusat Oracle terdapat di San Fransisco Peninsula di Redwood Shores Area di Kota Redwood. Jadi, bagi anda semua yang tertarik dengan oracle dapat langsung mengunjungi situs mereka di www.oracle.com terdapat beberapa software yang bisa di-download secara gratis tapi memang banyak yang versi berbayar.

1.2 Sejarah Oracle

Oracle mungkin salah satu andalan bagi seorang DBA dalam pekerjaannya dan disamping itu dapat dikatakan bahwa Oracle begitu mendominasi pasar database server, hal ini mungkin didasarkan kepada banyak perusahaan berskala besar mengunakan Oracle dalam mengelola datanya. berikut tulisan mengenai sekilas perkembangan Oracle yang disaring dari berbagai sumber.

Perusahaan Oracle didirikan pada tahun 1977 oleh tiga orang programmer, Bob Miner, Ed Oates dan Larry Ellison yang menjabat sebagai CEO (Chief Executive Officer). Konon, dari ketiga programmer tersebut, Larry adalah yang nomor 3 dalam programming. Larry lebih sering (dan lebih senang) mengerjakan pemasaran, dan drop out dari kuliah karena keasyikannya di Oracle. Perusahaan ini berkonsentrasi pada pembuatan database server di mainframe. Kisah sukses Oracle Corp terkait dengan sejarah dan teori database relasional. Teori database relasional diperkenalkan hampir secara simultan oleh Edgar F. Codd (dalam artikelnya yang terkenal Large Shared Data Banks) pada tahun 1969. IBM adalah perusahaan pertama yang menerapkan model relasional ini dalam bahasa SQL, dengan produknya DB2. Sayangnya IBM agak ragu akan keampuhan SQL dan model relational (nantinya berpengaruh pada ketertinggalan IBM di pasar database server sistem operasi Unix dan Windows).

Larry melihat perkembangan teori model relational dan implementasi database relational dalam DB2. Ia yakin bahwa model relational adalah “way of the future” dan memutuskan untuk mengimplementasikan model relasional di produk Oracle. Sebelumnya produk database Oracle memakai model nonrelational (tidak jelas apakah model jaringan atau pohon; bahasanya COBOL untuk komputer mainframe). Langkah Larry terbukti benar, dan Oracle menjadi pesaing kuat bagi IBM dalam pasar database server di mainframe, terutama database bermodel relasional.

Sekitar pertengahan tahun 1980an, Larry kembali mengambil langkah yang tepat (dan berani) dengan mendeversifikasi produk Oracle (versi 6.x) ke luar mainframe, yakni ke sistem operasi Unix. Inilah booming kedua bagi Oracle, terjadi peningkatan penghasilan dan penjual produk secara drastis.

Selanjutnya Oracle Corporation mendiversifikasi Oracle ke sistem operasi Novell Netware, Windows NT (versi Oracle 7.x, mulai tahun 1996), dan Linux (versi 8.x, sekitar tahun 1997). Mulai tahun 1998 Oracle terlihat menghentikan pembuatan produknya untuk sistem operasi MVS dan Novell Netware. Mulai pertengahan tahun 1990an, Larry sangat agresif dalam menversifikasi produk. Oracle Corporation mulai masa itu membuat juga produk-produk non-database server seperti Application Server (WebDB, OAS), Development Tools (Oracle Developer, Oracle Designer) dan ApplicationSuite (Oracle Apps). Banyak para praktisi database menggangap Oracle versi 7.x adalah yang paling stabil (Oracle 7.3.4). Suatu perbedaan penting versi 7.3.4 dibanding pendahulunya adalah adanya bitmap index, index yang sangat efisien untuk menangani kolom yang variasi nilainya sempit. Di versi 7 terdapat perbaikan dukungan terhadap VARCHAR, dari batas maksimum 256 menjadi 2000.Versi 8 memperkenalkan partitioning (untuk mengelola database berukuran sangat besar : VLDB atau Very Large DataBase), advanced queue, recovery manager, dan user defined (composite) type. Mulai versi ini juga beberapa tools Oracle dibuat dengan memakai bahasa pemograman Java. Dukungan terhadap Java masih sangat terbatas di Oracle 8. Versi ini memperbesar batas VARCHAR dari 2000 menjai 4000.Oracle 8i (i diartikan sebagai internet) memiliki dukungan yang lebih baik terhadap java, dukungan terhadap XML, two-level partitioning, Internet File System, Internet Directory (memakai Lightweight Directory Access Protocol atau LDAP), arsitektur 3-tier (CORBA, Common Object Request Broker Architecture) untuk konektivitas dan Enterprise Manager-nya, Managed Standby Database, serta perluasan kemampuan trigger. Kebanyakan dukungan tambahan ini memang terkait dengan internet.Oracle8i terdiri atas 3 rilis. Rilis 1 = versi 8.1.5, rilis 2 = versi 8.1.6, dan rilis 3 = versi 8.1.7. Reaplikasi paska rilis 1 memiliki keterbatasan hanya mampu menangani VARCHAR sampai 2000 karakter. Keterbatasan ini diperbaiki menjadi 4000 karakter pada rilis 2 dan 3.Pada tahun 2001 diperkenalkan Oracle9i. Fitur-fitur baru mencakup self-tuning memory, multiple database-block size serta database template.Kemudian pada tahun 2005 diperkenalkan Oracle 10g. Pada Versi terdapat beberapa versi, antara lain : Enterprise Edition, Standard Edition, Standard Edition One, Express Edition.

1.3 Oracle Coba Cetak Sejarah Baru

Oracle tawarkan solusi yang akan menyatukan berbagai data yang dimiliki perusahaan. Melalui software ini, Oracle berusaha membuat sejarah baru.

Solusi itu bernama Oracle Collaboration Suite (OCS). OCS menawarkan integrasi sistem yang dimiliki sebuah perusahaan, termasuk e-mail, voicemail, file system support, kalender, kemampuan konferensi secara real time dan alur kerja.

“Lima belas tahun lalu, pengguna komputer menggunakan perangkat yang terpisah-pisah untuk mengerjakan penulisan, presentasi dan database, kemudian Microsoft datang dengan MS Office yang menyatukan semuanya dalam satu paket dan pemain-pemain lama seperti WordStar, Lotus123 ataupun Harvard Graphics tidak terdengar lagi. Kini kami mengharapkan, kesuksesan Microsoft akan terjadi pada Oracle melalui OCS ini,” ungkap Christopher Hummel, VP Marketing & Business Development, Oracle untuk Divisi Asia Pasifik dalam konferensi pers Oracle di Shangrila, Jakarta, Rabu (23/04/2003).

OCS merupakan salah satu produk Oracle yang sudah sukses diterapkan secara internal di Oracle sendiri. “Aplikasi ini sudah digunakan oleh Oracle sendiri, dan dengan menggunakannya kami menghemat uang dan sumberdaya,” jelas Chris.

Langkah yang dilakukan Oracle dengan meluncurkan OCS akan menyerang langsung Microsoft dan IBM, hal ini diakui sendiri oleh Chris. “Keduanya segera bereaksi dengan menawarkan paket-paket software yang terintegrasi (suite), hal ini mereka lakukan hanya setelah melihat kami melakukannya,” kata Chris.

Hasnur Ramadhan, Technology Manajer, Oracle Indonesia, mengatakan cara kerja Collaboration Suite tidak seperti paket-paket yang ditawarkan Microsoft ataupun IBM. “OCS merupakan aplikasi yang menyatukan semua data ke dalam satu server, baik voice, email ataupun file, akses kepada data tersebut dapat dilakukan melalui aplikasi front end yang biasa digunakan,” jelas Hasnur.

Solusi OCS tersebut adalah solusi yang kerap disebut dengan nama centralized solution, kebalikannya adalah distributed solution yaitu data-data dipisah pada server-server yang berbeda. Menurut Chris, baik IBM maupun Microsoft akan mengeluarkan centralized solution juga, tetapi belum jelas waktunya kapan.

“Kami persilahkan pengguna memilih, akan menggunakan teknologi yang sudah tersedia sekarang yaitu OCS atau mau menunggu Microsoft atau IBM mengeluarkan produknya?” ujar Chris sambil menambahkan bahwa mengubah arsitektur suatu aplikasi tidaklah mudah.

Seperti diketahui, tingkat pembajakan Indonesia adalah termasuk yang tertinggi di Asia Pasifik. Menanggapi ini Chris hanya berujar, “Anda bisa mendapatkan versi gratis OCS di www.oracle.com.”


BAB 2

PENGENALAN ORACLE

2.1 Sejarah Singkat Oracle

Perusahaan Oracle didirikan pada tahun 1977 oleh tiga orang programmer, Bob Miner, Ed Oates, dan Larry Ellison yang menjabat sebagai CEO (Chief Executive Officer) selama beberapa tahun sampai saat ini. Perusahaan ini berkonsentrasi pada pembuatan database server di mainframe.

Kisah sukses Oracle Corp terkait dengan sejarah dan teori database relasional. Teori database relasional diperkenalkan hampir secara simultan oleh Edgar F. Codd (dalam artikelnya yang terkenal Large shared data banks) dan seorang penemu lain yang kurang dikenal, pada tahun 1969. IBM adalah perusahaan pertama yang menerapkan model relasional ini dalam bahasa SQL, dengan produknya DB2. Sayangnya IBM agak ragu akan keampuhan SQL dan model relasional (nantinya akan berpengaruh pada ketertinggalan IBM di pasar database-server sistem operasi Unix dan Windows ).

Larry melihat perkembangan teori model relasional dan implementasi database relasional dalam DB2. Ia yakin bahwa model relational adalah way of the future dan memutuskan untuk mengimplementasikan model relasional di produk Oracle. Sebelumnya produk database Oracle memakai model nonrelasional. Oracle menjadi pesaing kuat bagi IBM dalam pasar database server di mainframe, terutama database bermodel relasional.

Sekitar pertengahan tahun 1980an, Larry mendiversifikasi produk Oracle (versi 6.x) keluar mainframe, yakni ke sistem operasi Unix. Selanjutnya tahun 1996 Oracle Corp mendiversifikasi Oracle (versi 7.x) ke sistem operasi Novell Netware, Windows NT, dan Linux (versi 8.x, tahun 1997).

Mulai pertengahan tahun 1990an Oracle Corp mulai membuat juga produk-produk nondatabase-server seperti application server (WebDB, OAS), development tools (Oracle Developer, Oracle Designer), dan application suite (Oracle Apps).

2.2 Model Basis Data Relasional

Model basis data relasional adalah model formal tentang data. Sebagai model formal, model ini menspesifikasikan struktur (tipe) data yang formal, operasi-operasi yang formal, dan aturan integritas nilai yang formal.

Basis data relasional memiliki satu struktur logika yang disebut relasi (relation) dan pada level fisik berupa tabel (table). Atribut (attribute) merepresentasikan elemen dari data yang berkaitan dengan relasi. Sebagai contoh, relasi Pegawai memiliki atribut-atribut seperti nama, nomor pegawai, dan alamat. Sebuah relasi dinotasikan secara konvensional dengan Relation (attribute1, attribute2,…). Contoh : Pegawai (Nama, Nomor_Pegawai,Alamat,..). Nilai data dari atribut dari sebuah relasi akan disimpan dalam tuple atau row (baris) dari tabel.

2.2.1 Relational Database Management System (RDBMS)

RDBMS (Relational Database Management System) adalah perangkat lunak untuk membuat dan mengelola database, sering juga disebut sebagai database engine. Istilah RDBMS, database server-software, dan database engine mengacu ke hal yang sama, sedangkan RDBMS bukanlah database. Beberapa contoh dari RDBMS diantaranya Oracle, Ms SQL Server, MySQL, DB2, Ms Access.

2.3 Pengertian Oracle

Oracle adalah relational database management system (RDBMS) untuk mengelola informasi secara terbuka, komprehensif dan terintegrasi.

Oracle Server menyediakan solusi yang efisien dan efektif karena kemampuannya dalam hal sebagai berikut :

  1. Dapat bekerja di lingkungan client/server (pemrosesan tersebar).
  2. Menangani manajemen space dan basis data yang besar.
  3. Mendukung akses data secara simultan.
  4. Performansi pemrosesan transaksi yang tinggi.
  5. Menjamin ketersediaan yang terkontrol.
  6. Lingkungan yang terreplikasi.

2.3.1 SQL (Structured Query Language)

Digunakan sebagai antarmuka dalam pengelolaan data. SQL merupakan bahasa yang komprehensif untuk basis data, sehingga dibuat standar untuk bahasa SQL oleh ANSI (American National Standard Institute) dan ISO (International Standard Organization). Di dalamnya terdapat perintah untuk pendefinisian data, melakukan query dan update terhadap data. Perintah tersebut dikelompokkan dalam dua istilah: DDL (Data Definition Language) untuk pendefinisian data dan DML (Data Manipulation Language) untuk melakukan update dan query. Kebanyakan vendor dari RDBMS menggunakan SQL dari ANSI/ISO, tetapi beberapa vendor RDBMS memasukkan beberapa perintah tambahan sebagai fitur dari produknya. Di antaranya adalah fitur untuk pemberian hak akses terhadap data ataupun untuk maintenance.

2.3.2 SQL*Plus

Dalam menerima masukan perintah SQL dari pengguna, vendor RDBMS telah menyediakan library yang dapat digunakan oleh programmer agar program yang dibuat dapat melakukan pengaksesan terhadap basis data. Selain itu, para vendor memberikan

pula program yang dapat menerima masukan bahasa SQL yang kemudian dieksekusi oleh RDBMS. Oracle, sebagai salah satunya, telah menyediakan program yang dinamakan SQL*Plus. SQL*Plus dapat digunakan untuk melakukan eksekusi terhadap perintah SQL dari pengguna. SQL vs SQL*Plus.

SQL : Merupakan bahasa yang meliputi perintah-perintah untuk menyimpan,
menerima dan memelihara data dalam basis data.

SQL*Plus : Aplikasi yang dapat mengenali dan mengeksekusi perintah SQL dan
dapat menampilkan hasil dari perintah tersebut ke pengguna.

2.3.3 Data Definition Language (DDL)


DDL merupakan bagian dari perintah SQL untuk membuat, memodifikasi atau menghapus struktur basis data Oracle. Pembuatan tabel dalam suatu basis data dilakukan setelah melalui tahapan membuat model data dan membuat desain data. Elemen-elemen yang harus ada dalam pembuatan suatu tabel yaitu: nama tabel, nama kolom dan tipe data kolom.

2.4 Bahasa Pemrograman Oracle

2.4.1 Pengenalan Oracle ( Basic )

2.4.1.1 Masalah Data

  1. Definisi berganda terhadap entitas data.
  2. Ketidakkonsistesian terhadap data yang sama pada database yang berbeda kesulitaan dalam integrasi data.
  3. Kualitas data yang rendah karena sumber data yang tidak tepat atau ketidaktepatan
  4. waktu dalam mentransfer data dari sistem lain mengurangi keandalan.
  5. Kekurangakraban terhadap data yang ada (lokasi maupun makna) manfaat berkurang.
  6. Tanggapan waktu yang lama.
  7. Kekurangan kontrol terhadap privasi dan keamanan.

2.4.1.2 Administrasi Data dan Database

2.4.1.2.1 Administrasi Data

  1. Fungsi pada perusahaan yang bertanggung jawab dalam mengelola keseluruhan data dalam organisasi.
  2. Menentukan standar dan pendefinisian data dalam lingkup perusahaan administrasi database.
  3. Fungsi teknis yangg bertanggung jawab terhadap perancangan database secara fisik.
  4. Menangani masalah-masalah teknis seperti pemaksaan keamanan, kinerja database, dan backup/recovery.

2.4.1.2.2 Administrasi Data dan Database

  1. Data administrator (DA) / Information resource manager: orang yang mengepalai
    fungsi administrasi data.
  2. Database administrator (DBA): Orang yang bertanggung jawab dalam merancang database secara fisik dan persoalan teknis Instance dan Database.
  3. Oracle tersusun atas dua komponen utama, yaitu instance dan database. Kedua komponen ini sangat berbeda, tetapi saling berhubungan dan tidak dapat dipisahkan. Database merupakan kumpulan informasi yang disimpan dalam sebuah physical storage, sedangkan instance adalah kumpulan dari oracle process dan alokasi memori yang ada di Oracle disebut sebagai System Global Area (SGA) yang digunakan untuk mengakses informasi-informasi yang tersimpan pada database.
  4. User tidak dapat mengakses secara langsung informasi yang tersimpan pada database tanpa melalui instance-instance yang sedang drop, semua informasi yang ada pada database tidak dapat diakses melalui tingkat operating system.

2.4.1.2.3 Basis data Oracle

Basis data Oracle adalah basis data relasional yang terdiri dari kumpulan data dalam suatu sistem manajemen basis data RDBMS. Perusahaan perangkat lunak Oracle memasarkan jenis basis data ini untuk bermacam-macam aplikasi yang bisa berjalan pada banyak jenis dan merk perangkat keras komputer (platform).

Basis data Oracle ini pertama kali dikembangkan oleh Larry Ellison, Bob Miner dan Ed Oates lewat perusahaan konsultasinya bernama Software Development Laboratories (SDL) pada tahun 1977. Pada tahun 1983, perusahaan ini berubah nama menjadi Oracle Corporation sampai sekarang.

Jenis perangkat keras (platform) yang dipakai sebagai server (host):

  1. Apple Mac OS X Server: PowerPC
  2. HP HP-UX: PA-RISC, Itanium
  3. HP Tru64 UNIX: Alpha
  4. HP OpenVMS: Alpha, Itanium
  5. IBM AIX5L: POWER
  6. IBM z/OS: zSeries
  7. Linux: x86, x86-64, PowerPC, zSeries, Itanium
  8. Microsoft Windows: x86, x86-64, Itanium
  9. Sun Solaris: SPARC, x86, x86-64

2.4.1.2.4 Pesaing

Pesaing dari perangkat lunak Oracle adalah:

  1. IBM: DB2, Informix, UDB
  2. Microsoft SQL Server

Oracle dan IBM menekankan pada platform menengah seperti UNIX dan Linux, sementara Microsoft cenderung meraih pasar untuk kelas rendah (Microsoft Windows platforms).

Basis data Oracle juga bersaing dengan basis data sumber-terbuka (open-source relational databases), seperti PostgreSQL, Firebird, dan MySQL. Perangkat lunak EnterpriseDB yang berbasis PostgreSQL, belum lama ini mengumumkan fitur yang kompatibel dengan Oracle dengan harga yang sangat wajar dan murah.

2.4.1.2.5 Keistimewaan Oracle

Oracle dikenal sebagai database untuk jaringan dan internet. Keistimewaan Oracle, yaitu:

2.4.1.2.5.1 Client/Server Environtment

Oracle memisahkan proses antara database server dan aplikasi client. Server yang terinstal Oracle bertanggung jawab menangani proses database, semntara client yang menjalankan apliksi hanya berkonsentrasi menampilkan data.

Ukuran database yang besar dan pengaturan space

Oracle mendukung ukuran database yang sangat besar hingga jumlahnya terabyte.

Multiuser. Oracle dapat melayani banyak user yang terkoneksi dalam waktu yang sama dan mengakses data yang sama.

  1. Connectibility

Oracle dapat menggunakan bebagai sistem operasi dalam suatu jaringan untuk mengakses data.

  1. High Transaction Processing Performance

Oracle dapat mengatur sistem agar pemrosesan database berjalan cepat walaupun jumlah transaksi sangat banyak dalam suatu waktu.

  1. Availability

Oracle dapat menjalankan database 24 jam sehari tanpa istirahat. Pemisahan sistem komputer dan proses backup dapat dilakukan secara online tanpa harusn mematikan database.

  1. Database Enforced Integrity

Oracle memiliki kontrol untuk mengendalikan data yang dapat diterima di database.

  1. Standar industri yang terbuka

Oracle diterima oleh berbagai standar industri untuk pengaksesan data, sistem operasi, user Interface dan protokol jaringan.

  1. Manajemen keadaan yang baik

Untuk menghindari akses database dari pihak yang tidak diinginkan, Oracle memiliki fitur untuk membatasi akses data.

  1. Portabilitas

Oracle dapat berjalan di berbagai sistem operasi baik Linux, Windows, Unix, dan lain sebagainya.

  1. Distributed System

Oracle dapat memisahkan database dalam komputer yang secara fisik terpisah, namun secara logis terlihat seperti satu database.

  1. Replicated Environtment

Oracle mampu menduplikasi database objek dalam lokasi server yang berbeda-beda.

2.4.1.2.5.2 Otorisasi Akses

Oracle akses mengatur tindakan apa yang boleh dilakukan oleh seorang pemakai atas suatu objek yang ada di Oracle. Mengatur otorisai akses dapat menjga kerahasian dan integritas informasi.

2.4.1.2.5.3 Objek-Objek Database Oracle

Jenis- jenis objek dalam database Oracle yang bias dipakai dalam pembangunan aplikasi adalah:

  1. Table
  2. Index
  3. View
  4. Snapshot
  5. Sequence
  6. Package
  7. Stored Procedur
  8. Trigger
  9. Database links

Sedangkan objek –objek yang berhubungan dengan fisik database antara lain:

  1. Instance
  2. Database
  3. Table space
  4. Segment
  5. Data file

2.4.1.2.5.4 Pengelolaan Data Dalam Oracle

Pengetahuan tentang bagaimana Oracle mengelola data sangatlah vital bagi seorang administrator. Sebuah sistem database yang besar dapat terdiri dari beberapa Oracle server yang berjalan di server yang terpisah. Masing- masing server akan mengelola data yang sesuai dengan bagiannya saja. Misalnya server pada Divisi Akuntansi mengelola database Akuntansi, server SDM mengelola database SDM, dan seterusnya. Sistem database yang tersebar seperti di atas disebut Distributed Database.

User akan membuat koneksi dengan salah satu database server. Pada database server tersebut, koneksi user tersebut dilayani oleh sebuah instance. Instance tersebut kemudian akan mengakses database yang sesuai yang ada di server tersebut.

Instance dapat dilihat sebagai sistem yang mengelola database. Dalam salah satu Oracle server bias terdapat lebih dari satu instance. Database adalah media penyimpanan yang berisi tabel –tabel. Sebuah instance dapat mengelola satu atau lebih database. Ketika sebuah instance dijalankan dan dihubungkan ke suatu database maka instance dikatakan berjalan.

2.4.1.2.5.5 Aplikasi Database Oracle

  1. Aplikasi Penjualan Toko
  2. Aplikasi penjualan merupakan software sistem informasi manajemen yang di kembangkan dengan database Oracle dan aplikasi ini bisa menggunakan sistem operasi Windows XP maupun Linux.
  3. Aplikasi ini telah digunakan oleh 2 toko bahan bangunan di Bandung. Adapun aplikasi ini terbagi beberapa modul yaitu:
  4. Master
  5. Transaksi
  6. Report
  7. Setup dan utility

8. Report purchasing dan stock:

1. Laporan Stock Barang

2. Laporan Pembelian

3. Laporan Penerimaan

4. Laporan Pengeluaran

5. Laporan Stock Opname

2.4.1.2.5.6 Oracle Label Security

Oracle Label Security (OLS) memungkinkan administrator untuk mengubah aturan akses kontrol berdasarkan label ketika kontrol akses standard tidak memadai. OLS menghubungkan akses terhadap baris pada tabel berdasarkan label yang terdapat didalam baris. Suatu label berhubungan dengan setiap session database, dan OLS memberi hak terhadap session tersebut.

Secara ringkas, berikut ini dijelaskan bagaimana OLS bekerja :

  1. Dibuat aturan keamanan untuk mengidentifikasi bagaimana data harus diamankan dengan memberi spesifikasi komponen keamanan.
  2. User label mendefinisikan aturan keamanan tingkat baris apa yang mungkin untuk setiap user.
  3. Pada setiap tabel yang membutuhkan keamanan tingkat baris, ditambahkan kolom khusus yang disebut kolom label.
  4. Selama akses data, suatu proses yang disebut access mediation menentukan ijin yang dibutuhkan untuk mengakses baris, dan tindakan apa yang dapat dilakukan ketika baris itu diakses.
Baca Selengkapnya...

Senin, 23 November 2009

PostgreSQL vs MySQL

Saat ini dengan mudah kita bisa mengatakan, dua produk database open source paling terkenal dan banyak digunakan adalah MySQL dan PostgreSQL. “Mana yang lebih bagus?” adalah pertanyaan yang hingga akhir zaman nanti akan selalu terlontar. Kami tahu pertanyaan ini tidak ada artinya, dan tidak membantu sama sekali. Namun di artikel ini kami mencoba menyusun beberapa aspek dari kedua database yang berbeda satu sama lain. Harapan kami, perbandingan ini membantu Anda menjawab pertanyaan “mana yang sebaiknya dipakai untuk [sebutkan kebutuhan Anda di sini].” Jangan lupa pula, sebelum memutuskan selalu ceklah dulu homepage kedua database sebab dari waktu ke waktu fitur tiap database berubah/bertambah. Perbandingan di artikel ini sendiri menggunakan versi MySQL 3.23.49/4.0.1 dan PostgreSQL 7.2.

Tujuan Desain

Dari semula latar belakang dikembangkannya kedua database ini sudah berbeda. MySQL berkembang dari solusi yang dipakai oleh pembuatnya, TcX AB, dalam memroses data untuk aplikasi Web. Fokusnya adalah pada kecepatan. PostgreSQL, di lain pihak, berkembang dari riset akademik. Fokus pengembangan PostgreSQL adalah pada fitur OO, reliabilitas, dan dukungan SQL yang mantap. Namun, seiring kedua produk ini bertambah matang, keduanya semakin banyak memiliki sifat-sifat ini. MySQL versi 4.x misalnya, berjanji menambahkan fitur-fitur yang sejak lama diidamkan pemakainya: subselect, view, dsb. Sementara PostgreSQL, yang sempat memiliki masalah stabilitas dan skalabilitas di seri awal versi 6.x, juga kini telah amat menarik dari segi kecepatan.

Pengembangan

Pengembangan MySQL diatur secara sentral oleh perusahaan komersial di Swedia bernama MySQL AB (sebelumnya TcX AB). Perusahaan ini memperoleh pemasukan utamanya dari menjual layanan support dan konsultasi MySQL. PostgreSQL dikembangkan secara lebih terdesentralisasi dan merakyat, namun tetap diatur oleh sebuah kelompok online bernama PostgreSQL Development Group.

MySQL dirilis dalam satuan yang lebih sering (sebulan bisa lebih dari satu kali), sementara PostgreSQL sekitar 4–6 bulan sekali.

Jumlah Pengguna

Menurut MySQL AB, saat ini jumlah instalasi MySQL sekitar 3 juta. PostgreSQL sendiri tidak diketahui pasti berapa jumlah penggunanya; kemungkinan masih berada di bawah MySQL karena banyaknya situs Web dan perusahaan webhosting yang hanya menggunakan MySQL. Plus secara keseluruhan popularitas MySQL (trafik milis, tutorial/artikel yang membahas, dsb) lebih besar daripada PostgreSQL. Tapi karena PostgreSQL juga disertakan secara default di distro-distro Linux seperti Red Hat dan SuSE, jumlah penggunanya pun sudah pasti banyak.

Arsitektur dan Portabilitas

MySQL memiliki arsitektur multithreading, sementara PostgreSQL multiproses (forking). Ini berarti PostgreSQL potensial memiliki stabilitas yang lebih tinggi, sebab satu proses anak yang mati tidak akan menyebabkan seluruh daemon mati—meskipun pada kenyataannya, dulu ini sering terjadi. Di sisi lain, arsitektur dengan forking ini sulit diterapkan ke Windows, sebab Windows amat thread-oriented. Karena itulah, baru MySQL yang memiliki port natif ke Windows. PostgreSQL sendiri saat ini bisa dijalankan di Windows, tapi melalui lapisan emulasi Cygwin.

ACID compliance

Sampai sekarang masih banyak yang bilang MySQL itu tidak ACID-compliant. Padahal sejak 2 tahun lalu MySQL sudah mempunyai handler tabel BerkeleyDB, dan belakangan ini InnoDB, sehingga MySQL sudah mendukung transaksi. Handler tabel MySQL yang lama, ISAM dan MyISAM, tidak ACID-compliant. PostgreSQL sendiri sejak lama telah ACID-compliant.

Lisensi

Lisensi PostgreSQL lebih liberal. Inilah sebabnya ada banyak produk closed-source dan komersial yang bisa dikembangkan dari source code PostgreSQL. MySQL, karena dilisensi di bawah GPL, tidak boleh dimodifikasi menghasilkan produk turunan yang closed-source.

Kecepatan

Soal kecepatan ini relatif dan kadang juga jadi isu sensitif. Baik kedua pihak, maupun pihak ketiga, pernah menerbitkan benchmark yang lalu ditepis atau dicibir karena tidak objektif.

Pada dasarnya perbandingan kecepatan keduanya seperti ini: MySQL terkenal cepat dalam melakukan query sederhana. Dengan kata lain, dapat memroses lebih banyak SQL per satuan waktu. Tapi dalam kondisi load tinggi (jumlah koneksi simultan besar), PostgreSQL sering mengalahkan MySQL untuk query dengan klausa JOIN yang kompleks, seperti dialami Tim Perdue saat mencoba kedua database untuk diimplementasikan di SourceForge.net. Penyebab utamanya adalah karena MySQL menggunakan locking level table dalam UPDATE, sehingga koneksi yang lain tidak bisa membaca table ybs sama sekali. Locking inilah juga sebabnya mengapa pada banyak benchmark, MySQL menunjukkan penurunan kinerja yang cukup drastis untuk kondisi jumlah klien simultan tinggi. PostgreSQL mendukung locking di level yang lebih rendah, yaitu row. Table handler baru di MySQL, InnoDB, juga mendukung row level locking. Benchmark InnoDB pada jumlah koneksi tinggi menunjukkan hasil yang cukup menjanjikan (www.innodb.com/bench.html).

Masalah locking tabel bisa diakali dengan membelah-belah tabel, agar satu kelompok row dapat dilock tanpa mengganggu kelompok row lain. Bahkan ada pengguna MySQL yang membelah sebuah tabel besar berisi jutaan record menjadi ribuan tabel kecil-kecil.

Stabilitas

Keduanya sudah bisa dibilang cukup hingga amat stabil. Tapi perlu diingat bahwa database manapun—bahkan Oracle—sesekali dapat menyebabkan kerusakan data. Karena itu backup/history periodik dan incremental tetap diperlukan.

Fungsi Built-In

MySQL terkenal kaya fungsi built-in, seperti modifikasi string (REPLACE, RIGHT, LTRIM, LCASE), matematika (LOG, LOG10), tanggal, dsb. Dalam hal ini MySQL lebih unggul.

Interface

Keduanya sudah amat solid. Mulai dari API C/C++, driver database Perl/Python/PHP/Tcl, ODBC, JDBC telah didukung. Anda tidak akan kesulitan menggunakan database ini dari berbagai sistem dan bahasa pemrograman. MySQL juga mendukung OLEDB dan memiliki versi embedded untuk dilink bersama aplikasi buatan Anda sendiri.

Full Text Indexing

MySQL mendukung indeks full text secara natif. PostgreSQL mendukung full text searching lewat program lain (contohnya: OpenFTS, openfts.sourceforge.net) yang memanfaatkan tipe data arraynya untuk menyimpan indeks dokumen. Secara umum dapat dikatakan bahwa indexing dengan MySQL lebih praktis, tapi dengan program ketiga lebih banyak fitur dan opsi yang bisa diatur (mis: stemming, parsing kata non-Inggris, dsb). MySQL juga, tentu saja, dapat dipakai sebagai backend bagi program search eksternal (contoh: DBIx::KwIndex, search.cpan.org/search?dist=DBIx-KwIndex), meski mungkin tidak seefisien dibandingkan array di PostgreSQL.

Replikasi

Keduanya sudah memiliki replikasi, meski replikasi di MySQL barulah satu arah. Replikasi di PostgreSQL sendiri belum disertakan dalam distribusi standarnya, namun Anda dapat mengunjungi situs gborg.postgresql.org/project/pgreplication/ (proyek pgreplication).

Manajemen User dan Keamanan

Kedua database menyimpan informasi user di sebuah database khusus. Sistem perizinan MySQL lebih mendetil daripada PostgreSQL. Misalnya, kita dapat mengeset agar user tertentu yang datang dari host tertentu hanya bisa membaca tabel saja tanpa bisa UPDATE. Di PostgreSQL ini masih bisa dilakukan dengan VIEW misalnya.

Untuk masalah enkripsi koneksi, keduanya mendukung SSL. Ada ekstensi PKIX bagi PostgreSQL yang menarik, sebab dapat membuat tabel terenkripsi: http://www.dimensional.com/~bgiles/pkixdoc/.

Tool Web/GUI

MySQL AB mengklaim lebih banyak tool grafis/web yang tersedia untuk MySQL, dan ini nampaknya cukup benar.

Tipe Data

PostgreSQL lebih kaya dalam hal tipe data (terutama yang domain-specific seperti tipe data geometris dan MONEY), tapi MySQL sudah mendukung semua tipe data umum.

Di PostgreSQL sebelum 7.1, masih ada keterbatasan yang cukup menyesakkan yaitu ukuran data BLOB maksimum adalah 8–32KB. Sejak 7.1, PostgreSQL juga dapat menyimpan data BLOB besar.

CHAR dan VARCHAR di PostgreSQL dapat menampung hingga 8 juta karakter (bandingkan dengan MySQL yang hanya 255).

Modifikasi Tabel

MySQL lebih fleksibel dalam ALTER TABLE. PostgreSQL sendiri terbatas hanya bisa melakukan penambahan kolom, penggantian nama kolom, dan penggantian nama tabel. MySQL mendukung penambahan/penghapusan kolom, penggantian definisi kolom, dsb.

Fitur OO dan SQL

Dalam waktu beberapa tahun PostgreSQL akan tetap memiliki fitur yang lebih lengkap dibandingkan MySQL. Lebih banyak fitur dari standar SQL92 yang diimplementasi oleh PostgreSQL. MySQL bahkan belum mendukung subselek. View, trigger, foreign key checking (meski ini sudah ada di InnoDB) dan stored procedure semua hanya ada di PostgreSQL. Sebagai pengembang yang memutuskan memilih salah satu database, Anda perlu menanyakan kepada diri sendiri dulu apakah ingin lebih bersusah-payah melakukan code around fasilitas-fasilitas yang tidak ada di MySQL tersebut melalui bahasa pemrograman (misalnya, stored procedure diganti dengan user-defined function, subselek diganti beberapa kali SQL yang dibungkus dengan locking, dan tidak ada “trigger” berarti Anda harus melakukan pengecekan secara manual). Jika tidak ingin repot, lebih baik memilih PostgreSQL. Tapi jika tidak butuh fitur SQL yang rumit-rumit, Anda masih punya kebebasan memilih satu dari dua.

Di samping itu MySQL pun tidak memiliki fitur OO seperti pewarisan tabel dan tipe data, atau tipe data array yang kadang praktis untuk menyimpan banyak item data di dalam satu record.

Fitur Unik

MySQL memiliki arsitektur yang memungkinkan sebuah database terdiri dari beberapa jenis tabel, misalnya: yang transaksional dan tidak, yang berbasis di memori atau di disk, yang terkompresi dan yang read-only. MySQL mendukung protokol terkompresi yang bisa menghemat bandwidth dan mengurangi latensi.

PostgreSQL memiliki tipe data array, pewarisan tabel dan tipe data, serta sistem rule. PostgreSQL memiliki tipe-tipe data “antik.” Di PostgreSQL Anda dapat menulis stored procedure (atau procedural language, istilah di PostgreSQL) dalam beberapa bahasa: PL/Perl, PL/Tcl, atau PL/PgSQL. PostgreSQL mendukung set/himpunan.

Baca Selengkapnya...

Bagaimana Database Oracle Memandang Perintah SQL?

Sebagaimana lazimnya, sebuah perintah SQL diketik berdasarkan permintaan yang diinginkan. Misal kita ingin melihat seluruh isi tabel dept (deptno, dname, loc) yang dimiliki oleh scott. Perintah-perintah yang bisa dilakukan bervariasi, misalnya :

SQL> connect scott/tiger

à login sebagai scott

SQL> select * from dept;

SQL> select deptno, dname, loc from dept;

SQL> select * from scott.dept;

SQL> select * from SCOTT.dept;

SQL> select * from SCOTT.DEPT;

Semua perintah SQL di atas menghasilkan output sama, yaitu semua isi tabel dept. Seringkali kita menganggap bahwa jika hasil sesuai dengan yang diinginkan, maka apa pun perintah yang kita tulis sah-sah saja. Apakah memang seperti itu? Mari kita lihat bagaimana cara Oracle memandang perintah SQL yang kita kirim.

1. Bila semua user menggunakan perintah sama

a. User scott grant select on dept to public agar semua user bisa mengakses tabel dept

SQL> connect scott/tiger

SQL> grant select on dept to public;

b. Shutdown Oracle untuk memastikan memori (SGA) belum pernah digunakan

SQL> connect sys/inix2009 as sysdba

SQL> shutdown immediate;

SQL> startup

c. Buka SQL window I

SQL> connect scott/tiger

SQL> select * from scott.dept

d. Buka SQL window II

SQL> connect hr/hr

SQL> select * from scott.dept

e. Buka SQL window III

SQL> connect system/inix2009

SQL> select * from scott.dept

f. Buka SQL window IV

SQL> connect sys/inix2009 as sysdba

SQL> select * from scott.dept

g. Lihat bagaimana perintah-perintah tersebut dipandang oleh Oracle

SQL> connect sys/inix2009 as sysdba

SQL> desc v$sqltext;

Name Null? Type

————————— ——– ————

ADDRESS RAW(4)

HASH_VALUE NUMBER

SQL_ID VARCHAR2(13)

COMMAND_TYPE NUMBER

PIECE NUMBER

SQL_TEXT VARCHAR2(64)

SQL> select address, sql_text

from v$sqltext

where lower(sql_text) like ‘%dept%’;

ADDRESS SQL_TEXT

——– ——————————————

51341368 ere lower(sql_text) like ‘%dept%’

513733B8 select * from scott.dept

. . .

Terlihat bahwa Oracle memandang semua perintah sama sehingga hanya terlihat satu buah perintah di Shared Pool, yaitu “select * from scott.dept”. Hal ini menghemat ukuran Shared Pool sekaligus mempercepat proses karena perintah yang ditulis dianggap sama.

2. Bila setiap user menggunakan perintah berbeda yang penting hasil sama

a. Shutdown Oracle untuk memastikan memori (SGA) belum pernah digunakan

SQL> connect sys/inix2009 as sysdba

SQL> shutdown immediate;

SQL> startup

b. Buka SQL window I

SQL> connect scott/tiger

SQL> select * from dept

c. Buka SQL window II

SQL> connect scott/tiger

SQL> select deptno, dname, loc from dept

d. Buka SQL window III

SQL> connect hr/hr

SQL> select * from scott.dept

e. Buka SQL window IV

SQL> connect system/inix2009

SQL> select * from SCOTT.dept

f. Buka SQL window V

SQL> connect sys/inix2009 as sysdba

SQL> select * from SCOTT.DEPT

g. Lihat bagaimana perintah-perintah tersebut dipandang oleh Oracle

SQL> connect sys/inix2009 as sysdba

SQL> select address, sql_text

from v$sqltext

where lower(sql_text) like ‘%dept%’;

ADDRESS SQL_TEXT

——– ———————————————

5238ABEC select * from SCOTT.dept

52305E74 where lower(sql_text) like ‘%dept%’

5237F020 select * from SCOTT.DEPT

52389C30 select * from scott.dept

523A67DC select * from dept

523A21A0 select deptno, dname, loc from dept

Terlihat bahwa Oracle memandang perintah-perintah tersebut berbeda walaupun hasilnya sama, yaitu semua isi tabel dept. Hal ini memboroskan pemakaian Shared Pool sekaligus memperlambat proses karena perintah yang ditulis dianggap berbeda.

Kesimpulan :

Setiap orang harus menggunakan perintah sama untuk sebuah hasil yang diinginkan. DBA berkewajiban membuat standardisasi perintah SQL untuk digunakan oleh programmer dan siapa pun yang berkaitan.

Baca Selengkapnya...