Minggu, 29 November 2015

BASIS DATA vs SISTEM BASIS DATA, INTEGRITAS DATA, TRANSAKSI dan CONCURRENCY, BACK-END PROGRAMMING

BASIS DATA vs SISTEM BASIS DATA
Untuk mengawali artikel ini, alangkah lebih baiknya untuk kita mengetahui terlebih dahulu apa definisi masing-masing dari Basis Data dan Sistem Basis Data itu sendiri.
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 mudah disimpan, dimanipulasi, serta dipanggil oleh penggunanya. Definisi Basis data juga dapat diartikan sebagai kumpulan data yang terdiri dari satu atau lebih tabel yang terintegrasi satu sama lain, dimana setiap user diberi wewenang untuk dapat mengakses (seperti mengubah, menghapus dll.) data dalam tabel-tabel tersebut.

Gambar Lemari Arsip dan Basis Data

Tujuan Basis Data sendiri adalah sebagai berikut :

  • Kecepatan & kemudahan (speed)

Dengan memanfaatkan basis data, memungkinkan kita untuk dapat menyimpan data atau melakukan perubahan/ manipulasi terhadap data atau menampilkan kembali data tersebut secara lebih cepat dan mudah.

  • Efisiensi ruang penyimpanan (space)

Karena keterkaitan yang erat antara kelompok data dalam sebuah basis data, maka redundansi (pengulangan) pasti akan selalu ada, sehingga akan memperbesar ruang penyimpanan. Dengan basis data, efisiensi ruang penyimpanan dapat dilakukan dengan menerapkan sejumlah pengkodean, atau dengan membuat relasi-relasi antar kelompok data yang saling berhubungan.

  • Keakuratan (accuracy)

Pengkodean atau pembentukan relasi antar data bersama dengan penerapan aturan/batasan (constraint), domain data, keunikan data, dsb, yang secara ketat dapat diterapkan dalam sebuah basis data, sangat berguna untuk menekan ketidak akuratan penyimpanan data.

  • Ketersediaan (availability)

Dengan pemanfaatan jaringan komputer, maka data yang berada di suatu lokasi/cabang dapat juga diakses (tersedia/available) bagi lokasi/cabang lain.

  • Kelengkapan (completeness)

Kelengkapan data yang disimpan dalam sebuah database bersifat relatif, bisa jadi saat ini dianggap sudah lengkap, tetapi belum tentu pada suatu saat dianggap lengkap. Untuk mengakomodasi kelengkapan data yang semakin berkembang, maka kita tidak hanya dapat menambah record-record data, tetapi juga da[at melakukan perubahan struktur dalam basis data, baik dalam bentuk penambahan sobjek baru (table) atau dengan penambahan field-field baru pada suatu tabel.

  • Keamanan (security)

Aspek keamanan dapat diterapkan dengan ketat, dengan begitu kita dapat menentukan pemakai basis data serta obyek-obyek didalamnya ,serta jenis-jenis operasi apa saja yang boleh dilakukannya.

  • Kebersamaan pemakaian (sharability)

Basis data yang dikelola dengan aplikasi multi user dapat memenuhi kebutuhan ini.

SISTEM BASIS DATA
Definisi Sistem Basis Data sendiri yaitu Sistem adalah sebuah tatanan (keterpaduan) yang terdiri atas sejumlah komponen fungsional (dengan satuan fungsi dan tugas khusus) yang saling berhubungan dan secara bersama-sama bertujuan untuk memenuhi suatu proses tertentu.
Secara umum sebuah Sistem Basis Data merupakan sistem yang terdiri atas kumpulan tabel data yang saling berhubungan (dalam sebuah basis data di sebuah sistem komputer) dan sekumpulan program (yang biasa disebut DBMS/Data Base Management System) yang memungkinkan beberapa pemakai dan/atau program lain untuk mengakses dan memanipulasi tabel-tabel 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.
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.
Pemakai (User).
Aplikasi atau Perangkat Lunak yang lainnya.
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 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.
INTEGRITAS DATA
Integritas data menjamin kualitas data dalam database, mencakup :
1. menjamin keutuhan data
2. menjamin agar perubahan terhadap basis data tidak menghasilkan inkonsistensi data
3. menjamin agar basis data tidak mengalami kerusakan secara tidak sengaja
Dalam basis data dikenal istilah aturan integritas (integrity constraint) yang mengatur definisi dan modifikasi terhadap basis data sehingga menjamin integritas basis data tersebut.
Jenis aturan integritas :
1. Entity integrity constraints (aturan integritas entitas)
2. Domain constraints (aturan domain)
3. Referential integrity constraints (aturan integritas referensial)
4. Attribut-Based Constraints (aturan berbasis atribut) dan  Tuple-Based Constraints (aturan berbasis tupel)
5. Assertions (pernyataan)
6. Trigger (pemicu)
Entity Integrity Constraint (aturan integritas entitas)
Aturan ini diterapkan dengan cara mendeklarasikan kunci primer (primary key) untuk setiap entitas agar dijamin tidak ada baris-baris dalam tabel relasi yang memiliki nilai yang sama (duplikat baris).
Contoh :
    CREATE TABLE mahasiswa
(Nim CHAR(10) PRIMARY KEY,
Nama   VARCHAR(25),
Alamat VARCHAR(35));
Domain Constraints (aturan domain) :
  Domain merupakan kumpulan tipe data dan jangkauan nilai yang diperbolehkan pada atribut suatu relasi.
  Definisi domain dari suatu atribut mencakup : tipe data, panjang, format, jangkauan, nilai yang memungkinkan, keunikan dan kemungkinan data null.
Tujuan definisi domain :
  Sistem dapat mengecek keakuratan data yang dimasukkan ke database
  Menguji queri apakah perbandingan dalam kriteria yang dilakukan sudah sesuai.
Contoh :




Nama Atribut : No_Barang
Deskripsi : Nomor barang yang ada di toko
Tipe Data : Text
Panjang Data : 5
Format : XX999
Jangkauan : 2 digit pertama merupakan kode jenis barang (EL, RT, AT)
Keunikan : Harus unik
Dukungan Null: Tidak boleh null
CREATE TABLE barang
(No_barang CHAR(5) NOT NULL,
Nm_barang VARCHAR(25),
No_pemasok CHAR(2),
PRIMARY KEY (No_barang), CHECK(Left,2) IN (“AT”, “RT”, “EL”));
Referential Integrity Constraints (aturan integritas referential)
  Merupakan aturan yang mengatur kebenaran referensi dari satu obyek ke obyek lain dalam database.
  Menjaga integritas nilai suatu atribut dalam sebuah table/relasi yang mengacu atau merujuk (me-“refer”) pada nilai sebuah atribut di table/relasi lain
Contoh :
Tabel barang

No_barang
Nm_barang
No_pemasok
RT100
Odol Putih
10
RT110
Sabun Bebek
10
MK120
Roti Otreo
20
MK130
Roti Talo
30

Tabel pemasok

No_pemasok
Nm_pemasok
10
Godilever
20
Strawberry
30
Padi

Dalam tabel Barang, field No_pemasok adalah kunci tamu. Tabel Barang adalah tabel yang merujuk dan tabel Pemasok adalah tabel yang dirujuk. Jadi setiap nilai dalam kolom No_pemasok pada tabel Barang harus memiliki nilai yang TEPAT SAMA dalam kolom No_pemasok pada tabel Pemasok.
Dengan demikian tidak boleh  ada suatu nilai No_pemasok dalam tabel Barang yang nilainya tidak ditemukan dalam tabel Pemasok.
Cara mengimplementasikan referential integrity :
1. Dari program aplikasi  diterapkan dalam baris-baris program
Contoh :
Rs.FindFirst(“No_barang”,”TblBarang”,”No_barang=’” & txtNoBrg & “’”)
IF Not rs.EOF then MsgBox “Data tidak ditemukan !!”

2. Saat membuat table
           CREATE TABLE Pemasok
(No_pemasok CHAR(2) NOT NULL,
Nm_pemasok VARCHAR(25),
PRIMARY KEY(No_pemasok));

       CREATE TABLE Barang
No_barang CHAR(5) NOT NULL,
Nm_barang VARCHAR(25),
No_pemasok CHAR(2) References Pemasok(No_pemasok),
PRIMARY KEY (No_barang), CHECK(Left,2) IN (“MK”, “RT”, “EL”));
atau
        CREATE TABLE Barang
(No_barang CHAR(5) NOT NULL,
Nm_barang VARCHAR(25),
No_pemasok CHAR(2),
PRIMARY KEY (No_barang),
CHECK(Left,2) IN (“MK”, “RT”, “EL”),
FOREIGN KEY No_pemasok References Pemasok(No_pemasok));
         
