Rabu, 04 Juni 2014

Pengenalan Basis Data , Entity Relationship Model, Konversi ER ke Basis Data Relational, Normalisasi

Source from :
Cs.upi.edu
Budi.staf.upi.edu
Diktat IK-330 Budi Laksono Putro MT

1.     PENGENALAN BASIS DATA
Mengapa bab pertama kita disini mengenal basis data? Karena untuk mempelajarinya kita harus mengenal artinya terlebih dahulu. Apa itu Basis dan Data?
·         Basis adalah suatu sistem yang mengolah suatu data
·         Data adalah respresantasi untuk mewakili nilai fakta dunia nyata.
Setelah data diolah akan menjadi suatu informasi. Suatu kualitas Informasi dilihat dari tiga kriteria, yaitu :
·         Benar merepresentasikan dunia nyata, dan 
·         Tepat waktu, dan
·         Tepat penggunaan.
Pentingnya data dan informasi dapat dilihat dari siklus informasi gambar 1-1 dibawah ini :

Siklus informasi adalah gambaran umum bagaimana data yang diinput diproses menjadi suatu informasi yang bermanfaat bagi pengguna
Basis Data seperti lemari arsip yang memberi kemudahan kepada pengguna untuk mencari sebuah data dengan mudah. Diilustrasikan seperti gambar 1-2 dibawah ini :

            Disini memberi kemudahan untuk menemukan suatu informasi adalah salah satu tujuan basis data. Tujuan basis data yang lainnya adalah sebagai berikut :
Memungkinkan untuk menampilkan, memanipulasi data secara mudah dan lebih cepat .
Dengan mengelompokan sebuah data memungkinkan memperkecil ruang memori serta mengulangi pengulangan (redudansi) .
Membuat pengkodean data yang unik dan aturan tertentu (constraint). Sehingga meningkatkan tingkat keakuratan.
Data dapat diakses melalui internet, kapanpun dan dimanapun.
Kelengkapan data bersifat relatif, tergantung permintaan pengguna.
1.      Kecepatan & kemudahan (speed)
2.      Efisiensi ruang penyimpanan (space)
3.      Keakuratan (accuracy)
4.      Ketersediaan (availability)
5.      Kelengkapan (completeness)
6.      Keamanan (security) 
7.      Kebersamaan pemakaian (sharability)
Disini kita dapat menentukan tingkat keamanan data sesuai keinginan maupun sistem
Basis data dikelola dengan aplikasi multi user yang dapat memenuhi kebutuhan ini.

Setelah itu kita akan mengetahui perkembangan basis data mulai dari ditemukannya ilmu ini.  Pada gambar 1-3 dibawah ini :

                                                        
            Basis Data menggunakan Sistem Basis Data DBMS untuk mengolah data. Apa itu Sistem Basis Data DBMS ?
“Perangkat lunak yang digunakan untuk mengelola dan memanggil kueri (query) basis data disebut sistem manajemen basis data (Database Management System, DBMS)”
DBMS memiliki karakteristik sebagai berikut :
1.      Software program
2.      Supplements operating sistem
3.      Manages data
4.      Queries data and generates reports
5.      Data security 
      Dan Sistem basis data sendiriadalah sistem yang terdiri atas kumpulan file-file yang saling berhubungan dan dikelola oleh program (DBMS) yang memungkinkan beberapa pemakai dan atau program lain yang memiliki otoritas untuk mengakses dan memanipulasi data tersebut.
Kelebihan pemakaian DBMS adalah sebagai berikut :
1.      Data berdiri sendiri (Data Independence) 
2.      Pengaksesan data efisien (Efficient data access) 
3.      Integritas data dan keamanan terjamin (Data integrity and security) 
4.      Administrasi data (Data administration) 
5.      Dapat diakses bersamaan (Concurrent access )
6.      Recovery saat terjadi kegagalan (Crash recovery) 
7.      Mengurangi waktu pembangunan aplikasi (Reduced application development time) 
Komponen pada DBMS pada gambar 1-4 sebagai berikut :

            Bisa diperjelas lagi, komponen DBMS sebagai berikut :
·         Perangkat keras
·         Sistem operasi
·         Basis data
·         DBMS (Database Management System)
·         Pemakai
·         Aplikasi lain
            Tujuan utama dari sistem basis data sendiri adalah untuk menyediakan fasilitas untuk view data secara abstrak bagi penggunanya. Untuk mengetahui level suatu sistem basis data dapat menggunakan Abstraksi.  Contoh gambar 1-5 berikut :


            Berikut ini tiga level abstraksi data:
