ringkasan pbd untuk uas version 2
DESCRIPTION
Tentang ringkasan Pemorgraman basis dataTRANSCRIPT
Ringkasan PBD untuk UAS
1. Normalisasi
a. Definisi normalisasi
Normalisasi adalah sebuah teknik atau proses agar table menjadi normal untuk
mengurangi redudansi data.
b. Tujuan normalisasi (hal 452)
Tujuan utama dari normalisasi adalah untuk mengurangi dampak negative dari
redudansi data (dampak negative tersebut adalah menaikkan storage data dan adanya
anomali [insert, update, delete] data) ini dari ibunya
Dari buku, tujuan normalisasi adalah
Database lebih mudah diakses dan dimaintain oleh pengguna
Mengurangi pemakaian storage data.
c. Anomali
Anomali ada tiga yaitu insertion, deletion dan modification anomali
Insertion anomali
Pada saat kita melakukan insert pada table di atas, maka dapat terjadi inkonsistensi
data pada branch address. Misalnya, ada pegawai baru yang bekerja di B007, kita
harus memastikan alamat branch tersebut telah benar dan sama di tuple/record
yang telah ada sebelumnya agar data tetap konsisten.
Oleh karena itu, dilakukan normalisasi dengan memisahkan Staff dan Branch ke
dalam dua table yang berbeda.
Deletion anomali
Masih merujuk pada gambar table staffbranch. Bila kita melakukan SQL statement
untuk menghapus staff ‘SA9’, maka detail dari branch B007 akan hilang bagaikan
butiran debu.
Modification anomali
Masih merujuk pada gambar table staffbranch. Bila kita ingin mengupdate alamat
branch dari B003, maka kita harus mengupdate semua tuple staff yang bekerja pada
branch tersebut. Kalau tidak, bisa terjadi inkonsistensi data.
d. Bagaimana normalisasi mendukung desain database? (hal 453)
Use Top down approach
Use Normalization as a Bottom-Up technique to create set of relations
Use Normalization as a Validation technique to check structure of relations
e. Tahap-tahap normalisasi (hal 464-473)
UNF (Unnormalized form)
Semua atribut dalam yang ada dalam sebuah kwitansi transaksi dijadikan sebuah
table
(lihat halaman 468)
1NF (First Normal Form)
Pada 1NF itu ada 2 cara, pertama flatten table
Yang kedua memisahkan header dan detail
2NF (Second Normal Form) (hal 470)
Remove Partial Dependency
Partial dependency adalah ketika beberapa atribut bisa dikeluarkan dari
suatu table tapi masih dapat berdiri sendiri (hal 459).
3NF (Third Normal Form) (hal 471)
Remove transitive dependency
Transitive dependency adalah B bergantung secara fungsional terhadap A, C
bergantung secara fungsional terhadap B, maka C secara transitif bergantung
pada A melalui B. (hal 460)
Hasil 3NF:
f. Advanced Normalization
Tujuan BCNF adalah untuk mengurangi redundancy yang bisa muncul pada relasi yang
ada di 3NF
Tujuan 4NF untuk menghindari relasi memiliki nontrivial multi-valued dependency.
Tujuan 5NF untuk menghindari relasi memiliki nontrivial join dependency.
2. Metodologi
Design methodology adalah pendekatan terstruktur yang menggunakan bantuan prosedur,
teknik, tools, dan dokumentasi untuk mendukung dan memfasilitasi proses desain.
a. Conceptual Database Design (hal 503 chapter 16)
Conceptual Database Design adalah proses membangun model data yang
digunakan dalam perusahaan, independent dari semua physical consideration.
Tujuan utama dari Conceptual Database Design adalah untuk membangun
representasi konseptual dari database, termasuk identifikasi entitas, relationship, dan
attribute yang penting.
Langkah-langkah dalam Conceptual db design (hal 508)
Step 1.1 Mengidentifikasi tipe entitas
Tujuan: untuk mengidentifikasi entitas apa saja yang diperlukan.
Tipe entitas dapat diidentifikasi dengan cara memeriksa users’ requirement
specification. Dari spesifikasi ini, kita dapat mengidentifikasi noun yang disebutkan.
Cara alternative adalah mencari objek yang memiliki eksistensi in their own right.
Misalnya, staff adalah sebuah entitas karena staff eksis meskipun kita tidak
mengetahui nama, posisi, dll.
Step 1.2 Mengidentifikasi tipe relasi
Tujuan: untuk mengidentifikasi relasi penting yang ada di antara tipe entitas.
Kita dapat menggunakan grammar dari spesifikasi kebutuhan untuk
mengidentifikasi relasi. Pada umumnya, relasi diindikasikan oleh kata kerja atau
verbal expression.
Menggunakan ERD
Gunakan ER diagram untuk memudahkan penggambarkan entitas dan
bagaimana mereka berelasi satu sama lain.
Menentukan multiplicity constraints of relationship types
Multiplicity constraint digunakan untuk mengecek dan mempertahankan
kualitas data. Constraint ini untuk menegaskan kejadian entitas yang
dapat diaplikasikan ketika database diupdate untuk menetukan apakah
update tersebut melanggar aturan yang telah ditentukan perusahaan.
Mengecek fan dan chasm trap
Step1.3 Mengidentifikasi dan menghubungkan atribut dengan tipe entitas atau relasi
Tujuan: untuk menghubungkan atribut dengan entitas atau relasi yang sesuai
Dengan cara yang sama, dengan mengidentifikasi entitas, kita mencari noun atau
noun phrase dari user requirement spesicfication. Attribute dapat diidentifikasi di
mana nuon atau noun phrase adalah sebuah property, kualitas, identifier, atau
karakteristik dari salah satu entitas atau relasi.
Simple/composite attribute
Identifikasi semua simple attribute yang direpresentasikan dalam
konseptual data model termasuk attribute yang menyusun composite
atribut.
Single/multi-valued attribute
Contoh: telephone.
Derived attribute
Derived atribut harus ditampilkan dalam data model untuk menghindari
potensi hilangnya informasi.
Document attribute
Simpan informasi berikut utk setiap attribute
- Attribute name and description
- Datatype and length
- Alias dari attribute
- Apakah atribut composite atau tidak, jika ya, simple atribut yang
menyusun composite attribute
- Apakah atribut multivalued atau tidak
- Apakah atribut derived atau tidak, jika ya, bagaimana perhitungannya
- Default value dari attribute
Step 1.4 Menentukan domain atribut
Domain attribute yang ditentukan adalah tipe data, size dan value.
Step 1.5 Menentukan candidate, primary dan alternate key attributes
Tujuan: untuk mengidentifikasi candidate key untuk setiap tipe entitas dan jika lebih
dari satu, maka harus memilih satu sebagai primary key, dan yang lain menjadi
alternate key.
Candidate key adalah minimal set atribut dari entitas yang mengidentifikasi
secara unik setiap kejadian dari entitas. Primary key adalah candidate key yang
terpilih untuk mengidentifikasi entitas secara unik. Candidate key yang tersisa
disebut sebagai alternate key.
Ketika memilih primary key, pakai guidelines berikut untuk membantu.
- Candidate key dengan minimal set of attribute
- Candidate key yang nilainya paling jarang berubah
- Candidate key dengan karakter paling sedikit (untuk textual)
- Candidate key dengan nilai minimum paling kecil (untuk numeric)
- Candidate key yang paling gampang digunakan dari sisi pandang user
Step 1.6 Mempertimbangkan menggunakan enhanced modeling concepts (optional)
Tujuan: Mempertimbangkan penggunaan enhanced modeling concepts, seperti
specialization/generalization, aggregation, and composition.
Step 1.7 Memeriksa model untuk redudansi
Tujuan: Untuk mengecek adanya redundancy dalam model
- Memeriksa ulang relasi one to one
- Mengeluarkan relasi yang redundan
- Mempertimbangkan dimensi waktu
Step 1.8 Memeriksa model konseptual dengan transaksi pengguna
Tujuan: untuk memastikan konseptual data model mendukung transaksi yang
dibutuhkan
- Mendeskripsikan transaksi
- Menggunakan transaksi pathways
Step 1.9 Meninjau conceptual data model dengan pengguna
Tujuan: Untuk meninjau conceptual data model dengan pengguna untuk
memastikan bahwa mereka menganggap model tersebut menjadi representasi yang
benar dari kebutuhan data perusahaan.
b. Logical Database Design
Logical database design adalah proses membangun model data yang digunakan
dalam perusahaan berdasarkan sebuah data model yang spesifik, tetapi independent
dari DBMS tertentu dan pertimbangan physical lainnya.
Tujuan utama Logical db design adalah untuk mengubah representasi konseptual
menjadi struktur logikal database, yang termasuk mendesain relasi.
Langkah-langkah dalam Logikal db design
c. Physical Database Design
Physical Database design adalah proses memproduksi deskripsi dari
implementasi database di secondary storage; menjelaskan relasi dasar, file organisasi,
dan index yang digunakan untuk mencapai akses data yang efisien dan integrity
constraint yang diperlukan dan security measures.
Tujuan utama physical database design adalah untuk memutuskan bagaimana
struktur logikal diimplementasikan secara fisik (berdasarkan relasi) ke dalam DBMS
target.
Langkah-langkah dalam physcial db design
d. Monitor and Tuning
Step 7 Consider the introduction of controlled redundancy
Tujuan: untuk menentukan apakah introducing redundancy ke dalam controlled manner
dengan melonggarkan peraturan normalisasi akan meningkatkan performa sistem.
(denormalisasi).
Step 7.1 Combining (1:1) Relationship
Misalnya ada table client dan interview. Kita dapat menggabungkan table tersebut
menjadi satu table baru yaitu ClientInterview agar dapat menghemat space.
Step 7.2 Duplicating non-key attributes in (1:*) relationship to reduce join
Misalkan ada table Property For Rent dan Private Owner. Seringkali ketika kita ingin
menampilkan Property For Rent maka kita juga akan menampilkan pemilik property
tersebut. Untuk mengurangi join, maka kita dapat menambahkan attribute non key
misalkan nama belakang dari owner pada table property for rent.
(hal 589-590)
Step 7.3 Duplicating foreign key attributes in (1:*) relationship to reduce join
Misalkan ada tiga table seperti gambar di atas. Kita ingin mengetahui private owner
tersebut berada di branch yang mana. Apabila table dalam database seperti pada
gambar di atas, maka kita akan mendapatkan informasi branch melalui property for
rent, sehingga ada join yang harus dibuat. Untuk mengurangi join, maka kita tinggal
menambahkan foreign key branch no pada table private owner.
Step 7.4 Duplicating attributes in (*:*) relationships to reduce joins
(Hal 593)
Intinya, masukin attribute dari table lain yang diperlukan dalam suatu table yang
akan diselect (hanya yg many to many relationship (biasanya attributenya dimasukin
ke table detail))
Step 7.5 Introducing repeating groups
Repeating group dapat disatukan lagi ke dalam sebuah table kalau :
- Jumlah pasti dari item repeating group dapat diketahui
- Angkanya static dan tidak akan berubah-ubah
- Jumlahnya tidak terlalu besar, pada umumnya tidak lebih besar dari 10.
Step 7.6 Creating extract tables
Intinya, untuk mempercepat kinerja pembuatan report pada saat peak time, kita
membuat extract table yang memiliki denormalisasi yang tinggi berdasarkan relasi
yang dibutuhkan oleh report.
Step 7.7 Partioning relations
Terbagi atas 3 :
Horizontal, Vertical dan mix (gabungan hori dan verti).
Implikasi dari denormalisasi :
a. Mempertimbangkan kembali pilihan indeks terhadap relasi yang didenormalisasi.
b. Bagaimana mempertahankan integritas data.
Solusi umum:
a. Trigger -> untuk mengupdate otomatis derived atau duplicated data
b. Transaction -> mengupdate denormalised data sebagai single action
c. Batch reconciliation -> membuat denormalisasi data konsisten
Step 8 Monitor and tune the operational System
Faktor yang harus diukur efisiensinya:
a. Transaction throughput -> jumlah transaksi yang dapat dilakukan dalam jangka waktu
tertentu
b. Response time -> waktu yang dibutuhkan untuk menyelesaikan sebuah transaksi
c. Disk storage -> jumlah total dari disk space yang dibutuhkan untuk menyimpan database
file.