Friday, November 27, 2015

SCHEMA DATABASE SISTEM INFORMASI DALAM BENTUK CLASS DIAGRAM SERTA RELASI-RELASI ANTAR TABLE ( NORMALISASI )

I. PENGENALAN BASIS DATA


     Tidak ada satu pun sesuatu yang tidak memiliki arti di dunia ini, karena segala sesuatu dalam hidup pasti memiliki suatu keterkaitan satu sama lain. Sama halnya dengan basis data  yang memiliki banyak keterkaitan dari berbagai aspek kehidupan, maka sangat beruntunglah orang-orang yang mempelajari basis data. Cara agar kita dapat memanfaatkan basis data dengan sebaik mungkin yaitu terlebih dahulu kita mengetahui dan mengerti konsep basis data. mengetahui mengenai komponen-komponen sistem basis data, dan  mengetahui mengenai abstraksi data dan Database Language.

1.1 Pengertian Basis Data, Data dan Informasi

     Data merupakan respresantasi untuk mewakili nilai fakta dunia nyata. data dapat merepresentasikan nilai fakta dunia nyata dengan berbagai cara, bisa dengan numerik, alphanumerik, gambar, suara, video, dan lain-lain. Fakta dunia nyata dapat berupa barang, kejadian, aktivitas, perasaan dan semua tentang dunia nya. sedangkan basis dapat diartikan sebagai kumpulan, dimana kumpulan tersebut menjadi sistem yang memiliki input - proses - output untuk menjadi satu .
      Dapat disimpulkan, maka Basis data adalah adalah sekumpulan data yang disimpan secara sistematis di dalam komputer dan dapat diolah atau dimanipulasi menggunakan perangkat lunak untuk menghasilkan informasi. Informasi adalah data yang telah dikelola dalam bentuk tertentu untuk memberikan makna atau arti bagi penerimanya.

       Data dan Informasi tentu saja memiliki kualitasnya tersendiri, dimana kualitas tersebut dipengaruhi oleh hal-hal berikut :
• Merepresentasikan fakta dunia nyata dengan Benar (akurat)
• Tepat waktu, dan
• Tepat penggunaan.

     Data dan Informasi merupakan dua hal penting dalam kehidupan, karena Data dan Informasi dapat berperan sebagai sebuah sumber daya penting, sama seperti Sumber Daya Manusia, Keuangan, dll. Data dan Informasi juga dapat 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 suatu gambaran yang menjelaskan bagaimana proses dari sebuah data diolah, lalu dijadikan informasi sehingga bermanfaat bagi pengguna. Informasi yang menghasilkan informasi berikutnya. Demikian seterusnya proses pengolahan data menjadi informasi.
Berikut gambar dari siklus informasi :





1.2 Tujuan dan alasan menggunakan basis data

       Segala sesuatu yang diciptakan didunia ini pasti memiliki tujuan, bahkan sebutir pasir pun diciptakan memiliki tujuan. dan tujuan dari dibangunnya basis data adalah :


1. Kecepatan & kemudahan (speed)

   Waktu adalah uang, maka hematlah waktu anda sebagaimana anda menghemat uang anda. Basis data memudahkan kita memungkinkan kita untuk dapat menyimpan data atau melakukan perubahan/ manipulasi terhadap data atau menampilkan kembali data tersebut secara lebih cepat dan mudah.

2. Efisiensi ruang penyimpanan

    Basis data dapat menyelamatkan system storage anda. Dengan basisdata, efisiensi ruang penyimpanan dapat dilakukan dengan menerapkan sejumlah pengkodean, atau dengan membuat relasi-relasi antar kelompok data yang saling berhubungan.

3. • Keakuratan (accuracy)

     Semakin akurat data, maka semakin tinggi kualitasnya. pembentukan relasi antar data bersama dengan penerapan aturan/batasan (constraint), domain data, keunikan data, dsb, yang secara ketat dapat diterapkan dalam sebuah basis data, dan sangat berguna untuk menekan ketidak akuratan penyimpanan data.

4. Ketersediaan (availability)

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

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

6. Keamanan (security)

    dengan menggunakan database, keamanan data anda akan semakin baik karena 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.

7. Kebersamaan pemakaian (sharability)

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

Alasan mengapa mempelajari basis data :

Alasan mengapa mempelajari basisdata :
• Perpindahan dari komputasi ke informasi
• Himpunan elemen data semakin banyak dan beragam, sebagai contohperpustakaan 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 direpresentasikan dengan pemetaan tabel berikut :
.
'

1.4 DMBS dan sistem basis data

     DBMS (Database Management System) merupakan suatu perangkat lunak / software yang digunakan untuk mengelola dan memanggil query dari basisdata. DBMS memiliki beberapa karakteristik sebagai berikut :

