Jumat, 17 Agustus 2018

program basis data

SISTEM BASIS DATA DAN BASIS DATA

basis data (bahasa Inggris: database), atau sering pula dieja basisdata, adalah kumpulan informasi yang disimpan di dalam komputer secara sistematik sehingga dapat diperiksa menggunakan suatu program komputer untuk memperoleh informasi dari basis data tersebut. Perangkat lunak yang digunakan untuk mengelola dan memanggil kueri (query) basis data disebut sistem manajemen basis data (database management system, DBMS). Sistem basis data dipelajari dalam ilmu informasi.
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.
Sistem basis data merupakan suatu kumpulan data-data yang berhubungan. Data-data tersebut diolah dengan sebuah perangkat lunak ( Software )  dan hasil dari pengolahan data itu disimpan dalam sebuah perangkat keras ( Hardware).
Dalam sebuah sistem basis data terdapat beberapa komponen pendukung yaitu basis data (database). Hardware, yang dapat berupa komputer, media penyimpan sekunder, juga media komunikasi untuk sebuah sistem jaringan. Software, yang merupakan sebuah perangkat lunak yang berguna untuk mengolah data. Brainware (user), yaitu orang-orang yang berhubungan langsung dengan database tersebut.
Tujuan dan Fungsi Sistem Basis data sendiri adalah sebagai berikut ini:

  • 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 yang telah disediakan oleh suatu DBMS.
  • 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.

BAGIAN 2. INTEGRITAS DATA DAN CONSTRAINT

Integritas data adalah menjamin konsistensi data terhadap semua konstrain yang diberlakukan terhadap data tersebut, sehingga memberikan jaminan keabsahan data itu sendiri. Tujuannya adalah menjaga data agar data yang tidak valid tidak masuk ke database. Menjaga konsistensi data pada relasi keterkaitan antar tabel.
Jenis-jenis Integritas Data :
·         Domain integrity (Integritas jangkauan nilai)
Tidak ada item data yang melanggar jangkauan nilai di tiap kolom data.
·         Integrity Entity (Integritas Entitas)
Tidak ada baris data duplikat dalam satu tabel.
·         Integrity Referential (Integritas acuan)
Menjaga relasi atau korespondensi antar tabel.
·         Redudant Data Integrity (Integritas Data Antar Tabel)
Data di sebuah tabel tidak berulang di tabel lain.
·         Bussiness Rule Integrity (Integritas Aturan Nyata)
Data di suatu tabel harus memiliki nilai yang layak dan dapat diterima ditempat sistem basis data itu diterapkan. Integritas jenis ini bersifat kasuistis, artinya sangat bergantung pada jenis data, lokasi, lingkungan, dan waktu penerapan basis data.
·         Membuat Constraint
Constraint merupakan suatu aturan yang membatasi jenis data yang diijinkan untuk dimasukkan ke dalam tabel.

Constraint Classification (Tipe-tipe Constraint) :
·         PRIMARY  KEY Constraint
Berguna 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 foreign key pada suatu tabel. Foreign Key digunakan untuk menghubungkan dua tabel. Kolom foreign key adalah kolom atau kombinasi beberapa kolom dalam suatu tabel yang selalu merujuk pada kolom primary key pada 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 tertentu yang diijinkan masuk.
·         DEFAULT Constraint
Merupakan atribut opsional yang digunakan untuk memberikan suatu nilai tertentu pada 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.



BAGIAN 3. TRANSAKSI DAN CONCURRENCY

Transaksi pada basis data adalah satu atomic operasi berupa lojik pekerjaan maupun lojik recovery yang bisa terdiri dari beberapa intruksi. Tujuan dari transaksi adalah menjaga database dari kehilangan data dan kerusakan,seperti system crash dan pengaksesan data yang sama secara bersamaan oleh dua aplikasi yang berbeda yang menimbulkan gangguan. Ada empat elemen dalam transaksi yang biasa disingkat ACID, yaitu :
-          Atomicity,  semua berhasil atau semua gagal
-          Consistency,  transaksi mempertahankan konsistensi database
-           Isolation,  transaksi terisolasi satu dengan yang lain
-           Durability,  setelah commit update harus survive di database
Dan ada dua jenis transaksi yang paling penting dalam sistem basis data adalah :
-          Commit, memberi tanda bahwa transaksi telah selesai. Update dibuat permanen (bahkan jika setelah commit terjadi kegagalan system)
-          Rollback, memberi tanda bahwa transaksi gagal. Semua update harus di-undo
Untuk lojik recovery atau system recovery database dilakukan ketika terjadi kegagalan media, kegagalan system atau kesalahan pada transaksi. Sistem recovery menggunakan fungsi rollback dan checkpoint. Checkpoint adalah interval tertentu pada perjalanan transaksi basis data yang menyimpan keadaan basis data saat itu. Checkpoint dapat dilakukan untuk merecovery database secara backward (undo) maupun forward (redo).
Cocurrency adalah ketika DBMS mengijinkan banyak transaksi pada saat bersamaan untuk mengakses data yang sama. Dibutuhkan Concurrency Control Mechanism (CCM) agar transaksi tidak saling “mengganggu”.

Terdapat 3 masalah dalam concurrency, yaitu:
-          Lost update problem
-          Uncommited Depedency Problem
-          Incosistent Analysis Problem
Cara penyelesaian masalah cocurrency adalah dengan cara
-          Harus adanya aturan (Harus adanya role accesbility, tidak di perbolehkan adanya Role super admin)
-          Commit harus bisa masuk level fisik. Ketika data tidak commit maka bisa mempengaruhi sistem.
Locking
Locking terjadi jika suatu transaksi ingin record atau resource tidak berubah dalam waktu tertentu.
Jenis Locking terdiri dari 2, yaitu:
-          Exclusive Lock yaitu locking yang hanya bisa di gunakan untuk mengupdate dan membaca transaksi
-          Shared Lock yaitu locking yang hanya bisa di gunakan untuk membaca transaksi.
Hal yang harus di hindari dalam locking adalah Dead Lock. Dead Lock adalah kondisi pada saat dua atau lebih transaksi berada pada posisi wait-state. Satu sama lain menunggu lock untuk di lepaskan sebelum dapat memulai transaksi.
Jalan keluar untuk Deadlock adalah dengan cara:
-          Deteksi dan Pecahkan Deadlock. Cara deteksi deadlock adalah dengan metode wait for graph. Dan cara untuk pecahkan deadlock adalah dengan cara salah satu transaksi di rollback paksa.
-          Dengan menggunakan Ostrich Algorithm. Yaitu dengan cara di abaikan atau di biarkan saja seperti burung unta ketika ada masalah dia menyembunyikan kepalanya di dalam tanah.
Isolation Level
2 level pengisolasian untuk memecahkan masalah transaksi, yaitu:
-          Read Commited
-          Transaksi hanya dapat melihat perubahan data setelah transaksi lain di commit pada data tersebut
-          Serializable
-          Level isolasi paling ketat. Dilaksanakan secara serial (berurutan). Di level ini sebuah query hanya akan melihat data yang sudah di commit sebelum transaksi di mulai.
Kompromi isolation Level. Adalah masalah yang ada pada isolation level, yaitu:
-          Dirty Read: Dapat melihat record yang sudah di rollback transaksi lain atau yang belum dicommit.
-          Nonrepeatable read: Transaksi 1 baca sebuah record, record tersebut diubah transaksi lain, saat Transaksi 1 membaca lagi nilainya sudah berubah
-          Phantoms: retrieve menghasilkan record baru yang sebelumnya tidak ada .








BAGIAN 4. 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 :

Event

Keterangan

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
Subprogram 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.



BAGIAN 5.XML (EXTENSIBLE MARKUP LANGUAGE)

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: <nama> budi </nama>
Tag didefinisikan sendiri.
Tag dapat mempunyai atribut,
contoh : <daftar_mahasiswa jumlah = “40”> … </daftar_mahasiswa>
Struktur -> hirarki (tag dalam tag),
contoh: <mahasiswa><nama> susis </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> susis </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)

Tidak ada komentar:

Posting Komentar