Selasa, 09 Oktober 2012

RDBMS

1.1 PENGERTIAN, PENGGUNAAN, SERTA PRINSIP RDBMS

PENGERTIAN
Relational Database Management System (RDBMS) atau Sistem Manajemen Basisdata Relasional adalah sebuah program komputer (atau secara lebih tipikal adalah seperangkat program komputer) yang didisain untuk mengatur/memanajemen sebuah basisdata sebagai sekumpulan data yang disimpan secara terstruktur, dan melakukan operasi-operasi atas data atas permintaan penggunanya. 

PENGGUNAAN
Contoh penggunaan DBMS ada banyak sekali dan dalam berbagai bidang kerja, misalnya akuntansi, manajemen sumber daya manusia, dan lain sebagainya. Meskipun pada awalnya DBMS hanya dimiliki oleh perusahaan-perusahaan berskala besar yang memiliki perangkat komputer yang sesuai dengan spesifikasi standar yang dibutuhkan (pada saat itu standar yang diminta dapat dikatakan sangat tinggi) untuk mendukung jumlah data yang besar, saat ini implementasinya sudah sangat banyak dan adaptatif dengan kebutuhan spesifikasi data yang rasional sehingga dapat dimiliki dan diimplementasikan oleh segala kalangan sebagai bagian dari investasi perusahaan.

3 PRINSIP DALAM RDBMS :
  • Data definition
    Mendefinisikan jenis data yang akan dibuat (dapat berupa angka atau huruf), cara relasi data, validasi data dan lainnya.
  • Data Manipulation
    Data yang telah dibuat dan didefinisikan tersebut akan dilakukan beberapa pengerjaan, seperti menyaring data, melakukan proses query, dsb.
  • Data Control
    Bagian ini berkenaan dengan cara mengendalikan data, seperti siapa saja yang bisa melihat isi data, bagaimana data bisa digunakan oleh banyak user, dsb.
Semua operasi input dan output yang berhubungan dengan database harus menggunakan DBMS. Bila pemakai akan mengakses database, DBMS menyediakan penghubung (interface) antara pemakai dengan database.

1.2 PENGENALAN DB2

DB2 merupakan DBMS buatan IBM. Pertama kali dibuat pada tahun 1983 di MVS. Pada tahun 1996, IBM mengeluarkan DB2 UDB v5. Pada versi ini DB2 mendukung untuk penyimpanan berbagai macam tipe data seperti audio, video dan text.
DB2 9 merupakan release terbaru. Versi ini seperti para pendahulunnya dapat berjalan di berbagai platform seperti AIX, HP-UK, Linux, Solaris, Windows, i5/OS dan z/OS. Pada versi ini terdapat beberapa jenis seperti yang ada dibawah. Semakin besar angka semakin besar skalanya, semakin banyak fiturnya, dan tentunya semakin mahal.


1. DB2 Everyplace
Versi ini merupakan versi DB2 yang terkecil, berukurang hanya sekitar 350kb. Versi ini dibuat untuk para pengguna handheld seperti PDA, smartphone

2. DB2 Express
Versi ini merupakan entry level data server yang didesign untuk komputer yang memiliki hingga 2 CPU dan memory hingga 4GB dan memiliki sistem operasi Linux, Solaris atau Windows. Ada beberapa fitur penting di versi ini yaitu
- pureXML : menyediakan akses yang sederhana dan efisien ke data XML dengan keamanan dan integritas yang sama dengan relational data.
- High Availability : menyediakan ketahanan 24 x 7 pada DB2 data server. 3 bagian yang menyusun fitur ini adalah HADR, Online Reorganization, dan IBM TSA MP.
- Workload Management : fitur ini aktif memonitoring penggunaan query dan mengaturnya agar berjalan secara efisien.
- Performance Optimization : fitur ini mengkombinasikan 3 modul yaitu MQT, MDC dan Query Parallelism.
- DB2 Homogenous Federation Feature : fitur ini menyediakan kemampuan untuk mengatur dan mengakses multiple data server.

