NIM : 1504505026
Kelompok : 22
MODUL I
NORMALISASI
Tujuan
1. Mampu menentukan key dengan tepat.
2. Mampu memasangkan pasangan PK dan FK sesuai cardinality.
3. Mampu melakukan normalisasi terhadap suatu sistem dengan benar.
Tugas Pendahuluan
a. Sebutkan dan jelaskan dengan rinci tahapan-tahapan yang semestinya
dilakukan dalam pembuatan suatu program basis data.
b. Sebutkan dan jelaskan dengan rinci tahapan-tahapan yang semestinya
dilakukan dalam proses normalisasi, berikan contoh untuk
menggambarkan proses yang terjadi disetiap tahapan normalisasi.
c. Sebutkan macam-macam tipe data yang ada dalam MySQL serta
kebutuhan memory dan penggunaannya dengan jelas.
d. Sebutkan kegunaan key dalam suatu tabel. Lalu sebutkan dan jelaskan
macam - macam key yang ada dalam konsep basis data.
e. Sebutkan dan jelaskan macam-macam relationship (keterhubungan)
yang ada dalam konsep basisdata.
Jawaban
1. Tahap 1 Pengumpulan data dan analisa
Merupakan suatu tahap dimana kita melakukan proses indentifikasi
dan analisa kebutuhan-kebutuhan data dan ini disebut pengumpulan
data dan analisa. Untuk menentukan kebutuhan-kebutuhan suatu
sistem database, kita harus mengenal terlebih dahulu bagian-bagian
lain dari sistem informasi yang akan berinteraksi dengan sistem
database, termasuk para user yang ada dan para useryang baru beserta
aplikasi-aplikasinya. Kebutuhan-kebutuhan dari para user dan aplikasi-
aplikasi inilah yang kemudian dikumpulkan dan dianalisa.
Berikut ini adalah aktifitas-aktifitas pengumpulan data dan analisa:
a. Menentukan kelompok pemakai dan bidang-bidang aplikasinya
b. Peninjauan dokumentasi yang ada
c. Analisa lingkungan operasi dan pemrosesan data
d. Daftar pertanyaan dan wawancara
Tahap 2 Perancangan database secara konseptual
Pada tahap ini akan dihasilkan conceptual schema untuk database yang
tergantung pada sebuah DBMS yang spesifik. Sering menggunakan sebuah
high-level data modelseperti ER/EER modelselama tahap ini. Dalam
conceptual schema, kita harus merinci aplikasi-aplikasi databaseyang
diketahui dan transaksi-transaksi yang mungkin.Tahap perancangan
databasesecara konseptual mempunyai 2 aktifitas pararel:
1. Perancangan skema konseptual
Menguji kebutuhan-kebutuhan data dari suatu database yang
merupakan hasil dari tahap 1 dan menghasilkan sebuah conceptual
database schema pada DBMS-independent model data tingkat tinggi
seperti EER (Enhanced Entity Relationship) model.Untuk menghasilkan
skema tersebut dapat dihasilkan dengan penggabungan bermacam-macam
kebutuhan user dan secara langsung membuat skema database atau dengan
merancang skema-skema yang terpisah dari kebutuhan tiap-tiap user dan
kemudian menggabungkan skema-skema tersebut. Model data yang
digunakan pada perancangan skema konseptual adalah DBMS-
independent dan langkah selanjutnya adalah memilih DBMS untuk
melakukan rancangan tersebut.
2. Perancangan transaksi
Menguji aplikasi-aplikasi databasedimana kebutuhan-kebutuhannya
telah dianalisa pada fase 1, dan menghasilkan perincian transaksi-transaksi
ini.Kegunaan tahap ini yang diproses secara paralel bersama tahapp
perancangan skema konseptual adalah untuk merancang karakteristik dari
transaksi-transaksi database yang telah diketahui pada suatu DBMS-
independent. Transaksi-transaksi ini akan digunakan untuk memproses dan
memanipulasi database suatu saat dimana database tersebut dilaksanakan.
Tahap 3 Pemilihan DBMS
Pemilihan database ditentukan oleh beberapa faktor diantaranya faktor
teknik, ekonomi, dan politik organisasi.Contoh faktor teknik:
Keberadaan DBMS dalam menjalankan tugasnya seperti jenis-jenis
DBMS (relational, network, hierarchical, dan lain-lain), struktur
penyimpanan, dan jalur akses yang mendukung DBMS, pemakai, dan lain-
lain.Faktor-faktor ekonomi dan organisasi yang mempengaruhi satu sama
lain dalam pemilihan DBMS :
1. Struktur data
Jika data yang disimpan dalam database mengikuti struktur hirarki,
maka suatu jenis hirarki dari DBMS harus dipikirkan.
2. Personal yang telah terbiasa dengan suatu system
Jika staf programmer dalam suatu organisasi sudah terbiasa dengan
suatu DBMS, maka hal ini dapat mengurangi biaya latihan dan waktu
belajar.
3. Tersedianya layanan penjual
Keberadaan fasilitas pelayanan penjual sangat dibutuhkan untuk
membantu memecahkan beberapa masalah sistem.
Tahap 4 Perancangan database secara logika (data model mapping)
Tahap selanjutnya adalah membuat sebuah skema konseptual dan
skema eksternal pada model data dari DBMS yang terpilih. Tahap ini
dilakukan oleh pemetaan skema konseptual dan skema eksternal yang
dihasilkan pada tahap 2. Pada tahap ini, skema konseptual
ditransformasikan dari model data tingkat tinggi yang digunakan pada
tahap 2 ke dalam model data dari model data dari DBMS yang dipilih pada
tahap 3.Pemetaan tersebut dapat diproses dalam 2 tingkat:
1. Pemetaan system-independent
Pemetaan ke dalam model data DBMS dengan tidak
mempertimbangkan karakteristik atau hal-hal yang khusus yang berlaku
pada implementasi DBMS dari model data tersebut.
2. Penyesuain skema ke DBMS yang spesifik
Mengatur skema yang dihasilkan pada langkah 1 untuk disesuaikan
pada implementasi yang khusus di masa yang akan datang dari suatu
model data yang digunakan pada DBMS yang dipilih.Hasil dari tahap ini
memakai perintah-perintah DDL (Data Definition Language) dalam
bahasa DBMS yang dipilih yang menentukan tingkat skema konseptual
dan eksternal dari sistem database. Tetapi 10 dalam beberapa hal, perintah-
perintah DDL memasukkan parameter-parameter rancangan fisik sehingga
DDL yang lengkap harus menunggu sampai tahap perancangan
databasesecara fisik telah lengkap.Tahap ini dapat dimulai setelah
pemilihan sebuah implementasi model data sambil menunggu DBMS yang
spesifik yang akan dipilih. Contoh: jika memutuskan untuk menggunakan
beberapa relational DBMS tetapi belum memutuskan suatu relasi yang
utama. Rancangan dari skema eksternal untuk aplikasi-aplikasi yang
spesifik seringkali sudah selesai selama proses ini.
Tahap 5 Perancangan database secara fisik
Perancangan database secara fisik merupakan proses pemilihan
struktur-struktur penyimpanan dan jalur-jalur akses pada file-file
databaseuntuk mencapai penampilan yang terbaik pada bermacam-macam
aplikasi.Selama fase ini, dirancang spesifikasi-spesifikasi untuk database
yang disimpan yang berhubungan dengan struktur-struktur penyimpanan
fisik, penempatan record dan jalur akses. Berhubungan dengan internal
schema(pada istilah 3 level arsitektur DBMS).Beberapa petunjuk dalam
pemilihan perancangan databasesecara fisik :
1. Response time
Waktu yang telah berlalu dari suatu transaksi database yang diajukan
untuk menjalankan suatu tanggapan. Pengaruh utama pada response time
adalah di bawah pengawasan DBMS yaitu : waktu akses database untuk
data item yang ditunjuk oleh suatu transaksi. Response time juga
dipengaruhi oleh beberapa faktor yang tidak berada di bawah pengawasan
DBMS, seperti penjadwalan sistem operasi atau penundaan komunikasi.
2. Space utility
Jumlah ruang penyimpanan yang digunakan oleh file-file database dan
struktur-struktur jalur akses.
3. Transaction throughput
Rata-rata jumlah transaksi yang dapat diproses per menit oleh sistem
database, dan merupakan parameter kritis dari sistem transaksi (misal :
digunakan pada pemesanan tempat di pesawat, bank, dll). Hasil dari fase
ini adalah penentual awal dari struktur penyimpanan dan jalur akses untuk
file-file database.
Tahap 6 Implementasi Sistem database
Setelah perancangan secara logika dan secara fisik lengkap, kita dapat
melaksanakan sistem database. Perintah-perintah dalam DDL dan
SDL(Storage Definition Language) dari DBMS yang dipilih, dihimpun
dan digunakan untuk membuat skema database dan file-file database (yang
kosong). Sekarang databasetersebut dimuat (disatukan) dengan
datanya.Jika data harus dirubah dari sistem komputer sebelumnya,
perubahan-perubahan yang rutin mungkin diperlukan untuk format ulang
datanya yang kemudian dimasukkan ke database yang baru. Transaksi-
transaksi database sekarang harus dilaksanakan oleh para programmmer
aplikasi.Spesifikasi secara konseptual diuji dan dihubungkan dengan kode
program dengan perintah-perintah dari embedded DML yang telah ditulis
dan diuji. Suatu saat transaksi-transaksi tersebut telah siap dan data telah
dimasukkan ke dalam database, maka tahap perancangan dan
implementasi telah selesai, dan kemudian tahap operasional dari sistem
database dimulai.
2. Un-Normal Form
Berupa relasi umum, sesuai kenyataan
Mencerminkan item data nyata
Mencerminkan bagian dari suatu sistem
Belum dapat digunakan sebagai database
Bentuk Flat Table menggambarkan jumlah atribut
Contoh Flat Tabel :
Tb_2
NAMA ALAMAT KOTA NO. HP
Adi Jl. Parikesit Singaraja 085738
Tb_3
NAMA JUMLAH
SERI Qty HARGA SATUAN
BARANG HARGA
F-190-S Kipas Angin 1 Rp. 150.000,- set Rp. 150.000,-
L-177-R Lampu 5 Rp. 12.500,- pcs Rp. 62.500,-
O-012-Y Kabel 20 Rp. 3.650,- m Rp. 79.000,-
Dari ketiga tabel tersebut masih ada beberapa masalah yang muncul yakni
masalah :
a. Lose-Less Decomposition
b. Dependency Preservation.
Coba kita lihat pada Tb_3, atribut Jumlah serta Jumlah Harga masih juga
samar-samar jadi permasalahan yang muncul adalah Transitive
Dependency. Maka perlu dilakukan langkah normalisasi bentuk ketiga
(3NF).
Bentuk Normal Tahap Ketiga (3NF)
a. Bentuk normal 3NF terpenuhi jika telah memenuhi bentuk 2NF,
dan jika tidak ada atribut non primary key yang memiliki
ketergantungan terhadap atribut non primary key yang lainnya,
b. Untuk setiap Functional Dependency dengan notasi X-->A, maka :
c. X harus menjadi superkey pada tabel tersebut.
d. Atau A merupakan bagian dari primary key pada tabel tersebut.
Coba kita lihat lagi Tb_3, kita dapat memecah kembali tabel tersebut
dengan membagi atribut Seri, Nama Barang, Harga, dan Satuan menjadi
satu tabel. Untuk Tb_1 dan Tb_2 sudah tidak ada masalah lagi. Jadi
sampai bentuk ketiga ini kita sudah memiliki 4 tabel baru.
Dengan tambahan dari pemecahan tabel Tb_3 menjadi Tb_4 dan Tb_5.
Seperti pada gambar di bawah ini :
Tb_3
NAMA JUMLAH
SERI Qty HARGA SATUAN
BARANG HARGA
F-190-S Kipas Angin 1 Rp. 150.000,- set Rp. 150.000,-
L-177-R Lampu 5 Rp. 12.500,- pcs Rp. 62.500,-
O-012-Y Kabel 20 Rp. 3.650,- m Rp. 79.000,-
Menjadi :
Tb_4
SERI NAMA BARANG HARGA SATUAN
F-190-S Kipas Angin Rp. 150.000,- set
L-177-R Lampu Rp. 12.500,- pcs
O-012-Y Kabel Rp. 3.650,- m
Tb_5
NAMA SERI Qty JUMLAH HARGA
Adi F-190-S 1 Rp. 150.000,-
Adi L-177-R 5 Rp. 62.500,-
Adi O-012-Y 20 Rp. 79.000,-
Pada tahap normalisasi 3, kualitas tabel sudah memiliki kualitas yang baik
dan dianggap sudah memenuhi standar normalisasi tabel yang baik.
Namun masih ada beberapa tahap normalisasi lagi untuk memenuhi
perancangan suatu database yang lebih kompleks.
Boyce-Code Normal Form (BCNF)
a. Bentuk BCNF terpenuhi dalam sebuah tabel, jika untuk setiap
Functional Dependency terhadap setiap atribut atau gabungan
atribut dalam bentuk : X --> Y maka X adalah Super Key.
b. Tabel tersebut harus di dekomposisi berdasarkan Functional
Dependency yang ada, sehingga X menjadi super key dari tabel-
tabel hasil dekomposisi.
c. Setiap tabel dalam BCNF merupakan 3NF. Akan tetapi setiap 3NF
belum tentu termasuk BCNF. Perbedaannya, untuk Functional
Dependency X--> A, BCNF tidak membolehkan A sebagai bagian
dari primary key.
Bentuk Normal Tahap Keempat (4NF) atau MVD dan PJNF
a. Bentuk normal 4NF terpenuhi dalam sebuah tabel jika telah
memenuhi bentuk BCNF, dan tabel tersebut tidak boleh memiliki
lebih dari sebuah multivalued attribute.
b. Untuk setiap multivalued attribute (MVD) juga harus merupakan
Functional Dependency
Bentuk Normal Tahap Kelima (5NF)
a. Bentuk normal 5NF terpenuhi jika memiliki sebuah loseloss
decomposition menjadi tabel-tabel yang lebih kecil.
b. Jika 4 bentuk normal sebelumnya dibentuk berdasarkan Functional
Dependency, 5NF dibentuk berdasarkan konsep Join Dependence.
Yakni apabila sebuah tabel telah di dekomposisi menjadi tabel-
tabel lebih kecil, harus bisa digabungkan lagi untuk membentuk
tabel semula.
Overnormalisasi
Analisa Overnormalisasi diperlukan jika :
a. Database ini digunakan untuk sistem multi user
b. Tabel-tabel yang sudah normal ini digabungkan dengan fungsi lain
yang ada di lapangan, misalnya; untuk fungsi retur, untuk fungsi
inventori, untuk fungsi sales order maupun order pembelian, untuk
fungsi keamanan database, dan lain-lain.
3. Secara umum tipe data pada MySQL dibagi menjadi 4 yaitu:
a. Numeric Values yaitu angka atau bilangan seperti 10; 123; 100.50;
-10; 1.2E+17; 2.7e-11; dan sebagainya. Tipe data ini dibagi
menjadi dua yaitu Bilangan Bulat (Integer) dan Bilangan Pecahan
(Floating-point). Bilangan bulat adalah bilangan tanpa tanda
desimal sedangkan bilangan pecahan adalah bilangan dengan tanda
desimal. Kedua jenis bilangan ini dapat bernilai positif (+) dan juga
negatif (-). Jika bilangan tersebut menggunakan tanda positif (+)
atau (-), maka disebut SIGNED. Sebaliknya bila tanpa tanda
apapun disebut UNSIGNED. Karena tanda positif (+) dapat
diabaikan penulisannya maka pada bilangan yang bernilai positif
disebut UNSIGNED.
b. String/Character Values adalah semua karakter (atau teks) yang
penulisannya selalu diapit oleh tanda kutip baik kutip tunggal ()
maupun kutip ganda (). Hal ini tidak hanya berlaku pada huruf
alfabet saja tetapi angka yang ditulis dengan tanda kutip pun akan
menjadi karakter atau string.
c. Date and Time Values yaitu tanggal dan waktu. Untuk jenis data
tanggal dan waktu format standar (default) penulisan tanggalnya
adalah tahun-bulan-tanggal, Misalnya untuk 22 Januari 2001
dituliskan 2002-01-22. Untuk penulisan waktu, formatnya adalah
jam-menit-detik. Contoh, 13:55:07. Data tanggal dan waktu
bisa digabung penulisannya menjadi 2002-01-22 13:55:07.
d. NULL. NULL sebenarnya bukan data, tapi dia mewakili sesuatu
yang tidak pasti, tidak diketahui atau belum ada nilainya.
Sebagai contoh dalam kehidupan sehari-hari Anda melakukan
suatu survei berapa jumlah pengguna sistem operasi LINUX dan
Windows di Indonesia. Selama survei belum tuntas maka data
pastinya belum dapat diketahui. Oleh sebab itu, data tersebut bisa
diwakili dengan NULL, alias belum diketahui.
Pada tipe-tipe data MySQL terdapat beberapa atribut yang memiliki arti
sebagai berikut:
a. M, menunjukkan lebar karakter maksimum. Nilai M maksimum
adalah 255.
b. D, menunjukkan jumlah angka di belakang koma. Nilai maksimum
D adalah 30 tetapi dibatasi oleh nilai M, yaitu tidak boleh lebih
besar daripada M-2.
c. Atribut yang diberi tanda [ dan ] berarti pemakaiannya adalah
optional.
d. Jika atribut ZEROFILL disertakan, MySQL akan otomatis
menambahkan atribut UNSIGNED.
e. UNSIGNED adalah bilangan tanpa tanda di depannya (misalnya
tanda negatif).
Berikut tipe-tipe data yang didukung oleh MySQL, antara lain:
a. Tipe data untuk bilangan
Bentuk Dasar
No Tipe Data Keterangan Ukuran
Penulisan
INTEGER
[(M)]
5. Sama dengan INT.
[UNSIGNED]
[ZEROFILL]
DOUBLE
PRECISION Bilangan pecahan berpresisi
9. 8 byte.
[(M,D)] ganda.
[ZEROFILL]
REAL [(M,D)]
10. Sinonim dari DOUBLE. 8 byte.
[ZEROFILL]
c. Many-to-many. Jika tabel satu berelasi dengan tabel dua dengan relasi any-
to-many artinya ada banyak record di entitas satu dan entitas dua yang
saling berhubungan satu sama lain. Contohnya relasi many-to-many antara
tabel transaksi dan barang. Satu record transaksi bisa berhubungan dengan
banyak record barang, begitu pula sebaliknya. Gambar relasi many-to-
many: