Senin, 14 Januari 2019

PERANCANGAN BASIS DATA

ENHANCED ENTITY RELATIONSHIP 
Merupakan Model Entity Relationship yang didukung dengan konsep semantik tambahan. Dimana konsep semantik terdiri dari :
 1. Subclass
2. Superclass
dan konsep-konsep yang berhubungan yaitu
1. Specialization ( Hierarchy & Lattice )
2. Generalization
Konsep lainnya yang termasuk dalam model EER yaitu
1. Attribute Inheritance
2. Shared Subclass
3. Category Entity yaitu obyek yang dapat dibedakan dalam dunia nyata.
 Entity set adalah kumpulan dari entity yang sejenis
 Entity set dapat berupa :
 – Obyek secara fisik : Rumah, Kendaraan, Peralatan
– Obyek secara konsep : Pekerjaan , Perusahaan, Rencana.

Relationship Yaitu hubungan yang terjadi antara satu atau lebih entity.
Relationship set adalah kumpulan relationship yang sejenis.
Atribut yaitu karakteristik dari entity atau relationship, yang menyediakan penjelasan detail tentang entity atau relationship tersebut.
 Jenis-jenis Atribut :
- Key
- Atribut Simple
- Atribut Multivalue
- Atribut Composite

Cardinality yaitu menjelaskan batasan jumlah keterhubungan satu entity dengan entity lainnya.

Subclass merepresentasikan entity yang sama dengan superclass, namun memiliki peran spesifik tertentu.Entity dalam subclass merupakan anggota superclass, namun tidak sebaliknya.

Superclass adalah entitas yang merupakan induk dari subclass-subclassnya.
Superclass/Subclass Relationship adalah relationship antara sebuah superclass dengan salah satu subclassnya.

Specialization yaitu proses mendefinisikan himpunan subclass-subclass dari sebuah entity type (Superclass). Dilakukan berdasarkan karakteristik tertentu yang dapat membedakan entity pada Superclass. Suatu Superclass dapat memiliki beberapa spesialisasi berdasarkan karakteristik yang berbeda.

Generalization yaitu proses pendefinisian subclass-subclass yang disatukan menjadi entitas superclass tunggal berdasarkan karakteristik umum. Contoh : Subclass Mobil dan Truk dapat digeneralisasikan menjadi Superclass KENDARAAN berdasarkan atribut umum seperti Kd_Kend, Harga, No_Lisensi.

Disjoint Constraint yang menerangkan bahwa subclass-subclass dari spesialisasi saling disjoint, artinya entity merupakan anggota dari salah satu subclass. Disjoint Constraint direpresentasikan dengan lambang “d” yang berarti disjoint. Contoh : entity dari spesialisasi tipe pekerjaan dari PEGAWAI merupakan anggota dari subclass PEGAWAI TETAP atau PEGAWAI HONORER.

Non Disjoint Constraint yang menerangkan bahwa subclass-subclass dari spesialisasi tidak saling disjoint, artinya entity mungkin anggota lebih dari satu subclass. Non-Disjoint digambarkan dengan lambang “o” yang berarti overlapping. Contoh : entity dari spesialisasi tipe barang merupakan anggota dari subclass BARANG PABRIK juga anggota dari subclass BARANG TERJUAL.

Total Specialization Constraint 
• Constraint yang menerangkan bahwa setiap entity didalam superclass harus merupakan anggota dari salah satu subclass.
• Contoh : enityty PEGAWAI harus termasuk subclass dari PEGAWAI TETAP atau PEGAWAI HONORER
 Partial Specialization Constraint
• Constraint yang menerangkan bahwa setiap entity didalam superclass dapat merupakan anggota dari subclass-subclass yang didefinisikan. Contoh dari PEGAWAI dapat merupakan anggota dari subclass MANAGER, TEKNISI atau SALES.

