Kamis, 05 Juni 2014

tentang basis data

1.   PENGENALAN BASIS DATA

Basis dapat diartikan sebagai kumpulan sistem yang memiliki input - proses – output. Data adalah respresantasi nilai fakta dunia nyata. data dapat merepresentasikan nilai fakta dunia nyata dengan berbagai cara, bisa dengan, gambar, suara, video, dan lain-lain. Fakta dunia nyata dapat berupa barang, kejadian, aktivitas, perasaan dan semua tentang dunia nya.

1.1  Data dan Informasi
Definisi data dan informasi dari beragam sumber maka dapat disimpulkan definisi dari data dan informasi sebagai berikut:
• Data, adalah respresantasi untuk mewakili nilai fakta dunia nyata.  Representasi data dapat berupa nilai numerik, alphanumerik, gambar, suara, video, dan lain-lain.  Fakta dunia nyata dapat berupa barang, kejadian, aktivitas, perasaan dan semua tentang dunia nya. 
• Informasi, adalah data yang telah dikelola dalam bentuk tertentu untuk memberikan makna atau arti bagi penerimanya.  

Kualitas data dan informasi dipengaruhi oleh hal-hal sebagai berikut:
• Benar merepresentasikan dunia nyata,
• Tepat waktu, dan
• Tepat penggunaan.

Pentingnya data dan informasi dapat dijelaskan dalam beberapa hal sebagai berikut:
• Data dan Informasi sebagai sebuah sumber daya penting, sama seperti Sumber Daya Manusia, Keuangan, dll.
• Data dan Informasi diperlakukan sebagai asset penting perusahaan/organisasi.
• Data dan Informasi nilainya akan bertambah bila dikelola dengan “baik dan semestinya”.
• Kegagalan dalam pengelolaan data akan berakibat ketimpangan dalam pengelolaan sumberdaya lainnya dalam organisasi dan berakibat negatif bagi jalannya organisasi atau bisnis


Siklus informasi adalah gambaran secara umum mengenai proses terhadap data sehingga menjadi informasi yang bermanfaat bagi pengguna.


1.2 Tujuan dibangunnya basis data
Tujuan dibangunnya basis data 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 basisdata,maka redundansi (pengulangan) pasti akan selalu ada, sehingga akan memperbesar ruang penyimpanan. Dengan basisdata, 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), dmain 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, seperti 
• 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. 

Alasan mengapa mempelajari basisdata :
• Perpindahan dari komputasi ke informasi • Himpunan elemen data semakin banyak dan beragam, sebagai contoh  perpustakaan digital.   Video interaktif  kebutuhan untuk memperluas DBMS • DBMS mencakup bidang ilmu lain, sebagai contoh:  System operasi, bahasa pemrograman, teori komputasi, AI, logika, multimedia.

1.3  Perkembangan Basis Data
Perkembangan Basis Data dapat dipetakan dalam diagram pada gambar 1-3 dibawah ini

1.4 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:
• Software program
• Supplements operating sistem
• Manages data
• Queries data and generates reports
• Data security 
Sistem basis data adalah 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:
• Data berdiri sendiri (Data Independence) 
• Pengaksesan data efisien (Efficient data access) 
• Integritas data dan keamanan terjamin (Data integrity and security) 
• Administrasi data (Data administration) 
• Dapat diakses bersamaan (Concurrent access )
• Recovery saat terjadi kegagalan (Crash recovery) 
• Mengurangi waktu pembangunan aplikasi (Reduced application development time)

Komponen-komponen pada sebuah sistem basis data gambar1-4 terdiri antara lain:
• Perangkat keras
• Sistem operasi
• Basis data
• DBMS (Database Management System)
• Pemakai
• Aplikasi lain

Tujuan utama dari sistem basis data adalah untuk menyediakan fasilitas untuk view data secara abstrak bagi penggunanya. Namun bagaimana sistem menyimpan dan mengelola data tersebut, hanya diketahui oleh sistem itu sendiri. Abstraksi data merupakan level dalam bagaimana melihat data dalam sebuah sistem basis data. 
Berikut ini tiga level abstraksi data:
1. Level fisik Merupakan level terendah pada abstraksi data yang menunjukkan bagaimana sesungguhnya data disimpan. Pada level ini pemakai melihat data sebagai gabungan dari struktur dan datanya sendiri.
2. Level lojik Merupakan level berikutnya pada abstraksi data, menggambarkan data apa yang disimpan pada basis data dan hubungan apa saja yang ada di antara data tersebut. 
3. Level view Merupakan level tertinggi dari abstraksi data yang hanya menunjukkan sebagian dari basis data. Banyak user dalam sistem basis data tidak akan terlibat dengan semua data atau informasi yang ada atau yang disimpan. Para user umumnya hanya membutuhkan sebagian data atau informasi dalam basis data yang kemunculannya di mata user diatur oleh aplikasi end user.

