Rabu, 04 Juni 2014

BASIS DATA

Asslamualaikum ^_^ haii teman-teman :) bagaimana kabarnya? 
pada sehat kan?? :D
oh iya disini saya mau berbagi ilmu nih sama teman-teman tentang basis data :)
yuuu langsung aja ... ;)


1.      PENGENALAN BASIS DATA
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.


Gambar 1-1 Siklus Informasi

Siklus informasi adalah merupakan gambaran secara umum mengenai proses terhadap data sehingga menjadi informasi yang bermanfaat bagi pengguna.
Data merupakan bentuk mentah yang belum dapat bercerita banyak, sehingga perlu diolah lebih lanjut. Data ditangkap sebagai input, diproses melalui suatu model membentuk informasi. Pemakai kemudian menerima informasi tersebut sebagai landasan untuk membuat suatu keputusan dan melakukan tindakan operasional yang akan membuat sejumlah data baru. Data baru tersebut selanjutnya menjadi input pada proses berikutnya, begitu seterusnya sehingga membentuk suatu siklus informasi/Information Cycle (Tata Sutabri, 2004: 17).
1.2  Terminologi dan Konsep Basis Data
Basis data terdiri dari 2 kata, yaitu basis & data. Basis dapat diartikan sebagai markas / gudang, tempat berkumpul. Sedangkan data adalah fakta yang mewakili suatu objek seperti manusia, barang, hewan peristiwa, keadaan dan sebagainya, yang direkam dalam bentuk angka, huruf simbol, teks gambar, bunyi atau kombinasinya.

Gambar 1-2 Lemari Arsip dan Basis Data
Basisdata adalah pengaturan, pemilahan, pengelompokkan, pengorganisasian data yang akan kita simpan sesuai fungsi/jenisnya. Pemilahan/ pengelompokan ini dapat berbentuk sejumlah file/tabel terpisah atau dalam bentuk pendefinisian kolom-kolom/field-field data dalam setiap file/tabel.
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.

1.3  Perkembangan Basis Data



Gambar 1-3 Perkembangan Database

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)

           

Gambar 1-4 Komponen DBMS

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, penggambaran model basis data digambarkan pada gambar 1-5 dengan penjelasan dibawah ini:

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




Tingkatan Data Dalam Database Relasi
Dalam suatu sistem database relasi, data yang tersimpan dalam DBMS mempunyai tingkatan-tingkatan , sebagai berikut :


Gambar 1-6 Tingkatan data dalam Database Relasional

·         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

MySQL adalah perangkat lunak sistem manajemen basis data relasional atau Relational DatabaseManagement 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.

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. DDL Digunakan untuk mespesifikasikan struktur/skema basis data yang menggambarkan/mewakili desain basis data secara keseluruhan. Hasil kompilasi perintah DDL adalah kamus data. Kamus data merupakan sebuah file yang berupa metadata, yaitu data yang mendeskripsikan data sesungguhnya. Kamus data ini akan selalu diakses pada suatu operasi basis data sebelum suatu file data yang sesungguhnya diakses.

2.      Interactive Data Manipulation Language (DML)

DML adalah perintah-perintah yang digunakan untuk mengubah, manipulasi dan mengambil data pada basis data. 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.

4.      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].

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.

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

Contoh entitas mahasiswa
   


Sebenarnya menunjuk pada himpunan 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

Jenis-jenis Entitas

·         Entitas kuat (strong entity) merupakan entitas yang berdiri sendiri tanpa bergantung dengan entitas lain.  Contoh , entitas MAHASISWA, BUKU.
·         Entitas lemah (weak entity) merupakan entitas yang keberadaannya bergantung pada keberadaan relationship terhadap entitas lain.
Contoh, entitas ANAK bergantung pada entitas DOSEN.

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 yakni :

1. atribut kunci, atribut bernilai tunggal dan unik.
2. atribut bernilai tunggal, atribut yang memiliki hanya satu nilai
3. atribut bernilai banyak, atribut yang memiliki sekelompok nilai
4. atribut komposit, atribut yang terdiri atas beberapa atribut yang lebih kecil
5. atribut derivatif, atribut yang diperoleh dari atribut lain. 

Gambar 2-4 Contoh Atribut Komposit



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



Gambar 2-5 Entitas dengan Atribut

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.


Gambar 2-6 Relasi di gambarkan dengan belah ketupat

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


Relasi di atas menggambarkan entitas karyawan yang  ber-relasi dengan entitas karyawan. Entitas karyawan bisa merupakan karyawan biasa tetapi bisa juga merupakan manajer. Relasi yang terjadi yaitu relasi karyawan bekerja untuk manajer (* entitas manajer adalah salah satu karyawan juga). Perhatikan kardinalitas relasinya, 1 karyawan hanya bekerja untuk 1 manajer, tetapi 1 manajer bisa mempunyai banyak bawahan.
·         Binary (Me-relasi-kan 2 entitas)

       

Relasi di atas menggambarkan entitas pelangan yang ber-relasi dengan entitas pinjaman. 1 pelanggan bisa mempunyai banyak nomor pinjaman, dan 1 nomor pinjaman hanya untuk 1 pelanggan.
·         Ternary (Me-relasi-kan 3 entitas)


Relasi di atas menggambarkan entitas karyawan yang ber-relasi dengan entitas cabang dan entitas pekerjaan melalui relasi bekerja_di. 1 karyawan bekerja di sebuah id pekerjaan tertentu dan juga bekerja di sebuah cabang tertentu. Ada 3 entitas yang terlibat dari relasi di atas.

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 :

·         Satu ke Satu

Setiap data pada entitas A berhubungan dengan maksimal satu data pada entitas B, begitu pula sebaliknya.



·         Satu ke Banyak
Setiap data pada entitas A bisa berhubungan dengan banyak data pada entitas B, tetapi data pada entitas B berhubungan maksimal hanya dengan sebuah data di A.


·         Banyak ke banyak
Setiap data pada entitas A bisa berhubungan dengan banyak data pada entitas B, demikian pula sebaliknya.



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 :
·         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

·         Candidate key

Kumpulan atribut minimal yang dapat membedakan setiap baris data dalam sebuah relasi secara unik. Contoh Nim

·         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

Contoh dari primary key adalah Nim
2.7 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 REALTIONAL

3.1 Himpunan Entitas Lemah

Secara umum, Himpunan Entitas Lemah tidak memiliki primary key dan selalu bergantung pada entitas lain. Notasi entitas lemah digambarkan dengan double persegi panjang, sedangkan relasi untuk himpunan entitas lemah digambarkan 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.
    
                                                             
                                  Gambar 0-1 Contoh Himpunan Entitas Lemah

Relasi di atas menggambarkan bahwa seorang pegawai mendapatkan fasilitas 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 merupakan 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. Atribut
ini khas dan merupakan pembeda dari entitas di subgroup yang lain. IS A dinotasikan dengan gambar segitiga berlabel IS A.
Sifat dari spesialisasi adalah inheritan atribut yaitu atribut pada level tinggi secara otomatis akan di turunkan pada level di bawahnya.
                                                                                       
                                                                                                                                                             
Generalisasi merupakan proses desain bottom-up dengan mengkombinasikan jumlah himpunan entitas yang digunakan secara bersama sama. Spesialisasi dan generalisasi sama sama digambarkan dengan notasi IS A, 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 adalah enkapsulasi dari entitas entitas yang berelasi (*n-n). Pada umumnya terbentuk dari kardinalitas relasi banyak ke banyak. Didalam konsep agregasi terdapat istilah enkapsulasi relasi dari kedua entitas. Enkapsulasi di perlukan karena kedua himpunan entitas yang ber-relasi tersebut merupakan 1 kesatuan yang tidak bisa di pisah. Notasi agregasi di gambarkan dengan gambar persegi panjang yang membungkus himpunan entitas yang saling ber-relasi.


Gambar di atas menunjukkan relasi dosen mengajar sebuah mata kuliah dan mahasiswa mengambil mata kuliah yang diajarkan oleh dosen tertentu. Agregasi di perlukan dikarenakan tidak di mungkinkan mahasiwa untuk mengambil mata kuliah tanpa adanya dosen yang bersedia untuk mengajar mata kuliah tersebut. Dalam kasus di atas menekankan bahwa himpunan entitas dosen harus ber-relasi terlebih dahulu dengan himpunan entitas mata kuliah, kemudian relasinya di pandang sebagai 1 entitas yang ber-relasi dengan himpunan entitas mahasiwa lewat relasi mengambil. Primary key dari kedua himpunan entitas dosen dan mata kuliah akan secara implisit masuk ke relasi mengajar dengan di tambah 2 atribut deskriptif (* semester dan thn_ajaran). Relasi tersebut di anggap sebagai 1 entitas seperti gambar di bawah ini.


3.4 Ringkasan notasi simbol di ER
                                                                                                                


4.NORMALISASI
4.1  Definisi Normalisasi

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 (E.F. Codd, 1970).

4.2  Tujuan Normalisasi

Pada dasarnya normalisasi dilakukan untuk memperbaiki desain tabel yang kurang baik sehingga penyimpanan data menjadi lebih efisien dan bebas anomali data. Untuk memperjelas pemahaman tentang proses normalisasi, perhatikan diagram berikut:



Gambar 4-1 Diagram Normalisasi

Intinya, normalisasi dilakukan terhadap desain tabel yang sudah ada dengan tujuan untuk meminimalkan redundansi (pengulangan) data dan menjamin integritas data dengan cara menghidari 3 Anomali Data: Update, Insertion dan Deletion Anomaly.

4.3  Bentuk Normal dan Langkah-Langkah Normalisasi

Bentuk Normal adalah sekumpulan kriteria yang harus dipenuhi oleh sebuah desain tabel untuk mencapai tingkat/level bentuk normal tertentu. Parameter yang biasanya digunakan dalam menentukan kriteria bentuk normal adalah Functional dependency & The Three Keys.
4.3.1        Bentuk Normal Pertama (1st Normal Form)

Bentuk normal pertama atau First Normal Form (1st NF) adalah bentuk normal yang memiliki level terendah.
Kriteria 1st NF:

Tidak ada atribut (kolom) pada tabel yang bersifat multi-value

Sebuah atribut disebut bersifat multivalue jika dalam sebuah baris data pada kolom tersbut terdapat lebih dari satu nilai. Misalnya kolom telepon yang berisi ‘0813xx, 022xxx’ dan seterusnya.

Tidak memiliki lebih dari satu atribut dengn domain yang sama

            Sebuah tabel dikatakan memiliki lebih dari satu atribut dengan domain yang sama jika pada tabel tersebut terdapat lebih dari satu kolom yang digunakan untuk menyimpan data yang jenisnya sama. Misalnya kolom telepon1, telepon2, telepon3 dan seterusnya.


4.3.2 Bentuk Normal Ke Dua (2nd Normal Form)

Kriteria 2nd NF:

Memenuhi 1st NF

Desain tabel yang tidak memenuhi syarat 1st NF sudah pasti tidak akan memenuhi syarat 2nd NF

Tidak ada Partial Functional dependency

Partial Functional dependency terjadi bila (B,C) adalah candidate key dan B à A
Bentuk 2NF-nya didapat dengan teknik berikut ini:
Pada bentuk 1NF-nya, terlihat bahwa kolom NIM merupakan PrimaryKey. 
NIM -> Nama, Dosen Wali. Artinya adalah bahwa atribut Nama dan Dosen Wali
bergantung pada NIM.
Tetapi NIM <> Kode MataKuliah. Artinya adalah bahwa atribut Kode_MataKuliah tidak tergantung pada NIM.
Sehingga, bentuk 2NF-nya terbagi atas 2 table:
Table1


Table 2



4.4.3 Bentuk Normal Ke Tiga (3rd Normal Form)
Umumnya jika sebuah tabel telah memenuhi syarat bentuk normal ke tiga (3rd NF) maka tabel tersebut sudah dianggap ‘cukup normal’. Bentuk normal ke 3 adalah bentuk normal yang biasanya menjadi syarat minimum bagi sebuah desan tabel walaupun akan lebih baik jika juga memenuhi BCNF.
Kriteria 3rd NF:
Memenuhi 2nd NF

Desain tabel yang tidak memenuhi syarat 2nd NF sudah pasti tidak akan memenuhi syarat 3rd NF

Tidak ada Transitive Functional dependency

Transitive functional dependency terjadi bila AàB dan BàC
1NF:



Bentuk 2NF:
Table 1:


Table 2:




Table 3:

di Table1, atribut nonkey(Nilai dan Bobot) masih memiliki ketergantungan fungsional. Maka, untuk memenuhi bentuk 3NF, Table1 harus dipecah lagi menjadi:




4.5.4 Bentuk Normal Boyce Codd (BC Normal Form)
Boyce Codd Normal Form atau bentuk normal Boyce-Codd adalah bentuk normal yang levelnya di atas 3rd NF. Kriteria BCNF:

Memenuhi 3rd NF

Desain tabel yang tidak memenuhi syarat 3rd NF sudah pasti tidak akan memenuhi syarat 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
Jarang ada kasus dimana sebuah tabel memenuhi 3rd NF tapi 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.5.5 Bentuk-Bentuk Normal Lainnya
Selain bentuk-bentuk normal yang sudah diperkenalkan pada beberapa sub bab sebelumnya, masih ada beberapa bentuk-bentuk normal lain. Beberapa diantaranya adalah 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.6 Denormalisasi
Denormalisasi adalah proses menggandakan data secara sengaja (sehingga menyebabkan redundansi data) untuk meningkatkan performa database, untuk meningkatkan kecepatan akses data atau memperkecil query cost.
Yang perlu diingat tentang denormalisasi adalah bahwa denormalisasi tidak sama dengan tidak melakukan normalisasi. Denormalisasi dilakukan setelah tabel dalam kondisi ‘cukup normal’ (mencapai level bentuk normal yang dikehendaki).
Ada beberapa alasan melakukan 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

Adapun konsekuensi denormalisasi adalah sebagai berikut:
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)


Dengan demikian dapat disimpulkan bahwa denormalisasi harus dilakukan dengan bijak sebab walaupun memiliki beberapa keuntungan namun juga memiliki konsekuensi yang patut diperhitungkan.

Akhirnyaaa selesai juga :D semoga bermanfaat ;)

Refrensi :
-komparkompor.blogspot.com/p/normalisasi-1nf-2nf-3nf.html

Tidak ada komentar:

Posting Komentar

Rabu, 04 Juni 2014

BASIS DATA

Asslamualaikum ^_^ haii teman-teman :) bagaimana kabarnya? 
pada sehat kan?? :D
oh iya disini saya mau berbagi ilmu nih sama teman-teman tentang basis data :)
yuuu langsung aja ... ;)


1.      PENGENALAN BASIS DATA
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.


Gambar 1-1 Siklus Informasi

Siklus informasi adalah merupakan gambaran secara umum mengenai proses terhadap data sehingga menjadi informasi yang bermanfaat bagi pengguna.
Data merupakan bentuk mentah yang belum dapat bercerita banyak, sehingga perlu diolah lebih lanjut. Data ditangkap sebagai input, diproses melalui suatu model membentuk informasi. Pemakai kemudian menerima informasi tersebut sebagai landasan untuk membuat suatu keputusan dan melakukan tindakan operasional yang akan membuat sejumlah data baru. Data baru tersebut selanjutnya menjadi input pada proses berikutnya, begitu seterusnya sehingga membentuk suatu siklus informasi/Information Cycle (Tata Sutabri, 2004: 17).
1.2  Terminologi dan Konsep Basis Data
Basis data terdiri dari 2 kata, yaitu basis & data. Basis dapat diartikan sebagai markas / gudang, tempat berkumpul. Sedangkan data adalah fakta yang mewakili suatu objek seperti manusia, barang, hewan peristiwa, keadaan dan sebagainya, yang direkam dalam bentuk angka, huruf simbol, teks gambar, bunyi atau kombinasinya.

Gambar 1-2 Lemari Arsip dan Basis Data
Basisdata adalah pengaturan, pemilahan, pengelompokkan, pengorganisasian data yang akan kita simpan sesuai fungsi/jenisnya. Pemilahan/ pengelompokan ini dapat berbentuk sejumlah file/tabel terpisah atau dalam bentuk pendefinisian kolom-kolom/field-field data dalam setiap file/tabel.
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.

1.3  Perkembangan Basis Data



Gambar 1-3 Perkembangan Database

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)

           

Gambar 1-4 Komponen DBMS

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, penggambaran model basis data digambarkan pada gambar 1-5 dengan penjelasan dibawah ini:

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




Tingkatan Data Dalam Database Relasi
Dalam suatu sistem database relasi, data yang tersimpan dalam DBMS mempunyai tingkatan-tingkatan , sebagai berikut :


Gambar 1-6 Tingkatan data dalam Database Relasional

·         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

MySQL adalah perangkat lunak sistem manajemen basis data relasional atau Relational DatabaseManagement 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.

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. DDL Digunakan untuk mespesifikasikan struktur/skema basis data yang menggambarkan/mewakili desain basis data secara keseluruhan. Hasil kompilasi perintah DDL adalah kamus data. Kamus data merupakan sebuah file yang berupa metadata, yaitu data yang mendeskripsikan data sesungguhnya. Kamus data ini akan selalu diakses pada suatu operasi basis data sebelum suatu file data yang sesungguhnya diakses.

2.      Interactive Data Manipulation Language (DML)

DML adalah perintah-perintah yang digunakan untuk mengubah, manipulasi dan mengambil data pada basis data. 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.

4.      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].

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.

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

Contoh entitas mahasiswa
   


Sebenarnya menunjuk pada himpunan 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

Jenis-jenis Entitas

·         Entitas kuat (strong entity) merupakan entitas yang berdiri sendiri tanpa bergantung dengan entitas lain.  Contoh , entitas MAHASISWA, BUKU.
·         Entitas lemah (weak entity) merupakan entitas yang keberadaannya bergantung pada keberadaan relationship terhadap entitas lain.
Contoh, entitas ANAK bergantung pada entitas DOSEN.

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 yakni :

1. atribut kunci, atribut bernilai tunggal dan unik.
2. atribut bernilai tunggal, atribut yang memiliki hanya satu nilai
3. atribut bernilai banyak, atribut yang memiliki sekelompok nilai
4. atribut komposit, atribut yang terdiri atas beberapa atribut yang lebih kecil
5. atribut derivatif, atribut yang diperoleh dari atribut lain. 

Gambar 2-4 Contoh Atribut Komposit



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



Gambar 2-5 Entitas dengan Atribut

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.


Gambar 2-6 Relasi di gambarkan dengan belah ketupat

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


Relasi di atas menggambarkan entitas karyawan yang  ber-relasi dengan entitas karyawan. Entitas karyawan bisa merupakan karyawan biasa tetapi bisa juga merupakan manajer. Relasi yang terjadi yaitu relasi karyawan bekerja untuk manajer (* entitas manajer adalah salah satu karyawan juga). Perhatikan kardinalitas relasinya, 1 karyawan hanya bekerja untuk 1 manajer, tetapi 1 manajer bisa mempunyai banyak bawahan.
·         Binary (Me-relasi-kan 2 entitas)

       

Relasi di atas menggambarkan entitas pelangan yang ber-relasi dengan entitas pinjaman. 1 pelanggan bisa mempunyai banyak nomor pinjaman, dan 1 nomor pinjaman hanya untuk 1 pelanggan.
·         Ternary (Me-relasi-kan 3 entitas)


Relasi di atas menggambarkan entitas karyawan yang ber-relasi dengan entitas cabang dan entitas pekerjaan melalui relasi bekerja_di. 1 karyawan bekerja di sebuah id pekerjaan tertentu dan juga bekerja di sebuah cabang tertentu. Ada 3 entitas yang terlibat dari relasi di atas.

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 :

·         Satu ke Satu

Setiap data pada entitas A berhubungan dengan maksimal satu data pada entitas B, begitu pula sebaliknya.



·         Satu ke Banyak
Setiap data pada entitas A bisa berhubungan dengan banyak data pada entitas B, tetapi data pada entitas B berhubungan maksimal hanya dengan sebuah data di A.


·         Banyak ke banyak
Setiap data pada entitas A bisa berhubungan dengan banyak data pada entitas B, demikian pula sebaliknya.



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 :
·         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

·         Candidate key

Kumpulan atribut minimal yang dapat membedakan setiap baris data dalam sebuah relasi secara unik. Contoh Nim

·         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

Contoh dari primary key adalah Nim
2.7 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 REALTIONAL

3.1 Himpunan Entitas Lemah

Secara umum, Himpunan Entitas Lemah tidak memiliki primary key dan selalu bergantung pada entitas lain. Notasi entitas lemah digambarkan dengan double persegi panjang, sedangkan relasi untuk himpunan entitas lemah digambarkan 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.
    
                                                             
                                  Gambar 0-1 Contoh Himpunan Entitas Lemah

Relasi di atas menggambarkan bahwa seorang pegawai mendapatkan fasilitas 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 merupakan 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. Atribut
ini khas dan merupakan pembeda dari entitas di subgroup yang lain. IS A dinotasikan dengan gambar segitiga berlabel IS A.
Sifat dari spesialisasi adalah inheritan atribut yaitu atribut pada level tinggi secara otomatis akan di turunkan pada level di bawahnya.
                                                                                       
                                                                                                                                                             
Generalisasi merupakan proses desain bottom-up dengan mengkombinasikan jumlah himpunan entitas yang digunakan secara bersama sama. Spesialisasi dan generalisasi sama sama digambarkan dengan notasi IS A, 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 adalah enkapsulasi dari entitas entitas yang berelasi (*n-n). Pada umumnya terbentuk dari kardinalitas relasi banyak ke banyak. Didalam konsep agregasi terdapat istilah enkapsulasi relasi dari kedua entitas. Enkapsulasi di perlukan karena kedua himpunan entitas yang ber-relasi tersebut merupakan 1 kesatuan yang tidak bisa di pisah. Notasi agregasi di gambarkan dengan gambar persegi panjang yang membungkus himpunan entitas yang saling ber-relasi.


Gambar di atas menunjukkan relasi dosen mengajar sebuah mata kuliah dan mahasiswa mengambil mata kuliah yang diajarkan oleh dosen tertentu. Agregasi di perlukan dikarenakan tidak di mungkinkan mahasiwa untuk mengambil mata kuliah tanpa adanya dosen yang bersedia untuk mengajar mata kuliah tersebut. Dalam kasus di atas menekankan bahwa himpunan entitas dosen harus ber-relasi terlebih dahulu dengan himpunan entitas mata kuliah, kemudian relasinya di pandang sebagai 1 entitas yang ber-relasi dengan himpunan entitas mahasiwa lewat relasi mengambil. Primary key dari kedua himpunan entitas dosen dan mata kuliah akan secara implisit masuk ke relasi mengajar dengan di tambah 2 atribut deskriptif (* semester dan thn_ajaran). Relasi tersebut di anggap sebagai 1 entitas seperti gambar di bawah ini.


3.4 Ringkasan notasi simbol di ER
                                                                                                                


4.NORMALISASI
4.1  Definisi Normalisasi

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 (E.F. Codd, 1970).

4.2  Tujuan Normalisasi

Pada dasarnya normalisasi dilakukan untuk memperbaiki desain tabel yang kurang baik sehingga penyimpanan data menjadi lebih efisien dan bebas anomali data. Untuk memperjelas pemahaman tentang proses normalisasi, perhatikan diagram berikut:



Gambar 4-1 Diagram Normalisasi

Intinya, normalisasi dilakukan terhadap desain tabel yang sudah ada dengan tujuan untuk meminimalkan redundansi (pengulangan) data dan menjamin integritas data dengan cara menghidari 3 Anomali Data: Update, Insertion dan Deletion Anomaly.

4.3  Bentuk Normal dan Langkah-Langkah Normalisasi

Bentuk Normal adalah sekumpulan kriteria yang harus dipenuhi oleh sebuah desain tabel untuk mencapai tingkat/level bentuk normal tertentu. Parameter yang biasanya digunakan dalam menentukan kriteria bentuk normal adalah Functional dependency & The Three Keys.
4.3.1        Bentuk Normal Pertama (1st Normal Form)

Bentuk normal pertama atau First Normal Form (1st NF) adalah bentuk normal yang memiliki level terendah.
Kriteria 1st NF:

Tidak ada atribut (kolom) pada tabel yang bersifat multi-value

Sebuah atribut disebut bersifat multivalue jika dalam sebuah baris data pada kolom tersbut terdapat lebih dari satu nilai. Misalnya kolom telepon yang berisi ‘0813xx, 022xxx’ dan seterusnya.

Tidak memiliki lebih dari satu atribut dengn domain yang sama

            Sebuah tabel dikatakan memiliki lebih dari satu atribut dengan domain yang sama jika pada tabel tersebut terdapat lebih dari satu kolom yang digunakan untuk menyimpan data yang jenisnya sama. Misalnya kolom telepon1, telepon2, telepon3 dan seterusnya.


4.3.2 Bentuk Normal Ke Dua (2nd Normal Form)

Kriteria 2nd NF:

Memenuhi 1st NF

Desain tabel yang tidak memenuhi syarat 1st NF sudah pasti tidak akan memenuhi syarat 2nd NF

Tidak ada Partial Functional dependency

Partial Functional dependency terjadi bila (B,C) adalah candidate key dan B à A
Bentuk 2NF-nya didapat dengan teknik berikut ini:
Pada bentuk 1NF-nya, terlihat bahwa kolom NIM merupakan PrimaryKey. 
NIM -> Nama, Dosen Wali. Artinya adalah bahwa atribut Nama dan Dosen Wali
bergantung pada NIM.
Tetapi NIM <> Kode MataKuliah. Artinya adalah bahwa atribut Kode_MataKuliah tidak tergantung pada NIM.
Sehingga, bentuk 2NF-nya terbagi atas 2 table:
Table1


Table 2



4.4.3 Bentuk Normal Ke Tiga (3rd Normal Form)
Umumnya jika sebuah tabel telah memenuhi syarat bentuk normal ke tiga (3rd NF) maka tabel tersebut sudah dianggap ‘cukup normal’. Bentuk normal ke 3 adalah bentuk normal yang biasanya menjadi syarat minimum bagi sebuah desan tabel walaupun akan lebih baik jika juga memenuhi BCNF.
Kriteria 3rd NF:
Memenuhi 2nd NF

Desain tabel yang tidak memenuhi syarat 2nd NF sudah pasti tidak akan memenuhi syarat 3rd NF

Tidak ada Transitive Functional dependency

Transitive functional dependency terjadi bila AàB dan BàC
1NF:



Bentuk 2NF:
Table 1:


Table 2:




Table 3:

di Table1, atribut nonkey(Nilai dan Bobot) masih memiliki ketergantungan fungsional. Maka, untuk memenuhi bentuk 3NF, Table1 harus dipecah lagi menjadi:




4.5.4 Bentuk Normal Boyce Codd (BC Normal Form)
Boyce Codd Normal Form atau bentuk normal Boyce-Codd adalah bentuk normal yang levelnya di atas 3rd NF. Kriteria BCNF:

Memenuhi 3rd NF

Desain tabel yang tidak memenuhi syarat 3rd NF sudah pasti tidak akan memenuhi syarat 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
Jarang ada kasus dimana sebuah tabel memenuhi 3rd NF tapi 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.5.5 Bentuk-Bentuk Normal Lainnya
Selain bentuk-bentuk normal yang sudah diperkenalkan pada beberapa sub bab sebelumnya, masih ada beberapa bentuk-bentuk normal lain. Beberapa diantaranya adalah 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.6 Denormalisasi
Denormalisasi adalah proses menggandakan data secara sengaja (sehingga menyebabkan redundansi data) untuk meningkatkan performa database, untuk meningkatkan kecepatan akses data atau memperkecil query cost.
Yang perlu diingat tentang denormalisasi adalah bahwa denormalisasi tidak sama dengan tidak melakukan normalisasi. Denormalisasi dilakukan setelah tabel dalam kondisi ‘cukup normal’ (mencapai level bentuk normal yang dikehendaki).
Ada beberapa alasan melakukan 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

Adapun konsekuensi denormalisasi adalah sebagai berikut:
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)


Dengan demikian dapat disimpulkan bahwa denormalisasi harus dilakukan dengan bijak sebab walaupun memiliki beberapa keuntungan namun juga memiliki konsekuensi yang patut diperhitungkan.

Akhirnyaaa selesai juga :D semoga bermanfaat ;)

Refrensi :
-komparkompor.blogspot.com/p/normalisasi-1nf-2nf-3nf.html

Tidak ada komentar:

Posting Komentar