Specialization di bagi menjadi 2 jenis yaitu :
Specialization Hierarchy
Spesialisasi bertingkat dimana setiap subclass berpartisipasi didalam satu kelas / subclass relationship.
 Specialization Lattice
Spesialisasi bertingkat dimana suatu subclass dapat berpartisipasi didalam beberapa kelas / subclass relationship.

 Shared-Subclass
• Subclass yang mempunyai lebih dari satu superclass. Contoh : subclass ASISTEN PELATIH mempunyai dua superclass yang tipenya sama yaitu SALES & PELATIH.

Category ialah proses pendefinisian suatu subclass ( disebut kategori ) yang memiliki lebih dari satu superclass yang berbeda. Contoh : Kategori PEMILIK yang merupakan Subclass dari gabungan Orang, Bank dan Perusahaan. Kategori KENDARAAN-TERDAFTAR yang merupakan Subclass dari gabungan Mobil dan Truk.


NORMALISASI
             Normalisasi adalah suatu teknik dengan pendekatan bottom-up yang digunakan untuk membantu mengidentifikasikan hubungan, dimulai dari menguji hubungan yaitu functional dependencies antar-atribut. Pengertian lainnya adalah suatu teknik yang menghasilkan sekumpulan hubungan dengan sifat-sifat yang diinginkan dan memenuhi kebutuhan pada perusahaan.
             Tujuan utama normalisasi adalah mengidentifikasikan kesesuaian hubungan yang mendukung data untuk memenuhi kebutuhan perusahaan. Adapun karakteristik hubungan tersebut mencakup:
 Minimal jumlah atribut yang diperlukan untuk mendukung kebutuhan perusahaan
 Atribut dengan hubungan logika yang menjelaskan mengenai functional dependencies
 Minimal duplikasi untuk tiap atribut

Peranan Normalisasi dalam perancangan basis data Normalisasi yaitu suatu proses memperbaiki atau membangun dengan model data relasional dan secara umum lebih tepat dikoneksikan dengan model data logika. Peranan normalisasi dalam hal ini adalah penggunaan pendekatan bottom-up dan teknik validasi. Teknik validasi digunakan untuk memeriksa, apakah struktur relasi yang dihasilkan oleh ER modelling itu baik atau tidak baik. Dibawah ini gambar mengenai peranan normalisasi dalam perancangan basis data.


Disini terlihat sumber data terdiri atas user-user, spesifikasi kebutuhan berbagai user, berbagai form atau laporan, data dictionary dan data model perusahaan. Kemudian terdapat pendekatan top-down dan bottom up, dimana pendekatan tersebut nantinya menghasilkan desain relasi. Lalu pernanan normalisasi pada bottom up dan teknik validasi.
Jenis Normalisasi Terdapat empat bentuk normal yang biasa digunakan, yaitu :
∗First Normal Form (1NF) atau Normalisasi Tingkat 1
∗Second Normal Form (2NF) atau Normalisasi Tingkat 2
∗Third Normal Form (3NF) atau Normalisasi Tingkat 3 Boyce-Codd Normal Form (BCNF)
∗Four Normal Form (4NF)
∗Five Normal Form (5NF)


Tahapan normalisasi



Proses Normalisasi Beberapa hal yang perlu diperhatikan dalam proses normalisasi adalah : Suatu teknik formal untuk menganalisis relasi berdasarkan primary key dan functional dependencies antar atribut Dieksekusi dalam beberapa langkah. Setiap langkah mengacu ke bentuk normal tertentu, sesuai dengan sifat yang dimilikinya Setelah normalisasi diproses, relasi menjadi secara bertahap lebih terbatas atau kuat mengenai bentuk formatnya dan juga mengurangi tindakan update yang anomaly.


1. Unnormalized Form (UNF) Merupakan suatu table yang berisikan satu atau lenih grup yang berulang. Membuat table yang unnormalized yatu dengan memindahkan data dari sumber informasi Contoh : nota penjualan yang disimpan ke dalam format table dengan baris dan kolom/

2. First Normal Form (1NF) Merupakan sebuah relasi dimana setiap baris dan kolom berisikan satu dan hanya satu nilai. Proses UNF ke 1NF
 Tentukan satu atau kumpulan atribut sebagai kunci untuk table unnormalized
 Identifikasi grup yang berulang dalam table unnormalized yang berulang untuk kunci atribut
 Hapus grup yang berulang dengan cara :
 o Masukkan data yang semestinya kedalam kolom yang kosong pada baris yang berisikan data yang berulang (flattening the table).
o Menggantikan data yang ada dengan menulis ulang dari kunci atribut yang sesungguhnya ke dalam relasi terpisah.

3. Second Normal Form (2NF) Berdasarkan pada konsep full functional dependency yaitu A dan B merupakan atribut dari sebuah relasi. B dikatakan fully dependent terhadap A jika B functionally dependent pada A tetapu tidak pada proper subset dari A.
2NF merupakan sebuah relasi dalam 1NF dan setiap atribut non primary key bersifat fully functionally dependent pada primary key

1NF ke 2NF  Identifikasikan primary key untuk relasi 1NF
 Identifikasikan functional dependencies dalam relasi
 Jika terdapat partial dependencies terhadap primary key, maka hapus dengan menempatkan dalam relasi yang baru bersama dengan salinan determinannya.

4. Third Normal Form (3NF) Berdasarkan pada konsep transitive dependency yaitu suatu kondisi dimana A,B dan C merupakan atribut dari sebuah relasi maka AB dan BC, maka transitively dependent pada A melalui B. ( Jika A tidak functionally dependent pada B atau C).
3NF adalah sebuah relasi dalam 1NF dan 2NF dan dimana tidak terdapat atribut non primary key yang bersifat transitively dependent pada primary key.
2NF ke 3NF
 Identifikasikan primary key dalam relasi 2NF
 Identifikasikan functional dependencies dalam relasi
 Jika terdapat transitive dependencies terhadap primary key, hapus dengan menempatkannya dalam relasi yang baru bersama dengan salinan determinannya.

5. Boyce-codd Normal Form (BCNF) Berdasarkan pada functional dependencies yang dimasukkan ke dalam hitungan seluruh candidate key dalam suatu relasi, bagaimana pun BCNF juga memiliki batasan-batasan tambahan disamakan dengan definisi umum dari 3NF.
Suatu relasi dikatakan BCNF jika setiap determinan merupakan candidate key.

Perbedaan antara 3NF dan BCNF yaitu untuk functional dependency AB, 3NF memungkinkan dependency ini dalam suatu relasi jika B adalah atribut primary key dan A bukan merupakan candidate key.

Sedangkan BCNF menetapkan dengan jelas bahwa untuk dependency ini agar ditetapkan dalam relasi A, maka A harus merupakan candidate key. Setiap relasi dalam BCNF juga merupakan 3NF tetapi relasi dalam 3NF belum tentu termasuk ke dalam BCNF.

Dalam BCNF kesalahan jarang sekali terjadi. Kesalahan dapat terjadi pada relasi yang :
Terdiri atas 2 atau lebih composite
 candidate key
Candidate key overlap, sedikitnya satu atribut.
Contoh kasus normalisasi pertama (1NF-3NF)



Asumsi 
Nama PT, Nama Jalan, Telp, Email, Nama Website, dan Judul Faktur Penjualan merupakan hasil percetakan sehingga tidak disimpan dalam database

UNF
TrPenjualan = TglPenjualan + NoFaktur + KodeCust + NamaCust + { KodeBarang + NamaBarang + JenisBarang + Qty + Harga + Subtotal } + GrandTotal + Bagian + NamaKary

Langkah-langkah :
*Pada bentuk tidak normal ini, tuliskan notasi untuk seluruh field yang ditulis jika masih manual atau hasil cetak dari computer.
*Untuk pengulangan, seperti kode barang, nama barang, jenis, qty, harga satuan dan subtotal di tulis dalam notasi {}.


1NF
TrPenjualan = TglPenjualan+ @NoFaktur+KodeCust+NamaCust + AlamatCust + TelpCust + KodeBarang +KodeJenisBarang + JenisBarang +NamaBarang + Qty + Harga + KodeBagian + Bagian + KodeKary + NamaKary + AlamatKary + TelpKary

Langkah-langkah :
 Hilangkan pengulangan yaitu dengan cara menghilangkan tanda {}
 Hilangkan hal-hal yang bersifat hasil perhitungan program. Contoh : Subtotal dan GrandTotal
 Tambahkan field-field yang nantinya dibutuhkan untuk tahapan 2NF, baik sebagai primary key ataupun bukan primary key, seperti AlamatCust, TelpCust, KodeJenisBarang, KodeBagian, KodeKary,AlamatKary dan TelpKary (langkah ini sifatnya optional.
 Yang sebagai primary key adalah KodeJenisBarang dan KodeKary, sisanya bukan sebagai primary key (langkah ini sifatnya optional)

 2NF
TrHeaderPenjualan = @No.Faktur + TglPenjualan + KodeCust + NamaCust + AlamatCust + TelpCust + KodeBagian + Bagian + KodeKary + NamaKary + AlamatKary + TelpKary

TrDetailPenjualan = @No.Faktur + @KodeBarang + Qty + Harga MsBarang = @KodeBarang + NamaBarang + KodeJenisBarang + JenisBarang + Harga + Qty

Langkah-langkah Pisahkan antara bagian header (atas) dengan bagian detail (pengulangan). Contoh : TrHeaderPenjualan dengan TrDetailPenjualan Buatlah table yang berhubungan dengan TrDetailPenjualan Contoh : Dari TrDetailPenjualan maka dapat dibuat table MsBarang

Berikan tanda @ untuk membedakan mana field yang primary key dan mana yang bukan primary key. Contoh : @No.Faktur, @KodeBarang

Field Qty dan Harga pada TrDetailPenjualan dan MsBarang berbeda. Perbedaannya adalah field qty dan harga pada TrDetailPenjualan adalah jumlah yang jual dan harga transaksi pada waktu terjadi penjualan, sedangkan pada MsBarang adalah jumlah stok barang dan harga jual barang tersebut.

3NF
MsCustomer = @KodeCust + NamaCust + AlamatCust + TelpCust
MsKaryawan = @KodeKary + NamaKary + #KodeBagian + AlamatKary + TelpKary
MsBagian = @KodeBagian + Bagian
MsBarang = @KodeBarang + NamaBarang + #KodeJenisBarang + Harga + Qty
MsJenisBarang = @KodeJenisBarang + JenisBarang
TrHeaderPenjualan = @No.Faktur + TglPenjualan + #KodeCust + #KodeKary
TrDetailPenjualan = @No.Faktur + #KodeBarang + Qty + Harga

Langkah-langkah Buatlah table-tabel baru yang berhubungan dengan TrHeaderPenjualan. Contoh : table MsCustomer, MsKaryawan
Berikan tanda # pada field-field yang bersifat sebagai foreign key pada table-tabel seperti MsKaryawan dan MsBarang
Contoh : MsKaryawan dengan MsBagian yaitu field KodeBagian MsBarang dengan MsJenisBarang yaitu field KodeJenisBarang

Normalisasi ini menghasilkan 7 buath table bersifat master dan 2 buah table bersifat transaksi :
1. MsCustomer
2. MsKaryawan
3. MsBagian
4. MsBarang
5. MsJenisBarang
6. TrHeaderPenjualan
7. TrDetailPenjualan



Tidak ada komentar:

Posting Komentar