• Software program ( Program Perangkat Lunak )
• Supplements operating sistem
• Manages data ( Manajemen data )
• Queries data and generates reports
• Data security ( keamanan data )

     Sistem basis data adalah suatu sistem yang terdiri dari kumpulan file yang saling berhubungan dan dikelola oleh program perangkat lunak (dalam hal ini dikelola oleh 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

Berikut ini adalah beberapa model basis data:

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 Relational

     Model basis data Relational  ( database relasi ) menggunakan sekumpulan tabel dua dimensi ( yang disebut relasi atau tabel ), dengan masing-masing relasi tersusun atas tupel atau baris dan atribut. DBMS yang memiliki model relasional biasa disebut Relational Data Base Management System ( RDBMS ). Model database ini dikemukakan pertamakali oleh EF codd, seorang pakar basisdata. Model database relasi merupaka model yang banyak digunakan karena lebih sederhana dari model lainnya.

    Model database relasi merupakan model database yang paling banyak digunakan saat ini, karena paling sederhana dan mudah digunakan serta yang paling penting adalah kemampuannya dalam mengakomodasi berbagai kebutuhan pengelolaan database. Sebuah database dalam model ini disusun dalam bentuk tabel dua dimensi yang terdiri dari baris (record) dan kolom (field), pertemuan antara baris dengan kolom disebut item data (data value), table-tabel yang ada di hubungkan (relationship) sedemikian rupa menggunakan field-field kunci (Key field) sehingga dapat meminimalkan duplikasi data.

Tingkata data dalam database relasi dapat direpresentasikan oleh gambar berikut :

• Karakter (Characters)

     Karakter adalah  bagian terkecil dalam database, dapat berupa karakter angka, huruf, ataupun karakter-karakter khusus, seperti simbol-simbol.

• Field atau Attribute

      Attribute adalah bagian dari record yang menunjukkan suatu item data yang sama / 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.

* Table/Entity ( entitas )
  
     Entitas adalah sesuatu yang 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. 


1.7 Bahasa Basis Data

    MySQL adalah perangkat lunak sistem manajemen basis data relasional atau Relational Database Management System (RDBMS). Singkatnya MySQL adalah alat/software untuk memanage/mengatur database. Sedangkan SQL (Structured Query Language) adalah bahasa/sintaks-sintaks perintah tertentu untuk mengatur database. Jadi MySQL adalah software-nya, dan SQL adalah sintaks perintahnya.Semua perintah SQL dibagi dalam 2 kategori besar sesuai fungsinya, yaitu : 

     • DDL - Data Definition Language

     Merupakan kumpulan perintah SQL yang digunakan untuk membuat, mengubah dan menghapus struktur dan definisi metadata dari objek-objek database
    .Data Definition Language (DDL) Data Definition Language (DDL) digunakan untuk mendefinisikan, mengubah dan menghapus basis data dan objek-objek yang diperlukan, misalnya tabel, view, user, index dan sebagainya.DDL biasa digunakan oleh DBA dalam pembuatan sebuah aplikasi basis data. Secara umum DDL yang digunakan ada empat, yaitu 

  • CREATE untuk membuat objek baru
  • ALTER untuk mengubah objek yang sudah ada 
  • DROP untuk menghapus objek yang sudah ada

    • DML - Data Manipulation Language

  •     Merupakan kumpulan perintah SQL yang digunakan untuk proses pengolahan isi data di dalam table seperti memasukkan, merubah dan menghapus isi data - dan tidak terkait dengan perubahan struktur dan definisi tipe data dari objek database. 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.
Beberapa manfaat atau kegunaan dari DML diantaranya adalah sebagai
berikut :
a. Pengambilan informasi yang disimpan dalam basis data (Select)
b. Penyisipan informasi baru ke basis data (Insert)
c. Penghapusan informasi dari basis data (Delete)
d. Modifikasi informasi yang disimpan dalam basis data (Update)

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

    Bahasa basis data untuk mendefinisikan hak akses spesifik terhadap objek-objek basis data.



II. Entity Relationship Diagram ( ERD )




1.1 Pengenalan Entity Relationship Diagram

   Dalam segala aspek kehidupan, segala sesuatu itu memiliki hubungan. Baik hubungan dengan sesamanya ataupun hubungan dengan jenis yang berbeda. begitupun basisdata, hubungan - hubungan antar entitas dalam basis data dapan direpresentasikan atau digambarkan dengan ERD ( Entity Relationship Diagram). 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.

      Agar dapat memahamimengerti pembahasan Entity Relationship Diagram dengan mudah, perlu memahami definisi salah pemodelan konseptual basis data menggunakan ER dan memahami Konsep Entitas, Atribut, Relasi dan Kardinalitas relasi.

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.


Derajat Himpunan Relasi

1. Unary = Merelasikan satu entitas


2. Binary = merelasikan dua entitas



3. Ternary = Merelasikan tiga 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
 
dari gambar tersebut dapat disimpulkan bahwa setiap satu entitas hanya dapat mempunyai maksimal 1 entitas.

2. satu ke banyak


gambar tersebut menujukan  bahwa untuk setiap entitas di himpunan entitas pertama b erpasangan dengan banyak entitas di himpunan entitas kedua. Dari pertama ke kedua kardinalitasnya maksimal adalah banyak, dan dari dari kedua ke pertama maksimalnya adalah 1. Oleh karena itu relasi ini berkardinalitas 1 ke banyak.

3. banyak ke satu
gambar tersebut bahwa untuk setiap entitas di himpunan entitas pertama berpasangan dengan maksimal 1 entitas di himpunan entitas kedua. Dari pertama ke kedua kardinalitasnya maksimal adalah 1, dan dari kedua ke pertama kardinalitasnya maksimal adalah banyak. Oleh karena itu relasi ini berkardinalitas banyak ke 1.

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

3.Atribut-atribut (properi-properti)

    memodelkan properti-properti dari entitas dan relationship. 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 sebagai berikut :

• 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.
Berikut contoh attribut komposit




 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.

4. Konstrain-konstrain
 (batasan-batasan) integritas, konstrain-konstrain ketentuan validitas.

2.6 Key
     key digunakan  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.
Berikut adalah macam - macam key :
- Superkey
    kumpulan attribut 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
- Candidate key
Kumpulan atribut minimal yang dapat membedakan setiap baris data dalam sebuah relasi secara unik. Contoh Nim
- Primary key <--- paling sering digunakan
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
Contoh dari primary key adalah Nim

 TAHAPAN PEMBUATAN ENTITY RELATIONSHIP DIAGRAM

dari uraian diatas dapat disimpulkan bahwa tahapan-tahapan untuk pembuatan ER diagram adalah sebagai 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.

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

     Untuk dapat lebih mengerti konversi ER ke basis data relational, diharapkan untuk memahami konsep Weak Entity, Spesialisasi dan Agregasi dan memahami konsep penurunan dari Diagram ER ke 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.

contoh himpunan entitas lemah :
     Gambar diatas menjelaskan bahwa  seorang pekerja mendapatkan tunjangan dari perusahaan tempat dia bekerja. Tunjangan dalam hal ini adalah entitas lemah. Tunjangan sebagai entitas tidak bisa berdiri sendiri, tunjangan harus bergantung pada entitas pegawai (* tidak akan ada tunjangan jika tidak ada pegawai).
Kardinalitas relasi yang terjadi pada himpunan entitas lemah biasanya merupakan banyak ke 1 atau 1 ke banyak dengan kardinalitas 1 di himpunan entitas yang lebih kuat.

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 Ringkasan Notasi simbol ER
 

3.5 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.6 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. Perhatikan gambar di bawah yang menunjukkan bagaimana penurunan sebuah atribut multivalued :

3.7 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. Perhatikan gambar di bawah ini :

IV. 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. perhatikan gambar dibawah ini : 



gambar diatas menunjukan Desain table awal sebagai Input, 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 data
-Untuk mengurangi kompleksitas 
-Untuk mempermudah pemodifikasian data
4.3 Tahapan Normalisasi
   Tahapan dari nomralisasi dapat ditunjukan oleh gambar berikut :

 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)


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)
Contoh :
 
  tabel diatas tidak memenuhi First Normal Form,  Oleh karena itu perlu dihilangkan atribut multivaluednya dengan di dekomposisi.
tabel dalam bentuk 1st normal form :

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

Contoh :

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 bukan kunci hanya boleh tergantung (functional dependency) pada atribut kuncidan Jika ada ketergantungan  parsial maka atribut tersebut harus dipisah pada tabel yang lain.

 maka tabel tersebut perlu dinormalisasi menjadi :






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

contoh: tabel berikut memenuhi 2NF, tapi belum memenuhi 3NF:
 
        dapat dilihat bahwa di dalam tabel mahasiswa masih  terdapat atribut non primary key (yakni alm_kota dan alm_Provinsi) yang memiliki ketergantungan terhadap atribut non primary key yang lain (yakni alm_kodepos).
 Maka dari itu, tabel tersebut perlu didekomposisi menjadi :


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)

Sumber:
http://brahmaputra7.blogspot.co.id/2014/05/basis-data-pengenalan-entity.html

1 comment: