Langsung ke konten utama

materi sistem basis data



ASSALAMU’ALAIKUM..... 
Eheemmm..kali ini aku nge-blog mengenai ??? Baca yang cermat ya! Aku bakal ngebahas tentang :
1. Perbedaan basis data dan sistem basis data
2. integritas data
3. transaksi dan Concurency
4. back and programming
5. XML
Alesan kenapa bahas materi di atas soalnya untuk memenuhi UAS SIMBADA :D yang di berikan oleh Dosen tercinta kami “Budi Laksono Putro”. Semoga bermanfaat yaa ~
Hayya.. Masuk materi^_^

Perbedaan Basis Data dan Sistem Basis Data


Basis data terdiri dari 2 (dua) kata, yaitu kata Basis dan Data. Basis bisa di artikan sebagai markas ataupun gudang, tempat berkumpul. Sedangkan data yaitu kumpulan fakta dunia nyata yang mewakili suatu objek. Seperti manusia, barang, dan lain-lain yang direkam ke dalam bentuk angka, bentuk huruf, simbol, teks, bunyi, gambar atau juga  kombinasinya. Jadi pengertian basis data adalah kumpulan terorganisasi dari data – data yang saling berhubungan sedemikian rupa sehingga dapat disimpan, dimanipulasi, serta dipanggil oleh penggunanya.
Sedangkan pengertian sistem basis data adalah sistem yang terdiri dari koleksi data atau kumpulan data yang saling berhubungan dan program-program untuk mengakses data tersebut.
Komponen Utama Sistem Basis Data :
· Perangkat Keras (Hardware)
· Sistem Operasi (Operating Sistem)
· Basis data (Database)
· Sistem Pengelola Basis Data (Database Management Sistem atau disingkat DBMS)
Yaitu pengelola basis data secara fisik tidak dilakukan oleh pemakai secara langsung, akan tetapi ditangani oleh sebuah perangkat lunak yang khusus. Perangkat Lunak inilah yang disebut DBMS (Database Management Sistem) yang akan menentukan bagaimana data diorganisasi, disimpan, diubah serta diambil kembali. Perangkat Lunak ini juga yang menerapkan mekanisme pengamanan data, pemakaian data secara bersama-sama, konsistensi data dan sebagainya.
Perbedaannya sudah dapat terlihat jelas ya, bahwa suatu basis data haruslah memerlukan sebuah sistem untuk mengelolanya, seperti contohnya suatu data dalam komputer dapat ditambah, diolah, diedit dengan menggunakan suatu sistem terintegrasi seperti laptop/pc, sistem operasi, data, dan aplikasi pengola data tersebut. Nah dapat disimpulkan bahwa sistem basis data merupakan pengolah dari basis data(database) dan setiap sistem basis data pasti terdapat data yang bias ditambah, diolah, dan diedit. Nah, setelah mengetahui perbedaan dari basis data dan sistem basis data, kita akan membahas tujuan dari basis data dan juga sistem basis data.
Tujuan Basis data sendiri adalah sebagai berikut ini:
· Kecepatan serta kemudahan dalam menyimpan, memanipulasi atau juga menampilkan kembali data tersebut.
· Efisiensinya ruang penyimpanan, karena dengan basis data, redudansi data akan bisa dihindari.
· Keakuratan (Accuracy) data.
· Ketersediaan (Availability) data.
· Kelengkapan (Completeness) data, Bisa melakukan perubahan struktur dalam basis data, baik dalam penambahan objek baru (tabel) atau dengan penambahan field-field baru pada table.
· Keamanan (Security) data, dapat menentukan pemakai yang boleh menggunakan basis data beserta objek-objek yang ada didalamnya serta menentukan jenis -jenis operasi apa saja yang boleh dilakukannya.
· Kebersamaan Pemakai (Sharability), Pemakai basis data bisa lebih dari satu orang, tetapi tetap menjaga atau menghindari masalah baru seperti: inkonsistensi data (karana data yang sama diubah oleh banyak pemakai pada saat yang bersamaan) dan juga kondisi deadlock (karena ada banyak pemakai yang saling menunggu untuk menggunakan data tersebut.
Tujuan Utama Sistem Basis Data sendiri adalah :
    Menunjukkan suatu lingkungan yang tepat dan efisien didalam melakukan pengambilan (retrieving) dan penyimpanan (storing) informasi basis data, serta menyediakan antarmuka yang lebih ramah kepada user dalam melihat data.Kegunaan atau Fungsi Sistem Basis Data, mengatasi masalah-masalah pemrosesan data yang sering ditemui dengan menggunakan metode konvensional, permasalah yang diatasi diantaranya:
· Redudansi data dan juga inkonsistensi data.
· Kesuliatan dalam pengaksesan data.
· Data Isolation.
· Konkurensi pengaksesan.
· Masalah keamanan.
· Masalah Integritas.
Pemakai sistem basis data diantaranya:
· Programmer Aplikasi yaitu orang atau pemakai yang berinteraksi dengan basis data melalui Data Manipulation Language (DML),
· User Mahir (Casual User) yaitu pemakai yang berinteraksi dengan sistem tanpa menulis modul program. Mereka menyatakan query untuk mengakses data dengan bahasa query
· User Umum (End User/ Naïve User) yaitu Pemakai yang berinteraksi dengan sistem basis data melalui pemanggilan satu program aplikasi permanen (executable program) yang telah disediakan sebelumnya.
· User Khusus (Specialized User) yaitu Pemakai yang menulis aplikasi basis data non konvensional, tetapi untuk keperluan-keperluan khusus.

Referensi :
Modul Praktikum Sistem Basis Data Pendidikan Ilmu Komputer UPI semester 3

Pengertian integritas data 


Integritas data secara luas mengacu pada kepercayaan dari sumber daya suatu sistem. Integritas data sangat penting untuk memastikan keakuratan, konsistensi, aksesibilitasi, dan kualitas tinggi dari sebuah data, sehingga penting untuk mengikuti aturan pengintegritasan suatu data. Data yang mempunyai integritas identik di pertahankan selama operasi apapun (seperti bisnis transfer, penyimpanan, atau pengambilan). Secara sederhana dalam istilah bisnis, integritas data adalah jaminan bahwa data konsisten, bersertifikat dan dapat dirujukan.
Integritas Data dapat Di kelompokan menjadi 2 bagian :
1. Integritas data yang berada dalam relasi, yaitu integritas entitas dan integritas domain.
2. Integritas yang berada di luar relasi, yaitu integritas referensial.
Selain itu ada juga integritas yang ditentukan sendiri di dalam suatu perusahaan, yaitu integritas perusahaan (Enterprise integrity/ user Defined Integrity).
Secara garis besar integritas data dalam model relasional meliputi :
1. Integritas Entitas
2. Integritas Domain
3. Integritas Referensial
4. Integritas Enterprise

INTEGRITAS ENTITAS

Integritas entitas mendifinisikan sebuah baris sebagai sebuah entitas yang unik untuk suatu tabel. Dalam integritas entitas, tidak ada baris yang di duplikat didalam suatu tabel.
Contoh :
create table kereta
(id_kereta varchar(10),
jurusan varchar(15),
no_kursi varchar (40),
constraint primary key (id_kereta)
);

INEGRITAS DOMAIN

Domain adalah nilai-nilai yang dimungkinkan diasosiasikan dengan setiap atribut, Integritas domain merupakan validasi masukan dari sebuah kolom. Dengan integritas domain, tidak ada data yang melanggar jangkauan nilai di tiap kolom data.
Jenis domain yang harus dimiliki oleh setiap atribut :
1. Karakter bebas
2. Alphanumerik
3. Alphabet
4. Numerik
Pemeliharaan integritas domain :
1. Pendifinisian skema
2. Pemanfaatan properti field
3. Penerapan proses validasi pada pemasukan data
Contoh :
create table pesan
(id_pesan varchar(10) not null,
id_kereta varchar(10) not null,
jumlah_kursi int not null,
constraint pk_pesan primary key (id_pesan),
constraint jumlah_pesan check (jumlah_kursi between 1 and 4),
constraint fk_kereta foreign key(id_kereta) references kereta(id_kereta)
);

INTEGRITAS REFERENSIAL

Integritas referensial adalah dasar relasi antar tabel yaitu antara foregin key dengan promary key. Integritas referensial memastikan bahwa seluruh nilai dari foregin key cocok dengan nilai primary key yang dihubungkanya.
Contoh :
create table kereta
(id_kereta varchar(10),
jurusan varchar(15),
no_kursi varchar (40),
constraint primary key (id_kereta)
);

create table pesan
(id_pesan varchar(10) not null,
id_kereta varchar(10) not null,
jumlah_kursi int not null,
constraint pk_pesan primary key (id_pesan),
constraint jumlah_pesan check (jumlah_kursi between 1 and 4),
constraint fk_kereta foreign key(id_kereta) references kereta(id_kereta)
);

INTEGRITAS ENTERPRISE

Integritas enterprise mengizinkan kita untuk menentukan spesifik business rules sendiri yang tidak sama pada kategori integritas yang lainnya.

Modul Praktikum Sistem Basis Data Pendidikan Ilmu Komputer UPI semester 3

Transaksi dan Concurency


Ketika multiple user mengakses multiple objek basis data yang berada pada multiple site di sistem basis data terdistribusi, maka permasalahan kontrol konkurensi akan terjadi.Konflik terjadi apabila sekumpulan read dari satu transaksi berpotongan dengan sekumpulan read dari transaksi lainnya, dan/atau sekumpulan write dari satu transaksi berpotongan dengan sekumpulan write dari transaksi lainnya. Transaksi T1 dan T2 dikatakan konflik jika kedua-duanya dieksekusi pada waktu yang bersamaan. Bila T1 telah selesai sebelum T2 dikirim ke sistem, dalam kasus ini sekumpulan read dan write saling memotong, tidak dianggap konflik. Konflik diperhatikan pada sekumpulan write yang saling memotong di antara dua transaksi. Ada tiga pendekatan secara umum untuk mendesain algoritma kontrol konkurensi:
1. Wait. Jika dua transaksi konflik, transaksi yang konflik harus menunggu sampai transaksi lainnya selesai.
2. Timestamp. Urutan eksekusi transaksi berdasarkan timestamp. Setiap transaksi memiliki timestamp yang unik dan dua transaksi yang konflik diselesaikan berdasarkan urutan timestamp. Timestamp dapat diletakkan di awal, tengah, atau akhir eksekusi. Pendekatan berdasarkan version digunakan untuk menentukan timestamp objek basis data.
3. Rollback. Dua transaksi yang konflik, salah satu transaksinya diulang kembali pengerjaannya. Disebut juga optimistic, karena bila terjadi konflik maka beberapa transaksi akan di-rollback.
Algoritma berdasarkan Mekanisme Wait, Sistem akan melakukan lock pada entitas basis data. Ada dua tipe lock:
1. Readlock. Transaksi akan mengunci entitas pada mode shared. Sehingga transaksi lain yang menunggu untuk membaca beberapa entitas juga bisa mendapatkan readlock.
2. Writelock. Transaksi akan mengunci entitas pada mode eksklusif. Jika ada satu transaksi akan melakukan penulisan pada entitas yang telah di-writelock, maka transaksi lainnya tidak boleh mendapatkan readlock maupun writelock pada entitas ini.
Lock akan menimbulkan masalah baru. Livelock dan deadlock. Livelock terjadi ketika suatu transaksi berkali-kali gagal dalam mendapatkan lock. Deadlock terjadi ketika beberapa transaksi melakukan lock pada beberapa entitas pada saat yang bersamaan; setiap transaksi mendapatkan lock dari entitas yang berbeda dan saling menunggu transaksi lainnya untuk melepaskan lock.
Deadlock dapat diatasi dengan:
1. Setiap transaksi melakukan lock pada semua entitas sekali. Jika ada beberapa lock yang digunakan oleh beberapa transaksi lainnya, maka transaksi akan melepaskan semua lock yang ada.
2. Membuat order linier secara acak pada item-item, dan semua transaksi melakukan urutan request berdasarkan order ini.
Deadlock ini sangat jarang terjadi, sehingga akan lebih efektif ditanggulangi ketika telah terjadi daripada melakukan tindakan preventif dari awal yang memakan biaya lebih besar. Protokol sederhana yang diperlukan, sehingga setiap transaksi dapat memenuhi aturan keberlanjutan adalah two-phase locking (2PL).

1. Fase locking. Transaksi mengambil lock tanpa melepasnya.
2. Fase unlocking. Dalam fase ini, transaksi melepaskan lock yang ada dan tidak boleh mengambil lock.
Lockpoint merupakan keadaan sesaat sebelum pelepasan lock yang pertama kali dilakukan. Algoritma berdasarkan Mekanisme Timestamp .Untuk mendapatkan timestamp unik untuk transaksi pada node berbeda di sistem terdistribusi, clock setiap node harus disamakan. Untuk menyelaraskan clock dapat digunakan message passing. Algoritma berdasarkan Mekanisme Rollback/Optimistic.
Terdapat 4 fase eksekusi transaksi pada pendekatan kontrol konkurensi optimistic:
1. Read. Proses membaca tidak terlalu dibatasi. Hasilnya diletakkan pada variabel lokal. Sekumpulan read tergantung juga pada proses validasi.
2. Compute. Transaksi menghitung sekumpulan nilai dari data entitas yang disebut sekumpulan write. Hasilnya diletakkan pada variabel lokal.
3. Validate. Sekumpulan write dan read transaksi lokal divalidasi oleh sekumpulan transaksi yang sedang berjalan.
4. Commit and Write. Setelah berhasil divalidasi, akan dijalankan di sistem dan diberikan timestamp. Sekumpulan write akan diubah menjadi variabel global dan nilainya dikirim ke setiap node. Jika tidak berhasil divalidasi, transaksi diulangi lagi dari fase compute atau read.
Evaluasi Performansi dari Algoritma Kontrol Konkurensi :
Derajat Konkurensi
Serial history memiliki derajat konkurensi yang rendah, sedangkan pendekatan 2PL dan optimistic memberikan derajat konkurensi yang lebih tinggi. Tingkat Lanjut untuk Peningkatan Konkurensi Timestamp yang Multidimensional Protokol ini memungkinkan transaksi untuk memiliki vektor timestamp sampai k elemen. Maksimum k diperoleh dari dua kali jumlah maksimum operasi pada satu kali transaksi.
Relaksasi dari Two-Phase Locking
Suatu transaksi dapat melepaskan suatu lock, sebelum transaksi ini me-request beberapa lock lagi. Pada transaksi berikutnya yang mengambil lock ini, lock tidak dapat dilepaskan sampai transaksi sebelumnya tidak lagi me-request lock.
System Defined Prewrites
Prewrite menunjukkan bahwa value dari transaksi akan di-write disaat yang akan datang. Prewrite tidak akan mengubah status objek data. Ketika prewrite dari suatu transaksi dilakukan, transaksi akan melakukan operasi precommit. Setelah tahapan ini, transaksi lain dapat membaca prewrite, walaupun transaksi ini belum di-update dan di-commit. Dengan prewrite, sistem yang terdiri dari transaksi berdurasi panjang maupun pendek dapat diseimbangkan, sehingga tidak ada delay untuk transaksi berdurasi pendek.
Transaksi yang Fleksibel
Memungkinkan spesifikasi dari beberapa alternatif subset dari subtransaksi untuk dieksekusi dan menghasilkan eksekusi yang berhasil dalam satu dari beberapa alternatif subset tersebut. Eksekusi dari transaksi yang fleksibel dapat diproses dalam beberapa cara.
Kontrol Konkurensi yang dapat Disesuaikan
Sistem basis data yang ada, saling terhubung dengan sistem basis data terdistribusi yang heterogen. Penggunaan konsep sistem basis data Reliable, Adaptable, Interoperable, Distributed (RAID), menjadi fasilitas dalam metode kontrol konkurensi. Model umum untuk pendekatan terhadap sistem dan transaksi yang berbeda adalah dengan generic state, converting state, dan suffix sufficient state.
Kesimpulan
Kontrol konkurensi adalah masalah yang timbul ketika beberapa proses terjadi pada berbagai tempat di sistem. Solusi awal untuk hal ini adalah dengan memastikan kelas-kelas serializability, two-phase locking, dan formalisasi pendekatan optimistic. Mekanisme populer untuk kontrol konkurensi adalah two-phase locking. Kontrol konkurensi yang dapat disesuaikan diimplementasikan pada sistem RAID. Penelitian diharapkan berlanjut, pada bidang semantik dari transaksi dan terutama pada sistem yang berorientasi objek. Pada sistem berskala besar, sangat sulit untuk mem-blok akses ke objek basis data untuk melakukan transaksi. Locking pada masa yang akan datang tidak akan relevan lagi pada kasus seperti ini.

Referensi:
Modul Praktikum Sistem Basis Data Pendidikan Ilmu Komputer UPI semester 3

Back-End Programming


Back-End programming adalah program yang berjalan pada database secara otomatis ketika terjadi suatu pemicu tertentu. Dalam oracle ada beberapa metode untuk melakukan back-end programming, yaitu dengan trigger dan stored procedure.

Trigger

Trigger adalah blok PL/SQL yang disimpan dalam database dan akan diaktivasi ketika kita melakukan statement-statement SQL (DELETE, UPDATE, dan INSERT) pada sebuah tabel. Aktivasi trigger didasarkan pada event yang terjadi di dalam tabel tersebut sehingga trigger dapat membantu dalam menjaga integritas dan konsistensi data. Implementasi trigger yang sering ditemui dalam dunia nyata adalah untuk mengeset dan mengubah nilai kolom dalam suatu tabel sehingga validasi nilai dari tabel tersebut akan terjaga. Adanya trigger dalam database akan meringankan kita dalam pembuatan aplikasi karena di dalam aplikasi yang kita buat, kita tidak perlu lagi untuk melakukan validasi data.
Berikut adalah daftar yang mungkin untuk aktivasi trigger :
Before Insert
Diaktifkan sekali sebelum statement insert
After Insert
Diaktifkan sekali setelah statement insert
Before Update
Diaktifkan sekali sebelum statement update
After Update
Diaktifkan sekali setelah statement update
Before Delete
Diaktifkan sekali sebelum statement delete
After Delete
Diaktifkan sekali setelah statement delete
 


Model-model yang digunakan untuk menspesifikasi aturan basis data aktif adalah model ECA (Event-Condition-Action). Aturan dalam model ECA memiliki tiga komponen yaitu:
· Event, yang memicu suatu rule tersebut biasanya berupa operasi perubahan basis data yang secara eksplisit ditambahkan ke basis data. Namun pada umumnya, bisa berupa event temporal atau jenis event eksternal yang lain.
· Condition, menentukan apakah suatu rule dijalankan atau tidak. Ketika suatu trigger dijalankan, maka bagian condition (bersifat optional) akan dievaluasi jika didefinisikan oleh yang membuat trigger. Jika evaluasi bagian condition bernilai TRUE maka aksi suatu rule dijalankan.
· Action, biasanya berupa statement sql.
Manfaat trigger antara lain adalah :
· Membuat integrity constraint yang kompleks.
· Mencatat aktivitas suatu tabel (logging).
· Sinkronisasi
Contoh Kasus :
Pada database supermarket, jika ada pembelian baru maka otomatis stok barang pada tabel barang akan berkurang sesuai dengan jumlah barang yang dibeli. Maka sintaks lengkapnya dalam pl / sql adalah sebagai berikut :
create table barang(
kode_barang varchar2(10) primary key,
nama varchar2(50),
stok_barang number
);

create table pembelian(
id_pembelian number primary key,
kode_barang varchar2(10),
constraint fk_kd_brg foreign_key (kode_barang) references barang(kode_barang)
jumlah_beli number,
harga number
);

create or replace trigger trg_stok_brg after insert on jumlah_beli for each row
begin
update barang set stok_barang =stok_barang – :new.jumlah_beli where id_pembelian = :new.id_pembelian;
end;
/
Stored Procedure
Sub program adalah PL/SQL Blok yang dipanggil dengan sekumpulan parameter. PL/SQL memiliki dua jenis subprogram yaitu: procedure dan function. Dimana secara umum procedure digunakan untuk melaksanakan aksi dan function digunakan untuk komputasi suatu nilai.
Stored procedure adalah subprogram yang disimpan di dalam database berupa SQL + Bahasa prosedural. Ada beberapa kelebihan yang dapat diperoleh dengan menggunakan stored procedure, meliputi :
· Dijalankan di database server -> performance lebih baik, network trafik lebih rendah.
· Tools DBA -> praktis, selalu tersedia di database server.
· Dapat digunakan oleh banyak aplikasi
· Standarisasi business logic.
· SP dapat dipanggil oleh aplikasi luar
· Dapat memanfaatkan tipe, fungsi yang disediakan DBMS
· Powerfull, tools sangat penting bagi DB designer, DB programmer dan DBA
· Hampir semua RDBMS mensupport.
· Walaupun syntax berbeda, umumnya menggunakan prinsip yang sama

XML (Extensible Markup Language)

XML merupakan representasi data yang bisa didefinisikan sesuai keinginan pengguna. Karena formatnya yang standar dan fleksibel, XML sering dipergunakan pada berbagai pertukaran informasi. Tentunya ini merupakan suatu keuntungan kalau kita bisa menyimpan XML ke dalam basis data dan memprosesnya.
Nah, ada basis data yang memungkinkan kita untuk menyimpan XML dan melakukan query atau operasi lainnya terhadap data XML tersebut, yaitu basis data XML. Salah satu DBMS yang mendukung XML adalah SQL Server.
SQL Server mendukung tipe data XML, ada typed XML dan untyped XML. Typed XML berarti data XML tersebut berkaitan dengan sebuah XML schema collection, dan sebaliknya untuk untyped XML. XML schema collection mengandung skema XML yang berguna untuk memvalidasi data XML yang boleh tersimpan di dalam suatu basis data. Dengan demikian, jika ada data XML baru yang formatnya tidak sesuai dengan skema yang telah didefinisikan, maka sistem akan menganggapnya tidak valid.XML adalah markup language sepertinya halnya HTML untuk dokumen yang mengandung informasi terstuktur dan ditujukan untuk pertukaran dokumen via web. XML berberntuk file teks yang cross platform, independen terhadap software dan hardware. Berikut adalah spesifikasi XML :
Tag didefinisikan sendiri :
Contoh : <nama> citra </nama>
Tag dapat mempunyai atribut :
contoh : <daftar_mahasiswa jumlah = “40”> … </daftar_mahasiswa>
Struktur -> hirarki (tag dalam tag),
contoh: <mahasiswa><nama> citra </nama></mahasiswa>
Keuntungan XML :
· Self Documenting -> dengan melihat tag, dapat diketahui isi dokumen.
· Dapat dibaca software dan manusia.
· Fleksibel
· Dapat dikembangkan tanpa melanggar format lama.
Contoh: pada <pengarang>, tambah tag <telepon>, maka XML yang lama tetap dapat dibaca.
· Hirarkis -> dapat merepresentasikan data kompleks
· Independen terhadap bahasa pemrograman dan sistem operasi
Kerugian XML :
· Pengulangan tag -> tidak efisien, ukuran file membengkak
Beberapa aturan XML :
· Setiap tag harus ada penutupnya.
· Penamaan Tag
· case sensitive. <nama> tidak sama dengan <Nama>.
· Tidak diawali dengan angka
· Tidak mengandung spasi
· Hindari ‘-’ dan ‘.’
· Urutan hirarki harus benar.
         Contoh yang salah: <mahasiswa> <nama> citra </mahasiswa></nama>
· Setiap XML harus mengandung root (akar)
<root>
<child>
<subchild>…..</subchild>
</child>
</root>
· Setiap atribut harus dalam tanda petik. Contoh:
         <surat tanggal = “12/12/2007”>
         <catatan oleh = “ Jum’at ” >
· Komentar dalam XML:
<!—baris komentar –!>
Untuk membaca XML diperlukan proses parser. Parser XML dapat dilakukan dengan dua cara, yaitu :
Tree based -> isi XML dipindahkan ke memori terlebih dulu -> DOM (Document Object Model).
Event based -> tidak dipindahkan ke memori. Fungsi callback dipanggil setiap menemui element. -> SAX (Simple API XML)
Keamanan Data
Sistem database dapat didefinisikan sebagai komputerisasi sistem penyimpanan data yang tujuannya untuk memelihara informasi serta agar informasi tersedia pada saat dibutuhkan. Dalam sistem database itu perlu dijaga keamanan datanya karena data yang diakses oleh pihak yang tidak berwenang akan merugikan pemilik database tersebut baik database miliki perusahaan, kelompok tertentu atau bahkan perorangan.
· Fisikal, lokasi-lokasi dimana terdapat sistem komputer haruslah aman secara fisik terhadap kerusakan.
· Manusia, dijaga dari pihak yang tidak berwenang untuk menghindari manipulasi data olehnya.
· Sistem Operasi, kelemahan ini memungkinkan pengaksesan data oleh pihak tak berwenang, karena hampir seluruh jaringan sistem database menggunakan akses jarak jauh.
· Pengaturan hak akses sistem basis data yang baik.
Berikut adalah poin-poin penting yang harus diperhatikan dalam keamanan data :
1. Otorisasi, meliputi :
    Pemberian Wewenang atau hak istimewa (priviledge) 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 bertanggungjawab untuk memberikan hak akses dengan membuat account pengguna.
2. 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 :
· Level Relasi : pengguna diperbolehkan atau tidak diperbolehkan mengakses langsung suatu relasi.
· Level View : pengguna diperbolehkan atau tidak diperbolehkan mengakses data yang terapat 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.
3. Backup data dan Recovery, tindakan ini diperlukan untuk mencegah kehilangan data dari hal-hal yang tidak terduga.
· Backup : proses secara periodik untuk membuat duplikat dari database dan melakukan logging file 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 :
· Identifikasi dari record
· Tipe record jurnal (transaksi start, insert, update, delete, abort, commit)
· Item data sebelum perubahan (operasi update dan delete)
· Item data setelah perubahan (operasi insert dan update)
· Informasi manajemen jurnal (misal : pointer sebelum dan record jurnal selanjutnya untuk semua transaksi)
Record checkpoint :
            Suatu informasi pada jurnal untuk memulihkan database dari kegagalan, kalau sekedar redo, akan sulit penyimpanan sejauh mana jurnal untuk mencarinya kembali, maka untuk membatasi pencarian menggunakan teknik ini. Recovery : merupakan upaya untuk mengembalikan basis data ke keadaaan yang dianggap benar setelah terjadinya suatu kegagalan.
4. Kesatuan data dan Enkripsi :
· Enkripsi : Mengkodekan informasi pada data dengan sandi khusus yang hanya dapat dibuka oleh pihak yang berwenang / memegang kuncinya
· 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).
Misalnya, kita buat skema XML untuk data Mahasiswa yang berisi NIM, Nama, Email, IPK.

CREATE XML SCHEMA COLLECTION MahasiswaSchema AS
'<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:t="http://localhost/test/mahasiswa"
targetNamespace="http://localhost/test/mahasiswa">
<xsd:element name="Mahasiswa">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="t:NIM" />
<xsd:element ref="t:Nama" />
<xsd:element ref="t:Email" />
<xsd:element ref="t:IPK" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="NIM" type="xsd:string" />
<xsd:element name="Nama" type="xsd:string" />
<xsd:element name="Email" type="xsd:string" />
<xsd:element name="IPK" type="xsd:decimal" />
</xsd:schema>'

Lalu, buat tabel yang punya kolom bertipe data XML yang valid dengan skema di atas.

CREATE TABLE Biodata (
ID INT IDENTITY PRIMARY KEY,
Mahasiswa XML (MahasiswaSchema) NOT NULL
)

Untuk insert data XML, tidak berbeda dengan sintaks SQL biasa.
INSERT INTO Biodata
VALUES ('
<Mahasiswa xmlns="http://localhost/test/mahasiswa">
<NIM>13504018</NIM>
<Nama>Anggriawan Sugianto</Nama>
<Email>anggriawan.sugianto@gmail.com</Email>
<IPK>3.50</IPK>
</Mahasiswa>
')

Perhatikan bahwa format XML yang akan disisipkan di atas harus sama dengan format pada skema XML terkait. Jika tidak (misalnya, kurang 1 elemen), maka DBMS akan menganggapnya tidak valid.
Jika untuk melakukan query terhadap basis data relasional kita gunakan SQL, maka untuk melakukan query terhadap XML kita gunakan XQuery.

Contoh XQuery untuk menampilkan daftar NIM dan mahasiswa yang IPK minimalnya 3.5 J
SELECT Mahasiswa.value('
declare default element namespace "http://localhost/test/mahasiswa";
(/Mahasiswa/NIM)[1]', 'varchar(8)') AS NIM,
Mahasiswa.value('
declare default element namespace "http://localhost/test/mahasiswa";
(/Mahasiswa/Nama)[1]', 'varchar(32)') AS Nama
FROM Biodata
WHERE Mahasiswa.value('
declare default element namespace "http://localhost/test/mahasiswa" ;
(/Mahasiswa/IPK)[1]', 'decimal') >= 3.50

Contoh XQuery untuk mengubah IPK seorang mahasiswa J
UPDATE Biodata
SET Mahasiswa.modify('
declare default element namespace "http://localhost/test/mahasiswa" ;
replace value of (/Mahasiswa/IPK)[1] with 4.00')
WHERE Mahasiswa.value('
declare default element namespace "http://localhost/test/mahasiswa" ;
(/Mahasiswa/NIM)[1]', 'varchar(8)') = '13504018'



Referensi :




Komentar

Postingan populer dari blog ini

Apa sih yang dimaksud dengan DML?

Apa sih yang dimaksud dengan DML? Pengertian DML DML merupakan perintah-perintah yang memungkinkan pengguna melakukan akses dan manipulasi data sebagaimana yang telah diorganisasikan sebelumnya dalam model data yang tepat, Data Manipulation Language digunakan untuk memanipulasi database yang telah didefinisikan dengan DDL. Perintah yang termasuk DML: INSERT » untuk menyisipkan atau memasukan dalam tabel UPDATE » untuk memperbaharui data lama menjadi data terkini DELETE » untuk menghapus datadari tabel SELECT » untuk mengambil data atau menampilkan data dari satu tabel atau beberapa tabel. Sumber : http://www.carawebs.info/2013/08/pengertian-ddl-dml-dcl.html

mencintai kesempurnaan

diri mencari sesuatu yang sempurna.. bagai mencari yang belum ada. berkata memiliki pengetahuan. namun hal yang mudah hingga ringan hal yang hanya dengan membuka mata dan pikiran semua kesempurnaan yang dicari sebenarnya bersamamu. mencintai keindahan, kebaikan, dan kesempurnaan. mengapa mencari pada sesuatu. sesuatu yang tak bisa dipungkiri pasti bukan sempurna. katakanlah, tanyakan hati. apakah sesulit itu? mengapa tidak belajar dari bapak para nabi? mengapa tidak dilakukan? mengapa mengikuti sesuatu yang belum pasti? siapa yang memberimu semua ini? cintailah sesuatu karena Allah dan bencilah sesuatu karena Allah