Lewati ke isi
ORACLEDECK

Topik 07

Independensi Basis Data Terdistribusi

Independensi perangkat keras, sistem operasi, jaringan, dan basis data.

Kemampuan akhir yang diharapkan. Memahami konsep independensi dan kebutuhan penerapannya dalam basis data terdistribusi.

Empat tingkat independensi

TingkatArtiDiuji dengan pertanyaan
Perangkat kerasSistem berjalan tanpa peduli arsitektur mesin dan panjang kataBisakah satu situs diganti server merek lain tanpa mengubah aplikasi?
Sistem operasiSistem berjalan di atas OS yang berbeda-bedaBisakah satu situs pakai Linux dan lainnya Windows?
JaringanPerintah yang sama berlaku lokal maupun lintas mesinApakah cp dan rcp masih dibedakan pengguna?
Basis dataProduk DBMS di tiap situs boleh berbedaBisakah satu situs pakai Oracle dan lainnya PostgreSQL?

Dua jenis kebebasan data

  • Kebebasan data logis — kekebalan aplikasi terhadap perubahan struktur logis. Menambah atribut baru pada relasi tidak boleh memengaruhi aplikasi yang hanya memakai sebagian atribut.
  • Kebebasan data fisik — penyembunyian rincian struktur penyimpanan. Saat aplikasi ditulis, organisasi fisik data tidak perlu diperhatikan.

Siapa yang menyediakan transparansi

LapisPenyediaKenyataannya
1Bahasa pemrogramanCompiler atau interpreter menerjemahkan permintaan layanan ke operasi; tidak ada layanan transparan untuk compiler itu sendiri
2Sistem operasiAkses transparan ke sumber daya diperluas ke distribusi — sayangnya tidak semua OS punya manajemen jaringan ini
3DBMSDBMS menanggung hampir semua penerjemahan dari OS ke antarmuka pengguna tingkat tinggi

Karena lapis 1 dan 2 jarang menyediakan transparansi yang memadai, beban itu jatuh hampir seluruhnya ke DBMS. Itulah sebabnya fitur seperti database link dan sinonim ada di Oracle, bukan di sistem operasi.

Coba di terminal

Kueri di bawah memperagakan konsep topik ini pada data sungguhan. Tekan ▶ Jalankan untuk membukanya di Terminal SQL, lalu ubah sesuka hati — sesi terminal adalah salinan pribadi di peramban Anda.

Independensi data logis

Tabel dasar berubah (tabel baru ditambah), aplikasi yang memakai view lama tidak perlu diubah. rumahsakit

CREATE VIEW v_pasien_ringkas AS SELECT id_pasien, nama_pasien, kota FROM pasien;
CREATE TABLE catatan_alergi (id_pasien NUMBER(8) REFERENCES pasien, alergi VARCHAR2(60));
SELECT * FROM v_pasien_ringkas FETCH FIRST 3 ROWS ONLY;

Independensi fisik: indeks tidak mengubah hasil

Menambah struktur penyimpanan hanya mengubah jalur akses. rumahsakit

SELECT COUNT(*) FROM pasien_dokter WHERE id_dokter = 3;
CREATE INDEX ix_pd_dokter ON pasien_dokter (id_dokter);
SELECT COUNT(*) FROM pasien_dokter WHERE id_dokter = 3;

Jalankan sendiri

Sumber: Modul 6 bagian Transparansi pada DDBMS; Modul 1 (RPS pekan 7)