1.5 Model Basis Data
Basis Data memiliki banyak model:
a. Relational Model ini direpresentasikan dalam tabel dua dimensi, tabel-tabel tersebut memiliki hubungan yang disebut dengan relasi. Model ini 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). Model ini memiliki kecepatan yang baik. 
c. Network  Relationship dibuat menggunakan linked list (pointer). Berbeda dengan model hierarchical satu anak dapat memiliki beberapa induk. Model ini 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++.

1.6 Basis Data Relasional
Model Relasional merupakan model yang paling sederhana sehingga mudah digunakan dan dipahami oleh pengguna. Model ini menggunakan sekumpulan tabel berdimensi dua ( yang disebut relasi atau tabel ), dengan masing-masing relasi tersusun atas tupel atau baris dan atribut. DBMS yang bermodelkan relasional biasa disebut RDBMS (Relational Data Base Management System). Model database ini dikemukakan pertamakali oleh EF codd, seorang pakar basisdata.  Model ini sering disebut juga dengan database relasi. 
Model database hirarki dan jaringan merupakan model database yang tidak banyak lagi dipakai saat ini, karena adanya berbagai kelemahan dan hanya cocok untuk struktur hirarki dan jaringan saja. Artinya tidak mengakomodir untuk berbagai macam jenis persoalan dalam suatu sistem database.
Tingkatan Data Dalam Database Relasi Dalam suatu sistem database relasi, data yang tersimpan dalam DBMS mempunyai tingkatan-tingkatan gambar1-6, sebagai berikut :

• Karakter (Characters) Merupakan bagian terkecil dalam database, 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 Merupakan bagian dari record yang menunjukkan suatu item data yang sejenis, Misalnya : field nama, file NIM dan lain sebagainya. Setiap field harus 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 adalah kumpulan data value dari attributee yang berkaitan sehingga dapat menjelaskan sebuah entity secara lengkap. Misal : Record
entity mahasiswa adalah kumpulan data value dari field nobp, nama, jurusan dan alamat per-barisnya. Dalam tabel database, Record disebut juga baris.
• Table/Entity Entity merupakan sesuatu yang dapat diidentifikasi dari suatu sistem database, bisa berupa objek, orang, tempat, kejadian atau konsep yang informasinya akan disimpan di database. Misal. Pada sistem database akademik, yang menjadi entity adalah, mahasiswa, dosen, matakuliah dan lain-lain. Dalam aplikasi nantinya, penggunaan istilah Entity sering di samakan dengan istilah Tabel. (Entity = table). Disebut tabel, karena dalam merepresentasikan datanya di atur dalam bentuk baris dan kolom. Baris mewakili 1 record dan kolom mewakili 1 field. Dalam sistem database tradisional, entity/table ini disebut juga dengan file.
• Database Kumpulan dari tabel-tabel yang saling berelasi, disusun secara logis, sehingga menghasilkan informasi yang bernilai guna dalam proses pengambilan keputusan. 

Ada beberapa sifat yang melekat pada suatu tabel :
 Tidak boleh ada record yang sama (kembar)
 Urutan record tidak terlalu penting, karena data dalam record dapat diurut sesuai dengan kebutuhan.
 Setiap field harus mepunyai nama yang unik (tidak boleh ada yang sama).
 Setiap field mesti mempunyai tipe data dan karakteristik tertentu 

Contoh produk DBMS terkenal yang menggunakan model relasional antara lain adalah :
1. DB2 (IBM)
2. Rdb/VMS (Digital Equipment Corporation)
3. Oracle (Oracle Corporation)
4. Informix (Informix Corporation)
5. Ingres (ASK Group Inc)
6. Sybase (Sybase Inc)
7. Dan masih banyak lagi

1.7  Bahasa Basis Data
Macam-macam perintah pada bahasa basis data dapat dikelmpokkan menjadi:
1. Data Definition Language (DDL) DDL adalah perintah-perintah yang biasa digunakan oleh pengguna basis data untuk mendefinisikan skema ke DBMS.
2. Interactive Data Manipulation Language (DML) DML adalah perintah-perintah yang digunakan untuk mengubah, manipulasi dan mengambil data pada basis data. Tindakan seperti menghapus, mengubah, dan mengambil data menjadi bagian dari DML. DML merupakan bahasa yang memungkinkan user untuk mengakses atau memanipulasi data sebagaimana telah direpresentasikan oleh model 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. Contoh dari transaction control ini adalah perintah commit dan rollback.
4. Embedded and Dinamic SQL, contoh C,C++,Java, Cobol, Pascal, etc. Tidak semua DBMS memiliki fasilitas ini, salah satu contoh 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.


