Sunday, 29 November 2015

Semua Tentang Basis Data dan Sistem Basisdata

   1. Perbedaan Antara Basis Data dan Sistem Basis Data
1.1 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.
           Dalam pembuatan basisdata kita pastinya harus tahu terlebih dahulu gimana sih cara-cara membuatnya, memakai software apa membuatnya, dan memakai Bahasa apa membuatnya.
  a.       Tahapan-tahapan pembuatan basis data
      1.      Perencanaan basis data 
      2.      Mendefinisikan sistem 
      3.      Analisa dan mengumpulkan kebutuhan
      4.      Perancangan basis data 
      5.      Perancangan aplikasi
      6.      Membuat prototipe
      7.      Implementasi 
      8.      Konversi data 
      9.      Pengujian
      10.  Pemeliharaan operasional
  b.      Perangkat lunak dalam pembuatan basisdata
           1.Microsoft SQL Server
           2.Oracle
           3.Sybase
           4.Interbase
           5.XBase 
           6.Firebird 
           7.MySQL
           8.PostgreSQL
           9.Microsoft Access
    c.       Bahasa dalam pembuatan basis data 
        1.      Data Definition Language (DDL)
        2.      Data Manipulation Language (DML)
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.
1.2 Sistem Basis Data
    sistem basis data adalah sistem yang terdiri dari koleksi data atau kumpulan data yang saling berhubungan dan program-program untuk mengakses data tersebut.
Ada beberapa alasan kenapa kita harus memakai basis data, antaralain:
Ø  Sistem basis data telah menjadi bagian dalam sistem informasi suatau organisasi
Ø  Kebutuhan menyimpan data dalam jumlah besar semakin mendesak
Ø  Fungsi dalam organisasi semakin dikomputerisasikan
Ø  Semakin kompleks data & aplikasi yang digunakan, maka relasi antar data harus dimodelisasikan

 Didalam sistem basis data juga memiliki Komponen-komponen Utama, antaralain :
Ø Perangkat Keras (Hardware)
Ø Sistem Operasi (Operating Sistem)
Ø Basis data (Database)
Ø Sistem Pengelola Basis Data (Database Management Sistem atau disingkat DBMS) adalah  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. Contohnya software DBMS adalah MySQL, Ms. SQL Server, Interbase, Paradox, Ms. Access, Oracle, DB2
Ø Pemakai : Programmer, User aplikasi
Ø 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.
Ada beberapa pemakai sistem basis data, antaralain:
Ø 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.
2.    Integritas Data
     2.1           pengertian Integritas Data
                Integritas data adalah akurasi dan kebenaran data. Integritas data dalam sebuah sistem basis data harus dijaga untuk menjaga kebenaran data yang disimpan. Integritas data juga sangat erat kaitannya dengan keamanan keberadaan data. Ada beberapa cara dan tujuan dalam menjaga integritas data, diantaranya :
  Ø  Memasukkan aturan bisnis di dalam database
  Ø  Menjaga agar data yang tidak valid tidak masuk ke database
  Ø  Menjaga konsistensi data pada relasi keterkaitan antar table
2.2           macam-macam integritas data
          a.     Integritas Entitas
            Integritas Entitas mendefinisikan sebuah baris sebagai sebuah entitas yang unik untuk suatu table. Integritas entitas memaksa integritas dari kolom atau primary key dari suatu table ( melalui index, unique, constrain, primary key). Primary key tidak boleh null.
      Contohnya: 


 b.       Integritas Domain
            Integritas Domain merupakan validitas 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).
      Contohnya:

      c.        Integritas Referential
              Integritas Referential adalah dasar relasi antar table yaitu antara foreign key dengan primary key. Integritas referensial memastikan bahwa seluruh nilai dari foreign key cocok dengan nilai primary key yang dihubungkan.
      Contohnya: 

      d.        Integritas Enterprise
              Integritas enterprise mengizinkan kita untuk menentukan spesifik business rules sendiri yang tidak sama pada kategori integritas yang lainnya.