3. DB2 Express-C
Versi ini merupakan entry level data server yang didesign untuk komputer yang memiliki hingga 2 CPU dan memory hingga 4GB dan memiliki sistem operasi Linux, atau Windows. Versi ini dapat digunakan untuk tujuan evaluasi dan dapat digunakan secara gratis. Ada beberapa fitur penting di versi ini yaitu
- Spatial Extender Client and samples
- Microsoft Cluster Server support
- Informix Data Source support
- Replication Data Capture
- DB2 Web Tools
- Global Secure Toolkit
- APPC and NetBios support

4. DB2 Personal Edition
Merupakan DBMS untuk single user yang ideal untuk desktop ataupun laptop. Dapat digunakan untuk create, modifikasi dan mengatur banyak database lokal.

5. DB2 Workgroup Server Edition
Versi ini merupakan DBMS untuk multi user, client/ server yang didesign untuk komputer yang memiliki hingga 4 CPU dan memory hingga 16GB dan memiliki sistem operasi Linux, Windows, Solaris, Linux, AIX dll. Memiliki fitur yang sama dengan DB2 Express namun dengan skala yang lebih besar.

6. DB2 Enterprise Server Edition
Versi ini merupakan DBMS untuk multi user, web enabled client/ server yang dapat menangani transaksi besar, multi terabyte data warehouse. Dapat berjalan di server dari 1 hingga ratusan CPU dengan sistem operasi Linux, Windows, Solaris, Linux, AIX dll. Mempunyai fitur seperti DB2 workgroup dengan tambahan
• High Availability Disaster Recovery (HADR)
• Table (range) partitioning
• Online reorganization
• Materialized Query Tables
• Multi-dimensional data clustering
• Full intra-query parallelism
• Connection Concentrator
• The DB2 Governor
• Tivoli System Automation for Multiplatforms (TSA MP)

7. DB2 Data Warehouse Edition
Merupakan versi yang digunakan untuk data warehouse dinamis. Merupakan gabungan dari DB2 enterprise server ditambah fitur DB2 data partitioning.

8. DB2 Personal Developer’s Edition
Versi ini dapat digunakan pengembang untuk membuat aplikasi yang berinteraksi dengan database yang berada dalam kontrol DB2 personal edition. Dengan menggunakan versi ini, pengembang dapat membuat aplikasi yang berinteraksi dengan DB2 9 dengan metode seperti SQL, SQLJ, .NET, JDBC dll.
Masih ada beberapa versi lain dario DB2 seperti DB2 universal Developer, DB2 enterprise developer, DB2 for i5/OS dan DB2 for z/OS.

Mengapa DB2 banyak digunakan :
• Memenuhi kebutuhan bisnis untuk aplikasi-aplikasi baru
• Scalable across
• Menawarkan Open hardware dan system integration
• Integrated Tools dan Usability enhancements 


1.3 SEJARAH DAN PENGENALAN (PENGERTIAN) 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).
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 :
  • Dapat bekerja di lingkungan client/server (pemrosesan tersebar)
  • Menangani manajemen space dan basis data yang besar
  • Mendukung akses data secara simultan
  • Performansi pemrosesan transaksi yang tinggi
  • Menjamin ketersediaan yang terkontrol
  • Lingkungan yang terreplikasi
Database merupakan salah satu komponen dalam teknologi informasi yang mutlak diperlukan oleh semua organisasi yang ingin mempunyai suatu sistem informasi yang terpadu untuk menunjang kegiatan organisasi demi mencapai tujuannya. Karena pentingnya peran database dalam sistem informasi, tidaklah mengherankan bahwa terdapat banyak pilihan software Database Management System (DBMS) dari berbagai vendor baik yang gratis maupun yang komersial. Beberapa contoh DBMS yang populer adalah MySQL, MS SQL Server, Oracle, IBM DB/2, dan PostgreSQL.
Oracle merupakan DBMS yang paling rumit dan paling mahal di dunia, namun banyak orang memiliki kesan yang negatif terhadap Oracle. Keluhan-keluhan yang mereka lontarkan mengenai Oracle antara lain adalah terlalu sulit untuk digunakan, terlalu lambat, terlalu mahal, dan bahkan Oracle dijuluki dengan istilah “ora kelar-kelar” yang berarti “tidak selesai-selesai” dalam bahasa Jawa. Jika dibandingkan dengan MySQL yang bersifat gratis, maka Oracle lebih terlihat tidak kompetitif karena berjalan lebih lambat daripada MySQL meskipun harganya sangat mahal.
Namun yang mereka tidak perhitungkan adalah bahwa Oracle merupakan DBMS yang dirancang khusus untuk organisasi berukuran besar, bukan untuk ukuran kecil dan menengah. Kebutuhan organisasi berukuran besar tidaklah sama dengan organisasi yang kecil atau menengah yang tidak akan berkembang menjadi besar. Organisasi yang berukuran besar membutuhkan fleksibilitas dan skalabilitas agar dapat memenuhi tuntutan akan data dan informasi yang bervolume besar dan terus menerus bertambah besar.


 1.4  INTERAKSI PL/SQL DENGAN ORACLE

Contoh Cursor Variable: Master Table dan Details Table

Mari kita perhatikan stored procedure di bawah ini, yang mencari database dari perpustakaan utama untuk buku, majalah, dan tape. Tabel master menyimpan judul dan kode kategori (dimana 1=buku, 2=majalah, 3=tape) untuk setiap item. Tiga tabel detail menyimpan informasi spesifik dari setiap kategori. Ketika tipanggil, procedure tesrebut mencari tabel master berdasarkan judul, menggunakan kode kategori terkait untuk membuka perintah OPEN-FOR, lalu membuka cursor variable untuk query dari tabel detail yang tepat.
========================================================================
CREATE PACKAGE cv_types AS
TYPE LibCurTyp IS REF CURSOR;
...
END cv_types;
CREATE PROCEDURE find_item (
title VARCHAR2(100),
lib_cv IN OUT
cv_types.LibCurTyp)
AS
code BINARY_INTEGER;
BEGIN
SELECT item_code
FROM titles INTO code
WHERE item_title = title;
IF code = 1 THEN
OPEN lib_cv FOR SELECT * FROM books
WHERE book_title = title;
ELSIF code = 2 THEN
OPEN lib_cv FOR SELECT * FROM periodicals
WHERE periodical_title = title;
ELSIF code = 3 THEN
OPEN lib_cv FOR SELECT * FROM tapes
WHERE tape_title = title;
END IF;
END find_item;
========================================================================

Contoh Cursor Variable: Pro*C Program

Program Pro*C berikut ini menanyakan kepada user untuk memilih database table, membuka cursor variable untuk query dari table tersebut, lalu melakukan fetch baris-baris data yang dihasilkan oleh query tersebut:
========================================================================
#include
#include
void sql_error();
main()
{
char temp[32];
EXEC SQL BEGIN DECLARE SECTION;
char * uid = "scott/tiger";
SQL_CURSOR generic_cv; /* cursor variable */
int table_num; /* selector */
struct /* EMP record */
DEPT record */
{
int dept_num;
char dept_name[15];
char location[14];
} dept_rec;
struct /* BONUS record */
{
char emp_name[11];
char job_title[10];
float salary;
} bonus_rec;
EXEC SQL END DECLARE SECTION;
/* Handle Oracle errors. */
EXEC SQL WHENEVER SQLERROR DO sql_error();
/* Connect to Oracle. */
EXEC SQL CONNECT :uid;
/* Initialize cursor variable. */
EXEC SQL ALLOCATE :generic_cv;
/* Exit loop when done fetching. */
EXEC SQL WHENEVER NOT FOUND DO break;
for (;;)
{
printf("\n1 = EMP, 2 = DEPT, 3 = BONUS");
printf("\nEnter table number (0 to quit): ");
gets(temp);
table_num = atoi(temp);
if (table_num <= 0) break;
/* Open cursor variable. */
EXEC SQL EXECUTE
BEGIN
IF :table_num = 1 THEN
OPEN :generic_cv FOR SELECT * FROM emp;
ELSIF :table_num = 2 THEN
OPEN :generic_cv FOR SELECT * FROM dept;
ELSIF :table_num = 3 THEN
OPEN :generic_cv FOR SELECT * FROM bonus;
END IF;
END;
END-EXEC;
for (;;)
{
switch (table_num)
{
case 1: /* Fetch row into EMP record. */
EXEC SQL FETCH :generic_cv INTO :emp_rec;
break;
case 2: /* Fetch row into DEPT record. */
EXEC SQL FETCH :generic_cv INTO :dept_rec;
break;
case 3: /* Fetch row into BONUS record. */
EXEC SQL FETCH :generic_cv INTO :bonus_rec;
break;
}
/* Process data record here. */
}
/* Close cursor variable. */
EXEC SQL CLOSE :generic_cv;
}
exit(0);
}
void sql_error()
{
/* Handle SQL error here. */
}

========================================================================

Contoh Cursor Variable: Memanipulasi Host Variables di dalam SQL*Plus

Host variable adalah variable untuk mendeklarasikan di dalam host environment, lalu melewatkannya ke satu atau lebih program-program PL/SQL, yang mana kita dapat menggunakannya seperti variable lainnya. Dalam lingkungan SQL*Plus, untuk mendeklarasikan host variable, kita menggunakan perintah VARIABLE. Sebagai contoh, kita mendeklarasikan variable dengan tipe NUMBER seperti di bawah ini:
VARIABLE return_code NUMBER
Baik SQL*Plus maupun PL/SQL dapat mereferensi host variable, dan SQL*Plus dapat menampilkan nilainya. Namun, untuk mereferensi host variable di dalam PL/SQL, kita harus mengawali namanya dengan tanda titik dua (:), seperti ditunjukkan oleh contoh berikut ini:

========================================================================
DECLARE
...
BEGIN
:return_code := 0;
IF credit_check_ok(acct_no) THEN
:return_code := 1;
END IF;
...
END;
Untuk menampilkan nilai dari host variable di dalam SQL*Plus, kita menggunakan perintah PRINT, seperti berikut ini:
SQL> PRINT return_code
RETURN_CODE
-----------
1
Tipe data SQL*Plus yaitu REFCURSOR mengijinkan kita untuk mendeklarasikan host variables, yang mana kita dapat menggunakannya untuk mengembalikan hasil-hasil query dari stored subprograms. Dalam script di bawah ini, kita mendeklarasikan host variable dari REFCURSOR. Kita menggunakan perintah SET AUTOPRINT dari SQL*Plus untuk menampilkan hasil-hasil query secara otomatis.
CREATE PACKAGE emp_data AS
TYPE EmpRecTyp IS RECORD (
emp_id NUMBER(4),
emp_name VARCHAR2(10),
job_title VARCHAR2(9),
dept_name VARCHAR2(14),
dept_loc VARCHAR2(13));
TYPE EmpCurTyp IS REF CURSOR RETURN EmpRecTyp;
PROCEDURE get_staff (dept_no IN NUMBER, emp_cv IN OUT EmpCurTyp);
END;
/
CREATE PACKAGE BODY emp_data AS
PROCEDURE get_staff (dept_no IN NUMBER, emp_cv IN OUT EmpCurTyp) IS
BEGIN
OPEN emp_cv FOR
SELECT empno, ename, job, dname, loc FROM emp, dept
WHERE emp.deptno = dept_no AND emp.deptno = dept.deptno
ORDER BY empno;
END;
END;
/
COLUMN EMPNO HEADING Number
COLUMN ENAME HEADING Name
COLUMN JOB HEADING JobTitle
COLUMN DNAME HEADING Department
COLUMN LOC HEADING Location
SET AUTOPRINT ON
VARIABLE cv REFCURSOR
EXECUTE emp_data.get_staff(20, :cv)

========================================================================





  

1 komentar: