INTEGRITAS DATA
Ada
dua hal penting yang harus diketahui agar data tetap akurat, konsisten dan
handal. Untuk mewujudkan hal
itu diperlukan suatu
data Integrity. Sebagai
contoh apabila sebuah tabel Mahasiswa, pada
field / kolom
nim mempunyai isi
data “01031043”, maka database tidak memperbolehkan record pada tabel
Mahasiswa lain mempunyai nim yang sama.
Jenis-Jenis
Integritas Data dapat dikelompokkan sebagai berikut :
1. Entity Integritas
2. Domain Integritas
3. Refrential Integritas
4. User Defined Integritas
4.1. Entity Integritas
Entity Integritas mendefinisikan sebuah baris sebagai
sebuah entitas yang unik untuk suatu tabel. Entity integritas memaksa
integritas dari column atau primary key dari suatu tabel
(melalui index, unique,
constraints, primary key).
Primary key tidak
boleh null.
4.2. Domain Integritas
Domain Integritas merupakan validasi dari masukan
untuk sebuah kolom. Anda dapat memaksa domain integritas dengan membatasi tipe
(melalui data types), format (melalui
check constraints dan rules),
atau range nilai-nilai
yang mungkin (melalui Foreign Key Constraints, Check
Constraints, Default Definitions dan rules).
4.3. Refrential
Integritas
Refrential
Integritas memastikan bahwa
seluruh nilai dari
foreign key cocok dengan nilai primary key yang
dihubungkan.
4.4. User
Defined Integritas
User–defined
integritas mengizinkan Anda untuk menentukan spesific business rules sendiri
yang tidak sama pada kategori integrity yang lain.
4.5. Membuat
Constraint
Constraint merupakan
suatu aturan yang
membatasi jenis data
yang diijinkan untuk dimasukkan
ke dalam tabel. Constraint dapat dibuat baik pada saat pembuatan table atau
setelah tabel dibuat. Ketika constraint dibuat setelah pembuatan tabel, maka
constraint tersebut hanya mengecek
data yang ada
(yang telah dimasukkan
dalam tabel). Jika ada beberapa pelanggaran maka constraint akan
ditolak.
4.5.1.
Tipe-Tipe Constraint
Microsoft
SQL Sever menyediakan beberapa tipe Constraint, yaitu :
·
PRIMARY KEY
Constraint, untuk
menspesifikasikan kolom dalam tabel. Tidak boleh kosong, dan harus unik, untuk menghubungkan satu tabel dengan tabel
lain.
·
FOREIGN KEY
Constraint, digunakan
untuk menspesifikasikan kolom foreing
key pada suatu tabel. Foreing key digunakan untuk menghubungkan dua
tabel. Kolom foreing key adalah kolom atau kombinasi beberapa kolom dalam suatu
tabel yang selalu merujuk pada kolom primary keypada suatu tabel.
·
UNIQUE Constraint,
digunakan untuk menjamin
bahwa data pada
suatu kolom atau beberapa kolom
tidak diijinkan sama.
·
CHECK
Constraint, digunakan untuk
membatasi suatu nilai pada kolom dengan nilai tertentuyang diijinkan masuk.
·
DEFAULT
Constraint, merupakan atribut
opsionalyang digunakan untuk memberikan suatu
nilai tertentupada suatu
kolom jika kolom
tersebut tidak dimasukkan
suatu data.
·
Not Null, digunakan untuk menjamin tidak ada nilai null ( kosong)
yang muncul pada suatu kolom tertentu sehingga bila tidak mengisikan nilai pada
kolom tersebut maka akan muncul error.
4.5.2. PRIMARY
KEY Constraint
Sebuah constraint (aturan) dapat dibuat bersamaan pada
saat pembuatan tabel atau setelah pembuatan tabel. Contoh kita sudah mempunyai
Tabel Mahasiswa pada database NilaiMHS
yang telah dibentuk
sebelumnya, tetapi belum
mempunyai kunci primer. Menambahkan
kunci primer dapat dengan mudah melalui Enterprise Manager pada table
desaigner.
Pengertian Transaksi
Transaksi adalah satu atau beberapa aksi program
aplikasi yang mengakses/mengubah isi basis data.
Transaksi
merupakan bagian dari pengeksekusian sebuah program yang melakukan pengaksesan
basis data dan bahkan juga melakukan serangkaian perubahan data. DBMS yang kita gunakan harus menjamin bahwa
setiap transaksi harus dapat dikerjakan secara utuh atau tidak sama
sekali. Tidak boleh ada transaksi yang
hanya dikerjakan sebagian, karena dapat menyebabkan inkonsistensi basis
data. Untuk itu transaksi selalu merubah
basis data dari satu kondisi konsisten ke kondisi konsisten lain.
Sebuah
transaksi berpeluang untuk ‘mengganggu’ integritas basis data yang dapat
membuat kondisi/hubungan antar data tidak seperti seharusnya. Untuk menjamin agar integritas dapat tetap
terpelihara maka setiap transaksi harus memiliki sifat-sifat:
1. Atomik, dimana semua operasi dalam transaksi dapat dikerjakan seluruhnya atau
tidak sama sekali.
2. Konsisten, dimana eksekusi transaksi secara tunggal harus dapat menjamin data
tetap konsisten setelah transaksi berakhir.
3. Terisolasi, jika pada sebuah sistem basis data terdapat sejumlah transaksi yang
dilaksanakan secara bersamaan, maka semua transaksi yang dilaksanakan pada saat
yang bersamaan tersebut harus dapat dimulai dan bisa berakhir.
4. Bertahan, dimana perubahan data yang terjadi setelah sebuah transaksi berakhir
dengan baik, harus dapat bertahan bahkan jika seandainya sistem menjadi mati.
Terhentinya
suatu transaksi tidak selalu diakibatkan oleh kegagalan insidental baik dari
perangkat keras (crash) ataupun kemacetan sistem operasi (hang). Tapi lebih sering terjadi karena user sengaja
menghentikan transaksi atau karena penghentian transaksi oleh DBMS akibat
adanya kondisi tak diinginkan, seperti deadlock atau timeout.
Sebuah
transaksi dapat menghasilkan dua kemungkinan:
a. Jika dilaksanakan lengkap
seluruhnya, transaksi tersebut telah di commit
dan basis data mencapai keadaan konsisten baru.
b. Jika transaksi tidak sukses,
maka transaksi dibatalkan dan basis data dikembalikan ke keadaan konsisten
sebelumnya (rollback).
Transaksi yang sudah di commit
tidak dapat dibatalkan lagi. Jika ada
kesalahan, maka harus dilakukan transaksi lain yang membalik dampak transaksi
sebelumnya.
Status-status
yang dapat dicapai oleh sebuah transaksi sejak mulai dilaksanakan hingga
selesai atau batal adalah:
1. Aktif (Active), yang merupakan status awal (initial state) sebuah transaksi yang
menunjukkan transaksi tersebut masih dieksekusi.
2. Berhasil Sebagian (Partially Committed),
yaitu keadaan yang dicapai transaksi tepat pada saat operasi terakhir dalam
transaksi selesai dikerjakan.
3. Gagal (Failed), yang merupakan keadaan dimana sebuah transaksi terhenti
pengeksekusiannya sebelum tuntas sama sekali.
4. Batal (Aborted), yaitu keadaan dimana sebuah transaksi dianggap
tidak/belum dikerjakan yang tentu dengan terlebih dahulu diawali dengan
mengembalikan semua data yang telah diubah ke nilai-nilai semula. (yang menjadi
tanggung jawab DBMS).
5. Berhasil Sempurna (Committed), keadaan dimana transaksi telah dinyatakan
berhasil dikerjakan seluruhnya dan basis data telah merefleksikan
perubahan-perubahan yang memang diinginkan transaksi.
Diagram berikut ini menunjukkan
aliran dan siklus peralihan status (state) dari sebuah transaksi:
Ketika sebuah
transaksi mulai dikerjakan, maka transaksi itu berada dalam status aktif. Jika terjadi penghentian sebelum operasi
berakhir, maka transaksi segera beralih ke status gagal/failed. Namun, bila keseluruhan transaksi selesai
dikerjakan, maka transaksi itu berada pada status berhasil
sebagian/partially committed, dimana perubahan-perubahan data masih berada
di dalam memori utama yang bersifat volatile/tidak permanen. Transaksi dalam status ini masih mungkin
untuk pindah ke status failed, karena ada pembatalan transaksi baik sengaja
maupun tidak. Jika tidak beralih ke
status failed, maka nilai-nilai data yang ada di memori utama akan direkam ke
dalam disk yang bersifat permanen.
Begitu proses perekaman selesai, maka transaksi beralih ke status committed. Sementara itu, transaksi yang berada pada
status failed, maka DBMS harus menjalan proses rollback. Proses tersebut dapat berupa:
- · Mengulangi pelaksanaan transaksi / restart, yang dilakukan pada transaksi yang failed akbiat kemacetan perangkat keras ataupun perangkat lunak dan bukannya penghentian transaksi secara sengaja oleh user.
- · Mematikan transaksi / kill, yang dilakukan untuk transaksi yang dihentikan secara sengaja oleh user atau akibat adanya kesalahan lojik dalam penulisan aplikasi.
Begitu salah satu dari pilihan proses
tersebut selesai dilakukan, maka transaksi berpindah ke status batal (aborted). Status berhasil sempurna/committed maupun batal/aborted
merupakan status terminasi, yaitu status akhir dalam pelaksanaan transaksi.
CONCURRENCY
Concurrency
dalam basis data artinya adalah satu sumber database dipakai secara bersama –
sama. DBMS mengizinkan banyak transaksi pada saat bersamaan untuk mengakses
data yang sama, maka dari itu Concurrency Control Mechanism(CCM) dibutuhkan
agar transaksi tidak saling mengganggu.
Terdapat 3
masalah pada Concurrency adalah:
1.
Lost Update
Problem.
2.
Uncommited
Dependency Problem.
3.
Inconsistent
Analysis Problem.
BACK END PROGRAMMING
Back end programming ialah salah satu materi yang ada
di sistem basis data, dimana dalam materi ini terdapat beberapa subprogram
yaitu funcion, prosedur dan trigger. Ketiga subprogram ini dimiliki juga oleh
PL/SQL dimana funcion ini bertindak sebagai komputasi nilai, prosedure
bertindak sebagai pelaksana aksi dan 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. Contoh dapat dilihat di
blog.
XML(EXtensible Markup Language)
XML adalah EXtensible Markup Language, Markup
language untuk dokumen yangmengandung informasi terstruktur. Ditujukan untuk
pertukaran dokumen via web. Berbentuk file teks Cross platform,
indepedenden terhadap software dan hardware.
Keuntungan
XML :
Ø Dapat dikembangkan tanpa melanggar
Ø Dapat dibaca software dan manusia
Ø Fleksibel
Kerugian
XML :
Ø Pengulangan tag menjadi tidak efisien, ukuran
membengkak

No comments:
Post a Comment