3.    Transaksi
     3.1           Pengertian Transaksi
                   Transaksi pada basis data adalah satu atomic operasi berupa lojik pekerjaan maupun lojik recovery (pemulihan) 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 : 
     Ø  Atomic, semua transaksi berhasil atau semua transaksi gagal
             Ø  Consistency, transaksi mempertahankan konsistensi database
             Ø  Isolation, transaksi terisolasi satu dengan yang lain
             Ø  Durability, setelah commit atau transaksi berhasil data harus di update dan harus di            survive di database
         3.2           Istilah-istilah penting dalam transaksi
          a.     Commit
    Memberi tanda bahwa transaksi telah selesai. Update dibuat permanen (bahkan jika setelah commit terjadi kegagalan system).
 b.     Rollback
Memberi tanda bahwa transaksi gagal. Semua update harus di-undo.
System recovery database dilakukan pada saat terjadi kegagalan media(hardisk corrupt), kegagalan system(listrik mati), atau kesalahan pada transaksi. Sistem recovery menggunakan fungsi rollback dan checkpoint.
  c.     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) ataupun forward (redo).

4.    Concurency
    4.1           Pengertian Concurency
              Concurrency adalah sebuah mekanisme pada system basis data yang mengijinkan banyak transaksi pada saat bersamaan untuk mengakses data yang sama tanpa adanya gangguan.
            DBMS mengijinkan banyak transaksi pada saat bersamaan untuk mengakses data yang sama.
            Concurrency Control Mechanism (CCM) dibutuhkan agar transaksi tidak saling “menunggu”.
            Adapun masalah-masalah dalam concurrency ada 3, antaralain:
   1.     Lost update problem
            ketika dua user mengupdate dua buah data yang sama

   2.     Uncommitted dependency problem
         ketika user yang satu me-retrieve data dan user yang lain me-rollback data tersebut
   
  3.     Incosistent analysis problem
            ketika user yang satu meretrieve data dan user yang lain mengupdate data tersebut
   4.2           Locking
               Jika sebuah transaksi ingin record/resource tidak berubah dalam waktu tertentu maka dia meminta lock. Ketika satu transaksi mengakses database, sebuah kunci(lock) dapat mengabaikan akses untuk transaksi lainnya, untuk menghindari hasil yang salah.
a.     Jenis-jenis lock
      1. Exclusive lock (Xlock) atau write lock yaitu locking yang hanya bisa digunakan untuk mengupdate dan membaca transsaksi
            2. Share lock (Slock) atau read lock  yaitu locking yang hanya bisa digunakan 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 atau di tolak.
 Ø  Jika transaksi A memegang Slock pada record R maka:
      ·         Permintaan Xlock transaksi lain pada R ditolak
      ·         Permintaan Slock transaksi lain pada R diterima
b.     Data access protocol
Ø  Transaksi yang ingin mengambil nilai sebuah record (retrieve) harus mendapatkan 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).
c.      Dead lock
Deadlock adalah suatu kondisi dimana dua atau lebih transaksi dalam keadaan wait-state atau saling menunggu lock untuk dilepas.

         Cara-cara penanganan deadlock :
      Ø  Deteksi dan pecahkan deadlock
      Ø  Deteksi deadlock à wait-for-graph
      Ø  Pecahkan deadlock à salah satu di rollback paksa
      Ø  Ostrich Algorithm à diabaikan
5.    XML
     5.1           Pengertian XML
XML (eXtensible Markup Language) merupakan Bahasa web turunan dari SGML (Standart Generalized Markup Language) yang ada sebelumnya. Xml hampir sama dengan HTML, dimana keduanya sama-sama turunan dari SGML. Xml ditunjukan untuk pertukaran dokumen via web, berbentuk file teks à Cross platform, indepedenden terhadap software dan hardware.
5.2           Keunggulan dan kelemahan Xml
Keunggulan Xml antaralain:
 Ø  Self Documenting à dengan melihat tag, dapat diketahui isi dokumen
    Ø  Dapat dibaca soft ware dan manusia
    Ø  Fleksibel
 Ø  Dapat dikembangkan tanpa melanggar format lama
       ·    Contoh: pada <pengarang>, tambah tag <telepon>, maka XML yang lama tetap dapat dibaca.
    Ø  Dapat beradaptasi untuk membuat Bahasa sendiri. Seperti Microsoft membuat Bahasa                       MSXML, atau Macromedia mengembangkan MXML.