1.      Level fisik (rendah)
Menunjukkan bagaimana sesungguhnya data disimpan.
2.      Level lojik (tengah)
Menggambarkan data apa yang disimpan pada basis data dan hubungan antara data tersebut.
3.       Level view (tinggi)
Yang hanya menunjukkan sebagian dari basis data.



Disini kita perlu mengetahui model basis data, contoh pada gambar berikut :


            Basis Data memiliki model, sebagai berikut :
a.        Relational Model
Direpresentasikan dalam tabel dua dimensi, tabel tersebut memiliki hubungan yang disebut dengan relasi. Memiliki fleksibilitas dan kecepatan yang tinggi.
b.      Hierarchical
Memiliki struktur pohon dimana field hanya memiliki satu buah induk (parent), masing-masing parent memiliki banyak child (anak). Memiliki kecepatan yang baik. 
c.       Network  Relationship
Dibuat menggunakan linked list (pointer).  Satu anak dapat memiliki beberapa induk. Memiliki fleksibilitas yang tinggi.

d.      Object oriented
Object Oriented Database adalah sebuah sistem database yang menggabungkan semua konsep object oriented seperti pewarisan, abstraksi, enkapsulasi, dll. Model ini dapat berinteraksi dengan baik dengan bahasa pemrograman berorientasi objek seperti java dan C++.
            Untuk mudah memahami DBMS, disini kita menggunakan Model Relasional yang mudah digunakan dan dipahami oleh pengguna. DBMS yang bermodelkan relasional biasa disebut RDBMS (Relational Data Base Management System). Model ini sering disebut juga dengan database relasi. 
Database dalam model ini disusun dalam bentuk tabel dua dimensi yang terdiri dari:
·         Baris (record)
·         kolom (field)
·         Pertemuan antara baris dengan kolom disebut item data (data value)
·         Tabel-tabel yang ada di hubungkan (relationship) menggunakan field-field kunci (Key field) sehingga dapat meminimalkan duplikasi data. 
            Data yang tersimpan dalam DBMS mempunyai tingkatan-tingkatan gambar1-6, sebagai berikut : 



·         Karakter (Characters)
Dapat berupa karakter numerik (angka 0 s.d 9), huruf ( A - Z, a - z) ataupun karakter-karakter khusus, seperti *, &. %, # dan lain-lain.
·         Field atau Attribute
Bagian dari record yang menunjukkan suatu item data yang sejenis, Misalnya : field nama, file NIM dan lain sebagainya. Mempunyai nama dan tipe data tertentu. Isi dari field di sebut Data Value. Dalam table database, field ini disebut juga kolom.
·         Record atau Tupple Tuple/Record
Kumpulan data value dari attributee yang berkaitan sehingga dapat menjelaskan sebuah entity secara lengkap. Misal : Record Entity mahasiswa . Dalam tabel database, Record disebut juga baris.
·         Table/Entity Entity
Sesuatu yang dapat diidentifikasi dari suatu sistem database, bisa berupa objek, orang, tempat, kejadian atau konsep yang informasinya akan disimpan di database. Disebut tabel, karena dalam merepresentasikan datanya di atur dalam bentuk baris dan kolom. Baris mewakili 1 record dan kolom mewakili 1 field.
·         Database
Kumpulan dari tabel-tabel yang saling berelasi, disusun secara logis, sehingga menghasilkan informasi yang bernilai guna dalam proses pengambilan keputusan. 
            Basis Data mempunyai macam-macam perintah, yaitu sebagai berikut :
1.       Data Definition Language (DDL)
DDL adalah perintah-perintah yang biasa digunakan oleh pengguna basis data untuk mendefinisikan skema ke DBMS.  DDL Digunakan untuk mespesifikasikan struktur/skema basis data yang menggambarkan/mewakili desain basis data secara keseluruhan. 
2.       Interactive Data Manipulation Language (DML)
DML adalah perintah-perintah yang digunakan untuk mengubah, manipulasi dan mengambil data pada basis data.
Terdapat dua macam DML, yaitu:
·         Prosedural, mengharuskan user untuk menentukan data apa yang dibutuhkan dan bagaimana untuk mendapatkan data tersebut.
·         Nonprosedural, mengharuskan pemakai untuk menentukan data apa yang dibutuhkan tanpa menyebuntukan bagaimana mendapatkan data tersebut.
3.      Transaction control
Transaction control adalah bahasa basis data yang mengatur transaksi yang dilakukan oleh Data Manipulation Language (DML). Transaction control ini memiliki peran yang sangat besar untuk menentukan dilakukan atau tidaknya perubahan-perubahan data yang ada pada basis data.
4.       Embedded and Dinamic SQL
 DBMS yang memiliki fasilitas ini adalah oracle dimana oracle dapat me-load class yang ditulis menggunakan bahasa pemrograman java kedalam database.
5.       Authorization
 Untuk mendefinisikan hak akses spesifik terhadap objek- objek basis data. 


2.     Entity-Relationship Model

            Model Entity-Relationship adalah model data konseptual tingkat tinggi untuk perancangan basis data.
            Model data konseptual adalah himpunan konsep yang mendeskripsikan struktur basis data, transaksi pengambilan dan pembaruan basis data. 
            Model ER adalah data konseptual tak tergantung DBMS dan platform perangkat keras tertentu.  Model ER dikemukakan oleh Chen [1976].

             Diagram ER Merupakan diagram model konseptual untuk menggambarkan struktur logis dari basisdata berbasis grafis. Komponen-komponen utama model ER adalah sebagai berikut :
1.      Entitas (entity),
Entitas memodelkan objek-objek yang berada diperusahaan/lingkungan.
2.      Relationship.
Relationship memodelkan koneksi/hubungan di antara entitas-entitas.
3.      Atribut-atribut (properi-properti)
Memodelkan properti-properti dari entitas dan relationship.
4.      Konstrain-konstrain (batasan-batasan)
Integritas, konstrain- konstrain ketentuan validitas.
            Entitas diartikan sebagai ‘objek’ didunia nyata yang bisa dibedakan dengan ‘objek’ yang lain. Notasi entitas digambarkan dengan Persegi panjang. Setiap entitas mempunyai atribut yang berisi karakteristik yang mendeskripsikan dari entitas tersebut. Notasi atribut di gambarkan dengan elips.
Atribut dapat dibedakan sebagai berikut :
·         Simple dan Composite Atribut Simple
Suatu atribut yang tidak bisa dibagi menjadi bagian yg lebih kecil lagi. Atribut Composite yaitu suatu atribut yang dapat di bagi menjadi beberapa bagian
·         Single value dan multivalued Atribut
Single value yaitu suatu atribut yang bisa di isi paling banyak 1 nilai untuk setiap baris data. Atribut Multivalued yaitu suatu atribut yang bisa lebih dari 1 nilai yang sejenis untuk setiap baris data
·         Derived attribute
Derived Attribute yaitu suatu atribut yang nilainya didapatkan dari hasil pengolahan atribut lain.
            Relasi diartikan sebagai hubungan yang terjadi diantara satu entitas dengan entitas yang lainnya. Notasi relasi di gambarkan dengan belah ketupat.
           






            Derajat himpunan relasi ada 3 macam, yaitu sebagai berikut :
a.       Unary (Hanya merelasikan 1 entitas)

b.      Binary (Merelasikan 2 entitas)

c.       Ternary (Merelasikan 3 entitas)

            Kardinalitas relasi menggambarkan banyaknya jumlah maksimum entitas dapat berelasi dengan entitas pada himpunan entitas yang lain. Pada himpunan relasi biner, pemetaan kardinaltias relasi dapat berupa salah satu dari berikut ini :
a.       Satu ke Satu


Relasi di atas menggambarkan bahwa untuk setiap entitas di himpunan entitas berpasangandengan maksimal 1 entitas di himpunan entitas B.  Dari A ke B kardinalitasnya maksimal 1, dan dari B ke A kardinalitasnya maksimal 1. Oleh karena itu relasi ini berkardinalitas 1 ke 1.

b.      Satu ke Banyak atau Banyak ke Satu

Relasi di atas menggambarkan bahwa untuk setiap entitas di himpunan entitas A berpasangan dengan banyak entitas di himpunan entitas B. Dari A ke B kardinalitasnya maksimal adalah banyak, dan dari B ke A kardinalitasnya maksimal 1. Oleh karena itu relasi ini berkardinalitas 1 ke banyak.

c.       Banyak ke Banyak

Relasi di atas menggambarkan bahwa untuk setiap entitas di himpunan entitas A berpasangan dengan maksimal banyak entitas di himpunan entitas B.  Dari A ke B kardinalitasnya maksimal adalah banyak, dan dari B ke A kardinalitasnya maksimal adalah banyak. Oleh karena itu relasi ini berkardinalitas banyak ke banyak.

            Key adalah satu atau gabungan dari beberapa atribut yang dapat membedakan semua row dalam relasi secara unik. Macam key dibedakan jadi 3 yaitu super key, candidate key, primary key