1.   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]. Sejak itu, telah memperoleh banyak perhatian dan perluasan.   Model ER adalah persepsi terhadap dunia nyata sebagai terdiri objek-objek dasar yang disebut entitas dan keterhubungan (relationship) antar entitas- entitas itu.  Konsep paling dasar di model ER adalah entitas, relationship dan atribut.   

Komponen-komponen utama model ER adalah:
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.

1.1 Entitas (entity) dan Himpunan Entitas (Entitas Sets)
Entitas merupakan individu yang mewakili sesuatu yang nyata (eksistensinya) dan dapat dibedakan dari sesuatu yang lain. Sebuah kursi yang kita duduki, seseorang yang menjadi pegawai di sebuah perusahaan dan sebuah mobil yang melintas di depan kita adalah entitas.
Entitas adalah objek yang dirasa penting di sistem tersebut, yg bisa berupa :
• Objek Konkrit  Contoh : Orang, Mobil, Buku
• Objek Abstrak Contoh : Penjualan, Jadwal, Pinjaman, Tabungan

1.2 Komponen - komponen utama Entity Relationship Diagram
1. Entitas (entity)
     Entitas melambangkan objek yang terdapat dalam basis data. Entitas merupakan individu yang mewakili sesuatu yang nyata (eksistensinya) dan dapat dibedakan dari sesuatu yang lain. Sebuah kursi yang kita duduki, seseorang yang menjadi pegawai di sebuah perusahaan dan sebuah mobil yang melintas di depan kita adalah entitas.

    Sekelompok entitas yang sejenis dan berada dalam lingkup yang sama membentuk sebuah himpunan entitas (entity sets). Sederhananya, entitas menunjuk pada individu suatu objek, sedang himpunan entitas menunjuk pada rumpun (family) dari individu tersebut.

Entitas adalah objek yang dirasa penting di sistem tersebut, yg bisa berupa :
• Objek Konkrit
  Contoh : Orang, Mobil, Buku
• Objek Abstrak
  Contoh : Penjualan, Jadwal, Pinjaman, Tabungan

2. Relationship (relasi)
     Relationship memodelkan koneksi/hubungan di antara entitas-entitas. Entity Relationship Diagram memperlihatkan bahwa setiap entitas - entitasnya di hubungkang dengan relasi.Relasi menggambarkan hubungan antara entitas satu dengan entitas yang lain sesuai dengan proses bisnisnya. Notasi relasi didalam diagram ER digambarkan dengan notasi belah ketupat.

2.2 Atribut
Setiap entitas pasti memiliki atribut yang mendeskripsikan karakteristik (property) dari entitas tersebut. 
Penentuan / pemilihan atribut-atribut yang relevan bagi sebuah entitas merupakan hal penting lainnya dalam pembentukan model ER. 
Contoh: nim, nama, alamat, kode.

Setiap atribut mempunyai domain value set yaitu batasan batasan yg dibolehkan bagi suatu atribut. 
Tipe–tipe atribut dapat dibedakan.
• Simple dan Composite Atribut Simple yaitu suatu atribut yang tidak bisa dibagi menjadi bagian yg lebih kecil lagi. Contoh atribut simple adalah Jenis Kelamin. Atribut Composite yaitu suatu atribut yang dapat di bagi menjadi beberapa bagian. Contoh atribut composite Nama dapat di bagi menjadi nama depan dan nama belakang.

• Single value dan multivalued Atribut Single value yaitu suatu atribut yang bisa di isi paling banyak 1 nilai untuk setiap baris data. Contoh atribut single value adalah Jenis Kelamin. Atribut Multivalued yaitu suatu atribut yang bisa lebih dari 1 nilai yang sejenis untuk setiap baris data. Contoh atribut mutlivalued value adalah Alamat, No telp dan hobi. Ketiga atribut tersebut bisa berisi lebih dari 1. Contoh untuk 1 entitas orang bisa mempunyai lebih dari 1 nilai untuk atribut hobi yang isinya musik, olahraga begitu juga untuk telp dan alamat (* karena bisa mempunyai > 1 no telp dan > 1 alamat)
• Derived attribute Derived Attribute yaitu suatu atribut yang nilainya didapatkan dari hasil pengolahan atribut lain. Contoh atribut derived adalah umur yaitu didapatkan dari perhitungan tanggal lahir dan tanggal sekarang.  IPK yang didapatkan dari penjumlahan nilai di bagi dengan jumlah sks yang diambil.