Kelemhan XML antaralain:
    Ø  Pengulangan tag à tidak efisien, ukuran membengkak
5.3           Contoh-contoh XML
              Contoh XML sederhana

Kita bisa mengecek apakah kodingan Xml yang kita buat itu sudah benar atau belum, dengan cara klik kanan,open with file dengan Office XML Handler.


Jika kodingan kita sudah benar pasti nanti akan tampil seperti ini.
5.4           Bagian-bagian XML
              1.DTD
        DTD (Document Type Definition) adalah kumpulan deklarasi markup yang mendefinisikan tipe dokumen untuk keluarga bahasa markup SGML(SGML, XML, HTML, dll). Sebuah DTD menggunakan sintaks resmi pendek yang menyatakan secara tepat elemen dan referensi dapat muncul dalam dokumen dari tipe tertentu dan isi serta atribut elemen adalah sebuah DTD juga, dapat  mendeklarasikan entitas yang dapat digunakan dalam dokumen.
 Ø  DTD bertujuan untuk mendefinisikan sebuah blok yang valid dari sebuah dokumen XML                   dan agar setiap dokumen XML memiliki deskripsi yang sesuai dengan formatnya
 Ø  DTD berisi aturan-aturan yang digunakan untuk memvalidasi sebuah dokumen XML
 Ø  DTD dapat ditulis bersama dengan dokumen XML(internal) ataupun terpisah menjadi file                   DTD sendiri(eksternal)
Contoh DTD:


  
2.Dokumen XML 
 Dokumen XML dapat digunakan untuk berbagai macam tujuan, seperti :
Ø  Sebagai penyimpanan data(database) yang mudah dibaca oleh user karena disimpan dalam bentuk teks.
Ø  Standard transfer data, dapat digunakan untuk pengiriman data transaksi antar perusahaan.
Ø  Sebagai acuan membuat Bahasa baru, seperti WML(wireless Markup Language) yang digunakan pada mobile device dengan protocol WAP.
Ø  Sebagai file konfigurasi, dijava dokumen-dokumen XML sering kita jumpai seperti file server.xml dan web.xml yang digunakan Tomcat, atau perintah-perintah query yang disimpan dalam file XML yang dipakai pada framework iBatis atau Hibernate.
Contoh dokumen XML sederhana :


Hasil XML dan DTD setelah di compailer :




6.    Back End Programing     
   6.1           Pengertian Back End programing
                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.
          6.2           Trigger
               Trigger adalah blok PL/SQL atau prosedur yang berhubungan dengan table, view, skema atau database yang dijalankan secara implicit pada saat terjadi sebuah event. Trigger merupakan store procedure yang dijalankan secara automatis saat user melakukan modifikasi data pada table. Modifikasi data yang dilakukan pada table yaitu, berupa perintah INSERT,UPDATE dan DELETE. INSERT, UPDATE, dan DELETE bisa digabung jadi satu trigger yang dinamakan Multiple Trigger.
            a.    Jenis-jenis Trigger
     Trigger dapat dibagi menjadi 2 jenis, yaitu : 
     1.      Application Trigger
           Trigger yang aktif ketika terjadi suatu kejadian pada sebuah aplikasi tertentu.  
      2.      Database Trigger
            Trigger yang akan aktif ketika terjadi suatu operasi DML(insert, update, delete) pada tabel.
      b.   Manfaat trigger
           Dengan menggunakan Trigger integritas data serta konsistensi data dapat terjaga dan juga dapat mencegah terjadinya transaksi yang tidak valid. Selain itu standarisasi (penyeragaman) terhadap proses juga dapat tercapai karena Trigger dibuat satu kali dan tersimpan didalam database, sehingga setiap operasi yang dilakukan oleh siapapun terhadap sistem tersebut akan menggunakan trigger yang sama.