3.      KONVERSI ER KE  BASIS DATA REALTIONAL
   ER adalah sebuah model yang konseptual dari basis data relational. Desain ER bisa di konversikan atau di ubah mejadi bentuk tabel yang akan di simpan di dalam basis data. bab ini juga akan membahas weak entity, spesialisasi, agregasi dan penurunan Diagram ER ke bentuk tabel. yang utama dari pembahasan kali ini  adalah kapan dan bagaimana kita menggunakan weak entity, spesilisasi dan agregasi dan bagaimana menurunkan konseptual ER kedalam tabel.

a.       Himpunan Entitas Lemah
Himpunan Entitas Lemah pada umumnya selalu bergantung pada entitas lain dan tidak memiliki primary key. Notasi entitas lemah dilambangkan dengan double persegi panjang, sedangkan relasi untuk himpunan entitas lemah dilambangkan dengan double diamond. Diskriminator / key parsial adalah atribut – atribut yg dpt membedakan entitas – entitas yang terdapat di himpunan entitas lemah. Konsep diskriminator hanya di pakai pada himpunan entitas lemah. Primary key pada Himpunan Entitas lemah ada 2 yaitu primary key dari entitas kuat yg berelasi dan diskriminator / key parsialnya

b.      Spesialisasi dan Generalisasi
 Spesialisasi adalah suatu proses desain top-down dengan mendesain subgrouping didalam didalam himpunan entitas yang berbeda dari himpunan entitas. Tujuan dari spesialisasi adalah memberikan gambaran konseptual tentang perbedaan karakteristik dari himpunan entitas yang hampir serupa dengan konsep sub grouping / pengelompokan.
Generalisasi merupakan proses desain bottom-up dengan mengkombinasikan jumlah himpunan entitas yang digunakan secara bersama sama. Jika Spesialisasi kita mendefinisikan entitas secara umum kemudian mencari subgroup dari entitas tersebut, tetapi generalisasi memandang sebaliknya, dari adanya subgroup subgroup yang berbeda kemudian di cari entitas umum yang mewakili 2 himpunan entitas tersebut.

c.        Agregasi
Agregasi merupakan hubungan antara satu object dengan object lainnya dimana object satu dengan object lainnya sebenarnya terpisah namun disatukan. sehingga tidak terjadi kebergantungan (Object lain bisa ada walau object penampungnya tidak ada ). contoh dalam dunia nyatanya adalah object pemain bola dan klub bola dimana pemain bola bisa tetap ada walau tidak ada klub bola.


d.      Ringkasan Notasi simbol ER
  
e.       Skema ER ke Tabel

Penurunan skema itu dibutuhkan karena penurunan skema dimaksudkan untuk mengubah sebuah konsep hubungan entitas dan relasi kedalam bentuk fisik tabel tabel yang berelasi. Inti dari Entity Relationship adalah menggambarkan hubungan di dunia nyata kedalam bentuk entitas entitas yang saling ber-relasi, dari diagram ini bisa di buat kedalam bentuk tabel yang langsung di implementasikan kedalam basis data.

Secara umum penurunan diagram ER ke tabel memiliki aturan sebagai berikut :
• Setiap himpunan entitas menjadi Tabel (* baik himpunan entitas kuat atau lemah)
• Setiap atribut menjadi kolom di tabel
• Kardinalitas relasi akan menentukan jumlah tabel yang terbentuk (* akan di bahas di bawah lebih detail)

f.       Representasi Atribut menjadi Kolom

   Atribut bertipe simple , single dan derived direpresentasikan sama persis seperti diagram ER. Tetapi untuk atribut komposit dan multivalued mempunyai aturan representasi tersendiri.

   Atribut komposit akan dipecah dengan membuat atribut terpisah untuk masing masing komponennya. Contoh atribut nama pada tabel mahasiwa, di pecah menjadi 2 kolom yaitu nama depan dan nama belakang.
Atribut multivalued mengharuskan untuk di pecah menjadi 2 Tabel.

g.      Representasi Himpunan Entitas sebagai Tabel

     Himpunan entitas kuat di representasikan kedalam tabel dengan kolom sama persis dengan atribut yang sudah di definisikan di diagram ER.





4.      NORMALISASI

             
       Apa itu normalisasi? Menurut (E.F. Codd, 1970) normalisasi adalah langkah-langkah sistematis untuk menjamin bahwa struktur database memungkinkan untuk general purpose query dan bebas dari insertion, update dan deletion anomalies yang dapat menyebabkan hilangnya integritas data.
a.       Tujuan Normalisasi

     Tujuan dari dinormalisasikannya suatu model database yaitu untuk memperbaiki desain tabel yang kurang baik sehingga penyimpanan data menjadi lebih efisien dan bebas anomali data.
Normalisasi Berlaku sebagai proses untuk mendapatkan output berupa desain tabel yang lebih efisien dan non-anomali. 

Tujuan normalisasi secara rinci adalah sebagai berikut
·         Untuk menghilang kerangkapan dat
·         Untuk mengurangi kompleksitas 
·         Untuk mempermudah pemodifikasian data
b.      Tahapan Normalisasi
            Tahapan dari normalisasi adalah sebagai berikut :
·         Menghilangkan perulangan group
·         Menghilangkan ketergantungan parsial
·         Menghilangkan kertergantungan transitif
·         Menghilangkan anomali fungsional
·         Menghilangkan kertegantungan multivalue
·         Menghilangkan anomali yang tersisa
·          
c.        Bentuk - bentuk normal :
 
1.      Bentuk Normal Tahap Pertama (1st Normal Form / 1NF)

2.      Bentuk Normal Tahap Kedua (2nd Normal Form / 2NF)

3.      Bentuk Normal Tahap (3rd Normal Form / 3NF)

4.      Boyce-Code Normal Form (BCNF)

5.      Bentuk Normal Tahap (4th Normal Form / 4NF)

6.      Bentuk Normal Tahap (5th Normal Form / 5NF)

Bentuk Normal Pertama (1NF)
     
    Bentuk normal pertama merupakan bentuk normal dengan lever terendah, dan diperlukan tahapan normalisasi berikutnya untuk mencapai kelebih normalan dan keakuratan data.
berikut adalah persyaratan untuk mencapai First Normal Form :
1.      Tidak adanya atribut multi-valueatribut komposit atau kombinasinya. ( atribut multi-value adalah atribut yang bernilai ganda dan dapat dibagi lagi .
2.      Mendefinisikan atribut kunci.

Normalisasi Kedua
     
    Untuk mencapai bentuk normal kedua, dibutuhkan beberapa persyaratan sebagai berikut :
1.      Sudah memenuhi dalam bentuk normal kesatu (1NF)
2.      Semua atribut bukan kunci hanya boleh tergantung (functional dependency) pada atribut kunci
3.      Jika ada ketergantungan  parsial maka atribut tersebut harus dipisah pada tabel yang lain
4.      Perlu ada tabel penghubung ataupun kehadiran foreign key bagi atribut-atribut yang telah dipisah tadi

Normalisasi Ketiga
Berikut adalah persyaratan untuk mencapai bentuk normal ketiga ( 3NF ) : 
1.      Sudah berada dalam bentuk normal kedua (2NF)
2.      Tidak ada ketergantungan transitif (dimana atribut bukan kunci tergantung  pada atribut bukan kunci lainnya). 

Normalisasi BCNF
        Bentuk Normal Boyce-codd Normal Form lebih akurat dari 3NF karena memiliki level ke akuratan yang lebih tinggi.

Persyaratan untuk memenuhi BCNF adalah sebagai berikut :
1.      Telah memenuhi bentuk normal ketiga ( 3NF )
jika tidak memnuhi 3NF maka tidak akan memenuhi BCNF
2.       Untuk semua FD yang terdapat di tabel, ruas kiri dari FD tersebut adalah super key 
 Jika ada satu saja FD pada tabel dimana ruas kirinya bukan super key maka desain tabel tersebut belum memenuhi syarat BCNF. Solusinya adalah dengan melakukan dekomposisi tabel dan tetap mempertahankan konsistensi data seperti beberapa contoh pada sub bab sebelumnya.
          
Bentuk-Bentuk Normal Lainnya
Selain daripada apa yang di bahas sebelumnya, ada bentuk-bentuk normal Form lainnya sebagai berikut :
·         Bentuk Normal ke-4 (4th NF)
·          Bentuk Normal ke-5 (5th NF)
·         Domain/Key Normal Form (DKNF)
·         Bentuk Normal ke-6 (6th NF)



Denormalisasi

           Denormalisasi merupakan suatu proses untuk menggandakan data secara sengaja (sehingga menyebabkan redundansi atau perulangan data) untuk meningkatkan performa basis data, untuk meningkatkan kecepatan akses data atau memperkecil query cost. 
              Denormalisasi berbeda dengan normalisasi. Denormalisasi dilakukan setelah tabel dalam kondisi ‘cukup normal’ (mencapai level bentuk normal yang dikehendaki). sedangkan normalisasi dimulai sejak tabel dalam keadaan tidak normal atau belum cukup normal.

 Tujuan Denormalisasi :
1.       Mempercepat proses query dengan cara meminimalkan cost yang disebabkan oleh operasi join antar tabel
2.       Untuk keperluan Online Analytical Process (OLAP)
3.       Dan lain-lain.