Notasi atribut digambarkan dengan gambar elips. Atribut kunci biasa di beri tanda # atau garis bawah. Contoh himpunan entitas mahasiswa mempunyai atribut nim sebagai key, prodi, nama, dsb


2.3 Relasi
ER menggambarkan entitas-entitas dengan atributnya yang saling berelasi. Relasi menggambarkan hubungan antara entitas satu dengan entitas yang lain sesuai dengan proses bisnisnya. Notasi relasi didalam diagram ER digambarkan dengan notasi belah ketupat.

2.4 Derajat Himpunan Relasi
Jika dilihat dari jumlah entitas yang dihubungkan oleh sebuah relasi, maka kita bisa membagi menjadi 3 macam:
  1. Unary (Hanya me-relasi-kan 1 entitas)
  2. Binary (Me-relasi-kan 2 entitas)
  3. Ternary (Me-relasi-kan 3 entitas)



2.5 Kardinalitas Relasi
Kardinalias relasi menggambarkan banyaknya jumlah maksimum entitas dapat ber-relasi dengan entitas pada himpunann entitas yang lain. Pada himpunan relasi biner, pemetaan kardinalitas relasi dapat berupa salah satu dari pilihan berikut :
  1. Satu ke Satu
  2. Satu ke Banyak
  3. Banyak ke Satu
  4. Banyak ke Banyak



2.6 Key 
Penggunaan key merupakan cara untuk membedakan suatu entitas didalam himpunan entitas dengan entitas lain. Key dipilih karena unik, untuk setiap entitas sehingga bisa di bedakan dari entitas yang lain. Kita bisa mendefinisikan key sebagai satu atau gabungan dari beberapa atribut yang dapat membedakan semua row dalam relasi secara unik. Macam key ada 3 yaitu : 
1. Superkey Superkey yaitu satu atau lebih atribut (kumpulan atribut) yang dapat membedakan satiap baris data dalam sebuah relasi secara unik.
Contoh super key yaitu: 
• Nim, nama, alamat, kota
• Nim, nama, alamat
• Nim, nama
• Nim 
2. Candidate key Kumpulan atribut minimal yang dapat membedakan setiap baris data dalam sebuah relasi secara unik.
3. Primary key Primary key merupakan salah satu dari candidate key yang terpilih. Alasan pemilihan primary key :
• Lebih sering di jadikan acuan
• Lebih ringkas
• Jaminan keunikan key lebih baik

Merupakan diagram model konseptual untuk menggambarkan struktur logis dari basisdata berbasis grafis.

Notasi yang digunakan di Diagram ER adalah :
Garis  : Link yang menghubungkan atara Entitas dengan atribut, dan entitas dengan relasi atau entitas
Elips dobel  : Menunjukkan atribut yang multivalued
Elips dengan garis terputus : Menunjukkan atribut turunan
2.9 Tahapan Pembuatan ER Diagram
Dapat disimpulkan untuk membuat ER Diagram, dapat mengikuti urutan tahapan berikut:
1. Mengidentifikasikan dan menetapkan seluruh himpunan entity yang akan terlibat.
2. Menentukan atribut-atribut dari setiap entity.
3. Menentukan atribut primary key dari setiap entity.
4. Menentukan relationship antar entity.
5. Menentukan atribut-atribut dari setiap relationship (jika ada).
6. Menentukan Cardinality Rasio.
7. Menentukan Participation Constraint.


3. KONVERSI ER KE BASIS DATA  RELATIONAL

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.

3.1 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. Diskriminator tidak sama dengan primary key. 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.

3.2 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.
    Subgrouping di atas menjadi himpunan entias yang levelnya lebih rendah dan memiliki atribut tersendiri yang tidak dimiliki pada level di atasnya.Generalisasi merupakan proses desain bottom-up dengan mengkombinasikan jumlah himpunan entitas yang digunakan secara bersama sama. Spesialisasi dan generalisasi sama sama digambarkan dengan notasi ISA, yang membedakan adalah sudut pandangnya saja. 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.

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

3.4 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)

3.5 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. Atribut multivalued M dari entitas E direpesentasikan oleh tabel terpisah EM.

4. NORMALISASI 