c.    Batasan trigger
Trigger memiliki batasan-batasan tertentu seperti :
1. Trigger tidak dapat memproses perintah commit dan rollback, selain itu juga tidak dapat memanggil prosedur, fungsi ataupun package yang menggunakan perintah tersebut.
2. Trigger tidak dapat digunakan pada kolom dalam suatu tabel yang terdapat constrain didalamnya.
d.   Struktur dasar trigger
Untuk membuat trigger pada Oracle telah disediakan statement CREATE TRIGGER yang selanjutnya dapat digunakan untuk kejadian tertentu. Secara umum terdapat 2 waktu agar sebuah Trigger dapat teraktivasi, yaitu:
1.      BEFORE
Waktu dimana sebuah Trigger akan aktif sebelum terjadinya suatu proses DML pada suatu tabel . dapat dibagi menjadi :
a.       Before Insert : Trigger akan aktif sebelum kejadian insert pada suatu tabel.
b.      Before Update : Trigger akan aktif sebelum kejadian update pada suatu tabel.
c.       Before Delete : Trigger akan aktif sebelum kejadian delete pada suatu tabel.
2.      AFTER
Waktu dimana sebuah Trigger akan aktif sesudah proses DML pada suatu tabel dilakukan. Dapat dibagi menjadi :
a.       Before Insert : Trigger akan aktif sesudah kejadian insert pada suatu tabel.
b.      Before Update : Trigger akan aktif sesudah kejadian update pada suatu tabel.
c.       Before Delete : Trigger akan aktif sesudah kejadian delete pada suatu tabel.
                            e.    Contoh Trigger

     6.3           Stored Procedure
                    PL/SQL (Procedural Language/Structured Query Language) merupakan bahasa pemrograman terstruktur di dalam SQL yang tersusun dalam blok-blok logical, yang dapat menjalankan perintah-perintah untuk menyelesaikan masalah (di Oracle disebut PL/SQL). Secara singkat, PL/SQL menambahkan teknik pemrograman terstruktur ke dalam SQL. PL/SQL digunakan dalam back end programing yang dibangun oleh SQL dan bahasa prosedural. Jenis-jenis PL/SQL di antaranya adalah anonymous block, stored program units (procedure, function, package), dan trigger.
           a.       Sifat-sifat PL/SQL (secara kode program)
                1.      Mirip Bahasa pemrograman Pascal
                2.      Case insensitive (basar kecil karakter tidak mempengaruhi)
                3.      Strong typed, semua variable harus dideklarasikan
           b.      Striktur umum PL/SQL
 v   Bagian deklarasi
Dimulai dengan perintah DECLARE, berfungsi untuk mendeklarasikan variabel-variabel yang diperlukan didalam PL/SQL. Jika tidak memerlukan variable, maka bagian deklarasi ini dapat dihilangkan.
v   Bagian eksekusi
 Bagian yang memuat sintaks PL/SQL. Dimulai dengan perintah Begin. Sintaks dapat berupa pemilihan (IF-THEN), perulangan (for,loop,while), mengambil nilai select, cursor, dan sebagainya.
v   Bagian eksepsi
Bagian yang memuat cara menangani kesalahan-kesalahan atau error handling pada waktu eksekusi PL/SQL. Bagian eksepsi juga dapat dihilangkan jika tidak diperlukan penanganan kesalahan dalam PL/SQL.
               c.       Contoh Stored Procedure


Reference :
·         http://www.w3schools.com/xml
·         Diktat Sistem Basis Data Oleh Budi Laksono Putro, M.T
·         Integritas data .ppt oleh Yudi Wibisono,MT.
·         Concurrency.ppt oleh Yudi Wibisono,MT.
·         Transaksi.ppt oleh Yudi Wibisono,MT.
·         XML.ppt oleh Yudi Wibisono,MT.
·         Modul Praktikum Sistem Basis Data 2014.
·          Hand Out Sistem Basis Data: Stored Procedure dan Trigger oleh Yudi Wibisono, MT
·         Modul Praktikum Trigger Tahun 2013