Entity Relationship Model Rinta Kridalukmana, S.Kom, MT! Program Studi Sistem Komputer Universitas Diponegoro
Database sebagai kelompok tabel yang berkaitan & mengekspresikan hubungan SQL STATEMENT : SELECT dbo.job.name AS Job, dbo.contractors.contractor, dbo.contractors.phone, dbo.equipment.equipment_type AS [Equipment Type], dbo.equipment.equipment_number AS [Equipment Number], dbo.equipment.daily_rate AS [Daily Rate], dbo.rental.start_date AS [Start Date], dbo.rental.end_date AS [End Date], DATEDIFF(day, dbo.rental.start_date, dbo.rental.end_date) + 1 AS Days, (DATEDIFF(day, dbo.rental.start_date, dbo.rental.end_date) + 1) * dbo.equipment.daily_rate AS CHARGE FROM dbo.job RIGHT OUTER JOIN dbo.rental ON dbo.job.job_id = dbo.rental.job_id LEFT OUTER JOIN dbo.contractors ON dbo.rental.contractor_id = dbo.contractors.contractor_id LEFT OUTER JOIN dbo.equipment ON dbo.rental.equipment_id = dbo.equipment.equipment_id
Entity Relationship Model (1) Diperkenalkan oleh Chen (1976) Berdasarkan anggapan bahwa dunia nyata terdiri dari koleksi obyek-obyek dasar yang dinamakan entitas serta hubungan antar entitas (relationship) Tidak bergantung DBMS dan platform perangkat keras
Entity Relationship Model (2) Digunakan untuk : Mengembangkan model konseptual Menjelaskan struktur basis data Memberikan gambaran kepada pengguna terhadap data! 3 Komponen penting dalam model ER adalah : Entity Atribut Relasi
Entity / Entitas Adalah obyek di dunia nyata yang dapat dibedakan dengan obyek lainnya Set Entitas à Himpunan entitas Dapat berupa : Fisik : Mahasiswa, pasien, kendaraan Konsep/Logik : Pekerjaan, Mata Kuliah, Kursus Simbol Entity : Mahasiswa Berupa kotak segi empat
Atribut Adalah ciri atau karakteristik yang bermakna untuk mendeskripsikan entitas Ada karakteristik bermakna & tidak bermakna Contoh : mahasiswa Nim, nama IPK à atribut bermakna Tinggi badan, berat badan à tidak bermakna! Bertujuan untuk membedakan obyek-obyek dalam entitas
Simbol Atribut Berbentuk elips dan dihubungkan dengan garis ke entitas
5 Jenis Atribut Atribut Tunggal! Atribut yang disusun hanya dari satu komponen tunggal dengan keberadaan bebas Tidak dapat dibagi lagi à atribut atomik Misal : nama, jenis kelamin Atribut Komposit Atribut yang disusun dari banyak komponen yang masing-masing keberadaannya bebas. Misal : alamat à jalan, no_rumah, kecamatan
5 Jenis Atribut Atribut Key Digunakan untuk mengidentifikasikan suatu entitas secara unik Misal : NIM, NIP, Agama Atribut bernilai jamak / multivalue Atribut yang mengandung banyak nilai Misal : hobi, nomer telpon Atribut Turunan / deritative Atribut yang mengandung nilai di mana nilai tersebut bisa diperoleh dari hasil kalkulasi atribut lain Misal : atribut umur à bisa diperoleh dari tanggal lahir
Cara penggambaran jenis atribut
Domain Atribut Himpunan nilai yang diberikan ke suatu atribut Termasuk di antaranya : Tipe data Panjang karakter yang diijinkan Konstrain Format Dll Atribut yang berbeda boleh memiliki domain nilai yang sama
Key Adalah sejumlah atribut yang mengidentifikasikan record / baris dalam sebuah relasi secara unik Beberapa jenis key : Super key Candidate key Primary key Alternate key Composite key Foreign key
Jenis Key Super Key Satu atribut atau kumpulan atribut yang secara unik mengidentifikasikan sebuah record di dalam relasi atau himpunan dari satu atau lebih entitas yang dapat digunakan untuk mengidentifikasikan secara unik sebuah entitas dalam entitas set Candidate Key Atribut-atribut yang menjadi determinan yang dapat dijadikan identitas record. Pada sebuah relation bisa terdapat satu atau lebih candidate key
Jenis Key Primary Key Candidate key yang menjadi identitas record karena dapat mengidentifikasikan record secara unik Alternate Key Candidate kay yang tidak dijadikan primary key Composite Key Key yang terdiri dari 2 atribut atau lebih. Atribut-atribut tersebut bila berdiri sendiri tidak menjadi identitas record, tetapi bila dirangkaikan menjadi satu kesatuan akan dapat mengidentifikasikan secara unik
Jenis Key Foreign Key Non key atribut pada sebuah relasi yang juga menjadi key (primary) atribut di relasi lainnya. Foreign key biasanya digunakan sebagai penghubung antara record-record dari kedua relasi tersebut.
Contoh kasus : KRS
PROFIL'POTENSI'UNGGULAN'DAN'PENGEMBANGAN'DAERAH'ALIRAN'SUNGAI A.'Profil'Sungai Nama$Sungai$ :$ Bengawan$Solo Panjang : 600$km Propinsi$yang$dilintasi : Jawa$Tengan$dan$Jawa$Timur Kabupaten$yang$dilintasi$ : Boyolali,$Klaten,$Sukoharjo,$ Wonogiri,$Karanganyar,$Sragen,$ Blora,$Rembang,$Ponorogo,$ Madiun,$Magetan,$Ngawi,$ Bojonegoro,$Tuban,$Lamongan,$ Gresik$,$Pacitan Kota$yang$dilintasi : Surakarta,$Madiun,$Surabaya Daerah$Aliran$Sungai : I$DAS$Bengawan$Solo$(16.100$km2) I$DAS$Kaligrundu$dan$Kalilorog$(1.515$km2) I$DAS$Bengawan$Solo$Hulu$(6.072$km2) I$DAS$Kali$Madiun$(3.755$km2) I$DAS$Pantura$(1.441$km2) I$DAS$Kali$Lamong$(720km2) B.'Potensi'dan'Prioritas'Pengembangan'DAS Nama'DAS DAS$Bengawan$Solo$dan$ DAS$Pantura DAS$Kali$Madiun,$DAS$ Kaligrundu,$dan$DAS$ Kalilorog DAS$Kali$Lamong DAS$Bengawan$Solo$Hulu Potensi'Unggulan Pertanian$tanaman$pangan,$ perikanan,$industri,$pariwisata,$ perdagangan$jasa,$ pertambangan Pertanian$tanaman$pangan,$ industri,$perikanan Perdagangan$Jasa,$industri,$ perikanan,$pariwisata,$ pertanian$ Industri,$pariwisata,$tanaman$ pangan,$perdagangan Prioritas'Pengembangan Mengembangkan$kawasan$ industri$di$kawasan$utara,$ mengembangkan$industri$ perikanan$blondong,$eksploitasi$ sumber$daya$tambang,$ menumbuhkan$pariwisata Mengembangkan$kawasan$ industri$di$madiun,$optimalisasi$ pariwisata$alam Aglomerasi$pemukiman$kota,$ meningkatkan$produksi$ perikanan$tambak,$kawasan$ budidaya$tanaman$pangan Mengembangkan$kawasan$ industri,$mengembangkan$ potensi$wisata,$ mempertahankan$kawasan$ tanaman$pangan
Relasi Adalah hubungan antara suatu himpunan entitas dengan himpunan entitas lainnya Simbol yang digunakan adalah belah ketupat Contoh :
Atribut Relasi Uraian tentang suatu hubungan Berguna untuk menjelaskan suatu hubungan Jika atribut hubungan cukup banyak maka perlu dipertimbangkan untuk menjadi entitas baru
Derajat Relasi Unary relationship / rekursif relationship Hanya melibatkan 1 entitas / berderajad 1
Derajat Relasi Binary Relationship Melibatkan 2 entitas / berderajad 2
Derajat Relasi Ternary Relationship Melibatkan 3 entitas / berderajad 3
Cardinality Ratio Constraint (1) Menyediakan batasan jumlah relasi suatu entitas dengan entitas lainnya Jenis rasio kardinalitas : One to one (1 : 1) One to many (1 : M) Many to many (M : M)
Kardinalitas Maksimum & Minimum Batasan Kardinalitas : Kardinalitas minimum Jumlah contoh atribut yang harus ada agar obyek valid. Biasa diwakilkan dengan angka 0 dan 1. 0 à atribut tidak diharuskan memiliki nilai 1 à atribut harus memiliki nilai! Kardinalitas maksimum Angka maksimum contoh atribut yang bisa dimiliki obyek. Biasa diwakilkan dengan angka 1 & N. 1 à atribut dapat memiliki tidak lebih dari satu nilai N à atribut dapat memiliki banyak nilai, angka absolut tidak ditentukan
Contoh K. Maks & Min. DepartmenName (1.1) Diperlukan persis satu nilai untuk nama departemen PhoneNumber (1.N) Departemen diharuskan memiliki paling tidak 1 nomor telepon, tetapi dapat memiliki banyak nomor FaxPhoneNumber(0.1) Departemen dapat memiliki 0 atau 1 nomor fax
Jenis Relasi 1 : 1
Jenis Relasi 1 : M
Jenis Relasi M : M
Partisipasi Hubungan Adalah partisipasi atau keterlibatan tiap anggota entitas dalam membentuk instansiasi hubungan Ada 2 jenis partisipasi : Full / total participation / wajib Keberadaan suatu entitas tergantung pada hubungan dengan entitas lainnya. Partial participation / tidak wajib Keberadaan suatu entitas tidak tergantung pada hubungan dengan entitas lain
Full & Partial Participation Simbol :
Entitas Lemah & Kuat Entitas kuat : keberadaannya tidak tergantung entitas lain Entitas lemah : keberadaannya sangat tergantung keberadaan entitas lain Simbol :
Transformasi ER ke Relational Database Atribut Tunggal
Transformasi ER ke Relational Database Atribut Composit
Transformasi ER ke Relational Database Atribut Multivalue
Transformasi ER ke Relational Database Pemetaan hubungan 1 : M
Transformasi ER ke Relational Database Pemetaan hubungan M : M
Transformasi ER ke Relational Database Pemetaan Hubungan M : M
Istilah dalam model relasional