MODUL 1
SEPUTAR PERANCANGAN DATABASE
TUJUAN PRAKTIKUM
1. Praktikan mampu menggambarkan ERD dengan baik dan benar dengan ER Modeling. 2. Praktikan dapat memahami konsep Basis Data Relasional.
3. Praktikan mampu menyelesaikan permasalahan basis data yang diberikan. 4. Praktikan mampu merancang database sederhana.
PERLENGKAPAN
1. Modul Praktikum Basis Data 2. Microsoft Excel
LANDASAN TEORI
1.1 Entity-Relationship Model (ER Model) dan Entity Relationship Diagram (ERD)
Entity-Relationship Model adalah model untuk mendeskripsikan isi suatu basis data dalam bentuk entitas, atribut, dan relationship antar entitas. ER Model ini diperkenalkan pada tahun 1976 oleh P.P. Chen. ER Model terdiri objek-objek dasar berupa entitas yang dapat merepresentasikan data yang ada. Dimana entitas tersebut memiliki suatu atribut dan dapat berhubungan dengan entitas lain melalui relationship. Fungsi dari model ini sendiri yaitu untuk menjembatani objek-objek nyata dengan basis data.
Apabila kumpulan entitas dalam ER Model telah dihubungkan secara lengkap dengan atribut dan relasinya, maka akan didapatkan Entity Relationship Diagram (ERD). Dimana ERD itu sendiri adalah diagram yang menggambarkan strutkur entitas dan hubungan antar entitas tersebut, untuk menggambarkannya digunakan beberapa notasi dan simbol. Berikut ini adalah notasi-notasi yang terdapat dalam Entity Relationship Diagram (ERD).
No Simbol/Notasi Arti
2 Weak Entity The
3 Relationship The
4 Identifying Relationship The
5 Attribute (Simple) 6 Key Attribute 7 Multivalued Attribute 8 Composite Attribute 9 Derived Attribute 10 Total Participation
11 Cardinality ratio 1:N for E1:E2
in R
12 Structural Constraint (min,
max) on Participation of E in R
Berikut ini adalah penjelasan dari notasi-notasi yang digunakan di ERD.
1. Entitas (Entity) adalah objek atau hal spesifik yang dapat diidentifikasi dalam lingkungan pemakai yang kemudian direpresentasikan dalam database. Simbol dari entitas ini biasanya digambarkan dengan bentuk persegi panjang. Ada dua jenis entitas yakni: 1) Strong entity (entitas kuat) merupakan entitas yang mandiri, yang keberadaannya
tidak bergantung pada keberadaan entitas yang lainnya. Entitas kuat selalu memiliki karakteristik yang unik disebut identifier (sebuah atribut tunggal atau gabungan atribut-atribut yang secara unik dapat digunakan untuk membedakannya dari entitas kuat yang lain).
2) Weak entity (entitas lemah) merupakan entitas yang keberadaannya sangat bergantung pada keberadaan entitas yang lainnya. Entitas lemah tidak memiliki
identifier sendiri. Entitas lemah tidak memiliki arti apa-apa tanpa kehadiran entitas di mana mereka bergantung. Entitas yang di mana entitas lemah bergantung dinamakan identifying owner. Secara umum, dalam diagram ER entitas lemah memiliki atribut yang berperan sebagai partial identifier (identifier yang berfungsi secara sebagian). 2. Atribut (Attribute) adalah sifat atau karakteristik yang digunakan untuk mendeskripsikan
sebuah entitas. Contoh: Entitas mahasiswa mempunyai atribut NIM, nama, jenis kelamin, tanggal lahir, dan sejenisnya yang mencirikan bahwa dia mahasiswa. Isi data dari atribut ini hanya boleh diisi dengan 1 data. Setiap mahasiswa hanya memiliki 1 NPM, 1 Nama, 1 Alamat. Simbol dari atribut ini biasanya digambarkan dengan bentuk oval. Ada beberapa jenis atribut yakni:
1) Simple Attribute (Atribut biasa) merupakan atribut yang memiliki nilai pasti dan tidak ganda. Misalnya: bagi setiap mahasiswa yang di kuliah di satu kampus, mereka hanya memiliki satu atribut NIM, jenis kelamin, dan sebagainya yang tidak bernilai ganda. 2) Composite Attribute (Atribut gabungan) merupakan atribut yang memiliki nilai
gabungan dari beberapa atribut lainnya. Misalnya: nama bisa terdiri dari nama depan, nama tengah dan nama belakang atau alamat yang bisa terdiri dari jalan, nomor, kecamatan, kota.
3) Multi-valued Attribute (Atribut bernilai ganda) merupakan atribut yang memiliki nilai bisa lebih dari satu. Misalnya: no handphone yang dimiliki entitas mahasiswa, bisa saja satu mahasiswa memiliki lebih dari satu no hanphone.
4) Derived Attribute merupakan atribut yang nilainya dapat diperoleh dari nilai atribut lain. Misalnya: umur bisa menjadi atribut untuk seorang manusia, tetapi umur tersebut hanya dapat diperoleh, jika terdapat atribut tanggal lahir. Maka, umur adalah derived attribute yang nilainya bisa didapatkan dari kalkulasi tanggal lahir.
5) Key Attribute merupakan atribut yang memiliki nilai unik. Di mana nilai tersebut tidak berubah-ubah, seperti NIM, ID pegawai, dan sejenisnya. Key attribute juga tidak bisa bernilai NULL. Untuk atribut jenis ini, masih ada kemungkinan untuk menjadi composite attribute. Kemudian, untuk setiap entitas bisa saja memiliki lebih dari satu Key attribute. Contohnya, taksi yang memiliki nomor taksi dan plat mobil yang unik. 3. Relasi (Relationship) merupakan hubungan yang terjadi antar satu atau lebih entitas.
Relasi digambarkan dengan notasi belah ketupat. Ada jenis relasi rekursif dimana relasa ini menghubungkan satu entitas ke entitas itu sendiri.
4. Derajat Relasi atau Kardinalitas merupakan derajat yang menunjukkan jumlah maksimum entitas yang dapat berelasi dengan entitas pada himpunan entitas yang lain. Macam-macam kardinalitas, misalkan hubungan antara entitas A dan B:
1) Satu ke satu (one to one), maksudnya adalah setiap anggota entitas A hanya boleh berhubungan dengan satu anggota entitas B, begitu pula sebaliknya.
Contoh : Rektor dengan (dan) Universitas dengan relasi memimpin, mahasiswa dengan NIM dengan relasi memiliki, dll
2) Satu ke banyak (one to many), maksudnya adalah setiap anggota entitas A dapat berhubungan dengan lebih dari satu anggota entitas B tetapi tidak sebaliknya.
Contoh : Pembeli dengam Mobil dengan relasi membeli, Dosen dengan Mahasiswa dengan relasi Perwalian, dll
3) Banyak ke banyak (many to many), maksudnya adalah Setiap anggota entitas A dapat berhubungan dengan banyak anggota entitas B dan sebaliknya.
Contoh : Pegawai dengan Proyek dengan relasi Bekerja pada, Pegawai dengan Bagian dengan relasi Ditugaskan ke, dll.
1.2 Model Relasional
Model relasional merupakan tabel 2 dimensi yang mempunyai karakteristik seperti di bawah ini yaitu :
Baris berisi data tentang entitas.
Kolom berisi data tentang atribut dari entitas. Cell pada tabel memeang sebuah nilai single. Semua masukan pada kolom harus jenis yang sama. Setiap kolom mempunyai nama yang unik.
Susunan kolom tidak penting. Susunan baris juga tidak penting. Tidak boleh ada dua baris yang serupa.
1.3 Pemetaan Entity Relationship Diagram ke Model Relasional
1. Untuk Entitas kuat :
Buat satu relasi, masukkan semua atribut sederhana dari ERD menjadi atribut pada model relasional (MR)
Primary key (PK) pada ERD menjadi PK pada Model Relasional (MR).
2. Untuk Entitas lemah :
Buat satu relasi, masukkan semua atribut sederhana ERD menjadi atribut pada MR. Masukkan PK dari entitas kuat pemilik entitas lemah ini, sehingga menjadi Foreign
key (FK) di sini.
PK relasi ini adalah partial key-nya + FK. 3. Untuk relationship 1 to 1 :
Masukkan PK dari entitas yang berpartisipasi tidak penuh (partial participation) -- yang digambarkan dengan garis tunggal -- ke relasi yang berpartisipasi penuh (total
participation) --yang digambarkan dengan garis ganda -- menjadi FK pada relasi ini.
Jika terdapat atribut pada relationship, masukkan ke relasi yang berpartisipasi penuh.
PK pada relasi ini adalah sama dengan PK pada ERD. 4. Untuk relationship 1 to Many (1 to N) :
Masukkan PK dari entitas sisi 1 ke relasi sisi N, sehingga menjadi FK pada relasi baru ini.
Jika terdapat atribut pada relationship, masukkan ke relasi yang berada pada sisi N. PK relasi ini adalah sama dengan PK pada ERD.
5. Untuk relationship many to many (N to N) :
Buat satu relasi tersendiri, yang atributnya terdiri atas PK-PK dari masing-masing entitas yang berpartisipasi.
PK-PK tersebut menjadi FK pada relasi baru ini.
Gabungan FK-FK tersebut adalah PK baru pada relasi ini.
Jika terdapat atribut pada relationship-nya, masukkan juga sebagai atribut anggota. 6. Untuk multivalued attribute (atribut bernilai banyak) :
Buat satu relasi tersendiri, yang atributnya terdiri atas atribut bernilai banyak tersebut ditambah dengan PK dari entitas pemilik atribut bernilai banyak tersebut. PK relasi ini adalah gabungan atribut-atribut tersebut di atas.
7. Untuk relationship n-ary (keterhubungan yang lebih dari dua) :
Buat satu relasi tersendiri, yang atribut-atributnya terdiri atas PK-PK dari setiap entitas yang berpartisipasi.
PK-PK tersebut menjadi FK pada relasi baru ini.
Gabungan FK-FK tersebut adalah PK baru pada relasi ini.
Jika terdapat atribut pada relationship-nya, masukkan juga sebagai atribut anggota.
1.4 Normalisasi
Normalisasi merupakan teknik analisis data yang mengorganisasikan atribut-atrbut data dengan cara mengelompokkan sehingga terbentuk entitas yang non redundant, stabil, dan fleksible.
Normalisasi dilakukan sebagai uji coba pada suatu relasi secara berkelanjutan untuk menentukan apakah relasi itu sudah baik, yaitu dapat dilakukan proses insert, update, delete, dan modifikasi pada satu atau beberapa atribut tanpa mempengaruhi integritas data dalam relasi tersebut.
Sebuah tabel yang merangkum semua kelompok data yang saling berhubungan, bukan merupakan tabel yang baik disebut Tabel Universal atau Unnormalized Table. Biasanya didapat dari form data dari user bisnis (diusahakan mendapat form yang sudah terisi data). Ada 3 bentuk Normalisasi yaitu :
1) Bentuk Normal ke Satu (1NF) Syarat :
Tidak ada set atribut yang berulang atau bernilai banyak (multivalued attribute), atribut composite atau kombinasi antara keduanya.
Tiap atribut hanya memiliki satu pengertian.
Setiap atribut dalam tabel tersebut harus bernilai atomic (satu cell hanya menampung satu nilai)
2) Bentuk Normal ke Dua (2NF) Syarat :
Bentuk normal 2NF terpenuhi dalam sebuah tabel jika telah memenuhi bentuk 1NF, dan semua atribut selain primary key secara utuh memiliki Functional Dependency pada primary key.
Sebuah tabel tidak memenuhi 2NF jika ada atribut yang ketergantungannya (Functional Dependency) hanya bersifat parsial saja (hanya tergantung pada sebagian dari primary key)
Jika terdapat atribut yang tidak memiliki ketergantungan terhadap primary key, maka atribut tersebut harus dipindah atau dihilangkan.
3) Bentuk Normal ke Tiga (3NF) Syarat :
Bentuk data telah memenuhi kriteria bentuk normal ke dua.
Tidak ada atribut non primary key yang memiliki ketergantungan terhadap
atribut non primary key yang lainnya (tidak terdapat ketergantungan transitif). Seluruh atribut bukan kunci pada suatu relasi hanya memiliki ketergantungan fungsional terhadap primary key di relasi itu saja.
1.5. Ketergantungan pada Normalisasi
a) Functional Dependency (Ketergantungan Fungsional)
Notasi: A B
A dan B adalah atribut dari sebuah tabel. Berarti secara fungsional B tergantung pada A. Jika ada 2 baris data dengan nilai A yang sama, maka nilai B juga sama.
Nrp namaMhs
Karena untuk setiap nilai nrp yang sama, maka nilai namaMhs juga sama. {Namakul, nrp} NiHuruf
Karena attribut Nihuruf tergantung pada Namakul dan nrp secara bersama-sama. Dalam arti lain untuk Namakul dan nrp yang sama, maka NiHuruf juga sama, karena Namakul dan nrp merupakan key (bersifat unik).
b) Transitive Dependency (Ketergantungan Transitif)
Definisi bentuk dependensi transitif adalah sebagai berikut : Atribut Z mempunyai dependensi transitif terhadap X, bila : 1)Y memiliki dependensi fungsional terhadap X. (XY) 2)Z memiliki dependensi fungsional terhadap Y. (YZ) Sehingga : X Y Z
1.6 Contoh Kasus ERD
Di sebuah universitas, ketika masa registrasi mulai berdatangan, mahasiswa pasti melakukan registrasi mata kuliah. Mahasiswa wajib mengambil minimal 1 mata kuliah di setiap semesternya agar mereka dapat menyelesaikan perkuliahan mereka sesuai dengan SKS yang ada. Di setiap mata kuliah tentunya ada beberapa orang dosen yang akan mengajar mata kuliah tersebut. Setiap mata kuliah pasti ada 1 koordinator mata kuliah yang berasal dari kalangan dosen.
Ketika seorang mahasiswa sudah mencapai tingkat akhir, mahasiswa tersebut pasti mengambil tugas akhir. Ketika menjalani tugas akhir tersebut, mahasiswa pasti dibimbing oleh 1 dosen pembimbing.
Buatlah ERD sederhana dengan atribut-atribut penting (2 saja) untuk setiap entitasnya, kemudian gambarkan juga model relasionalnya. Setelah itu, buatlah tabel database serta lakukan normalisasinya.
Jawaban :
1. Entity Relationship Diagram
MAHASISWA MATA KULIAH DOSEN MENGAMBIL MEMBIMBING MENGAJAR N N N 1 N N
NIM NAMAMHS KODE NAMA_MATKUL
2. Model Relasional MAHASISWA MATA KULIAH DOSEN MENGAMBIL MEMBIMBING MENGAJAR N N N 1 N N
NIM NAMAMHS KODE NAMA_MATKUL
NIP Nama KODE NIM KODE NIP NIP Tabel Mahasiswa Tabel Dosen
Tabel Mata Kuliah
Tabel Mengambil
NIM NAMAMHS NIP
NIP Nama
Tabel Mengajar
NIM KODE
1.7 Contoh Kasus Normalisasi
Diberikan sebuah tabel universal di bawah ini dan lakukan normalisasi sampai bentuk
ketiga.
Bentuk Normal ke 1 (1NF)
Tabel Perkuliahan belum memenuhi syarat 1NF karena kolom Telepon bersifat multivalue.
Solusi agar tabel Perkuliahan memenuhi syarat 1NF adalah dengan melakukan pemecahan tabel atau dekomposisi tabel. Namun perlu diingat, dekomposisi tabel harus dilakukan dengan cermat agar data tetap konsisten (perubahan hanya terjadi pada struktur tabel tetapi tidak ada perubahan pada data).
Perhatikan bahwa (NIM) (Telepon). Dengan demikian, kita dapat memecah tabel Perkuliahan menjadi tabel DataPerkuliahan dan DataNomorTelepon seperti
Tabel DataPerkuliahan dan DataNomorTelepon tidak memiliki atribut yang bersifat multivalue. Tabel DataPerkuliahan dan DataNomorTelepon juga tidak memiliki lebih dari satu atribut
dengan domain yang sama.
Dengan demikian dapat disimpulkan bahwa tabel DataPerkuliahan dan DataNomorTelepon telah memenuhi syarat 1NF dan siap untuk diperiksa apakah memenuhi syarat bentuk normal level berikutnya (2 NF).
Bentuk Normal ke 2 (2NF)
Untuk mengonversi tabel ke bentuk nomal kedua, kita memisahkan tabel DataPerkuliahan menjadi beberapa tabel.
Untuk lebih jelasnya perhatikan tabel DataPerkuliahan hasil tahap sebelumnya:
Perhatikan bahwa:
1. (nim, kode_mk) adalah candidate key.
2. FD1: (nim) (nama_mhs, kd_jur, nama_jur) 3. FD2: (kode_mk) (nama_mk, sks)
4. FD3: (nim,kode_mk) nilai
1. FD 1: (nim,kode_mk) (nama_mhs,kd_jur,nama_jur) secara parsial. 2. FD 2: (nim,kode_mk) (nama_mk,sks) secara parsial .
Walaupun tabel DataPerkuliahan telah memenuhi syarat 1NF namun karena terjadi
partial functional dependency maka tabel T-1 DataPerkuliahan belum memenuhi syarat
2NF.
Solusinya adalah dengan melakukan dekomposisi terhadap tabel DataPerkuliahan dengan tetap menjaga agar datanya tetap konsisten. Hal ini dapat dilakukan dengan melakukan dekomposisi tabel sesuai FD1, FD2 dan FD3 yang telah kita analisis sebelumnya. Adapun hasil dekomposisi dari tabel DataPerkuliahan adalah 3 tabel berikut ini :
Ketiga tabel hasil dekomposisi tersebut sudah tidak mengalami partial functional
dependency. Dengan demikian ketiga tabel tersebut telah memenuhi syarat 2NF dan
siap untuk diperiksa apakah memenuhi syarat bentuk normal level berikutnya (3NF). Adapun Tabel DataNomorTelepon (hasil dekomposisi pada tahap 1NF) juga tidak mengalami partial functional dependency sehingga sudah memenuhi 2NF, tidak perlu didekomposisi lagi dan dapat langsung diperiksa apakah memenuhi 3NF bersama-sama dengan tabel DataJurusan, T-1-2 Matakuliah dan Nilai.
Bentuk Normal ke 3 (3NF)
Umumnya jika sebuah tabel telah memenuhi syarat bentuk normal ke tiga (3NF) maka tabel tersebut sudah dianggap ‘cukup normal’. Bentuk normal ke 3 adalah bentuk normal yang biasanya menjadi syarat minimum bagi sebuah desan tabel.
Untuk lebih jelasnya perhatikan tabel DataJurusan dari tahap sebelumnya:
Perhatikan bahwa:
FD1: (nim) (nama_mhs, kd_jur, nama_jur)
FD2: (kd_jur) (nama_jur) Berarti Terjadi Transitive FD:
Walaupun tabel DataJurusan telah memenuhi syarat 2NF namun karena terjadi
transitive functional dependency maka tabel
DataPerkuliahan belum memenuhi syarat 3NF. Solusinya adalah dengan melakukan dekomposisi terhadap tabel DataJurusan dengan tetap menjaga agar datanya tetap konsisten sesuai FD1dan FD2. Adapun hasil dekomposisi dari tabel DataJurusan adalah 2 tabel berikut ini: