Kamis, 04 Februari 2010

Bagian V: Multidatabase dan Arsitektur Client/Server (Penutup: Contoh Sistem dengan Oracle)

Pengantar: Posting terakhir ini akan membahas aspek multidatabase, termasuk proses pembuatannya dengan proses integrasi basis data, juga aplikasi pendukung basis data terdistribusi, yaitu arsitektur klien/server. Sebagai penutup akan dibahas pula contoh sistem basis data terdistribusi menggunakan Oracle.

Multidatabase

Suatu sistem basis data terdistribusi adakalanya dibentuk dari beberapa basis data yang berlainan. Sistem seperti ini disebut multidatabase, yang pembentukannya dilakukan dengan integrasi basis data. Dalam melakukan integrasi ini, boleh jadi ada ketidakseragaman antara basis data-basis data yang membentuknya dan mengakibatkan konflik, baik konflik skema (akibat ketidakseragaman skema relasi) maupun konflik data (akibat ketidakakuratan isi, misalnya presisi, besaran dan satuan, juga data yang tidak tepat atau sudah tidak berlaku [obsolete]). Oleh karena itu, perlu diperhatikan metode penyelesaian konflik yang terjadi.

Penyelesaian konflik saat integrasi basis data harus memerlukan analisis yang mendalam akan komponen basis data dan tidak dapat diotomatisasi. Adapun sebelum dilakukan integrasi, komponen basis data harus dipersiapkan terlebih dahulu, khususnya untuk penanganan konflik. Proses ini disebut restrukturisasi. Ilustrasi restrukturisasi dan integrasi basis data dapat dilihat pada bagan berikut:

fig5-1

Bagan Proses Restrukturisasi dan Integrasi Basis Data

Penyelesaian konflik pada restrukturisasi (untuk integrasi) basis data dapat dilakukan dengan menggunakan view, yaitu relasi/tabel bentukan virtual yang bukan bagian dari skema relasi itu sendiri, tetapi dapat diperlakukan sebagaimana relasi melalui query dan view lain. View hanya perlu disimpan definisinya di kamus data tanpa perlu relasinya.

Berikut ini adalah konflik yang dapat terjadi pada proses integrasi basis data berikut contoh penanganannya:

  • konflik antartabel
    • antara dua tabel
      • nama tabel (homonim/sinonim), dapat diselesaikan dengan definisi view sendiri
      • struktur tabel, seperti jumlah atribut berbeda di dua tabel yang informasinya sama, dapat diselesaikan dengan membuang atribut yang keberadaannya tidak di semua relasi atau menambahkan atribut yang kurang pada relasi yang kekurangan atribut (bila perlu dengan nilai default-nya)
      • integrity constraint, misalnya pada dua situs terdapat tabel yang sama tetapi isi atribut primary key-nya berbeda, dapat diselesaikan dengan memberikan primary key tambahan yang berisi informasi situs relasi itu disimpan
    • antara banyak tabel, misalnya pada dua komponen basis data jumlah relasinya tidak sama tetapi informasinya sama, dapat diselesaikan dengan penggabungan relasi dengan view
  • konflik antaratribut
    • antara dua atribut
      • nama atribut (homonim/sinonim), dapat diselesaikan dengan penggantian nama (rename) atribut di view
      • integrity constraint, misal tipe data, dapat diselesaikan dengan fungsi-fungsi konversi, seperti to_char(int) atau to_int(char), pada view
    • antara banyak atribut, misalnya dalam penyimpanan informasi nama orang dalam tabel yang satu digunakan dua atribut (kolom): nama depan dan nama belakang, sementara pada tabel yang lain digunakan satu atribut nama lengkap; konflik ini dapat diselesaikan dengan penggabungan string atau pemisahan string dengan fungsi substring
  • konflik tabel-atribut, dapat merupakan kombinasi dari permasalahan di atas

Arsitektur Klien/Server

Basis data terdistribusi adalah bagian dari sistem komputer terdistribusi. Arsitektur klien/server adalah model arsitektur perangkat lunak yang umum digunakan dalam sistem ini. Sistem dipisahkan antara klien dan server; kerjanya adalah sebagai berikut: sistem klien melakukan permintaan dan sistem server memproses permintaan tersebut. Fungsionalitas dalam arsitektur klien/server dapat dibagi menjadi tiga, yaitu:

  • fungsi presentasi, mencakup antarmuka seperti peranti input dan form
  • fungsi aplikasi, spesifik terhadap aplikasi yang digunakan
  • fungsi manajemen data, yang mengelola akses data dalam arsip atau basis data

Bagan ilustrasi arsitektur klien/server adalah sebagai berikut:

fig5-2

Fungsionalitas basis data pada arsitektur klien/server dibagi menjadi dua:

  • front-end, berhubungan dengan pengguna dan mencakup penanganan masukan, antarmuka pengguna, dan pembuatan report.
  • back-end, berhubungan dengan akses data dan penanganan query, kontrol concurrency, dan recovery

Untuk menghubungkan keduanya, digunakan SQL atau application program interface, dapat berupa ODBC atau JDBC.

Ada dua jenis sistem server yang umum digunakan, yaitu server transaksi dan server data. Perbedaannya adalah

  • pada server transaksi, klien hanya perlu mengirimkan permintaan melalui application program interface, seperti ODBC dan JDBC; selanjutnya serangkaian prosedur (transaksi) yang berhubungan dengan pemrosesan query dijalankan di server
  • pada server data, seluruh fungsionalitas back-end dilakukan di klien, termasuk pemrosesan query data; server mengirimkan seluruh data yang diminta ke klien, bukan hasil query

Contoh Sistem: Sistem Basis Data Terdistribusi dengan Oracle

Basis data terdistribusi dapat diimplementasikan dengan berbasiskan sistem Oracle. Dalam implementasinya, sistem basis data terdistribusi dengan Oracle dapat digolongkan menjadi dua:

  • sistem basis data terdistribusi homogen: seluruh sistem menggunakan basis data Oracle yang bertempat di satu atau beberapa mesin; Oracle yang digunakan boleh jadi berbeda versi, tetapi aplikasi harus dapat memahami perbedaan fungsionalitas yang ada di setiap simpul (basis data) sistem
    fig5-3

    Ilustrasi Sistem Basis Data Terdistribusi Homogen

  • sistem basis data terdistribusi heterogen: sedikitnya satu sistem bagian tidak menggunakan basis data Oracle; agar dapat saling berkomunikasi, perbedaan ini dapat dijembatani dengan menerapkan salah satu dari berikut:
    • Oracle Transparent Gateway yang menggunakan layanan heterogen pada server Oracle (Oracle Heterogenous Services) dan agen yang spesifik terhadap sistem pada sistem non-Oracle
    • konektivitas generik (generic connectivity), yang dapat diimplementasikan di server Oracle dan berupa Heterogenous Services ODBC agent atau Heterogenous OLE DB agent; dengan mengimplementasikannya, tidak diperlukan lagi aplikasi agen yang spesifik-sistem, tetapi sumber data harus kompatibel dengan ODBC atau OLE DB agar dapat diakses
      fig5-4

      Ilustrasi Sistem Basis Data Terdistribusi Heterogen

Tidak ada komentar:

Posting Komentar