Segala sesuatu akan baik jika berada di dalam bentuk normalnya. Di dalam database pun telah dikenal yang namanya bentuk normal atau sering disebut NF ( Normal Form ). di dalam pembahasan kali ini akan dibahas tentang konsep normalisasi database beserta konsep-konsep lain yang mendasarinya.
         untuk dapat mengerti tentang normalisasi basis data, diperlukan untuk memahami definisi dan tujuan normalisasi, mengidentifikasi super key, candidate key dan primary key dari sebuah table, mengidentifikasi functional dependency yang ada pada sebuah tabel, termasuk partial dan transitive FD, mengenal bentuk normal pertama, ke dua, ke tiga dan BCNF serta mampu melakukan normalisasi dengan menerapkan bentuk-bentuk normal tersebut, dan mengenal sekilas tentang bentuk-bentuk normal lain dan memahami konsep denormalisasi.

4.1 Pengertian 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.

4.2 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. Untuk memperjelas pemahaman tentang proses normalisasi. selain itu, normalisasi juga berperan untuk mengurangi redudansi data.

tujuan normalisasi secara rinci adalah sebagai berikut :
-Untuk menghilang kerangkapan data
-Untuk mengurangi kompleksitas 
-Untuk mempermudah pemodifikasian data

4.3 Tahapan Normalisasi
  
Tahapan dari nomralisasi:
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)


4.4 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-value, atribut komposit atau kombinasinya.
     ( atribut multi-value adalah atribut yang bernilai ganda dan dapat dibagi lagi )
2. Mendefinisikan atribut kunci.
3. Setiap atribut dalam tabel tersebut harus bernilai atomic (tidak dapat dibagi-bagi lagi)

4.5 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

didalam tabel ditunjukan , mhs_nama dan mhs _alamat bergantung pada mhs_nrp. mk_nama dan mk_sks bergantung pada mk_kode. dapat ditarik kesimpulan bahwa didalam tabel tersebut terdapat dua attribut yang menjadi primary key . dalam aturan nomor 2 dan 3 dijelaskan bahwa Semua atribut bukankunci hanya boleh tergantung (functional dependency) pada atribut kuncidan Jika adaketergantungan  parsial maka atribut tersebut harus dipisah pada tabel yang lain.


4.6 Normalisasi Ketiga
 
    Jika tabel telah berada dalam bentuk normal ke tiga ( Third Normal Form ) , maka tabel tersebut bisa dianggap cukup normal. Third Normal Form merupakan syarat minimum bagi sebuah desan tabel walaupun akan lebih baik jika juga memenuhi BCNF.
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). 

4.7 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 :
• Telah memenuhi bentuk normal ketiga ( 3NF )
jika tidak memnuhi 3NF maka tidak akan memenuhi BCNF
• 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.
           pada umumnya tabel yang memenuhi 3NF juga memenuhi BCNF, jarang ada tabel yang memenuhi 3NF tetapi tidak memenuhi BCNF. Umumnya sebuah tabel dikategorikan sudah ‘cukup normal’ jika sudah memenuhi kriteria BCNF. Jika tidak memungkinkan untuk memenuhi kriteria BCNF, maka 3rd NF juga sudah dianggap cukup memadai. 

4.8 Bentuk-Bentuk Normal Lainnya
            Selain daripada apa yang di bahas sebelumnya, ada bentuk-bentuk normal Form lainnya sebagai berikut :

1. Bentuk Normal ke-4 (4th NF)
diperkenalkan oleh Ronald Fagin pada tahun 1977
2. Bentuk Normal ke-5 (5th NF)
diperkenalkan oleh Ronald Fagin pada tahun 1979
3. Domain/Key Normal Form (DKNF)
diperkenalkan oleh Ronald Fagin pada tahun 1981
4. Bentuk Normal ke-6 (6th NF)
diperkenalkan oleh Date, Darwen dan Lorentzos pada tahun 2002

4.9 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
Konsekuensi Denormalisasi :
1. Perlu ruang ekstra untuk penyimpanan data
2. Memperlambat pada saat proses insert, update dan delete sebab proses-proses tersebut harus dilakukan terhadap data yang redundant (ganda)

        dari uraian diatas dapat disimpulkan bahwa denormalisasi harus dilakukan dengan bijak sebab walaupun memiliki beb
erapa keuntungan namun juga memiliki konsekuensi yang patut diperhitungkan.



Main Source From Diktat IK 330 - Basis Data

Lectured by : Budi Laksono Putro : budi.staf.upi.edu
Computer Science at Indonesia University of Education:cs.upi.edu