ERD (Entity Relationship Diagram) Sistem Basis Data Rahajeng Ratnaningsih, S. Kom STMIK AUB Surakarta
Diagram E-R Diagram E-R = ERD (Entity Relationship Diagram) Diagram E-R biasa digunakan dalam tahap analisis perancangan basis data Digunakan sebagai perangkat untuk berkomunikasi antara pengembang basis data dengan pengguna
Diagram E-R Diagram E-R berupa model data konseptual, yang merepresentasikan data dalam suatu organisasi dalam bentuk objek-objek dan hubungannya Data Data Data
Diagram E-R Diagram E-R berupa model data konseptual, yang merepresentasikan data dalam suatu organisasi dalam bentuk objek-objek dan hubungannya. Tidak bergantung kepada software yang akan dipakai untuk mengimplementasikan basis data
ERD dan Proses Perancangan Basis Data Tiga proses perancangan basis data yang terkait dengan ERD: Analisis kebutuhan Menggali kebutuhan data untuk penyajian informasi Perancangan basis data konseptual Menyajikan kebutuhan data yang akan disimpan dalam bentuk yang high level (misalnya ERD) Perancangan basis data logis Memilih DBMS dan mengonversi ke skema basis data
Tiga Tahapan Perancangan Database Lainnya Perbaikan Skema Mengidentifikasi problem potensial dan melakukan pembetulan Perancangan basis data fisik Menyeleraskan rancangan basis data dengan fitur-fitur dalam DBMS Perancangan keamanan Mengatur keamanan yang menyangkut wewenang pemakai
Dasar ERD Entitas Atribut Hubungan Atribut ENTITAS Atribut Atribut
Entitas Objek… Objek??? Merupakan objek dalam dunia nyata yang dapat dibedakan dengan objek-objek lain Seorang manajer, sebuah mainan, sebuah pintu merupakan contoh entitas Lambang :
Atribut Sifat / karakteristik yang melekat dalam sebuah entitas No inventaris Merk Ukuran RAM Entitas …
Atribut? Orang Mobil Ruangan Surat Perjanjian Atributnya?????
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 Name EMPLOYEE Employee_ID Name Birth_Of_Date 75-001 Sita Dewi 01/07/1982 75-002 Riantiarno 23/12/1984
Hubungan Hubungan (relationship) adalah pengait antara beberapa tipe entitas DA Depertemen Akunting DK Departmen Keuangan DP Departemen Pemasaran 75-001 Sita Dewi 75-002 Riantiarno 75-003 Diva Mawarni 75-004 Karno 76-001 Dino Larasati
Hubungan (Lanjutan) Dosen – Mahasiswa Dosen - Matakuliah Apa hubungannya????? Dosen – Mahasiswa Dosen - Matakuliah Nasabah – Rekening Bank Pemasok - Barang
Contoh Diagram E-R PELANGGAN Mengirim PEMASOK Mengirim Memasok PESANAN KIRIMAN BARANG Berisi Digunakan_ pada PRODUK
Tipe Atribut Atribut Sederhana dan komposit Atribut Bernilai tunggal dan bernilai banyak Atribut tersimpan dan turunan
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
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 G-002 Penggaris 1.500 K-001 Kertas HVS 2 20.000 40.000
Jenis Hubungan Jenis hubungan antara dua himpunan entitas: 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
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) Pengenal komposit Terdiri atas satu atribut Pengenal komposit Terdiri atas dua atribut atau lebih
Pengenal Tunggal Contoh: No_Mhs pada entitas MAHASISWA No_Mhs Nama_Mhs Tgl_Lahir MAHASISWA Prev
Pengenal Komposit ID_Pesawat Jadwal ID_Penerbangan Tujuan Jumlah_penumpang PENERBANGAN
Mana yang sebaiknya dipilih? Kode bagian atau nama bagian? Pengenal (Lanjutan…) Mana yang sebaiknya dipilih? Kode bagian atau nama bagian? 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)
Tidak lagi tergantung ID_Pesawat dan Jadwal 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 Jumlah_penumpang PENERBANGAN
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 Atribut nilai berganda Hubungan pengidentifikasi Atribut turunan
Contoh ERD Nama_Plg ID_Plg ID_Pesanan Tgl_Pesanan PELANGGAN Mengirim
Contoh Atribut Komposit, Nilai Berganda, dan Turunan Jalan Kota Kode_Pos ID_Plg Alamat Nama_Plg PELANGGAN Usia Telpon_Plg Tgl_Lahir
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
Cara Memberi Nama Hubungan Gunakan kata kerja Hanya huruf awal kata 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
Contoh Unary Relationship Menikah_dengan Membawahi ORANG PEGAWAI Tersusun_atas SUKU_CADANG
Hubungan Biner Hubungan yang melibatkan dua buah entitas PELANGGAN Mengirim PESANAN
Contoh Binary Relationship Diberi_jatah ORANG TEMPAT PARKIR Bekerja_pada PEGAWAI DEPARTEMEN Mengambil MAHASISWA MATA KULIAH
Hubungan Ternary Hubungan yang melibatkan tiga buah entitas Nama_Pek Level PEKERJAAN ID_Peg Nama_Peg Tgl_Lahir Nama_Cab Lokasi Bekerja_pada PEGAWAI CABANG
Contoh Ternary Relationship Memasok PEMASOK GUDANG 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 Visual C++ 3/5/2007 Dion Fitri Delphi 4/3/2007 ID_Siswa Nama_Siswa Tgl_Selesai ID_Kursus Nama_Kursus Menyelesaikan SISWA KURSUS
Atribut dalam Hubungan ID_Siswa Nama_Siswa Tgl_Selesai ID_Kursus Nama_Kursus Menyelesaikan SISWA KURSUS ID_Siswa Nama_Siswa No_Sert Tgl_Selesai ID_Kursus Nama_Kursus SERTIFIKAT SISWA KURSUS Entitas Asosiatif
Kardinalitas Hubungan Selalu hanya satu Satu atau banyak Nol atau satu Nol, satu, atau banyak
Kekangan Kardinalitas Jenis hubungan antar tipe 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
Contoh Penerapan Kekangan Kardinalitas Mempunyai PASIEN KUNJUNGAN (a) Dasar hubungan Mempunyai PASIEN SEJARAH PASIEN (b) Hubungan dengan kekangan kardinalitas Contoh: Kunjungan 1 Amir Kunjungan 2 Dewi Kunjungan 1 Fahmi Kunjungan 1 Kunjungan 2
Contoh Penerapan Kekangan Kardinalitas (Lanjutan…) Ditugaskan_ke PEGAWAI PROYEK (a) Dasar hubungan Ditugaskan_ke PEGAWAI PROYEK (b) Hubungan dengan kekangan kardinalitas Contoh: Proyek 1 Amir Proyek 2 Dewi Proyek 3 Fahmi Proyek 4 Sueb Proyek 5
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
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
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 TI-101 Basis data 773 Elias 12346 Darwin Algoritma Pemrograman B 12349 Siti Buatlah diagram ER-nya!
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
Memetakan Entitas dengan Atribut Komposit Jalan Nama_Pelanggan Kota Kode_Pos Tipe entitas PELANGGAN dengan atribut komposit No_Pelanggan PELANGGAN Alamat_Pelanggan Relasi PELANGGAN No_Pelanggan Nama_Pelanggan Jalan Kota Kode_Pos
Memetakan Entitas dengan Atribut Bernilai Ganda Nama_Pegawai No_Pegawai Alamat_Pegawai Tipe entitas PEGAWAI dengan atribut bernilai ganda PEGAWAI Keterampilan No_Pegawai Nama_Pegawai Alamat_Pegawai Relasi PEGAWAI No_Pegawai Keterampilan Relasi KETERAMPILAN PEGAWAI
Pemetaan Hubungan 1 to M No_Pelanggan Nama_Pelanggan Nomor_Pesan Tanggal_Pesan Mengirim PELANGGAN PESANAN No_Pelanggan Nama_Pelanggan Relasi PELANGGAN No_Pesan Tanggal_Pesan No_Pelanggan Relasi PESANAN
Pemetaan Hubungan M to M No_Pesan Tgl_Pesan Kode_Produk Harga_Unit Jumlah Meminta PESANAN PRODUK No_Pesan Tgl_pesan Relasi PESANAN No_Pesan Kode_Produk Jumlah Relasi BARIS PESANAN Kode_Produk Harga_Unit Relasi PRODUK
Pemetaan Hubungan 1 to 1 No_Dosen Nama_Dosen Kode_Prodi Nama_Prodi Tanggal_Penugasan Mengepalai DOSEN PROGRAM STUDI No_Dosen Nama_Dosen Relasi DOSEN Kode_Prodi Nama_Prodi No_Dosen Tanggal_penugasan Relasi PROGRAM STUDI
Pemetaan Entitas Asosiatif (Ternary) No_Pelanggan Nama Vendor Alamat Tanggal No_Kirim Jumlah PENGIRIMAN PELANGGAN VENDOR No_Pelanggan Nama Relasi PELANGGAN Relasi PENGIRIMAN No_Kirim Tanggal Jumlah No_Pelanggan Kode_Vendor Kode_Vendor Alamat Relasi VENDOR
Pemetaan Unary 1:N Nama_Pegawai Tgl_Lahir No_Pegawai Relasi PEGAWAI Mengepalai No_Pegawai Nama_Pegawai Tgl_lahir ID_Manajer Relasi PEGAWAI
Pemetaan Unary M:M Nama_Item Harga_Unit No_Item Jumlah Relasi ITEM Tersusun_atas Jumlah No_Item Nama_Item Harga_Unit Relasi ITEM No_Item No_Komponen Jumlah Relasi KOMPONEN
Latihan (1) Berdasarkan diagram ER soal pesanan barang pada Latihan ERD (4), 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 TI-101 Basis data 773 Elias 12346 Darwin Algoritma Pemrograman B 12349 Siti Berdasarkan diagram ER dari data di atas, buatlah relasi-relasinya!