DIKLAT TEKNIS UMUM DESAIN PENGELOLAAN DATABASE MODUL Desain Database Relasional Oleh Dr. Khamami Herusantoso Sanyoto Gondodiyoto Widyaiswara Pusdiklat Keuangan Umum KEMENTERIAN KEUANGAN REPUBLIK INDONESIA BADAN PENDIDIKAN DAN PELATIHAN KEUANGAN PUSDIKLAT KEUANGAN UMUM JAKARTA 2011 Judul Modul: Desain Database Relasional Penulis: Dr. Khamami Herusantoso Sanyoto Gondodiyoto Cetakan Pertama: 2011 Modul: Desain Database Relasional ii Puji syukur kami panjatkan ke hadirat Tuhan yang Maha Esa, karena hanya atas berkat rahmat-Nya kita semua masih diberikan kesempatan untuk melaksanakan tugas-tugas terkait kediklatan hingga saat ini, terutama bagi penulis yang telah diberi kesempatan untuk menyusun dan menyelesaikan modul ini dengan baik. Modul Structure and Query Language untuk Diklat Teknis Umum Pengelolaan Database ini disusun oleh Saudara Khamami Herusantoso dan Saudara Agus Hekso Pramudijono berdasarkan Surat Keputusan Kepala Pusdiklat Nomor KEP-003/PP.7/2011 tanggal 28 Januari 2011 tentang Pembentukan Tim Penyusunan Modul Diklat Teknis Umum (DTU) Desain Pengelolaan Database di Lingkungan Pusdiklat Keuangan Umum Tahun Anggaran 2011. Kami menyetujui modul ini digunakan sebagai bahan ajar bagi para peserta Diklat Teknis Umum Pengelolaan Database. Modul ini merupakan salah satu bahan ajar yang diperlukan selain 4 (empat) modul lain yang saling melengkapi yaitu Modul Pengenalan Konsep Database, Modul Desain Database Relasional, Modul Pemrograman SQL, dan Modul Pengelolaan Database, yang kesemuanya menjadi sarana dalam membantu pencapaian tujuan pembelajaran dalam Diklat Teknis Umum Pengelolaan Database. Akhirnya, semoga Modul Diklat ini dapat bermanfaat bagi peserta diklat pada khususnya dan masyarakat luas pada umumnya. Jakarta, Juni 2011 Kepala Pusat Pendidikan dan Pelatihan Keuangan Umum Tony Rooswiyanto NIP 195604041982031001 Modul: Desain Database Relasional iii HALAMAN JUDUL IDENTITAS MODUL KATA PENGANTAR Halaman i ii DAFTAR ISI iii DAFTAR GAMBAR vi DAFTAR TABEL PETUNJUK PENGGUNAAN MODUL PETA KONSEP MODUL A. vii viii PENDAHULUAN 1. Deskripsi Singkat 3. Standar Kompetensi dan Kompetensi Dasar 2. 4. B. v Prasyarat Kompetensi Relevansi Modul KEGIATAN BELAJAR 1. Kegiatan Belajar 1 : Pengantar Desain Database a. Pengertian Desain Database c. Latihan b. d. e. f. 2. Model Database Rangkuman Tes Formatif Umpan Balik dan Tindak Lanjut Kegiatan Belajar 2 : Entity Relation Model a. Entitas dan Atribut Modul: Desain Database Relasional iv b. Relasi Antar Entitas d. Latihan c. e. f. g. 3. Fitur ER Model Rangkuman Tes Formatif Umpan Balik dan Tindak Lanjut Kegiatan Belajar 3 : Konsep Normalisasi a. Atribut Kunci c. Bentuk Normalisasi b. d. e. f. g. Ketergantungan Fungsional Latihan Rangkuman Tes Formatif Umpan Balik dan Tindak Lanjut PENUTUP TES SUMATIF KUNCI JAWABAN (LATIHAN, TES FORMATIF, &TES SUMATIF) DAFTAR PUSTAKA Modul: Desain Database Relasional v Tabel 3.1 Contoh Update Anomaly Tabel 3.3 Contoh Delete Anomaly Tabel 3.2 Tabel 3.4 Tabel 3.5 Tabel 3.6 Tabel 3.7 Tabel 3.8 Tabel 3.9 Tabel 3.10 Tabel 3.11 Tabel 3.12 Tabel 3.13 Tabel 3.14 Tabel 3.15 Tabel 3.16 Tabel 3.17 Tabel 3.18 Halaman Contoh Insert Anomaly Tabel Mata Kuliah Contoh Tabel Tabel Nilai Tabel Mahasiswa Tabel Versi Pertama Tabel Versi Kedua Contoh Tabel T-1 Contoh Tabel T-2 Contoh T-1hasil Contoh Tabel T-1-1 Contoh Tabel T-1-2 Contoh Tabel T-1-3 Contoh Tabel T-1-1 Contoh Tabel T-1-1-1 Contoh Tabel T-1-1-2 Modul: Desain Database Relasional vi Gambar 1.1 Tahapan Perancangan Database Gambar 2.2 Contoh Himpunan Entitas Gambar 2.1 Gambar 2.3 Gambar 2.4 Gambar 2.5 Gambar 2.6 Gambar 2.7 Himpunan Entitas Mahasiswa Gambaran Himpunan Entitas di Tabel Contoh Atribut Komposit Entitas Mahasiswa dengan Atribut Relasi Digambarkan dengan Belah Ketupat Himpunan Entitas Mahasiswa Himpunan Entitas Organisasi Gambar 2.8 Contoh Derajat Relasi Unary Gambar 2.10 Contoh Derajat Relasi Ternary Gambar 2.9 Gambar 2.11 Gambar 2.12 Gambar 2.13 Gambar 2.14 Gambar 2.15 Gambar 2.16 Gambar 2.17 Gambar 2.18 Gambar 2.19 Gambar 2.20 Gambar 2.21 Gambar 2.22 Gambar 2.23 Gambar 2.24 Gambar 2.25 Halaman Berelasi dengan Contoh Derajat Relasi Binary Relasi dengan Kardinalitas 1 ke 1 Relasi dengan Kardinalitas 1 ke Banyak Relasi dengan Kardinalitas Banyak ke 1 Relasi dengan Kardinalitas Banyak ke Banyak Contoh Diagram ER Relasi 1 ke 1 Relasi 1 ke Banyak Relasi Banyak ke 1 Relasi banyak ke Banyak Contoh Himpunan Entitas Lemah Contoh Spesialisas Contoh Agregasi Relasi Dipandang Sebagai Himpunan Entitas Ringkasan Notasi pada Diagram ER Atribut Multivalued Dipecah Menjadi Entitas Baru Modul: Desain Database Relasional vii Gambar 2.26 Gambar 2.27 Gambar 2.28 Gambar 2.29 Gambar 2.30 Gambar 2.31 Gambar 2.32 Gambar 3.1 Atribut Himpunan Entitas Kuat Dipresentasikan ke Dalam Tabel Penurunan Himpunan Entitas Lemah ke Tabel Penurunan Kardinalitas Relasi N to N Menjadi Tabel Representasi Spesialisasi ke Tabel Metoda 1 Representasi Spesialisasi ke Tabel Metoda 1 Representasi Agregasi untuk Tabel Mata Kuliah, Dosen, dan Dosen Mengajar Mata Kuliah Representasi Agregasi untuk Tabel Mahasiswa dan Mahasiswa Mengambil Mata KUliah Diagram Normalisasi Modul: Desain Database Relasional viii Modul ini merupakan salah satu bagian dari 5(lima) modul yang diperlukan dan bersifat saling melengkapi, yaitu: 1. Modul Pengenalan Konsep Database; 2. Modul Desain Database Relasional; 3. Modul Structured Query Language; 4. Modul Pemrograman SQL; 5. Modul Pengelolaan Database. yang kesemuanya tersebut menjadi satu paket dan dimaksudkan dalam rangka pencapaian tujuan pembelajaran pada Diklat Teknis Umum Desain Pengelolaan Database. Modul Desain Database Relasional ini terdiri dari tiga kegiatan belajar (KB), yaituPengantar Desain Database, Entity Relationship Model dan Konsep Normalisasi. Modul ini perlu untuk dibaca secara berurutan dari KB 1 hingga KB3 agar konsep Desain Database Relasional menjadi lebih mudah dipahami. Pada akhir setiap kegiatan belajar diberikan rangkuman yang berisi intisari dari materi yang sudah dibahas sebelumnya.Selanjutnya untuk mengevaluasi pemahaman pembaca, disetiap akhir kegiatan belajar juga disajikan tes formatif. Meskipun sudah disediakan kunci jawaban atas pertanyaan-pertanyaan dalam Tes Formatif, peserta disarankan untuk tidak melihat dulu kunci jawaban, namun sebaiknya peserta mengejakan terlebih dahulu Tes Formatif sesuai dengan alokasi waktu yang diberikanbaru kemudian melakukan penilaian secara mandiri dan mengecek nilainya dengan kriteria umpan balik, apakah sudah tercapai dengan baik. Jika nilai baik belum tercapai, maka peserta disarankan membaca kembali materi dan mengulangi mengerjakan soal tes sampai memperoleh hasil yang diharapkan. Modul: Desain Database Relasional ix PENGANTAR DESAIN DATABASE Pengertian Desain Database Model Database ENTITY RELATIONSHIP MODEL Entitas dan Atribut Relasi Antar Entitas Fitur ER Model KONSEP NORMALISASI Atribut Kunci Ketergantungan Fungsional Bentuk Normalisasi Modul: Desain Database Relasional x A. PENDAHULUAN 1. Deskripsi Mata pelajaran ini membahas 2. Standar Kompetensi Setelah mengikuti mata pelajaran ini, peserta diharapkan mampu menjelaskan desain database relasional 3. Kompetensi Dasar Setelah selesai mengikuti pembelajaran ini, peserta diklat diharapkan mampu: a. menjelaskan pengertian desain database; b. menjelaskan entity relation model; c. menjelaskan konsep normalisasi 4. Relevansi Modul Setelah mempelajari modul ini diharapkan peserta dapat mengaplikasikannya dalam pekerjaan yang menjadi tugas pokok dan fungsinya. . Modul: Desain Database Relasional 1 B. KEGIATAN BELAJAR 1. Kegiatan Belajar 1 PENGANTAR DESAIN DATABASE Indikator Setelah selesai mengikuti pembelajaran ini peserta diklat diharapkan mampu: menjelaskan pengertian desain database; menjelaskan model database a) Pengertian Desain Database Pada bagian ini akan dijelaskan pengertian desain database. Desain database merupakan proses untuk merepresentasikan fakta dunia nyata (real world) yang dikehendaki ke dalam sistem komputer, sehingga mudah dipahami pemakai dengan kemudahan implementasi dan pemrosesannya. mempertimbangkan Istilah ‘dunia nyata’ (real world) bermakna terhadap keseluruhan data yang belum terstruktur yang secara nyata ada/terkait dalam lingkup sistem yang sedang ditinjau. Dunia nyata disini bisa dikatakan sebagai sebuah domain secara utuh/penuh maupun subdomain, sebagai contoh jika kita menganggap suatu perusahaan sebagai suatu domain maka kita dapat menganggap unit-unit yang ada dalam perusahaan tersebut adalah subdomain atau bisa saja sebuah proses bisnis atau aktivitas yang ada di perusahaan tersebut juga bisa kita anggap sebagai sebuah subdomain bahkan domain. Setiap dunia nyata (real world) yang ada memiliki karakter yang tidak sama/unik. Sebagai contoh dunia nyata bagi sistem perbankan pasti tidak sama dengan dunia nyata bagi sistem Modul: Desain Database Relasional 2 rumah sakit. Pertanyaannya adalah apakah dunia nyata di bank yang satu dengan bank yang lain pasti sama? Permasalahan dalam perancangan database adalah bagaimana merancang struktur logikal dan fisikal dari satu atau lebih database untuk memenuhi kebutuhan informasi yang diperlukan oleh pengguna sesuai dengan aplikasi-aplikasi yang ditentukan. (Waliyanto, 2000). Dengan permasalahan tersebut dapat ditentukan beberapa tujuan utama perancangan database,yaitu : a. memenuhi kebutuhan informasi sesuai dengan yang diperlukan oleh pengguna untuk aplikasi tertentu; b. mempermudah pemahaman terhadap struktur informasi yang tersedia dalam database; c. memberikan keterangan tentang persyaratan pemrosesan dan kemampuan sistem, seperti lama tidaknya mengakses data, kapasitas memori yang tersedia dan sebagainya. Tahapan-tahapan proses perancangan untuk memenuhi tujuan tersebut adalah: a. mengumpulkan dan menganalisis persyaratan; b. merancang konsepsual database; c. memilih Database Management Software (DBMS); d. merancang logikal database; e. merancang fisikal database (pemetaan model data); f. iImplementasi sistem database. Secara khusus proses perancangan berisikan 2 aktifitas paralel. Aktifitas yang pertama melibatkan perancangan dari isi data dan struktur database, sedangkan aktifitas kedua mengenai perancangan pemrosesan database dan aplikasi-aplikasi perangkat lunak. Modul: Desain Database Relasional 3 Gambar 1.1 Tahapan perancangan database (Kompilasi dari Elmasri R, 1994). Dua aktifitas ini saling menjalin, misalnya : kita dapat mengidentifikasikan data item yang akan disimpan dalam database dengan menganalisa aplikasi-aplikasi database. Dua aktifitas ini juga saling mempengaruhi satu sama lain. Contohnya : fase perancangan database secara fisik, pada saat kita memilih struktur penyimpanan dan jalur-jalur akses dari file-file database yang tergantung pada aplikasi-aplikasi yang akan menggunakan file-file tersebut. Modul: Desain Database Relasional 4 Di lain pihak, kita biasanya menentukan perancangan aplikasi- aplikasi database dengan mengarah kepada konstruksi skema database yang telah ditentukan selama aktifitas yang pertama. Enam fase di atas tidak harus diproses berurutan. Pada beberapa hal, rancangan tersebut dapat dimodifikasi dari yang pertama dan sementara itu mengerjakan fase yang terakhir (feedback loop antara fase) dan feedback loop dalam fase sering terjadi selama proses perancangan. Fase 1 merupakan kumpulan informasi yang berhubungan dengan penggunaan database. Fase 6 merupakan implementasi databasenya. Fase 1 dan 6 kadang-kadang bukan merupakan bagian dari perancangan database, tetapi merupakan bagian dari siklus kehidupan sistem informasi secara umum. Inti dari proses perancangan database adalah fase 2,4,5. Fase 1: Pengumpulan Data dan Analisa Proses identifikasi dan analisa kebutuhan-kebutuhan data disebut pengumpulan data dan analisa. Untuk menentukan kebutuhan- kebutuhan suatu sistem database, pertamatama harus mengenal bagian-bagian lain dari sistem informasi yang akan berinteraksi dengan sistem database, termasuk para pemakai yang ada dan para pemakai yang baru serta aplikasi-aplikasinya. Kebutuhan-kebutuhan dari para pemakai dan aplikasi inilah yang kemudian dikumpulkan dan dianalisa. Aktifitas-aktifitas pengumpulan data dan analisa : 1. Menentukan kelompok pemakai dan bidang-bidang aplikasinya Menentukan aplikasi utama dan kelompok user yang akan menggunakan database. Individu utama pada tiap-tiap kelompok pemakai dan bidang aplikasi yang telah dipilih merupakan peserta utama pada langkah-langkah berikutnya dari pengumpulan dan spesifikasi data. Modul: Desain Database Relasional 5 2. Peninjauan dokumentasi yang ada Dokumen yang ada yang berhubungan dengan aplikasi-aplikasi dipelajari dan dianalisa. Dokumen-dokumen lainnya (seperti : kebijaksanaan-kebijaksanaan, form, report, dan bagan organisasi) diuji dan ditinjau kembali untuk menguji apakah dokumen-dokumen tersebut berpengaruh spesifikasi. terhadap kumpulan data dan proses 3. Analisa lingkungan operasi dan pemrosesan data Informasi yang sekarang dan yang akan datang dipelajari. Termasuk juga analisa jenis-jenis transaksi dan frekuensi-frekuensi transaksinya dan juga arus informasi dalam sistem. Input-output data untuk transaksi-transaksi tersebut diperinci. 4. Daftar pertanyaan dan wawancara Tuliskan tanggapan-tanggapan dari pertanyaan-pertanyaan yang telah dikumpulkan dari para pemakai database yang berpotensi. Ketua kelompok (individu utama) dapat diwawancarai sehingga input yang banyak dapat diterima dari mereka dengan memperhatikan informasi yang berharga dan mengadakan prioritas. Fase 2: Perancangan database secara konseptual Tujuan dari fase ini adalah menghasilkan conceptual schema untuk database yang tergantung pada sebuah DBMS yang spesifik. Sering menggunakan sebuah high-level data model seperti ER/EER model selama fase ini. Dalam conceptual schema, kita harus memerinci aplikasi-aplikasi database yang diketahui dan transaksi-transaksi yang mungkin. Fase perancangan database secara konseptual mempunyai 2 aktifitas paralel : 1. Perancangan skema konseptual : menguji kebutuhan-kebutuhan data dari suatu database yang merupakan hasil dari fase 1, dan menghasilkan sebuah skema konseptual yang independen terhadap Modul: Desain Database Relasional DBMS. Skema ini dapat 6 dihasilkan dengan menggabungkan 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 bersifat independen terhadap DBMS dan langkah selanjutnya adalah memilih sebuah DBMS untuk melaksanakan rancangan tersebut. 2. Perancangan transaksi : menguji aplikasi-aplikasi database dimana kebutuhan-kebutuhannya telah dianalisa pada fase 1, dan menghasilkan perincian transaksitransaksi ini. Kegunaan fase ini yang diproses secara paralel bersama fase 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. Fase 3: Pemilihan DBMS Pemilihan database di tentukan 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, dll), struktur penyimpanan, dan jalur akses yang mendukung DBMS, pemakai, dll. 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. Modul: Desain Database Relasional 7 2. Personal yang telah terbiasa dengan suatu sistem 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. Fase 4: Perancangan database secara logika (pemetaan model data) Fase selanjutnya dari perancangan database adalah membuat sebuah skema konseptual dan skema eksternal pada model data dari DBMS yang terpilih. Fase ini dilakukan oleh pemetaan skema konseptual dan skema eksternal yang dihasilkan pada fase 2. Pada fase ini, skema konseptual ditransformasikan dari model data tingkat tinggi yang digunakan pada fase 2 ke dalam model data dari DBMS yang dipilih pada fase 3. Pemetaannya 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. Penyesuaian 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 fase ini memakai perintah-perintah DDL dalam bahasa DBMS yang dipilih yang menentukan tingkat skema konseptual dan eksternal dari sistem database. Tetapi dalam beberapa hal, perintahperintah DDL memasukkan parameter-parameter rancangan fisik Modul: Desain Database Relasional 8 sehingga DDL yang lengkap harus menunggu sampai fase perancangan database secara fisik telah lengkap. Fase ini dapat dimulai setelah pemilihan sebuah implementasi model data sambilmenunggu 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. Fase 5: Perancangan database secara fisik Perancangan database secara fisik merupakan proses pemilihan struktur-struktur penyimpanan dan jalur-jalur akses pada file-file database untuk mencapai penampilan yang terbaik pada bermacammacam aplikasi. yang Selama fase ini, dirancang spesifikasi-spesifikasi untuk database 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 database secara fisik : 1. Response time : waktu yang diperlukan dari suatu transaksi database yang diajukan hingga memperoleh jawaban atau respons. Pengaruh utama pada response time yang di bawah kendali 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 kendali DBMS yaitu: beban sistem, penjadwalan sistem operasi atau penundaan komunikasi. 2. Space utility : jumlah ruang penyimpanan yang digunakan oleh file-file database dan struktur jalur akses ke database yaitu index dan jalur akses lainnya. Modul: Desain Database Relasional 9 3. Transaction through put 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. Fase 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 database tersebut 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. Transaksitransaksi database programmmer aplikasi. sekarang harus dilaksanakan oleh para Spesifikasi secara konseptual diuji dan dihubungkan dengan kode program dengan perintah-perintah dari embedded DML yang telah ditulis dan diuji. Suatu saat transaksi tersebut telah siap dan data telah dimasukkan ke dalam database, maka fase perancangan dan implementasi telah selesai, dan kemudian fase operasional dari sistem database dimulai. Sebuah sistem database merupakan komponen dasar sistem informasi organisasi yang lebih besar. Oleh karena itu siklus hidup aplikasi database berhubungan dengan siklus hidup sistem informasi. Siklus kehidupan sistem informasi merupakan macro lifecycle sementara itu siklus kehidupan database merupakan micro lifecycle. Aktifitas-aktifitas yang berhubungan dengan database sebagai micro life cycle dan termasuk fase-fasenya diantaranya : system definition, design, implementation, loading atau data conversion, Modul: Desain Database Relasional 10 application conversion, testing dan validation, operation, monitoring dan maintenance. Proses perancangan database merupakan bagian dari micro lifecycle. Sedangkan kegiatan-kegiatan yang terdapat di dalam proses tersebut diantaranya : pengumpulan data dan analisis, perancangan database secara konseptual, pemilihan DBMS, perancangan database secara logika (data model mapping), perancangan database secara fisik, dan implementasi sistem database. b) Model data Model database adalah suatu konsep yang terintegrasi dalam menggambarkan hubungan (relationships) antar data dan batasanbatasan (constraint) data dalam suatu sistem database. Model database yang paling awal adalah berbasis model flat file (file datar), dimana semua record disimpan dalam bentuk sebuah file biasa. Pada model ini, tidak ada hubungan (relationship) yang bisa didefinisikan atau dibuat diantara record-record tersebut. Dengan tidak adanya hubungan antar record, maka record-record tersebut hanya bisa diakses dengan cara berurutan (sekuensial). Sebagai contoh, jika ingin menemukan suatu record pelanggan ke 50, maka akan dilakukan pencarian dari record pertama sampai ke record 49 secara berurutan. Model ini sesuai dengan kondisi dimana semua record akan diproses secara keseluruhan, tapi tidak sesuai jika hanya ingin mencari record yang sesuai saja dalam suatu database. Model selanjutnya adalah hierarchial model (model hirarki), yang secara luas digunakan dalam lingkungan komputer mainframe. Model ini diturunkan dari Information Management Systems pada tahun 1950an dan diadopsi oleh perusahaan-perusahaan seperti bank, asuransi dan masih digunakan hingga sampai hari ini. Model ini dirancang dengan hubungan yang terstruktur sehingga memungkinkan dan mempermudah akses terhadap suatu data atau record. Dengan menggunakan skema dari suatu pohon yang dibalik, hubungan yang terjadi dalam model hirarki ini adalah parent-child dan one-to-many. Setiap tabel parent bisa Modul: Desain Database Relasional 11 mempunyai beberapa child tabel, namun setiap child tabel hanya mempunyai satu parent tabel. Karena struktur datanya permanen, dan secara eksplisit terhubung antara satu sama lainnya, maka proses pengaksesan data akan lebih cepat. Meskipun demikian, model struktur yang bersifat kaku ini menyebabkan beberapa masalah. Penambahan child tabel tidak bisa dilakukan jika tidak terhubung dengan parent tabel. Misalnya, jika parent tabelnya adalah “Dokter” dan child tabelnya adalah “Pasien”, maka penambahan pasien akan bergantung dengan dokter. Dengan kata lain, penambahan record seorang pasien harus juga menambahkan record seorang dokter. Begitu juga jika sebuah parent tabel dihapus, maka child-child tabel dibawahnya juga akan terhapus. Berdasarkan model hirarki pohon terbalik juga, pendekatan desain database selanjutnya dibuat yaitu network model. Model ini menerapkan hubungan yang lebih rumit dari model hirarki, sebagai contoh suatu pohon bisa memiliki cabang yang banyak. Pada model ini, tabel-tabel terhubung dalam sebuah himpunan, dimana sebuah record dalam tabel owner akan dihubungkan dengan beberapa record dalam tabel member. Seperti halnya model hirarki, pengaksesan data pada network model juga berlangsung sangat cepat. Namun demikian, model ini juga mempunyai beberapa masalah. Misalnya, seorang user harus paham betul secara menyeluruh struktur database yang ada untuk memperoleh sebuah data atau informasi. Jika strukturnya berubah, maka segala informasi yang berkaitan dengannya akan berubah juga. Pada tahun 1970-an, hubungan antar database (database relational) dikembangkan dengan pesat dan begitu rumit, dimana nantinya akan mendominasi penggunaan konsep ini dalam semua industri. Pada model database relational, data disimpan dalam sebuah relations (relasi), biasanya disebut dengan tabel. Kumpulan dari tabel, record (atau tuples), dan fields (atau attributes) adalah komponenkomponen dasar yang membentuk suatu relasi database. Setiap data individual, disimpan dalam field di suatu tabel dan setiap record terdiri dari beberapa field yang membentuk suatu tabel. Modul: Desain Database Relasional 12 Model database relational dikembangkan dari proposal oleh Dr. E.F. Codd yang berjudul “A Relational Model of Data for Large Shared Databanks” pada tahun 1970. Codd adalah seorang peneliti ilmiah di IBM, yang menjelaskan cara yang baik untuk mengelola data yang ada dalam jumlah besar. Model hirarki dan network pada waktu itu cenderung bermasalah dengan redundansi dan integritas data. Dengan menggabungkan disiplin ilmu aljabar, kalkulus dan lojik ke suatu data, Codd membangun suatu model yang lebih komplek. TUGAS DAN LATIHAN 1. 2. Apakah tujuan dari proses desaindatabase? Sebutkan tahapan proses desain database? RANGKUMAN Perancangan database merupakan proses untuk merepresentasikan fakta dunia nyata (real world) yang dikehendaki ke dalam sistem komputer, sehingga mudah dipahami pemakai dengan mempertimbangkan kemudahan implementasi dan pemrosesannya. Modul: Desain Database Relasional 13 TES FORMATIF KEGIATAN BELAJAR 1 1. Dalam menganalisis suatu domain, hal-hal yang harus diperhatikan adalah sebagai berikut kecuali… A. Pendefinisian masalah B. Business process oriented C. Aturan/rule yang jelas D. Identifikasi entitas dan relasi E.Identifikasi produktivitas domain 2. Berikut ini jenis model database kecuali... A. Relational B. Heuristik C. Network D. Hirarkial E. Object oriented 3. Hal-hal berikut ini yang berhubungan dengan metodologi perancangan database kecuali... A. Cara pembuatan database B. Perancangan fisik C. Operasi recovery D. Perancangan lojik E. Penentuan entitas dan relasi 4. Output berupa ER-D dihasilkan dalam tahapan dalam perancangan basis data yaitu: A. Tahap Mendefinisikan Kebutuhan B. Tahap Rancangan Konsep Basis Data C. Tahap Rancangan Implementasi D. Tahap Rancangan Fisik Basis Data Modul: Desain Database Relasional 14 UMPAN BALIK DAN TINDAK LANJUT Periksalah jawaban Saudara dengan kunci jawaban test formatif KB 1. Hitunglah jumlah jawaban Saudara yang sesuai dengan kunci jawaban, kemudian gunakan rumus di bawah ini untuk mengetahui tingkat penguasaan Saudara terhadap materi. Rumus = Jumlah jawaban yang sesuaikunci Jumlah semua soal X 100% Penjelasan tingkat penguasaan 91 – 100 % = Amat Baik 81 – 90,99 % = Baik 61 – 70,99% = Kurang 71 – 80,99% 0 – 60,99% = Cukup = Amat Kurang Kalau Saudara mencapai tingkat penguasaan 80% atau lebih, maka Saudara dapat meneruskan dengan materi pada KB 2. Tetapi apabila nilai Saudara kurang dari 80%, maka kami sarankan Saudara mengulangi materi pada KB 1, terutama materi yang Saudara belum kuasai. Modul: Desain Database Relasional 15 2. Kegiatan Belajar 2 ENTITY DAN RELATIONSHIP MODEL Indikator Setelah selesai mengikuti pembelajaran ini peserta diklat diharapkan mampu: menjelaskan entitas dan atribut; menjelaskan relasi antar entitas; menjelaskan fitur ER Model a) Entitas dan Atribut Definisi entitas adalah objek yang dirasa penting di sistem tersebut, yang bisa berupa : – Objek Konkrit Contoh : Orang, Buku – Objek Abstrak Contoh : Jadwal, Pinjaman, Tabungan Heru adalah salah satu contoh dari entitas. Sedangkan Heru, Dewi, Yati merupakan himpunan entitas orang. Dapat kita katakan bahwaHimpunan Entitas (Entity Set):Sekelompok entitas yang sejenis dan berada dalam lingkup yang sama. Kumpulan entitas orang dengan karakteristik mempunyai nim, prodi, dsb bisa kita katakan merupakan himpunan entitas mahasiwa. Entitas menunjuk kepada pada individu suatu objek sedangkan himpunan entitas menunjuk pada rumpun (family) dari individu tersebut. Modul: Desain Database Relasional 16 Heru Entitas orang Dewi Yati entitas orang Mahasiswa Himpunan entitas orang yang mempunyai kesamaan karakteristik yaitu nim, prodi, dsb membentuk himpunan entitas ‘mahasiswa’ Gambar 2.1 Himpunan Entitas Mahasiswa Sebuah entitas / himpunan entitas dapat di gambarkan / di notasikan dengan sebuah gambar persegi panjang. Berikut merupakan contoh entitas mahasiwa, jadwal dan pinjaman. Mahasiswa Jadwal Pinjaman Gambar 2.2 Contoh himpunan entitas Setiap entitas mempunyai atribut yang melekat pada entitas tersebut. Berikut gambaran konseptual database (* entitas dan atribut) yang direfleksikan kedalam bentuk fisik dari database (* tabel dan kolom). Atribut Entitas NIM 30107001 30207001 30307001 NAMA Heru Dewi Yati PROGRAM STUDI Manajemen Informatika Teknik Komputer Komputerisasi Akuntansi MAHASISWA Modul: Desain Database Relasional Entitas 1 Entitas 2 Entitas 3 17 Gambar Error! No text of specified style in document..1 Gambaran Himpunan entitas di Tabel Atribut merupakan gambaran karakteristik dari sebuah entitas atau himpunan entitas. Contoh : atribut untuk himpunan entitas mahasiswa adalah nim, nama, alamat, ipk, program studi, hobi, dsb. Setiap atribut mempunyai domain value set yaitu batasan batasan yang dibolehkan bagi suatu atribut. Tipe – tipe atribut dapat dibedakan. – Simple dan Composite Atribut Simple yaitu suatu atribut yang tidak bisa dibagi menjadi bagian yang lebih kecil lagi. Contoh atribut simple adalah Jenis Kelamin. Atribut Compositeyaitu suatu atribut yang dapat di bagi menjadi beberapa bagian. Contoh atribut composite Nama dapat di bagi menjadi nama depan dan nama belakang. Gambar Error! No text of specified style in document..2 Contoh Atribut Komposit – Single value dan multivalued Atribut Single value yaitu suatu atribut yang bisa di isi paling banyak 1 nilai untuk setiap baris data. Contoh atribut single value adalah Jenis Kelamin. Atribut Multivalued yaitu suatu atribut yang bisa lebih dari 1 nilai yang sejenis untuk setiap baris data. Contoh atribut mutlivalued value adalah Alamat, No telp dan hobi. Ketiga atribut tersebut bisa berisi lebih dari 1. Contoh untuk 1 entitas orang bisa mempunyai lebih dari 1 nilai untuk atribut hobi yang isinya musik, olahraga begitu juga Modul: Desain Database Relasional 18 untuk telp dan alamat (* karena bisa mempunyai > 1 no telp dan > 1 alamat) – Derived attribute Derived Attribute yaitu suatu atribut yang nilainya didapatkan dari hasil pengolahan atribut lain. Contoh atribut derived adalah umur yaitu didapatkan dari perhitungan tanggal lahir dan tanggal sekarang. IPK yang didapatkan dari penjumlahan nilai di bagi dengan jumlah sks yang diambil. 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, ipk, dsb nama prodi ipk #nim Mahasis Gambar 2.5 Entitas mahasiswa dengan Atribut b) Relasi antar entitas 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. Perhatikan contoh relasi antara mahasiswa dengan organisasi berikut. Modul: Desain Database Relasional 19 Gambar Error! No text of specified style in document..3 Relasi di gambarkan dengan belah ketupat Gambar di atas menunjukkan hubungan antara entitas mahasiswa dan entitas organisasi. Relasi yang terjadi adalah relasi mempunyai, dimana mahasiwa mempunyai organisasi. Entitas mahasiwa memiliki atribut nim, nama, alamat, prodi, ipk, dsb. Sedangkan entitas organisasi memiliki atribut kd_organisasi, nama_organisasi, jenis_organisasi (* olahraga/kesenian/jurusan dsb). 1 Mahasiswa bisa mempunyai 0 atau lebih organisasi pada semester dan tahun ajaran tertentu. 1 Organisasi bisa di punyai 0 atau lebih mahasiswa pada semester dan tahun ajaran tertentu. Kardinalitas relasi adalah n ke n. Dampak dari kardinalitas n ke n ini, relasi menjadi atribut, primary key dari entitas mahasiwa dan primary key dari entitas organisasi masuk ke tabel relasi sebagai atribut. Atribut tambahan berupa semester dan tahun ajaran merupakan atribut tambahan pada tabel relasi mempunyai, atribut ini disebut atribut deskriptif. Atribut deskriptif ini muncul karena adanya kebutuhan dari proses bisnis untuk mencatat historis mahasiwa tersebut per semester dan tahun ajaran tertentu, sehingga bisa di lihat track record organisasi mahasiwa tersebut selama belajar di kampus dari semester ke semester berikutnya. Berikut merupakan contoh gambaran antara entitas mahasiwa dan entitas organisasi Dewi Yati Heru Organisai LINUX Organisai Pecinta Satwa Dewi Mempunyai organisasi Pecinta Satwa Di semester 1 tahun ajaran 2010/2011 . Gambar Error! No text of specified style in document..4 Himpunan Modul: Desain Database Relasional 20 Entitas Mahasiwa Entitas Organisasi Berelasi dengan Himpunan 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) Gambar Error! No text of specified style in document..5 Contoh Derajat Relasi Unary 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) Gambar Error! No text of specified style in document..6 Contoh Derajat Relasi Binary Relasi di atas menggambarkan entitas pelangan yang ber-relasi dengan entitas pinjaman. 1 pelanggan bisa mempunyai banyak Modul: Desain Database Relasional 21 nomor pinjaman, dan 1 nomor pinjaman hanya untuk 1 pelanggan. Ternary (me-relasi-kan 3 entitas) Gambar Error! No text of specified style in document..7 Contoh Derajat Relasi Ternary 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 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 Modul: Desain Database Relasional 22 Gambar Error! No text of specified style in document..8 Relasi dengan Kardinalitas 1 ke 1 Relasi di atas menggambarkan bahwa untuk setiap entitas di himpunan entitas A berpasangan dengan maksimal 1 entitas di himpunan entitas B. Asumsi kita akan membuat sebuah tugas yaitu menjadi pj_cuci_piring. 1 Orang di tugaskan untuk menjadi pj_cuci_piring di maksimal 1 hari. Begitupun juga jika di balik, pada 1 hari, maksimal 1 orang yang menjadi pj_cuci_piring. Dari A ke B kardinalitasnya maksimal 1, dan dari B ke A kardinalitasnya maksimal 1. Oleh karena itu relasi ini berkardinalitas 1 ke 1. Satu ke Banyak Gambar Error! No text of specified style in document..9 Relasi dengan Kardinalitas 1 ke Banyak Relasi di atas menggambarkan bahwa untuk setiap entitas di himpunan entitas A berpasangan dengan banyak entitas di himpunan Modul: Desain Database Relasional 23 entitas B. Asumsi yang berbeda di pakai ketika memandang relasi ini, 1 orang bisa memperoleh pj_cuci_piring untuk > 1 hari. Tetapi 1 hari hanya di pj-kan hanya untuk maksimal 1 orang. Dari A ke B kardinalitasnya maksimal adalah banyak, dan dari B ke A kardinalitasnya maksimal 1. Oleh karena itu relasi ini berkardinalitas 1 ke banyak. Banyak ke Satu Gambar Error! No text of specified style in document..10 Relasi dengan Kardinalitas Banyak ke 1 Relasi di atas menggambarkan bahwa untuk setiap entitas di himpunan entitas A berpasangan dengan maksimal 1 entitas di himpunan entitas B. Asumsikan bahwa untuk 1 hari pj_cuci_piring boleh di berikan pada banyak orang, sedangkan 1 orang hanya di berikan tugas untuk menjadi pj_cuci_piring sebanyak maksimal 1 hari. Dari A ke B kardinalitasnya maksimal adalah 1, dan dari B ke A kardinalitasnya maksimal adalah banyak. Oleh karena itu relasi ini berkardinalitas banyak ke 1. Banyak ke Banyak Modul: Desain Database Relasional 24 Gambar Error! No text of specified style in document..11 Relasi dengan Kardinalitas Banyak ke Banyak Relasi di atas menggambarkan bahwa untuk setiap entitas di himpunan entitas A berpasangan dengan maksimal banyak entitas di himpunan entitas B. Asumsikan bahwa dalam 1 hari pj_cuci_piring bisa di bebankan pada banyak orang dan 1 orang bisa di bebankan untuk menjadi pj_cuci_piring lebih dari 1 hari. Dari A ke B kardinalitasnya maksimal adalah banyak, dan dari B ke A kardinalitasnya maksimal adalah banyak. Oleh karena itu relasi ini berkardinalitas banyak ke banyak. 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 • Nim, nama, alamat Modul: Desain Database Relasional 25 • 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 • Jaminan keunikan key lebih baik • Lebih ringkas Contoh dari primary key adalah Nim Diagram ER Merupakan diagram model konseptual untuk menggambarkan struktur logis dari database berbasis grafis. nama #nim Mahasisw alamat ipk umur kota #kd_org nama Organisasi m prodi jenis Gambar Error! No text of specified style in document.-12 Contoh Diagram ER Notasi yang digunakan di Diagram ER adalah : Garis : Link yang menghubungkan atara Entitas dengan dan entitas dengan relasi atau entitas atribut, Elips dobe : Menunjukkan atribut yang multivalued Elips dengan garis terputus : Menunjukkan atribut turunan Constraint Cardinalitas Dalam menggambarkam kardinalitas pada Diagram ER, digunakan garis panah (->) yang menunjukkan “Satu” atau garis biasa Modul: Desain Database Relasional 26 (—) yang menunjukkan “Banyak”. nama #nim Mahasisw alamat ipk #kd_org kota Organisasi m umur nama prodi jenis Gambar Error! No text of specified style in document..13 Relasi 1 ke 1 1 Mahasiswa hanya boleh menjabat 1 jabatan dalam 1 periode tertentu. 1 Jabatan hanya boleh di jabat oleh 1 mahasiswa dalam 1 periode tertentu. nama #nim Mahasisw alamat ipk umur #kd_org kota m prodi nama Organisasi jenis Gambar Error! No text of specified style in document..14 Relasi 1 ke banyak 1 Jabatan hanya boleh dijabat oleh 1 mahasiswadalam 1 periode tertentu dan 1 organisasi tertentu. 1 Mahasiswa boleh menjabat 1 jabatan dalam 1 periode tertentu di organisasi yang berbeda. nama #nim Mahasisw alamat ipk umur #kd_org kota m prodi nama Organisasi jenis Gambar Error! No text of specified style in document..15 Relasi Banyak ke 1 Modul: Desain Database Relasional 27 1 Jenis Beasiswa boleh diberikan untuk banyak mahasiwa 1 Mahasiwa hanya boleh mendapatkan 1 Jenis beasiwa nama #nim Mahasisw alamat ipk umur #kd_org kota nama Organisasi m prodi jenis Gambar Error! No text of specified style in document..16 Relasi Banyak ke Banyak 1 Mahasiswa boleh mengambil banyak mata kuliah 1 Mata kuliah boleh diambil banyak mahasiwa 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 parsialadalah 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 keypada Himpunan Entitas lemah ada 2 yaitu primary key dari entitas kuat yg berelasi dan diskriminator / key parsialnya. Diskriminator di notasikan dengan garis bawah yang putus putus. #nip Pegawai nama jabatan Nama penerima Nomor Tunjangan Besar tunjangan Gambar 2.20 Contoh Himpunan Entitas Lemah Modul: Desain Database Relasional 28 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 / 1 ke banyak dengan kardinalitas 1 di himpunan entitas yang lebih kuat. Spesialisasi 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. Modul: Desain Database Relasional 29 nama #Id_pegawai Pegawai Gaji Per Bulan Upah Per Jam IS A Besar tunjangan Pegawai Tetap Pegawai Honorer Gambar 2.21 Contoh Spesialisasi Contoh di Jumlah Jam Kerja atas menggambarkan bahwa entitas pegawai mempunyai 2 subgroup yaitu pegawai tetap dan pegawai honorer. Kedua entitas pegawai tetap dan pegawai honorer sama sama mempunyai atribut turunan yaitu nama dan id_pegawai dari entitas pegawai. Perbedaan dari pegawai tetap dan pegawai honorer terdapat di atribut yang melekat pada subgroup-nya. Atribut besar tunjangan dan gaji perbulan hanya terdapat di himpunan entitas pegawai tetap, sedangkan atribut upah per jam dan jumlah jam kerja terdapat di himpunan entitas pegawai honorer. Generalisasi 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 subgroupsubgroup yang berbeda kemudian di cari entitas umum yang mewakili 2 himpunan entitas tersebut. 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. Modul: Desain Database Relasional 30 Notasi agregasi di gambarkan dengan gambar persegi panjang yang membungkus himpunan entitas yang saling ber-relasi. Gambar 2.22 Contoh Agregasi 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. Gambar 2.23 Relasi di pandang sebagai Himpunan Entitas Modul: Desain Database Relasional 31 Ringkasan notasi simbol di ER Gambar 2.24 Ringkasan Notasi pada Diagram ER Modul: Desain Database Relasional 32 c) Penurunan Skema ER ke Tabel Penurunan skema dimaksudkan untuk mengubah sebuah konsep hubungan entitas dan relasi kedalam bentuk fisik tabel tabel yang berelasi. Inti dari Entity Relationship adalah menggambarkan hubungan di dunia nyata kedalam bentuk entitas entitas yang saling ber-relasi, dari diagram ini bisa di buat kedalam bentuk tabel yang langsung di implementasikan kedalam database. Secara umum penurunan diagram ER ke tabel memiliki aturan sebagai berikut : Setiap himpunan entitas menjadi Tabel (* baik himpunan entitas kuat atau lemah) Setiap atribut menjadi kolom di tabel Kardinalitas relasi akan menentukan jumlah tabel yang terbentuk (* akan di bahas di bawah lebih detail) 1) Representasi atribut sebagai Kolom Pada atribut bertipe simple, single danderived direpresentasikan sama persis seperti diagram ER. Tetapi untuk atribut komposit dan multivalued mempunyai aturan tersendiri. Atribut komposit akan dipecah dengan membuat atribut terpisah untuk masing masing komponennya. Contoh atribut nama pada tabel mahasiwa, di pecah menjadi 2 kolom yaitu nama depan dan nama belakang. Atribut multivalued mengharuskan untuk di pecah menjadi 2 Tabel. Atribut multivalued M dari entitas E direpesentasikan oleh tabel terpisah EM. Perhatikan gambar di bawah yang menunjukkan bagaimana penurunan sebuah atribut multivalued: Modul: Desain Database Relasional 33 Gambar 2.25 Atribut multivalued di pecah menjadi entitas baru 2) Representasi Himpunan Entitas sebagai Tabel Himpunan entitas kuat di representasikan kedalam tabel dengan kolom sama persis dengan atribut yang sudah di definisikan di diagram ER. Perhatikan gambar di bawah ini : Gambar 2.26 Atribut himpunan entitas kuat di representasikan kedalam tabel Himpunan entitas lemah akan menjadi tabel tersendiri yang didalamnya ada kolom primary key yang merupakan identifikasi dari himpunan entitas kuat.Contoh di bawah menggambarkan himpunan entitas lemah di turunkan kedalam tabel. Modul: Desain Database Relasional 34 Gambar 2.27 Penurunan Himpunan Entitas Lemah ke tabel 3) Representasi Relasi (* pada kardinalitas N to N) Relasi dari Himpunan Banyak ke Banyak direpresentasikan kedalam Tabel tersendiri dengan primary key dari 2 Entitas menjadi atribut di Tabel Relasi. Perhatikan relasi banyak ke banyak berikut dan contoh penurunan ke tabel : Modul: Desain Database Relasional 35 Gambar 2.28 Penurunan Kardinalitas relasi N to N menjadi Tabel 4) Hubungan kardinalitas dengan tabel yang terbentuk Kardinalitas relasi dari Himpunan Entitas yang saling ber-relasi akan menentukan banyaknya tabel yang bisa di buat. Adapun aturannya sebagai berikut : 1 ke 1 Pilih primary key di 1 himpunan entitas untuk menjadi foreign key bagi himpunan entitas yang lain. 1 ke banyak / banyak ke 1 Primary key pada Tabel berkardinalitas sedikit menjadi foreign key pada tabel berkardinalitas banyak. Banyak ke banyak Sudah jelas di atas 5) Representasi Spesialisasi (IS A) Ada 2 pendekatan yang dipakai didalam menurunkan spesialisasi kedalam tabel. Pendekatan 1 Bentuklah tabel untuk level entitas yg lebih tinggi Bentuklah tabel untuk level entitas yg lebih rendah (*dengan Modul: Desain Database Relasional 36 memasukkan primary key pada level yg lebih tinggi ke tabel dengan level yang lebih rendah) Gambar 2.29 Representasi spesialisasi ke tabel metoda 1 Pendekatan 2 Bentuklah tabel untuk tiap himpunan entitas dengan semua atribut lokal dan turunan. Bisa jadi tabel pada level tinggi tidak perlu di simpan jika spesialisasi adalah total. Jika diperlukan bisa dibuat view yang menggabungkan tabel-tabel spesialisasi. Gambar 2.30 Representasi spesialisasi ke tabel metoda 1 6) Representasi Agregasi Untuk merepresentasikan agregasi, buatlah tabel yang terdiri dari : Foreign key dari himpunan entitas yang berhubungan Setiap atribut deskriptif Atribut baru untuk primary key di tabel relasi Modul: Desain Database Relasional 37 Gambar 2.31 Representasi Agregasi untk tabel mata kuliah, dosen dan Dosen mengajar mata kuliah Gambar 2.32 Representasi Agregasi untuk tabel Mahasiwa dan Mahasiwa Mengambil Mtkul Modul: Desain Database Relasional 38 TUGAS DAN LATIHAN 1. 2. RANGKUMAN Modul: Desain Database Relasional 39 TES FORMATIF KEGIATAN BELAJAR 2 (Waktu: 20 menit) 1. Manakah yang bukan merupakan entitas dari pilihan di bawah A. Dosen B. C. ___________ Mata Kuliah Mempunyai D. Penjadwalan E. Nasabah 2. Notas persegi panjang bisa memberikan makna _________ B. Himpunan Entitas A. C. Entitas A dan B benar D. E. Atribut Relasi 3. Berikut ini merupakan domain value set bagi sebuah atribut didalam A. Simple B. C. konse EntityRelationship, kecuali _________ Composit Single value D. E. Multivalued Surrogate key 4. Dibawah ini merupakan alasan yang benar tentang makna Atribut A. Muncul hanya jika 2 entitas B. C. deskriptif ________ bertemu di sebuah relasi Dibolehkan di konsep ER Atribut yang di turunkan D. E. Atribut yang dipercaya sebagai key Pernyataan di atas salah semua dari atribut lain Modul: Desain Database Relasional 40 5. Pada gambar di atas, derajat himpunan relasinya adalah ________ B. Binary A. Unary C. Ternary 6. Perhatikan relasi berikut A. B. C. D. E. Four-ary Tidak ada jawaban yang benar Relasi di atas merupakan contoh dari relasi _________ Agregasi Spesialisasi Generalisasi D. E. Modul: Desain Database Relasional WeakEntity Salah semua 41 7. Banyak tabel yang bisa di hasilkan dari relasi di soal nomor 4 di atas adalah _________ A. 3 Tabel C. 5 Tabel B. 4 Tabel D. 6 Tabel E. 7 Tabel 8 Gambar himpunan entitas berikut menggambarkan _______ A. Himpunan Entitas D. Relasi Lemah E. Atribut B. Himpunan Entitas C. Himpunan Entitas 9. Banyak tabel yang bisa di hasilkan dari relasi di soal nomor 4 di atas Kuat adalah _________ A. 3 Tabel C. 5 Tabel B. 10 4 Tabel D. E. Network Setiap atribut pasti menjadi 1 kolom. Pernyataan tersebut _______ A Benar C Benar pada kondisi tertentu B 7 Tabel Salah Modul: Desain Database Relasional D. E. Salah pada kondisi tertentu C dan D benar 42 UMPAN BALIK DAN TINDAK LANJUT Periksalah jawaban Saudara dengan kunci jawaban test formatif KB 2. Hitunglah jumlah jawaban Saudara yang sesuai dengan kunci jawaban, kemudian gunakan rumus di bawah ini untuk mengetahui tingkat penguasaan Saudara terhadap materi. Rumus = Jumlah jawaban yang sesuai kunci Jumlah semua soal X 100% Penjelasan tingkat penguasaan 91 – 100 % = Amat Baik 81 – 90,99 % = Baik 61 – 70,99% = Kurang 71 – 80,99% 0 – 60,99% = Cukup = Amat Kurang Kalau Saudara mencapai tingkat penguasaan 80% atau lebih, maka Saudara dapat meneruskan dengan materi pada KB 3. Tetapi apabila nilai Saudara kurang dari 80%, maka kami sarankan Saudara mengulangi materi pada KB 2, terutama materiyang Saudara belum kuasai. Modul: Desain Database Relasional 43 3. Kegiatan Belajar 3 KONSEP NORMALISASI Indikator Setelah selesai mengikuti pembelajaran ini peserta diklat diharapkan mampu: menjelaskan atribut kunci; menjelaskan ketergantungan fungsional; menjelaskan bentuk normalisasi. a) Atribut Kunci 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). 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 3.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. Modul: Desain Database Relasional 44 Update Anomaly NIM 1-01 1-01 2-01 2-01 2-02 Tabel 3.1 Contoh Update Anomaly Nama_Mhs Kd_Jur Nama_Jur Heru TE Dewi IF Informatika IF-001 IF Informatika IF-002 Heru Dewi Yati TE IF Elektro Kode_MK Nama_MK Elektro TE-001 DU-001 Informatika DU-001 Elektronika SKS Nilai English Algoritma English Database 3 A 3 B 2 A 2 C 2 A Tabel di atas adalah contoh tabel yang memiliki desain yang kurang baik. Perhatikan bahwa jika kita ingin meng-update jumlah sks mata kuliah English dari 2 menjadi 3 sks, maka kita harus mengupdate lebih dari 1 record, yaitu baris 2 dan 4. Jika hanya salah satu baris saja yang di-update, maka data menjadi tidak konsisten (ada mata kuliah English dengan 2 sks dan ada mata kuliah English dengan 3 sks) . Kondisi seperti inilah yang disebut dengan update anomaly. Insertion Anomaly NIM 1-01 1-01 2-01 2-01 2-02 Tabel 3.2 Contoh Insert Anomaly Nama_Mhs Heru Heru Dewi Dewi Yati Kd_Jur TE TE Nama_Jur Elektro TE-001 Elektro DU-001 Informatika DU-001 IF Informatika IF Informatika IF Kode_MK Nama_MK Elektronika SKS English IF-001 Algoritma IF-002 Database English 3 2 3 2 2 Nilai A A B C A Pada tabel yang sama seperti contoh di atas, terjadi pula insertion anomaly. Misalkan terdapat mahasiswa baru dengan nim 1-02 bernama ‘Zubaedah’ dengan kode jurusan ‘TE’ dan nama jurusan ‘Elektro’. Data mahasiswa tersebut tidak dapat dimasukkan ke dalam tabel sebab dia belum mengambil kuliah apapun (misalnya karena belum Modul: Desain Database Relasional 45 melakukan registrasi). Kondisi inilah yang disebut dengan insertion anomaly. Deletion Anomaly NIM 1-01 1-01 Tabel 3.3 Contoh Delete Anomaly Nama_Mhs Heru TE Heru 2-01 Dewi 2-02 Yati 2-01 Kd_Jur TE Dewi Nama_Jur Kode_MK Nama_MK SKS Elektro DU-001 English 2 Informatika DU-001 Elektro IF Informatika IF Informatika IF TE-001 Elektronika IF-001 Algoritma IF-002 Database 3 Nilai 3 English 2 2 A A B C A Pada contoh tabel di atas terjadi deletion anomaly. Perhatikan bahwa jika kita menghapus data mahasiswa bernama ‘Yati’ maka kita harus menghapus data pada baris ke 5, hal ini akan mengakibatkan kita juga kehilangan data mata kuliah ‘Database’. Kondisi inilah yang disebut dengan deletion anomaly. Selain 3 anomali di atas, ada beberapa konsep yang mendasari normalisasi. Adapun konsep-konsep penting yang mendasari normalisasi adalah konsep mengenai super key, candidate key, primary key, functional dependencydan tentu saja bentuk-bentuk normal yang menjadi acuan kita dalam melakukan normalisasi terhadap desain sebuah tabel. Pemahaman terhadap konsep-konsep ini sangat penting dan akan dibahas di beberapa sub bab berikutnya. The Three Keys Konsep tentang key adalah konsep yang penting untuk memahami keterkaitan antar atribut data dalam tabel dan akan sangat berguna dalam proses normalisasi. Dalam setiap tabel, terdapat 3 macam key: a) Super key Super key adalah satu atribut atau gabungan atribut (kolom) pada tabel yang dapat membedakan semua baris secara unik. Modul: Desain Database Relasional 46 b) Candidate key Candidate key disebut juga dengan minimal super key, yaitu super key yang tidak mengandung super key yang lain. Setiap candidate key pasti merupakan super key, namun tidak semua super key akan menjadi candidate key. c) Primary key Primary key adalah salah satu candidate key yang dipilih (dengan berbagai pertimbangan) untuk digunakan dalam DBMS. Tiap tabel hanya memiliki 1 primary key, namun primary key tersebut bisa saja dibentuk dari beberapa atribut (kolom). Untuk memperjelas pemahaman kita terhadap 3 macam key di atas, perhatikan contohnya pada tabel mata_kuliah di bawah ini: Kode_MK Tabel 3.4 Tabel Mata Kuliah Nama_MK U-001 English F-001 Algoritma U-002 F-002 F-003 E-001 Kalkulus Database Artificial Intelligence Elektronika Semester 2 2 1 3 1 2 5 4 SKS 3 3 2 3 Beberapa super key dari tabel di atas adalah: 1. (kode_mk) Dari 6 baris data yang ada pada tabel di atas tak ada satupun yang memiliki kode_mk yang sama. 2. (nama_mk) Demikian pula dengan nama_mk, masing-masing baris data memiliki nama_mk yang unik. Tidak ada satupun baris data yang memiliki kolom nama_mk dengan nilai yang sama persis. 3. (kode_mk,nama_mk,semester) Walaupun beberapa baris data memiliki kolom semester dengan nilai yang sama (misalnya baris 1&4, baris 2&3) namun tidak ada satupun Modul: Desain Database Relasional 47 baris data yang memiliki kombinasi kode_mk, nama_mk dan semester yang sama persis. 4. (kode_mk,nama_mk, sks) Kombinasi kode_mk, nama_mk dan sks juga digolongkan sebagai super key dengan alasan yang kurang lebih sama dengan poin 3. 5. (kode_mk,nama_mk, semester, jml_temu) Kombinasi kode_mk, nama_mk, semester dan jml_temu juga digolongkan sebagai super key dengan alasan yang kurang lebih sama dengan poin 3 dan 4. Sedangkan yang bukan super key adalah: 1. (sks) Perhatikan bahwa kolom sks tidak bisa membedakan baris data secara unik, contohnya baris data 2,3, 4 dan 6 sama-sama memiliki kolom sks bernilai 3. 2. (semester) Kolom semester juga tidak bersifat unik, contohnya baris data 1 dan 4 sama-sama memiliki kolom semester bernilai 2 3. (semester, sks) Kombinasi semester dan sks juga tidak membedakan tiap baris data secara unik, contohnya baris data ke 2 dan 3 sama-sama memiliki kolom semester bernilai 1 dan sama-sama memiliki kolom sks bernilai 3 Candidate key dari tabel mata_kuliah dipilih dari super key yang sudah ada. Super key yang akan menjadi candidate key adalah super key yang tidak mengandung super key lain di dalamnya. Perhatikan 5 super key yang sudah kita peroleh dari analisis sebelumnya: 1. (kode_mk) 2. (nama_mk) 3. (kode_mk,nama_mk,semester) 4. (kode_mk,nama_mk, sks) 5. (kode_mk,nama_mk, semester, jml_temu) Modul: Desain Database Relasional 48 Super key yang hanya teridiri dari satu atribut data pasti akan menjadi candidate key sebab tidak mungkin mengandung super key yang lain. Oleh karena itu super key pada poin 1 dan 2 otomatis menjadi candidate key. Super key pada poin 3 tidak menjadi candidate key sebab dalam kombinasi (kode_mk, nama_mk, semester) terdapat super key yang lain yaitu (kode_mk). Dengan demikian, poin 4 dan 5 juga bukan candidate key. Dari analisis ini, kita memperoleh 2 buah candidate key yaitu (kode_mk) dan (nama_mk). Salah satu dari beberapa candidate key ini akan dipilih untuk digunakan dalam DBMS sebagai primary key. Ada beberapa pertimbangan untuk memilih primary key, di antaranya adalah jaminan keunikan yang lebih kuat, representasi yang lebih baik dan lainlain. b) Ketergantungan Fungsional Functional dependency (FD) atau kebergantungan fungsional adalah constraint atau batasan/ ketentuan antara 2 buah himpunan atribut pada sebuah tabel. JIka A dan B adalah himpunan atribut dari tabel T, kebergantungan fungsional antara A dan B biasanya dinyatakan dalam notasi notasi A B. Notasi A B berarti: A menentukan B B secara fungsional bergantung kepada A. A B jika memenuhi syarat berikut ini : Pada sebuah tabel T, jika ada dua baris data atau lebih dengan nilai atribut A yang sama maka baris-baris data tersebut pasti akan memiliki nilai atribut B yang sama Namun hal ini tidak berlaku sebaliknya. Untuk lebih jelasnya perhatikan tabel berikut ini: Modul: Desain Database Relasional 49 Tabel 3.5 Contoh Tabel NIM 1-01 1-01 2-01 2-01 2-02 Nama_Mhs Kd_Jur Nama_Jur Heru TE Elektro Dewi IF Informatika Heru TE Dewi IF Yati IF Elektro Informatika Informatika Kode_MK Nama_MK SKS TE-001 Elektronika 3 IF-001 Algoritma 3 DU-001 DU-001 IF-002 English English Database 2 2 2 Nilai A A B C A Contoh kebergantungan fungsional yang terdapat pada tabel di atas: NIM Nama_mhs Untuk setiap baris data, jika NIM = 1-01 pasti Nama_mhs = ‘Heru’, walaupun belum tentu semua mahasiswa yang bernama Heru memiliki NIM = 1-01 NIM Kd_jur Untuk setiap baris data, jika NIM = 1-01 pasti Kd_jur = ‘TE’, walaupun tidak semua baris data dengan kd_jur ‘TE’ memiliki kolom NIM bernilai 1-01 NIM Nama_Jur Untuk setiap baris data dengan kolom NIM bernilai 1-01 pasti memiliki kolom Nama_Jur = ‘Elektro’, walaupun tidak semua orang di jurusan Elektro memiliki NIM = 1-01. Demikian pula tidak semua baris data pada tabel dengan kolom Nama_Jur = ‘Elektro’ memiliki kolom NIM = 1-01 Penulisan kebergantungan fungsional dari 3 poin di atas dapat diringkas menjadi (NIM) (nama_mhs, kd_jur, nama_jur) Dengan demikian, dari tabel tersebut dapat kita simpulkan beberapa kebergantungan fungsional (FD) sebagai berikut: • FD1: (nim) (nama_mhs, kd_jur, nama_jur) • FD3: (kode_mk) (nama_mk, sks) • • FD2: (kd_jur) (nama_jur) FD4: (nim,kode_mk) (nilai) Ada beberapa jenis kebergantungan fungsional, di antaranya yaitu: a. Partial Functional dependency b. Transitive Functional dependency Modul: Desain Database Relasional 50 c. Multivalued Functional dependency Ketiganya adalah konsep penting dalam normalisasi, namun dalam sub bab ini kita hanya akan membahas mengenai Partial Functional dependency dan Transitive Functional dependency. a) Partial Funcional Dependency Partial Functional dependency atau kebergantungan fungsional parsial terjadi bila: • • BA B adalah bagian dari candidate key Dengan kata lain jika (B,C) adalah candidate key dan B A maka A bergantung secara parsial terhadap (B,C) atau (B,C) menentukan A secara parsial. Untuk lebih jelasnya perhatikan tabel berikut ini: Tabel 3.6 Tabel Nilai NIM Nama_Mhs 1-01 Heru 1-01 Heru 2-01 Dewi 2-01 Dewi 2-02 Yati Kode_MK Nilai TE-001 A IF-001 B DU-001 DU-001 IF-002 A C A Pada tabel di atas perhatikan bahwa: 1. Super key : (nim,kode_mk), (nim,nama_mhs,kode_mk,nilai) (nim,nama_mhs,kode_mk) dan 2. Dari super key yang sudah diperoleh pada poin 1, maka dipilih super key yang akan menjadi candidate key yaitu (nim,kode_mk) 3. FD: (nim) (nama_mhs) Dari analisis poin 2 dan 3 maka dapat disimpulkan bahwa terjadi kebergantungan fungsional parsial dimana (nama_mhs) bergantung kepada (nim,kode_mk) secara parsial atau dapat juga dikatakan bahwa (nim,kode_mk) menentukan (nama_mhs) secara parsial. Modul: Desain Database Relasional 51 b) Transitive Functional dependency Transitive Functional dependency atau kebergantungan fungsional transitif terjadi jika: AB BC Jika A B dan B C maka A C. Dengan kata lain A bergantung secara transitif terhadap C melalui B atau A menentukan C secara transitif melalui B. Untuk lebih jelasnya perhatikan contoh tabel berikut ini: Tabel 3.7 Tabel Mahasiswa NIM 1-01 1-01 2-01 2-01 2-02 Nama_Mhs Kd_Jur Nama_Jur Heru TE Elektro Dewi IF Informatika Heru Dewi Yati TE IF IF Elektro Informatika Informatika FD1: (nim) (nama_mhs, kd_jur, nama_jur) FD2: (kd_jur) (nama_jur) Dengan demikian dapat disimpulkan bahwa (nama_jur) bergantung secara transitif terhadap (nim) melalui (kd_jur) atau dapat juga dikatakan bahwa (nim) (nama_jur) secara transitif melalui (kd_jur). c) Bentuk 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. Modul: Desain Database Relasional 52 Masing-masing bentuk normal memiliki kriteria dan level tertentu yang tidak mungkin dicapai tanpa memenuhi kriteria bentuk nomal level yang berada di bawahnya. Makin tinggi level bentuk normal yang dicapai maka kualitas desain tabel tersebut dinyatakan makin baik dan semakin kecil peluang terjadinya anomali dan redundansi data. Normalisasi dilakukan dengan cara menerapkan Bentuk-Bentuk Normal secara bertahap dari level terendah sampai level yang dikehendaki. Walaupun ada beberapa bentuk normal namun jika desain tabel tertentu sudah memenuhi kriteria 3rd NF atau BCNF maka desain tabel itu biasanya dianggap sudah ‘cukup normal’. 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. Untuk lebih jelasnya perhatikan 2 versi contoh tabel T berikut ini: Tabel 3.8 Tabel Versi pertama NIM Nama_Mhs Telp_1 Telp_2 Kd_ 1-01 Heru 0813xx 022xxx TE 2-02 Yati 0852xx 031xxx IF 2-01 Dewi 0812xx 021xxx Jur IF Modul: Desain Database Relasional Nama_Jur Kode_ Nama_MK Elektro TE-001 Elektronika 3 A Informatika IF-002 Database 2 A Informatika MK IF-001 Algoritma SKS 3 Nilai B 53 Tabel T versi pertama ini memiliki 2 atribut dengan domain yang sama yaitu kolom telp_1 dan telp_2. Hal ini menunjukkan bahwa tabel T versi pertama ini belum memenuhi syarat 1st NF. NIM Nama_Mhs Tabel 3.9 Tabel Versi ke dua Telepon Kd_Jur Nama_Jur Kode_MK Nama_MK SKS Nilai 1-01 Heru 0813xx, TE Elektro TE-001 Elektronika 3 A 2-01 Dewi 0812xx, IF Informatika IF-001 Algoritma 3 B 2-02 Yati 0852xx, IF Informatika IF-002 Database 2 A 021xxx 021xxx 031xxx Tabel T versi ke dua ini juga belum memenuhi sayarat 1st NF karena kolom telepon bersifat multivalue. Solusi agar tabel T memenuhi syarat 1st NF 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 tapi tidak terjadi perubahan pada data) Perhatikan bahwa (nim) (telepon). Dengan demikian, kita dapat memecah tabel T menjadi tabel T-1 dan tabel T-2 berikut ini: Tabel 3.10 Contoh Tabel T-1 NIM Nama_Mhs Kd_Jur Nama_Jur Kode_MK Nama_MK SKS Nilai 2-01 Dewi IF Informatika IF-001 Algoritma 3 B 1-01 2-02 Heru Yati TE IF Elektro Informatika Modul: Desain Database Relasional TE-001 IF-002 Elektronika Database 3 2 A A 54 Tabel 3.11 Contoh Tabel T-2 NIM Telepon 1-01 022xxx 1-01 2-01 2-01 2-02 2-02 0813xx 0812xx 021xxx 0852xx 031xxx Baik Tabel T1 maupun tabel T2 tidak memiliki atribut bersifat multivalue. Tabel T1 dan T2 juga tidak memiliki lebih dari satu atribut dengan domain yang sama. Dengan demikian dapat disimpulkan bahwa tabel T1 dan T2 telah memenuhi syarat 1st NF dan siap untuk diperiksa apakah memenuhi syarat bentuk normal level berikutnya (2nd NF) 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 Untuk lebih jelasnya perhatikan tabel T-1hasil tahap sebelumnya: Tabel 3.12 Contoh T-1hasil NIM Nama_Mhs Kd_Jur Nama_Jur 2-01 Dewi 1-01 2-02 Kode_MK Nama_MK Heru TE Elektro Yati IF Informatika IF-002 IF E-001 Informatika IF-001 SKS Nilai Elektronika 3 A Database A Algoritma 3 2 B Perhatikan bahwa: 1. (nim, kode_mk) adalah candidate key 2. FD1: (nim) (nama_mhs, kd_jur, nama_jur) Modul: Desain Database Relasional 55 3. FD2: (kode_mk) (nama_mk, sks) 4. FD3: (nim,kode_mk) nilai Berarti Terjadi Partial Functional dependency: • FD 1: (nim,kode_mk) (nama_mhs,kd_jur,nama_jur) secara parsial • FD 2: (nim,kode_mk) (nama_mk,sks) secara parsial Walaupun tabel T-1 telah memenuhi syarat 1st NF namun karena terjadi partial functional dependency maka tabel T-1 belum memenuhi syarat 2nd NF. Solusinya adalah dengan melakukan dekomposisi terhadap tabel T-1 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 T-1 adalah 3 tabel berikut ini: Tabel 3.1 Contoh Tabel T-1-1 NIM Nama_Mhs Kd_Jur Nama_Jur 1-01 Heru TE Elektro 2-02 Yati IF Informatika 2-01 Dewi IF Tabel 3.2 Contoh Tabel T-1-2 Informatika Kode_MK Nama_MK SKS DU-001 English 2 Database 2 TE-001 Elektronika 3 IF-001 Algoritma IF-002 Modul: Desain Database Relasional 3 56 Tabel 3.3 Contoh Tabel T-1-3 NIM Kode_MK Nilai 1-01 DU-001 1-01 2-01 2-01 2-02 TE-001 A IF-001 B DU-001 IF-002 A C A Ketiga tabel hasil dekomposisi tersebut sudah tidak mengalami partial functional dependency. Dengan demikian ketiga tabel tersebut telah memenuhi syarat 2nd NF dan siap untuk diperiksa apakah memenuhi syarat bentuk normal level berikutnya (3rd NF). Adapun Tabel T-2 (hasil dekomposisi pada tahap 1st NF) juga tidak mengalami partial functional dependency sehingga sudah memenuhi 2nd NF, tidak perlu didekomposisi lagi dan dapat langsung diperiksa apakah memenuhi 3rd NF bersama-sama dengan tabel T-1-1, T-1-2 dan T-1-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 AB dan BC Untuk lebih jelasnya perhatikan tabel T-1-1 dari tahap sebelumnya: Modul: Desain Database Relasional 57 Tabel 3.4 Contoh tabel T-1-1 NIM Nama_Mhs Kd_Jur Nama_Jur 2-01 Dewi 1-01 2-02 Heru TE Elektro Yati IF Informatika IF Informatika Perhatikan bahwa: FD1: (nim) (nama_mhs, kd_jur, nama_jur) FD2: (kd_jur) (nama_jur) Berarti Terjadi Transitive FD: (nim) (nama_jur) secara transitif melalui (kd_jur) Walaupun tabel T-1-1 telah memenuhi syarat 2nd NF namun karena terjadi transitive functional dependency maka tabel T1 belum memenuhi syarat 3rd NF. Solusinya adalah dengan melakukan dekomposisi terhadap tabel T-1-1 dengan tetap menjaga agar datanya tetap konsisten sesuai FD1dan FD2. Adapun hasil dekomposisi dari tabel T-1-1 adalah 2 tabel berikut ini: Tabel 3.5 Contoh Tabel T-1-1-1 NIM Nama_Mhs 1-01 Heru TE 2-02 Yati IF 2-01 Dewi Kd_Jur IF Tabel 3.18 Contoh Tabel T-1-1-2 Kd_Jur TE IF IF Modul: Desain Database Relasional Nama_Jur Elektro Informatika Informatika 58 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. 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 LATIHAN Lakukan normalisasi untuk tabel berikut ini sampai mencapai BCNF Modul: Desain Database Relasional 59 Modul: Desain Database Relasional 60 Jawilem Jawilem Jawilem Juminten A-02 A-02 A-02 A-03 Juminten Jamal A-01 A-03 Jamal Nama_Ang A-01 Id_Ang B-03 B-01 B-02 B-02 B-03 B-02 B-01 Kd_Buku Buku Anu Buku Ini Buku Itu Buku Itu Buku Anu Buku Itu Buku Ini Jdl_Buku Fiksi Fiksi Non Fiksi Non Fiksi Fiksi Non Fiksi Fiksi Jns_Buku R-01 R-01 R-02 R-02 R-01 R-02 R-01 No_Rak 31-Jan-09 31-Jan-09 23-Feb-09 14-Feb-09 31-Jan-09 31-Jan-09 23-Feb-09 Tgl_Pinjam 23-Feb-09 23-Feb-09 1-Mar-09 23-Feb-09 14-Feb-09 23-Feb-09 1-Mar-09 l_Kembali RANGKUMAN Modul: Desain Database Relasional 61 TES FORMATIF KEGIATAN BELAJAR 3 1. Normalisasi bertujuan untuk _____ A. Membuat desain tabel menjadi lebih efisien B. Menghidari update dan insertion anomaly C. Meminimalkan redundansi data D. Menghindari deletion anomaly E. Semua benar 2. Atribut atau sekumpulan atribut yang dapat membedakan setiap baris data dalam tabel secara unik disebut _____ A. Super key B. Candidate key C. Primary key D. Functional dependency E. Tidak ada jawaban yang benar 3. Jika diketahui FD1: (A,B) (C) dan FD2: (C) (D,E) maka dapat disimpulkan bahwa _____ A. Terjadi transitive functional dependency B. Tabel tersebut tidak memenuhi syarat 3rd NF C. (A,B) (C,D) D. Pilihan A dan B benar E. Pilihan A, B dan C benar 4. Syarat 2nd NF adalah _____ A. Tabel harus memiliki lebih dari 1 candidate key B. Tidak boleh ada atribut atau kolom yang bergantung secara fungsional pada sebagian dari candidate key C. Tabel harus memiliki primary key D. Tidak terjadi transitive functional dependency E. Tidak ada jawaban yang benar Modul: Desain Database Relasional 62 5. Syarat 3nd NF adalah _____ A. Tabel harus bebas dari partial functional dependency B. Tabel harus memiliki candidate key C. Tidak terdapat multivalue atribut D. Memenuhi syarat BCNF E. Memenuhi syarat 2nd NF dan bebas dari transitive functional dependency 6. Pernyataan yang benar tentang primary key adalah _____ A. Setiap primary key pasti merupakan super key B. Setiap primary key pasti merupakan candidate key C. Primary key dalam sebuah tabel boleh lebih dari satu D. Primary key boleh terdiri dari sekumpulan atribut E. Semua jawaban benar 7. Atribut atau sekumpulan atribut yang tidak dapat membedakan setiap baris data dalam tabel secara unik disebut _____ A. Super key B. Candidate key C. Primary key D. Functional dependency E. Non key 8. Jika sebuah tabel T dipastikan telah memenuhi syarat BCNF maka dapat disimpulkan bahwa _____ A. Tabel T pasti memenuhi syarat 1st NF B. Tabel T pasti bebas dari partial functional dependecy C. Tabel T pasti bebas dari transitivefunctional dependency D. Semua ruas kiri FD pada tabel T pasti merupakan super key E. Semua benar Modul: Desain Database Relasional 63 9. Salah satu contoh denormalisasi adalah _____ A. View B. Sequence C. Materialized View D. Index E. Tidak ada jawaban yang benar 10. Dampak penerapan denormalisasi diantaranya _____ A. Penyimpanan data menjadi lebih boros B. Performa database menjadi makin lambat C. Kecepatan query menurun karena datanya redundan D. Tabel menjadi mengalami partial functional dependency E. Tidak ada jawaban yang benar UMPAN BALIK DAN TINDAK LANJUT Periksalah jawaban Saudara dengan kunci jawaban test formatif KB 3. Hitunglah jumlah jawaban Saudara yang sesuai dengan kunci jawaban, kemudian gunakan rumus di bawah ini untukmengetahui tingkat penguasaan Saudara terhadap materi. Rumus = Jumlah jawaban yang sesuai kunci Jumlah semua soal X 100% Penjelasan tingkat penguasaan 91 – 100 % 81 – 90,99 % = Baik = Amat Baik 71 – 80,99% = Cukup 61 – 70,99% = Kurang 0 – 60,99% = Amat Kurang Kalau Saudara mencapai tingkat penguasaan 80% atau lebih, maka Saudara telah memahami modul ini. Tetapi apabila nilai Saudara kurang dari 80%, maka kami sarankan saudara mengulangi materi pada KB 3, ini terutama materi yang saudara belum kuasai. Modul: Desain Database Relasional 64 . Modul: Desain Database Relasional 65 Modul: Desain Database Relasional 66 TES FORMATIF KEGIATAN BELAJAR 1 1. b 7. c 3. b 9. b 2. 4. 5. 6. d d b d TES FORMATIF KEGIATAN BELAJAR 2 8. d 10. b 11. b 12. d 1. c 9. 3. a 11. a 2. 4. 5. 6. 7. 8. d d c a a b TES FORMATIF KEGIATAN BELAJAR 3 c 10. d 12. b 13. d 14. c 15. a 1. b 9. 3. b 11. c 2. 4. 5. 6. 7. 8. a a b b a c Modul: Desain Database Relasional d 10. b 12. a 13. b 14. c 15. d 67 TES SUMATIF 1. b 11. c 3. d 13. b 2. 4. 5. 6. 7. 8. 9. c a d b b b b 10. a Modul: Desain Database Relasional 12. a 14. c 15. d 16. a 17. b 18. d 19. c 20. a 68 1. Raghu Ramakrishnan / Johannes Gehrke “Database Management 2. System” Second edition. Modul: Desain Database Relasional 69