Friday, July 19, 2013

Sifat Basis Data / Database

Berikut adalah kutipan dari Blogger lain mengenai beberapa sifat database. Kutipan artikel tersebut saya edit, atas dasar pengalaman saya pribadi dan beberapa teori yang mungkin tidak sejalan atau sepaham dengan penulis aslinya. Selamat membaca. :)

1. Berbagi Data
Data yang disimpan didalam basis data tidak secara umum dipegang semata-mata untuk hanya digunakan oleh seseorang. Suatu basis data secara normal diharapkan bisa diakses oleh lebih dari satu orang, dan mungkin pada waktu yang bersamaan.


Contoh :
  • Supermarket. Data penjualan bisa diakses oleh sistem pengontrol persediaan dan sistem informasi manajemen.
  • Rumah Sakit. Dalam melakukan pengelolaan data historikal penyakit / pengobatan pasien, menangani pembayaran, perawatan, bisa diakses oleh dokter, suster dan bagian apotek, staff admin, dsb.
  • Institusi Pendidikan / Sekolah. Dalam melakukan pengelolaan data siswa, penjadwalan kegiatan, perkuliahan, nilai, data bisa di akses oleh guru, kepala sekolah, dan staff TU, serta murid yang berkepentingan.

2. Integrasi Data
Integrasi data adalah suatu proses menggabungkan atau menyatukan data yang berasal dari sumber yang berbeda dan mendukung pengguna untuk melihat kesatuan data. Integrasi data dibutuhkan seiring dengan perkembangan organisasi dan meningkatnya bisnis proses pada institusi tersebut yang saling membutuhkan data-data dan informasi dari divisi atau unit-unit yang berada pada organisasi tersebut.

Tahap-tahap pengembangan dari integrasi bisnis proses adalah : 

  • Meninjau dan menganalisis setiap SOP (Standard Operating Procedure) setiap unit.
  • Analisis keterkaitan proses berdasarkan SOP antar unit.
  • Gunakan tools work flow diagram untuk memudahkan proses integrasi.
  • Buat kesepakatan dan kesepahaman antar pihak manajemen disetiap unit.
Contoh : 
  • Data Warehouse. Sebuah bank memerlukan integrasi data antara deposit sistem, loan sistem, client database, dll.
  • Puskesmas. Diperlukan integrasi antara data dari poli umum , poli gigi , poli mata , poli anak untuk membuat aplikasi database-nya.

3. Integritas Data
Integritas data adalah berhubungan dengan penjagaan dari perubahan data secara tidak sah. Untuk menjaga integritas data, sistem harus memiliki kemampuan untuk mendeteksi manipulasi data oleh pihak-pihak yang tidak berhak, antara lain penyisipan, penghapusan, dan pensubsitusian data lain kedalam data yang sebenarnya.

Contoh :

  • Kantin / Restoran. Bila ada promo free makanan, terkadang kasir bisa saja tidak memberikan hak free pada konsumen, olehkarena itu diperlukan integritas agar tidak terjadi kecurangan dan manipulasi data lainnya.
  • Operator / Provider Internet. Pihak penjual jasa terkait mengeluarkan tagihan sesuai pemakaian konsumen dan tanggap terhadap keluhan-keluhan konsumen, tidak menerima uang upah disetiap service nya, yang tentunya disesuaikan dengan peraturan yang ada.

4. Keamanan Data
Keamanan merupakan suatu proteksi terhadap pengrusakan data dan pemakaian data oleh pihak yang tidak punya kewenangan.

#Bentuk Penyalahgunaan Database : 


A. Tidak disengaja, jenisnya :
  • Kerusakan selama proses transaksi.
  • Anomali yang disebabkan oleh akses database yang konkuren.
  • Anomali yang disebabkan oleh pendistribuasian data pada beberapa komputer.
  • Logika error yang mengancam kemampuan transaksi untuk mempertahankan konsistensi database.
B. Disengaja, jenisnya : 
  • Pengambilan data / pembacaan data oleh pihak yang tidak berwenang.
  • Pengubahan data oleh pihak yang tidak berwenang.
  • Penghapusan data oleh pihak yang tidak berwenang.

#Tingkatan Keamanan Database :

A Fisikal : 

Lokasi-lokasi dimana terdapat sistem komputer haruslah aman secara fisik terhadap serangan perusak.
B. Manusia : 

Wewenang / hak pemakai harus dilakukan dengan berhati-hati untuk mengurangi kemungkinan adanya manipulasi oleh pihak terkait.
C. Sistem Operasi & Jaringan : 

Kelemahan pada sistem operasi dan jaringan memungkinkan pengaksesan data oleh pihak tidak berwenang, karena hampir seluruh jaringan sistem database menggunakan akses jarak jauh / remote.

#Keamanan Data :


A. Otorisasi :

  • Pemberian wewenang atau hak istimewa (privilege) untuk mengakses sistem atau obyek database.
  • Kendali otorisasi (kontrol akses) dapat dibangun pada perangkat lunak dengan 2 fungsi :
    • Mengendalikan sistem atau obyek yang dapat diakses.
    • Mengendalikan bagaimana pengguna menggunakannya.
  • Sistem administrasi yang bertanggung jawab untuk memberikan hak akses dengan membuat account pengguna.

B. Tabel View :
 

Merupakan metode pembatasan bagi pengguna untuk mendapatkan model database yang sesuai dengan kebutuhan perorangan. Metode ini dapat menyembunyikan data yang tidak digunakan atau tidak perlu dilihat oleh pengguna.

Contoh pada database relasional, untuk pengamanan dilakukan beberapa level :

  • Relasi = pengguna diperbolehkan atau tidak diperbolehkan mengakses langsung suatu relasi.
  • View = pengguna diperbolehkan atau tidak diperbolehkan mengakses data yang terdapat pada view.
  • Read Authorization = pengguna diperbolehkan membaca data, tetapi tidak dapat memodifikasi.
  • Insert Authorization = pengguna diperbolehkan menambah data baru, tetapi tidak dapat memodifikasi data yang sudah ada.
  • Update Authorization = pengguna diperbolehkan memodifikasi data, tetapi tidak dapat menghapus data.
  • Delete Authorization = pengguna diperbolehkan menghapus data.
Untuk modifikasi data terdapat otorisasi tambahan :
  • Index Authorization = pengguna diperbolehkan membuat dan menghapus index data.
  • Resource Authorization = pengguna diperbolehkan membuat relasi-relasi baru.
  • Alteration Authorization = pengguna diperbolehkan menambah/menghapus atribut suatu relasi.
  • Drop Authorization = pengguna diperbolehkan menghapus relasi yang sudah ada. 

C. Backup Data & Recovery :

 
Backup : proses secara periodik untuk mebuat duplikat dari database dan melakukan logging file (atau program) ke media penyimpanan eksternal.

Jurnaling : proses menyimpan dan mengatur log file dari semua perubahan yang dibuat di database untuk proses recovery yang efektif jika terjadi kesalahan.

  • Isi Jurnal : 
    • Record Transaksi :
  1. Identifikasi dari record
  2. Tipe record jurnal (transaksi start, insert, update, delete, abort, commit)
  3. Item data sebelum perubahan (operasi update dan delete)
  4. Item data setelah perubahan (operasi insert dan update)
  5. Informasi manajemen jurnal (misal : pointer sebelum dan record jurnal selanjutnya untuk semua transaksi
    • Record Checkpoint : Suatu informasi pada jurnal untuk memulihkan database dari kegagalan. Apabila sekedar redo, akan sulit mengetahui sejauh mana penyimpanan jurnal dapat mencarinya kembali, maka untuk membatasi pencarian dapat menggunakan teknik ini.

Recovery / Pemulihan : merupakan upaya uantuk mengembalikan basis data ke keadaan yang dianggap benar setelah terjadinya suatu kegagalan. 
  • 3 Jenis Pemulihan / Recovery :
    • Pemulihan terhadap kegagalan transaksi : Kesatuan prosedur dalam program yang dapat mengubah / memperbaharui data pada sejumlah tabel.
    • Pemulihan terhadap kegagalan media : Pemulihan karena kegagalan media dengan cara mengambil atau memuat kembali salinan basis data (backup)
    • Pemulihan terhadap kegagalan sistem : Karena gangguan sistem, hang, listrik terputus alirannya.
  • Fasilitas Pemulihan / Recovery pada DBMS :
    • Mekanisme backup secara periodik.
    • Fasilitas logging dengan membuat track pada tempatnya saat transaksi berlangsung dan pada saat database berubah.
    • Fasilitas checkpoint, melakukan update database yang terbaru.
    • Manager pemulihan, memperbolehkan sistem untuk menyimpan ulang database menjadi lebih konsisten setelah terjadinya kesalahan.
  • Teknik Pemulihan :
    • Deferred Update / Perubahan Tunda : perubahan pada DB tidak akan berlangsung sampai transaksi ada pada poin disetujui (COMMIT). Jika terjadi kegagalan maka tidak akan terjadi perubahan, tetapi diperlukan operasi REDO untuk mencegah akibat dari kegagalan tersebut.
    • Immediate Update / Perubahan Langsung : perubahan pada DB akan segera tanpa harus menunggu sebuah transaksi tersebut disetujui. Jika terjadi kegagalan diperlukan operasi UNDO untuk melihat apakah ada transaksi yang telah disetujui sebelum terjadi kegagalan.
    • Shadow Paging : Menggunakan page bayangan dimana pada prosesnya terdiri dari 2 tabel yang sama, yang satu menjadi tabel transaksi dan yang lain digunakan sebagai cadangan. Ketika transaksi mulai berlangsung, kedua tabel ini adalah sama. Selama berlangsungnya proses, tabel transaksi akan menyimpan semua perubahan ke database, tabel bayangan akan digunakan jika terjadi kesalahan. Keuntungannya adalah tidak membutuhkan REDO atau UNDO, kelemahannya membuat terjadinya fragmentasi.

D. Kesatuan Data & Enkripsi :

Enkripsi : keamanan data.

Integritas : metode pemeriksaan dan validasi data (metode integrity constrain), yaitu berisi aturan-aturan atau batasan-batasan untuk tujuan terlaksananya integritas data.

Konkuren : mekanisme untuk menjamin bahwa transaksi yang konkuren pada database multi user tidak saling menganggu operasinya masing-masing. Adanya penjadwalan proses yang akurat (Time Stamping).

Contoh : Dalam PEMILU , semua hasil coblosan dari TPS se-indonesia disalin ke DBMS , lalu dilakukan perhitungan yang sah

5. Abstraksi Data
Abstraksi data merupakan tingkatan-tingkatan pengguna dalam memandang bagaimana sebenarnya data diolah dalam sebuah sistem database sehingga menyerupai kondisi yang sebenarnya dihadapi oleh pengguna sehari-hari. Sebuah DBMS seringkali menyembunyikan detail tentang bagaimana sebuah data disimpan dan dipelihara (diolah) dalam sebuah sistem database, dengan tujuan untuk memudahkan pengguna dalam menggunakan DBMS tersebut. Karena itu seringkali data yang terlihat oleh pemakai sebelumnya berbeda dengan yang tersimpan secara fisik.


Terdapat 3 Level abstraksi data:

A. Level Fisik (Physical Level)
  • Level terendah dalam abstraksi data, yang menunjukkan bagaimana sesungguhnya suatu data disimpan. User melihat data sebagai gabungan dari struktur dan datanya sendiri. Tingkatan ini berurusan dengan:
    • Alokasi ruang penyimpanan untuk data dan indeks.
    • Deskripsi record untuk penyimpanan.
    • Penempatan record data.
    • Teknik kompresi dan enkripsi data.
B. Level Konseptual (Conceptual Level)
  • Menggambarkan data apa yang sebenarnya disimpan dalam database, serta hubungannya (relationship) dengan data lainnya. Berisi struktur logika database yang hanya dapat dilihat oleh DBA. Tingkat konsepsual ini menyatakan:
    • Entitas, atribut dan relasinya.
    • Konstrain-konstrain terhadap data.
    • Informasi semantiks data.
    • Informasi keamanan dan integritas data.
C. Level Pandangan (View Level)
  • Level tertinggi dari abstraksi data, hanya menampilkan sebagian data dari database. Tidak semua user membutuhkan semua data dalam database. Sebagai contoh:
    • Karyawan= RECORD
    • Nama : STRING;
    • Alamat : STRING;
    • Bagian : STRING;
    • Gaji : LONGINT;
  • Pada contoh ini record pegawai berisi 4 buah field (nama, alamat, bagian, gaji ). Setiap field memiliki nama, dan setiap nama memiliki tipe data.
Pada level fisik, pegawai dapat dijabarkan sebagai blok data yang terletak pada lokasi berurutan (satuan byte). Pada level konseptual masing-masing record dijabarkan dengan definisi tipe data. Pada level pandangan, user tertentu hanya boleh mengakses data tertentu, contohnya: seorang yang menangani penggajian berhak mengetahui gaji seseorang bahkan mengubahnya, tetapi orang yang bekerja di bagian lain tentu tidak boleh melihatnya.

6. Independansi Data
Adalah kemampuaan untuk membuat perubahan dalam struktur data tanpa membuat perubahan pada program yang memproses data. Struktur data pada database terpisah dengan program Perubahan struktur data tidak membuat program harus dimodifikasi. Perubahan struktur database dimungkinkan terjadi tanpa harus mengubah aplikasi yang mengaksesnya sehingga pembuatan antarmuka ke dalam data akan lebih mudah dengan penggunaan DBMS.

Dua Jenis Independensi Data :

  • Independensi Fisik: Skema logis tetap tidak berubah meskipun ruang penyimpanan atau jenis beberapa data yang berubah untuk alasan pengoptimalan atau reorganisasi. Perubahan skema internal mungkin diperlukan karena beberapa skema fisik ditata ulang kembali. Independensi data secara fisik yaitu teknik atau cara penyimpanan dan pengaksesan data dalam fisik media penyimpan dapat mengalami perubahan tanpa harus mengubah deskripsi logis basis data (Global Logical Data/ Conceptual View) yang digunakan dalam schema basis data.
  • Independensi Logis: Skema eksternal mungkin tetap tidak berubah untuk perubahan dari skema logis. Hal ini sangat diinginkan agar perangkat lunak aplikasi tidak perlu dimodifikasi atau diterjemahkan ulang. Independensi data secara logis, dimaksudkan bahwa kebutuhan-kebutuhan data para pemakai dapat mengalami perubahan tanpa harus mengubah pandangan logis pemakai terhadap basis data atau deskripsi logis basis data yang digunakan dalam schema basis data.
Terima kasih...
Sumber / Source : 
Blogger 1  Blogger 2 
Blog 1 Source A Blog 2 Source A 
Blog 1 Source B Blog 2 Source B
Blog 1 Source C Blog 2 Source C