Basis Data (Database) Entity-Relationship Model (ERM)
• Entity-Relationship (ER) pada awalnya disampaikan oleh PETER di tahun 1976 sebagai suatu cara untuk menyatukan jaringan dan menggambarkan relational database. • ER adalah sebuah model konseptual dari data yang menggambarkan keadaan sebenarnya dari entities dan relationship.
• Hasil akhir dari proses ERM adalah entityrelationship diagram (ERD). • Model data membutuhkan notasi grafik untuk mempresentasikannya. • ERD adalah tipe dari model data konseptual atau semantic data model. • Ada 2 (dua) jenis penggambaran ERD, yaitu: – Binary relationships (ada lebih dari satu entitas) – Recursive relationships (hanya ada satu entitas).
Macam-macam relasi antar entitas didalam ERD binary relationships • One-to-one. Satu elemen di entitas (A) tepat berasosiasi dengan satu elemen di entitas (B). Contoh: Pegawai dengan Workstation. • One-to-many. Satu elemen di entitas (A) berasosiasi dengan nol, satu atau lebih elemen yang ada di entitas (B), tetapi untuk satu elemen di entitas (B) hanya berelasi dengan satu elemen di entitas (A). Contoh: Departemen dan Projek. • Many-to-many. Satu elemen di entitas (A) berasosiasi dengan nol, satu atau lebih elemen di entitas (B), dan satu elemen di entitas (B) berasosiasi dengan nol, satu atau lebih elemen di entitas (A). Contoh: Pegawai dengan Projek.
One-to-one, one-to-many dan many-to-many sering disebut dengan derajat kardinalitas (cadinality degree). The Cardinality mendefinisikan relasi di antara sejumlah entitas.
Notasi Kardinalitas berdasarkan Crows foot:
1
0 atau 1
1 atau lebih
0,1 atau lebih
banyak
Notasi Kardinalitas lainnya 1
M
Satu
Satu atau lebih (many)
Lambang M (many) bisa digantikan dengan N.
Lambang Notasi ERD • Entitas (Entity) • Relasi (Relationship) • Atribut (Attribute) • Gartis Penghubung (Link links)
Entitas
Relasi
Atribut
Penghubung
Entitas (Entities) • Entity adalah sebutan lain dari record • Entities atau set entity adalah sebutan lain dari file.
Tipe Entitas • • • • •
Aturan (Roles) Kejadian (Events) Lokasi (Locations) Sesuatu yang nyata (tangible things) Konsep (Concepts)
Contoh Entitas • • • • • • • •
Pegawai Aturan penggajian Buku Nyayian Teori matematika Uang kuliah Mata kuliah Dan sebagainya.
Klasifikasi Entitas • Mandiri (Independent). Yang tidak menggantungkan diri pada entitas lain nya untuk mengidentifikasinya. • Bergantung (Dependent). Entitas yang tergantung pada entitas lainnya untuk mengidentifikasinya. Dengan kata lain, keberadaannya tidak ada artinya tanpa adanya independent entity).
Entity occurance (disebut juga dengan instance) adalah kejadian individual dari sebuah entitas. Kejadian tersebut dianalogikan sebagai sebuah baris didalam tabel relasional.
Setiap entitas (kecuali entitas lemah) harus memiliki kunci atribut (entity`s primary key). Entitas lemah adalah entitas yang keberadaanya tergantung dari entitias lain.
Contoh • Di Enterprise SEKOLAH ada entitas yang wajib ada, yakni MURID. Karena ada sebentuk laporan dari pihak sekolah ke pihak penanggung-jawab murid diluar kelas, dalm hal ini orang-tua atau wali, maka ada ORANG_TUA. Keberadaan entitas ORANG_TUA tergantung dari keberadaan entitas MURID. Sebuah weak entity set digambarkan dengan garis kotak tebal (bold retangle) atau garis ganda kotak yang berhubungan dengan garis penghubung menuju ke relasi (dengan lambang belah ketupat) ORANG_TUA
Relasi (Relationships) • Relasi adalah keterhubungan atau keterkaitan antara satu entitas dengan satu atau lebih entitas lain. Contoh : DOSEN dan MAHASISWA. • Kardinalitas (cardinality) didefinisikan sebagai banyaknya kejadian (occurence) dari sebuah entitas atas satu kejadian dari entitas lain yang berhubungan.
Menentukan derajat kardinalitas • Contoh: DOSEN dan MAHASISWA. Keadaan Awal: DOSEN
Mengajar
MAHASISWA
Letakkan angka 1 di antara DOSEN dan Mengajar, selanjutnya dibaca : “Seorang DOSEN mengajar .... MAHASISWA”. Titik-titik itu berisi angka 1 atau huruf M yang menandakan lebih dari 1. tentu saja seorang DOSEN mengajar banyak (lebih dari 1 yang dilambangkan dengan M) MAHASISWA, sehingga gambarnya menjadi:
Menentukan derajat kardinalitas • Contoh: DOSEN dan MAHASISWA. DOSEN
1
Mengajar
M
MAHASISWA
Belum selesai, sekarang, baca terbalik “Seorang MAHASISWA diajar oleh ... DOSEN”. Titik-titik itu juga harus diisi 1 atau M. Tentulah, dalam kejadian sehari-hari, umumnya kalimat tersebut akan berbunyi : “Seorang MAHASISWA akan diajar oleh banyak DOSEN” (Karena ia mengambail banyak mata kuliah) sehingga gambarnya menjadi: DOSEN
1 M
Mengajar
M 1
MAHASISWA
Selanjutnya, pilih yang terbesar antara yang diatas garis penghubung dan yang ada di bawah girs penghubung, hasilnya:
Menentukan derajat kardinalitas • Contoh: DOSEN dan MAHASISWA. DOSEN
M
Mengajar
M
MAHASISWA
Tampaklah, bahwa relasi antara DOSEN dan MAHASISWA dalam proses belajarmengajar adalah many-to-many. Dalam kaidah matematik, M = M. Pertanyaan yang muncul adalah, “Jika nilai M = 10, apakah pasti 10 DOSEN mengajar 10 MAHASISWA?” karena tidak maka salah satu penulisan kardinalitas (many diganti dengan N, dan penulisannya disejajarkan diatas garis penghubung. Gambar Akhirnya adalah :
DOSEN
M
Mengajar
N
MAHASISWA
Atribut (Attribute) • Atribut atau Field adalah suatu karakteristik yang biasa untuk menggambarkan seluruh atau sebagian dari record. • Kata lain dari atribut adalah elemen data. Contoh : elemen data untuk MAHASISWA terdiri dari Nama, Alamat, Tempat dan Tanggal Lahir, NIM dan sebagainya; Yang diperlukan di suatu universitas.
Primary Key Primary Key (Kunci Primer) atau Pengidentifikasi (Identifier) merupakan sebuah atribut atau kombinasi dari beberapa atribut yang dapat mengidentifikasi secara unik (tunggal dan hanya satu) dari seluruh record yang ada. Atribut dengan kunci primer
*NIM
Atau
NIM
Atribut dengan kunci tamu
**NIM
Atau
NIM
Atribut di Model ER • Multi-valued(Bernilai banyak) • Composite (Bernilai banyak) • Derived (Perolehan)
Multi-valued (Bernilai banyak) Digambarkan dengan elips bergaris ganda (double-line ellips) Atribut Multivalue HOBI
Composite (Bernilai banyak) Composite adalah atribut yang memiliki dua atau lebih atribut (lain) yang masing-masing berkontribusi padanya. Digambarkan sebagai atribut yang dihubungkan dengan atribut utamanya. Composite Attribute NM_DEPAN
NM_TENGAH
NAMA
NM_AKHIR
Derived (Perolehan) derived adalah atribut yang nilainya tergantung pada atribut lain. Digambarkan dengan garis terputus-putus membentuk elips(dashed ellipses). Atribut Derived IPK
Generalization Kadang kala dua atau lebih entitas memiliki subtipe yang lebih khusus dari tipe entitas pada umumnya. Kekhususan tersebut karena di dunia nyata mereka memiliki kemiripan (similarity) kategori sehingga dapat digambarkan secara general (generalization) menuju ke tingkat lebih tinggi yang disebut dengan supertype atau entitas generik (generic entity).
Contoh Programmers dan Pemasar memiliki kemiripan karena mereka adalah tipe dari pegawai (supertype) di perusahaan software. Untuk mengindikasikan ini, dilambangkanlah segitiga (triangle) dengan tulias “ISA” di dalamnya. Di atas lambang yang bertuliskan ISA disebut dengan entitas high-level dan yang di bawah disebut dengan entitas lower-level atau subtype.
Generalization NAMA
ALAMAT
*NO_KTP
ORANG
ISA
MAHASISWA
DOSEN
STAF
*NIM
*NID
*NOPEG
Aggregation Sebuah relasi yang keseluruhannya berpartisipasi dengan entitas dapat diperlakukan sebagai sebuah entitas. Selanjutnya entitas yang terbentuk tersebut direlasikan kembali dengan entitas lain. Proses semacam ini disebut sebagai koleksi atau pengumpulan (Aggregation). Aggregation digambarkan dengan kotak yang garisnya terputus-putus (dotted rectangle) mengelilingi aggregated entities dan relationships.
Aggregation Relationship NAMA MAHASISWA
NM_MK AMBIL
*NPM
MT_KULIAH *KD_MK
IKUT
NM_PRAK
PRAKTIKUM *SKS_PRAK
*KD_PRAK
SKS
Degree of a Relationship Derajat dari relasi adalah banyaknya entitas yang berasosiasi dengan relasi, Relasi N-ary adalah bentuk umum untuk derajat n. Khusus di binary dan ternary, derajatnya adalah 2 dan 3, asosiasi antara dua entitas adalah yang biasa terjadi di dunia nyata. Sebuah pengulangan (recursive) di binary relationship terjadi ketika sebuah entitas berelasi dengan dirinya sendiri.
Sebuah entitas berelasi dengan dirinya sendiri M PEMAIN
1
PILIH KAPTEN
Sebagai contoh, “Pemain sepak bola memilih rekannya sendiri menjadi kapten kesebelasan”.
Sebuah ternary relationship menggunakan tiga entitas dan digunakan ketika binary relationship tidak cukup untuk menggambarkannya. Banyak model hanya menggunakan binary relationship. Relasi ternary atau n-ary dibuat dalam dua atau lebih relasi binary.
Contoh Penggambaran Diagram ER (1) Penggambaran Toko Elektronik. Maka hal-hal yang perlu disiapkan adalah: 1. Entitas. Jika entitas kita konotasikan sebagai master file, apa saja master file yang ada ditoko tersebut. Kita peroleh ada. a) b) c) d) e)
PEGAWAI BARANG DISTRIBUTOR PEMBELI RAK tempat meletakkan barang.
Contoh Penggambaran Diagram ER (2) Penggambaran Toko Elektronik. Maka hal-hal yang perlu disiapkan adalah: 2. Relasi. Apa saja relasi yang terjadi di toko tersebut. Kita peroleh relasinya adalah a) b) c) d)
PEMBELI membeli BARANG DISTRIBUTOR menyuplai BARANG PEGAWAI menjual BARANG BARANG diletakkan di RAK.
Contoh Penggambaran Diagram ER (3) Penggambaran Toko Elektronik. Maka hal-hal yang perlu disiapkan adalah: 3. Atribut. Atribut-atribut yang diperlukan harus ada di setiap entitasnya. Misal : Untuk entitas PEGAWAI, atribut-atributnya adalah: a) b) c) d)
NOKAR (nomor karyawan, sebagai kunci primer) NAMA ALAMAT TGL_MASUK
Contoh Penggambaran Diagram ER (4) Untuk entitas BARANG, atribut-atributnya adalah: a) b) c) d) e) f) g) h)
KD_BRG (kode barang, sebagai kunci primer) NM_BRG SATUAN HARGA_SATUAN STOCK MEREK KD_DISTR JENIS_BRG
Contoh Penggambaran Diagram ER (5) Untuk entitas DISTRIBUTOR, atribut-atributnya adalah: a) b) c) d) e)
KD_DIST (kode distributor, sebagai kunci primer) NM_DIST ALAMAT_DIST NM_CONTACT (nama contact person) NM_PEMILIK
Contoh Penggambaran Diagram ER (6) Untuk entitas PEMBELI, bila memang perlu dicatat biodatanya (ada sistem keanggotaan), maka atribut-atributnya adalah:
a) KD_PEMBELI (kode pembeli, sebagai primary key) b) NM_PEMB c) ALAMAT_PEMB
Tetapi apabila tidak ada sistem keanggotaan maka atribut yang bisa digunakan adalah
a) NOMOR KUITANSI
Contoh Penggambaran Diagram ER (7) Untuk entitas RAK, atribut-atributnya adalah: a) KD_RAK (kode rak, sebagai kunci primernya) b) NOMOR_RAK c) LOKASI (lokasi rak)
Setelah semua selesai maka langkah berikutnya adalah menggambarkan transaksi atau relasi yang terjadi: 1. Relasi pertama untuk PEMBELI membeli BARANG NO_KWITANSI
JML_BAYAR
NM_BRG
KD_DISTR
BARANG
STOCK
KD_BRG
PEMBELI
M
MEMBELI
N
JENIS_BRG TGL_BELI
SATUAN
MEREK
Notasi ER (ER Notation) lainnya Sebetulnya tidak ada standar dalam menggambarkan objek data di diagram ER. Setiap metodologi model menggunakan notasi sendirisendiri. Notasi asli yang digunakan oleh Chen secara luas digunakan di buku-buku pelajaran dan jurnaljurnal, tetapi jarang dilihat di publikasi umum lainnya yang non-akademis. Kini banyak notasi yang digunakan. Tiga diantaranya adalah : – Bachman – Crow`s foot – IDEFIX
Berikut notasi dan catatan lain yang dikemukakanoleh Martin. Simbolsimbol dasar yang digunakan untuk menggambarkan ER adalah:
– Entitas. Adalah yang dilambangkan dengan kotak (retangle). Nama kotak adalah entitas. Nama entitas berupa sebuah kata benda (singular noun) – Relasi. Direpresentasikan dengan garis tebal (solid line) yang menghubungkan dua entitas. Nama dari relasi ditulis di atas garis tersebut. Nama relasi merupakan kata kerja (verb). – Attribut. Jika ikut digambarkan, dimasukkan di dalam kotak entitas. Atribut yang digunakan sebagai pengidentifikasi record (primary key) ditulis dengan garis bawah (underlined). Nama atribut berupa kata benda tunggal (singular noun). – Kardinalitas dari kata many direpresentasikan dengan akhir garis (line ending) di crow`s foot. Jika crow`s foot dihilangkan maka kardinalitasnya bernilai satu. – Keberadaan (existance) direpresentasikan dengan penempatan sebuah lingkaran atau garis tegak lurus pada garis. Keberadaan yang merupakan keharusan (mandatory existance) digambarkan dengan batang. Keberadaan yang boleh ada dan boleh tidak ada (optional existance) diperlihatkan dengan menempatkan lingkaran berikutnya menuju entitas yang opsional.
Contoh ERD versi Martin Entity Name
Relationship Name
Departemen DeptID
one
Manages
many
Mandatory existance
ProjectID
Attribute Name
Relationship Entity
Project
Optional existance
Peran di Diagram E-R (1) Fungsi yang diperankan oleh entitas di relationship disebut dengan peran(role). Peran bisanya digambarkan secara eksplisit dan tidak spesifik. Meraka akan berguna jika apa yang diinginkan di dalam relationship diklarifikasi terlebih dulu. Misalkan pada relasi : “MAHASISWA mengambil MATAKULIAH.” kata “Mengambil” harus di klarifikasi terlebih dahulu, apakah mahasiswa yang bersangkutan mengambil mata kuliah pertama kali atau sudah mengulang (jika perbedaan ini nantinya akan diperlakukan secara berbeda, misalkan kelas yang dibatasi jumlah mahasiswanya, dan sebagainya).
Peran di Diagram E-R (2) Peran tersebut akan sangat berguna ketika relasi yang dikehendaki membutuhkan klarifikasi. Sebagai contoh, entitas dari relasi yang tidak dibedakan, relasi works-for berikut ini dilakukan oleh pasangan dari pekerja (employee), yaitu manager dan pegawai biasa (worker). Di E-R diagram hal ini dapat digambarkan dengan cara menuliskan di garis penghubung antara entitas dengan relationships.
E-R diagram dengan role indicators Employee-name
Phone-number
Manager WORKSFOR
EMPLOYEE Worket
Weak Entity Sets di E-R Diagrams Sebuah entitas lemah digambarkan dengan kotak dengan garis ganda. Misalkan, keberadaan entitas “orang-tua” sangat tergantung (dependent) pada keberadaan entitas kuat (strong entity set) “mahasiswa”. *NIM
MAHASISWA
nama
M
Nm_ortu 1 Memiliki
E-R diagram dengan weak entity set
ORANG-TUA
Nonbinary Relationships Relasi bisa saja tidak hanay bercabang dua (non-binary relationship), misalkan bercabang tiga seperti contoh berikut ini: MAHASISWA
RUANGKULIAH
DOSEN
MATA_KULIAH E-R diagram dengan ternary relationship
E-R diagram tersebut menggambarkan bahwa MAHASISWA ketika berhubungan dengan DOSEN dan MATA_KULIAH (dalam proses belajar-mengajar) membutuhkan RUANG-KULIAH. Begitu juga dengan DOSEN, ketika berhubugan dengan MAHASISWA dan MATA KULIAH (dalam proses belajar mengajar) membutuhkan ruang kuliah.
Software Penggambar ER Diagram • • • • • • • •
ConceptDraw Dia Kivio PowerDesigner Microsoft Visio AllFusion Erwin Data Modeler ER/Studio SmartDraw
Relationships Sebuah relasi (relationship) adalah sebuah asosiasi (hubungan) di antara dua atau lebih tabel. Relasi di ekspresikan di nilai data dari kunci primer (primary key) dan kunci tamu (foreign key). Sebuah primary key adalah seubah atau lebih kolom di dalam tabel yang memiliki nilai unik untuk mengidentifikasi setiap baris didalam sebuah tabel. Foreign key adalah sebuah atau lebih kolom yang nilainya smaa dengan primary key di tabel lain. Kita dapat berkata bahwa sebuah foreign key adalah salinan dari primary key dari tabel lain yang berelasi. Relasi dibuat diantara dua tabel yang saling berelasi dengan mencocokkan nilai dari foreign key di satu tabel dengan primary key di tabel lainnya.
Keys Key adalah dasar dari konsep relational databases karena dengan itu berbagai tabel bisa saling berelasi di antara mereka didalam database. Keberhasilan relational database tergantung dari kemampuan primary key untuk mengidentifikasi baris yang spesifik di dalam sebuah tabel. Keberhasilan untuk mengaitkan (merelasikan) antar satu tabel dengan tabel lain membutuhkan foreign key yang tepat dan konsisten dalam mereferensikan nilai-nilai dari primary key.
Data Integrity (Integritas Data) Data integrity adalah ketepatan dan ke konsistenan dalam navigasi dan memanipulasi tabel-tabel di dalam database. Berikut dua kaidah dasar untuk memastikan data integrity: • Entity integrity • Referential integrity
Entity Integrity Entity integrity memiliki kaidah, nilai dari primary key-nya tidak boleh kosong (null value). yang dimaksud dengan nilai kosong berbeda dengan spasi (blank). Dalam variabel string. Nilai kosong dilambangkan dengan ‘’ dan nilai blank dilambangkan dengan ‘ ‘. Karena primary key digunakan untuk mengidentifikasi baris secara unik di relational table, nilainya harus selalu khusus dan tidak pernah tidak diketahui. Kaidah integrity membutuhkan operasi-operasi insert, update, dan delete untuk memelihara keunikan dan keberadaanya dari seluruh primary key. Aturan dari referential integrity adalah jika relational table memiliki foreign key, maka nilai foreign key tersebut juga harus tidak kosong (not null) atau harus cocok dengan primary key yang ada di entitasnya.