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
| Tingkat | Arti | Diuji dengan pertanyaan |
|---|---|---|
| Perangkat keras | Sistem berjalan tanpa peduli arsitektur mesin dan panjang kata | Bisakah satu situs diganti server merek lain tanpa mengubah aplikasi? |
| Sistem operasi | Sistem berjalan di atas OS yang berbeda-beda | Bisakah satu situs pakai Linux dan lainnya Windows? |
| Jaringan | Perintah yang sama berlaku lokal maupun lintas mesin | Apakah cp dan rcp masih dibedakan pengguna? |
| Basis data | Produk DBMS di tiap situs boleh berbeda | Bisakah 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
| Lapis | Penyedia | Kenyataannya |
|---|---|---|
| 1 | Bahasa pemrograman | Compiler atau interpreter menerjemahkan permintaan layanan ke operasi; tidak ada layanan transparan untuk compiler itu sendiri |
| 2 | Sistem operasi | Akses transparan ke sumber daya diperluas ke distribusi — sayangnya tidak semua OS punya manajemen jaringan ini |
| 3 | DBMS | DBMS 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
Tangga Transparansi
Satu kueri ditulis ulang pada lima tingkat transparansi, dengan ukuran kebocoran detailnya.
Studi Kasus Kependudukan
Skripsi Oracle XE + MySQL lewat ODBC: NIK ganda yang lolos UNIQUE lokal, dan mengapa gateway tidak bisa 2PC.
Sumber: Modul 6 bagian Transparansi pada DDBMS; Modul 1 (RPS pekan 7)