Manipulasi data dalam database
  Perubahan yang dilakukan terhadap database dapat menyebabkan pelanggaran terhadap aturan integritas referensial.
  Dalam melakukan operasi INSERT, DELETE dan UPDATE harus didefinisikan aturan yang menjamin bahwa aturan integritas referensial diterapkan. Aturan tersebut adalah :
1. Insertion Rule
  Aturan : Jika dilakukan penyisipan baris terhadap sebuah tabel yang merujuk, maka harus terdapat nilai yang bersesuaian dalam tabel yang dirujuk.
2. Deletion Rule
  Aturan : Jika diberlakukan penghapusan baris terhadap sebuah tabel yang dirujuk dan memiliki nilai yang bersesuaian dengan tabel yang merujuk maka harus ada perlakuan tertentu untuk menjamin integritas tabel database tersebut.
  Tiga perlakuan yang mungkin diterapkan:
1. Restrict. Tidak mengijinkan penghapusan terhadap baris dalam tabel yang dirujuk
2. Nullify. Mengeset nilai yang bersesuaian dari tabel yang merujuk menjadi Null dan kemudian menghapus baris dalam tabel yang dirujuk
3. Cascading deletion. Baris yang bersesuaian dalam tabel yang merujuk secara otomatis akan ikut terhapus.
3. Update Rule
Terdapat 2 hal yang harus diperhatikan :
  Jika nilai yang diupdate adalah kunci tamu pada tabel yang merujuk, maka perlakukan sama seperti insertion rule
  Jika nilai yang diupdate pada table yang dirujuk memiliki nilai yang bersesuaian dengan tabel yang dirujuk maka perlakuan adalah sama seperti pada deletion rule.
TRANSAKSI DAN CONCURRENCY
Traksaksi dan concurrency dalam sistem basis data sangat berkaitan. Keduanya memiliki fungsi-fungsi khusus terhadap data itu sendiri. Berikut dibahas mengenai traksaksi dan concurrency :
A. Definisi TRANSAKSI
Transaksi merupakan aktivitas yang dilakukan oleh suatu program aplikasi yang berfungsi untuk menjaga konsistensi keamanan data. Tujuan dari transaksi yaitu untuk melindungi database dari kehilangan / kerusakan data.
Transaksi memiliki 4 elemen untuk menjaga integritas data. Adapun 4 elemen tersebut :
Atomicity, dimana semua operasi dalam transaksi dapat dikerjakan seluruhnya atau tidaksama sekali.
Consistency,  dimana  eksekusi  transaksi  harus  dapat  menjamin  data  tetap  konsisten setelah transaksi berakhir.
Isolation,  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.
Durability, dimana perubahan data yang terjadi setelah sebuah transaksi berakhir dengan baik, harus dapat bertahan bahkan jika seandainya sistem mati.

Dua Operasi Penting Transaksi :
Commit
Memberi tanda bahwa transaksi telah selesai. Update dibuat permanen (bahkan jika setelah commit terjadi kegagalan system).
Rollback
Memberi tanda bahwa transaksi GAGAL.

SAVE POINT
Save point adalah suatu keadaan atau sebuah titik aman dimana suatu transaksi bias diselesaikan dalam satu atau beberapa transaksi. Fungsi dari save point adalah supaya pada saat kita ingin rollback atau ada transaksi yang gagal, transaksi tidak berjalan dari awal kembali, tetapi dari save poin yang telah kita buat. Untuk membuat sebuah save point, caranya adalah: SAVEPOINT[nama save point]; Setelah dibuat save pointnya kita dapat rollback ke save point tersebut dengan cara: ROLLBACK TO[nama save point];

B. Definisi CONCURRENCY
Concurrency adalah banyaknya transaksi yang dijalankan secara bersamaan dalam satu waktu. DBMS mengijinkan banyak transaksi pada saat bersamaan untuk mengakses data yang sama. Concurrency Control Mechanism (CCM) dibutuhkan agar transaksi tidak saling “menggangu”.
Adapun 3 masalah concurrency adalah :
Lost Update Problem


Uncommitted Dependency Problem


Incosistent Analysis Problem



LOCKING
Locking terjadi jika suatu transaksi ingin record atau resource tidak berubah dalam waktu tertentu

Jenis Lock
Exclusive Lock (Xlock) atau write lock yaitu locking yang hanya bisa di gunakan untuk mengupdate dan membaca transaksi
Shared Lock (Slock) atau read lock yaitu locking yang hanya bisa di gunakan untuk membaca transaksi.

Contoh kasus dari locking :
Jika transaksi A memegang Xlock pada sebuah record, maka permintaan lock (X,S) pada record yang sama harus diabaikan.
Jika transaksi A memegang Slock pada record R maka :
o Permintaan Xlock trans. lain pada R ditolak
o Permintaan Slock trans. lain pada R diterima

DATA ACCESS PROTOCOL
Transaksi yang ingin  mengambil nilai sebuah record  (retrieve) harus mendapat Slock pada record tersebut
Transaksi yang ingin mengupdate, harus mendapat Xlock

Contoh kasus :
Jika lock dari transaksi B ditolak karena konflik dengan lock yang dimiliki transaksi A, transaksi B masuk ke wait state sampai lock milik A dibebaskan.
Xlock dan Slock dipegang sampai transaksi selesai (COMMIT atau ROLLBACK).

Lost Update Problem dengan LOCK


Uncommitted Dependency Problem dengan LOCK


Incosistent Analysis Problem dengan LOCK



DEAD LOCK
Dead lock adalah situasi dimana dua atau lebih transaksi dalam kondisi wait-state, satu sama lain menunggu lock dilepaskan sebelum dapat memulai
Contoh Deadlock


Penanganan Deadlock
Deteksi dan pecahkan deadlock
Deteksi deadlock > wait-for-graph
Pecahkan deadlock > salah satu dirollback paksa (bagaimana penanganan rollback ini?)
Ostrich Algorithm  > diabaikan

BACK-END PROGRAMMING
Backend adalah bagian belakan tempat administrator web mangatur keseluruhan bagian depan atau dengan kata lain memprogram tampilan web. Beberapa jenis fungsi-fungsi yang sering dipakai dalam back-end programming antara lain:
Stored Procedure : Stored Procedure adalah sekumpulan perintah SQL yang disusun dalam sebuah prosedur yang memiliki nama dan fungsi tertentu.
Function : Selain Stored Procedure, terdapat juga Function. Sedikit berbeda dengan Stored Procedure, function dapat mempermudah melakukan pengolahan suatu nilai dan mengembalikan nilai tertentu.
Trigger : Secara keseluruhan trigger hampir sama dengan Procedure dan Function, hanya saja untuk Trigger dioperasikan secara otomatis ketika terdapat aktivitas statement-statement SQL seperti Insert, Update dan Delete. Trigger ini bisa diaktivasi sebelum atau pun sesudah terjadinya satatement-statement tersebut.

Referensi :
http://www.pengertianku.net/2014/06/pengertian-basis-data-dan-sistem-basis.html
http://squirrel-mail.blogspot.co.id/2015/11/basis-data-dan-sistem-basis-data.html
http://tass.telkomuniversity.ac.id/courseMaterial/getFile/title/sesi-4+(tambahan+materi+integritas-data)/materi/M02935
https://farhanmaulanablog.wordpress.com/category/sistem-basis-data/
http://squirrel-mail.blogspot.co.id/2015/11/transaksi-dan-concurrency.html

Nama : Wina Yulinar
NIM : 1400676
Kelas : C1-Ilkom

Minggu, 05 April 2015

RESUME BASIS DATA –DDL, ER-DIAGRAM, DML, AGGREGASI & GROUPING–


1.      DDL & ER-DIAGRAM
Data Definition Language (DDL) adalah bahasa basis data yang digunakan untuk
mendefinisikan, mengubah, dan menghapus basis data serta objek-objek yang
diperlukan, seperti table, view, user, index dan sebagainya. DDL biasa digunakan oleh
Data Base Administrator (DBA) dalam pembuatan sebuah aplikasi basis data.
Secara umum, DDL yang digunakan meliputi perintah sebagai berikut:
CREATE; digunakan untuk membuat objek yang baru;
ALTER; digunakan untuk mengubah objek yang sudah ada;
DROP; digunakan untuk menghapus objek yang sudah ada.
Ini adalah contoh perintah dan keterangannya :



ER-DIAGRAM
Dalam rekayasa perangkat lunak, sebuah Entity-Relationship Model (ERM) merupakan abstrak dan konseptual representasi data. Entity-Relationship adalah salah satu metode pemodelan basis data yang digunakan untuk menghasilkan skema konseptual untuk jenis/model data semantik sistem. Dimana sistem  seringkali memiliki basis data relasional, dan ketentuannya bersifat top-down. Diagram untuk menggambarkan model Entitiy-Relationship ini disebut Entitiy-Relationship diagram, ER diagram, atau ERD.
Notasi ERD Ada sejumlah konvensi mengenai Notasi ERD. Notasi klasik sering digunakan untuk model konseptual. Berbagai notasi lain juga digunakan untuk menggambarkan secara logis dan fisik dari suatu basis data, salah satunya adalah IDEF1X.


Notasi-notasi simbolik yang digunakan dalam Entity Relationship Diagram adalah sebagai berikut :
§  Entitas, Adalah segala sesuatu yang dapat digambarkan oleh data. Entitas juga dapat diartikan sebagai individu yang mewakili sesuatu yang nyata (eksistensinya) dan dapat dibedakan dari sesuatu yang lain (Fathansyah, 1999). Ada dua macam entitas yaitu entitas kuat dan entitas lemah. Entitas kuat merupakan entitas yang tidak memiliki ketergantungan dengan entitas lainnya. Contohnya entitas anggota. Sedangkan entitas lemah merupakan entitas yang kemunculannya tergantung pada keberadaaan entitas lain dalam suatu relasi.
§  Atribut, Atribut merupakan pendeskripsian karakteristik dari entitas. Atribut digambarkan dalam bentuk lingkaran atau elips. Atribut yang menjadi kunci entitas atau key diberi garis bawah.
§  Relasi atau Hubungan, Relasi menunjukkan adanya hubungan diantara sejumlah entitas yang berasal dari himpunan entitas yang berbeda.
Penghubung antara himpunan relasi dengan himpunan entitas dan himpunan entitas dengan atribut dinyatakan dalam bentuk garis.

Contoh ERD
Menunjukkan jumlah maksimum entitas yang dapat berelasi dengan entitas pada himpunan entitas yang lain. Macam-macam kardinalitas adalah:
§  Satu ke satu (one to one), Setiap anggota entitas A hanya boleh berhubungan dengan satu anggota entitas B, begitu pula sebaliknya.
§  Satu ke banyak (one to many), Setiap anggota entitas A dapat berhubungan dengan lebih dari satu anggota entitas B tetapi tidak sebaliknya.
§  Banyak ke banyak (many to many), Setiap entitas A dapat berhubungan dengan banyak entitas himpunan entitas B dan demikian pula sebaliknya.

Simbol-simbol untuk membuat diagram ERD:

2.      DML
Data Manipulation Language (DML) adalah bahasa/perintah SQL yang berfungsi untuk memanipulasi data yang ada di dalam basis data(database), dan digunakan untuk mengambil, memasukkan, memodifikasi, bahkan menghapus informasi/isi yang ada didalam database tersebut. Beberapa manfaat atau kegunaan dari DML diantaranya adalah sebagai berikut:
Ø  Pengambilan informasi yang disimpan dalam basis data (Select)
Ø  Penyisipan informasi baru ke basis data (Insert)
Ø  Penghapusan informasi dari basis data (Delete)
Ø  Modifikasi informasi yang disimpan dalam basis data (Update)

Ini adalah contoh perintah dan keterangannya :
1.      Pertama kita buat dulu tabel untuk menjadi acuannya



2.      Kemudian kita bisa menggunakan perintah dari DML yaitu INSERT, yang berfungsi untuk memasukkan data.


3.      Setelah data pada tiap-tiap tabel sudah dimasukkan, kita bisa melihatnya dengan perintah SELECT. Dengan perintah select ini juga kita bisa menampilkan data yang kita inginkan, karena fungsi dari select sendiri yaitu untuk melakukan pengambilan sejumlah data yang ada di dalam tabel untuk ditampilkan ataupun dimanipulasi.

4.      Perintah selanjutnya dari DML yaitu UPDATE, yang berfungsi untuk memperbarui data lama menjadi data terbaru.

5.      Dan terakhir yaitu perintah DELETE. Perintah ini digunakan untuk menghapus atau menghilangkan baris data (record) dari tabel.


3.      AGGREGASI & GROUPING
Apa itu fungsi aggregasi? Fungsi aggregasi adalah fungsi matematika sederhana dalam SQL. Biasanya fungsi aggregasi ini digunakan pada bagian SELECT untuk melakukan perhitungan dengan melibatkan sekumpulan data atau nilai.
Sedangkan grouping merupakan fungsi untuk mengelompokkan suatu data tabel berdasarkan salah satu field yang diperlukan dari tabel tersebut.
Ini adalah beberapa contoh perintah dan keterangannya :
1.      Pertama-tama kita membuat tabelnya terlebih dahulu

2.      Kemudian masukkan data-data pada tiap tabel

3.      Kemudian kita bisa memasukkan perintah-perintah yang ada di Aggregasi & Grouping.