Alat Bantu Perancangan Basis Data ERD (Entity Relationship Diagram) Sistem Basis Data STMIK AUB Surakarta Diagram E-R Diagram E-R (EntityRelationship) biasa digunakan dalam tahap analisis perancangan database Digunakan sebagai perangkat untuk berkomunikasi antara pengembang database dengan pengguna 1 Diagram E-R Diagram E-R berupa model data konseptual, yang merepresentasikan data dalam suatu organisasi dalam bentuk objekobjek dan hubungannya Data Data Data Data Data Data Diagram E-R Diagram E-R berupa model data konseptual, yang merepresentasikan data dalam suatu organisasi dalam bentuk objekobjek dan hubungannya Tidak bergantung kepada software yang akan dipakai untuk mengimplementasikan database Sejauh ini banyak sekali model notasi yang dipakai untuk membuat diagram E-R 2 ERD dan Proses Perancangan Database Tiga proses perancangan database yang terkait dengan ERD: Analisis kebutuhan Menggali kebutuhan data untuk penyajian informasi Perancangan database konseptual Menyajikan kebutuhan data yang akan disimpan dalam bentuk yang high level (misalnya ERD) Perancangan database logis Memilih DBMS dan mengonversi ke skema database Tiga Tahapan Perancangan Database Lainnya Perbaikan Skema Mengidentifikasi problem potensial dan melakukan pembetulan Perancangan database fisik Menyeleraskan rancangan database dengan fitur-fitur dalam DBMS Perancangan keamanan Mengatur keamanan yang menyangkut wewenang pemakai 3 Dasar ERD Atribut Entitas Atribut Hubungan Atribut Atribut ENTITAS Hubungan Atribut ENTITAS Atribut Atribut Entitas Merupakan objek dalam dunia nyata yang dapat dibedakan dengan objekobjek lain Objek Objek?? ? Seorang manajer, sebuah mainan, sebuah pintu merupakan contoh entitas Lambang : 4 Atribut Sifat / karakteristik yang melekat dalam sebuah entitas Atribut No inventaris Merk Ukuran RAM Entitas Atribut? Atributnya? ???? Orang Mobil Ruangan Surat Perjanjian 5 Himpunan Entitas Kumpulan dari objek yang memiliki karakteristik sama dinamakan himpunan entitas Semua manajer dalam sebuah perusahaan berkedudukan sebagai himpunan entitas Himpunan Entitas Himpunan Entitas Pegawai Employee_ID Birth_Of_Date EMPLOYEE Name Employee_ID Name Birth_Of_Date 75-001 Sita Dewi 01/07/1982 75-002 Riantiarno 23/12/1984 6 Hubungan Hubungan (relationship) adalah pengait antara beberapa tipe entitas 75-001 Sita Dewi 75-002 Riantiarno 75-003 Diva Mawarni 75-004 Karno 76-001 Dino Larasati DA Depertemen Akunting DK Departmen Keuangan DP Departemen Pemasaran Hubungan (Lanjutan) Apa hubungannya???? ? Dosen Mahasiswa Dosen - Matakuliah Nasabah Rekening Bank Pemasok - Barang 7 Contoh Diagram E-R PELANGGAN PEMASOK Mengirim Mengirim Memasok PESANAN KIRIMAN Memasok BARANG Berisi Digunakan_ pada PRODUK Tipe Atribut Atribut Sederhana dan komposit Atribut Bernilai tunggal dan bernilai banyak Atribut tersimpan dan turunan 8 Atribut Sederhana dan Komposit Atribut sederhana tidak bisa dipecah menjadi bagian yang lebih kecil lagi Atribut komposit adalah atribut yang dapat dipecah menjadi komponen yang lain Alamat: Alamat_Jalan, Kota, Kode_Pos Nama: Nama_Depan, Nama_Tengah, Nama_Belakang Prev Atribut Bernilai Tunggal dan Bernilai Banyak Atribut bernilai tunggal adalah atribut yang nilainya hanya satu Contoh: nomor pegawai Atribut bernilai banyak adalah atribut yang berkemungkinan memiliki nilai lebih dari satu Contoh: Nomor_Telpon, Ketrampilan_Pemrograman Prev 9 Atribut Tersimpan dan Turunan Atribut tersimpan adalah atribut yang secara eksplisit tersimpan dalam database Atribut turunan adalah atribut yang nilainya dapat dikalkulasi dari nilai atribut tersimpan Contoh: Lama_Bekerja dapat dihitung dari Tgl_Mulai_Bekerja Usia bisa dihitung dari Tgl_lahir Atribut Tersimpan dan Turunan? Kode Barang Nama Barang Jumlah Harga Satuan Subtotal P-001 Pensil 4 1.000 4.000 B-005 Buku Tulis 1 3.000 3.000 G-002 Penggaris 1 1.500 1.500 K-001 Kertas HVS 2 20.000 40.000 10 Jenis Hubungan Jenis hubungan antara dua himpunan entitas: a) b) c) d) One to One One to Many Many to One Many to Many (c) (d) Jenis Hubungan (Lanjutan ) Apa jenis hubungannya???? ? Dosen Mahasiswa Dosen - Matakuliah Nasabah Rekening Bank Pemasok - Barang 11 Kunci Kunci dimaksudkan sebagai pegangan untuk membedakan antara satu entitas dengan entitas yang lain Kunci dapat disusun atas satu atau kombinasi beberapa atribut Istilah lain berupa pengenal (identifier) biasa digunakan sebagai pengganti kata kunci Pengenal Pengenal tunggal (sederhana) Terdiri atas satu atribut Pengenal komposit Terdiri atas dua atribut atau lebih 12 Pengenal Tunggal Contoh: No_Mhs pada entitas MAHASISWA No_Mhs Nama_Mhs Tgl_Lahir MAHASISWA Prev Pengenal Komposit ID_Pesawat Jadwal ID_Penerbangan Tujuan PENERBANGAN Jumlah_penumpang 13 Pengenal (Lanjutan ) Pengenal harus dibentuk dengan melibatkan atribut-atribut yang tidak pernah berubah atau jarang berubah Pilih pengenal yang nilainya jelas dan tidak pernah NULL (tidak dikenal) Mana yang sebaiknya dipilih? Kode bagian atau nama bagian? Pengenal (Lanjutan ) Buat pengenal beratribut tunggal untuk menggantikan pengenal komposit yang terlalu panjang ID_Pesawat Jadwal Tidak lagi tergantung ID_Pesawat dan Jadwal ID_Penerbangan Tujuan PENERBANGAN Jumlah_penumpang 14 Simbol dalam Diagram E-R Simbol Hubungan: ENTITAS Satu Hubungan Bbanyak Atribut Garis bawah: Kunci atau pengenal (identifier) Simbol Lain-Lain Entitas kuat Entitas asosiatif Entitas lemah Atribut Hubungan Hubungan pengidentifikasi Atribut nilai berganda Atribut turunan 15 Contoh ERD Nama_Plg ID_Plg PELANGGAN Mengirim ID_Pesanan Tgl_Pesanan PESANAN Contoh Atribut Komposit, Nilai Berganda, dan Turunan Jalan ID_Plg Nama_Plg Telpon_Plg Kota Kode_Pos Alamat PELANGGAN Usia Tgl_Lahir 16 Cara Memberi Nama Entitas Gunakan sedapat mungkin satu kata benda. Kalau lebih dua kata, gunakan spasi sebagai pemisah kata Ditulis dengan huruf KAPITAL Nama yang digunakan spesifik terhadap perusahaan KLIEN atau PELANGGAN berarti sama. Tetapi mana yang digunakan perusahaan? Gunakan nama yang singkat tapi bermakna tepat REGISTRASI lebih baik daripada REGISTRASI MAHASISWA MAHASISWA PELANGGAN BARIS PESANAN Spasi Cara Memberi Nama Atribut Gunakan frasa kata benda atau kata benda tunggal Setiap awal kata ditulis dengan huruf KAPITAL Gunakan _ untuk menyambung dua kata Kata bisa disingkat, tetapi harus mudah ditebak maknanya Nama atribut harus unik Nama Nama_Pelanggan Nama_Plg 17 Cara Memberi Nama Hubungan Gunakan kata kerja Hanya awalnya yang dikapitalkan Gunakan garis bawah sebagai pemisah antarkata PELANGGAN Mengirim Kata kerja PESANAN Hubungan Unary Hubungan yang melibatkan hanya satu entitas ID_Peg Nama_Peg Tgl_Lahir manajer Membawahi PEGAWAI pekerja Indikator peran 18 Contoh Unary Relationship ORANG PEGAWAI Menikah_dengan SUKU_CADANG Membawahi Tersusun_atas Hubungan Biner Hubungan yang melibatkan dua buah entitas PELANGGAN Mengirim PESANAN 19 Contoh Binary Relationship ORANG Diberi_jatah TEMPAT PARKIR PEGAWAI Bekerja_pada DEPARTEMEN MAHASISWA Mengambil MATA KULIAH Hubungan Ternary Hubungan yang melibatkan tiga buah entitas Nama_Pek Level PEKERJAAN ID_Peg Nama_Peg PEGAWAI Tgl_Lahir Nama_Cab Bekerja_pada Lokasi CABANG 20 Contoh Ternary Relationship PEMASOK GUDANG Memasok BARANG Sebuah Pemasok memasok sejumlah barang pada beberapa gudang Sebuah barang bisa dipasok oleh beberapa Pemasok Atribut dalam Hubungan Nama Siswa Nama Kursus Tgl_Selesai Amir Visual BASIC 24/2/1007 Amir Visual C++ 3/5/2007 Dion Visual C++ 3/5/2007 Fitri Delphi 4/3/2007 ID_Siswa Nama_Siswa Tgl_Selesai SISWA Menyelesaikan ID_Kursus Nama_Kursus KURSUS 21 Atribut dalam Hubungan ID_Siswa ID_Siswa Nama_Siswa Tgl_Selesai SISWA Menyelesaikan Nama_Siswa SISWA No_Sert Tgl_Selesai ID_Kursus Nama_Kursus KURSUS ID_Kursus SERTIFIKAT Nama_Kursus KURSUS Entitas Asosiatif Kardinalitas Hubungan Selalu hanya satu Satu atau banyak Nol atau satu Nol, satu, atau banyak 22 Kekangan Kardinalitas Jenis hubungan antartipe entitas seringkali dinyatakan tidak sekedar dalam bentuk berupa One to One, One to Many, Many to One, dan Many to Many, melainkan juga dengan menyertakan kekangan kardinalitas Kekangan kardinalitas (cardinality constraint) adalah suatu keadaan yang digunakan untuk menyatakan jumlah instan dalam sebuah entitas yang dapat dikaitkan dengan sebuah instan pada entitas lain Implementasinya adalah dengan menggunakan kardinalitas hubungan yang dijelaskan pada slide sebelum ini Kekangan Kardinalitas (Lanjutan ) Berkaitan dengan kekangan kardinalitas, terdapat istilah kardinalitas minimum dan kardinalitas maksimum Kardinalitas minimum adalah jumlah instan tersedikit dalam sebuah entitas yang mungkin dikaitkan dengan setiap instan pada entitas lain Kardinalitas maksimum adalah jumlah instan terbanyak dalam sebuah entitas yang mungkin dikaitkan dengan setiap instan pada entitas lain 23 Contoh Penerapan Kekangan Kardinalitas PASIEN Mempunyai KUNJUNGAN (a) Dasar hubungan PASIEN Mempunyai SEJARAH PASIEN (b) Hubungan dengan kekangan kardinalitas Contoh: Amir Dewi Fahmi Kunjungan 1 Kunjungan 2 Kunjungan 1 Kunjungan 1 Kunjungan 2 Contoh Penerapan Kekangan Kardinalitas (Lanjutan ) PEGAWAI Ditugaskan_ke PROYEK (a) Dasar hubungan PEGAWAI Ditugaskan_ke PROYEK (b) Hubungan dengan kekangan kardinalitas Contoh: Amir Dewi Fahmi Sueb Proyek 1 Proyek 2 Proyek 3 Proyek 4 Proyek 5 24 Latihan ERD (1) Seorang pegawai memiliki data berupa nomor induk pegawai, nama, tanggal lahir dan ketrampilan berbahasa asing. Gambarkan diagram ER-nya Latihan ERD (2) Data seseorang mencakup identitas seseorang, nama, jenis kelamin. Gambarkan diagram ER yang mencerminkan bahwa seseorang menikahi orang 25 Latihan ERD (3) Setiap dosen memiliki nomor dosen, nama, dan usia Setiap proyek memiliki nomor proyek, sponsor proyek, tanggal mulai, dan tanggal selesai Setiap proyek dikepalai oleh seorang profesor Setiap proyek bisa melibatkan satu atau beberapa dosen Latihan ERD (3 - Lanjutan) Seorang dosen bisa mengepalai sejumlah proyek dan bekerja pada sejumlah proyek Jurusan memiliki kode jurusan, nama jurusan, dan lokasi Jurusan dikepalai oleh seorang dosen Dosen bisa bekerja pada satu jurusan atau beberapa jurusan Gambarkan diagram ER-nya 26 Latihan ERD (4) Buatlah diagram ER untuk PT Astrindo Utama yang mencerminkan pesanan barang di atas! Latihan ERD (5) NIM Nama Mhs KD MK Nama MK No Dosen Nama Dosen Nilai 12345 Ali TI-001 Algoritma Pemrograman 771 Dian A 12345 Ali TI-101 Basis data 773 Elias A 12346 Darwin TI-001 Algoritma Pemrograman 771 Dian B 12349 Siti TI-001 Algoritma Pemrograman 771 Dian A Buatlah diagram ER-nya! 27 Transformasi ERD ke Database Relasional Tranformasi Diagram ER ke Relasi Memetakan Entitas Nama_Pelanggan Tipe entitas PELANGGAN No_Pelanggan PELANGGAN Alamat_Pelanggan Relasi PELANGGAN No_Pelanggan Nama_Pelanggan Alamat_Pelanggan 28 Memetakan Entitas dengan Atribut Komposit Jalan Nama_Pelanggan Kota Kode_Pos No_Pelanggan No_Pelanggan PELANGGAN Nama_Pelanggan Alamat_Pelanggan Jalan Kota Kode_Pos Tipe entitas PELANGGAN dengan atribut komposit Relasi PELANGGAN Memetakan Entitas dengan Atribut Bernilai Ganda Nama_Pegawai Alamat_Pegawai No_Pegawai PEGAWAI No_Pegawai Nama_Pegawai No_Pegawai Keterampilan Keterampilan Alamat_Pegawai Tipe entitas PEGAWAI dengan atribut bernilai ganda Relasi PEGAWAI Relasi KETERAMPILAN PEGAWAI 29 Pemetaan Hubungan 1 to M No_Pelanggan Nama_Pelanggan PELANGGAN Nomor_Pesan PESANAN Mengirim No_Pelanggan Nama_Pelanggan No_Pesan Tanggal_Pesan Tanggal_Pesan Relasi PELANGGAN No_Pelanggan Relasi PESANAN Pemetaan Hubungan M to M No_Pesan Tgl_Pesan Kode_Produk Harga_Unit Jumlah PESANAN PRODUK Meminta No_Pesan Tgl_pesan No_Pesan Kode_Produk Kode_Produk Harga_Unit Relasi PESANAN Jumlah Relasi BARIS PESANAN Relasi PRODUK 30 Pemetaan Hubungan 1 to 1 No_Dosen Nama_Dosen Kode_Prodi Nama_Prodi Tanggal_Penugasan DOSEN No_Dosen Kode_Prodi PROGRAM STUDI Mengepalai Nama_Dosen Nama_Prodi Relasi DOSEN No_Dosen Tanggal_penugasan Relasi PROGRAM STUDI Pemetaan Entitas Asosiatif (Ternary) No_Pelanggan Nama Vendor Alamat Tanggal No_Kirim Jumlah PELANGGAN No_Pelanggan No_Kirim Kode_Vendor PENGIRIMAN Nama Tanggal Alamat VENDOR Relasi PELANGGAN Jumlah No_Pelanggan Kode_Vendor Relasi PENGIRIMAN Relasi VENDOR 31 Pemetaan Unary 1:N Nama_Pegawai Tgl_Lahir No_Pegawai PEGAWAI Mengepalai No_Pegawai Nama_Pegawai Tgl_lahir ID_Manajer Relasi PEGAWAI Pemetaan Unary M:M Nama_Item Harga_Unit No_Item ITEM Jumlah Tersusun_atas No_Item Nama_Item Harga_Unit No_Item No_Komponen Jumlah Relasi ITEM Relasi KOMPONEN 32 Latihan (1) Berdasarkan diagram ER soal pesanan barang pada Modul db-2, buatlah relasi-relasinya! Latihan NIM Nama Mhs KD MK Nama MK No Dosen Nama Dosen Nilai 12345 Ali TI-001 Algoritma Pemrograman 771 Dian A 12345 Ali TI-101 Basis data 773 Elias A 12346 Darwin TI-001 Algoritma Pemrograman 771 Dian B 12349 Siti TI-001 Algoritma Pemrograman 771 Dian A Berdasarkan diagram ER dari data di atas, buatlah relasi-relasinya! 33