QUIZ 1 Introduction to Database Page 1
BASIS DATA (BS203) MODEL ENTITY RELATIONSHIP Bagian I k_doroedi@yahoo.com fb: NDoro Edi Page 2
Outline Konsep model data & basis data Konsep Dasar Model ER: - Entitas & Himpunan Entitas - Atribut - Tipe-tipe Atribut - Relasi & Himpunan Relasi - Peran - Kardinalitas/Derajat Relasi Constraints Keys Page 3 3
Konsep Model Data Definisi Model Data : Kumpulan perangkat konseptual untuk menggambarkan : Data Hubungan data Semantik (makna) data Batasan Data Page 4 4
2 Model Data, yaitu Entity - Relationship Model (E-R) Relational Model Page 5 5
Konsep Model Basis Data Model E-R Semesta Data di dunia nyata Diagram Data Page 6 6
Model Entity-Relationship Definisi: Model ER adalah suatu teknik pemodelan data yang memandang dunia nyata sebagai sesuatu yang terdiri dari obyek-obyek dasar, yang disebut entitas, dan relasi antar obyek tersebut Model ini sangat berguna dalam memetakan kebutuhan spesifikasi desai n struktur lojik basis data dari suatu organisasi Model ER terdiri dari 3 komponen dasar: himpunan entitas, himpunan relasi, dan atribut Page 7
3 komponen dasar Entitas Relasi Atribut Page 8
Konsep Dasar Model ER Entitas & Himpunan Entitas Atribut Tipe-tipe Atribut Relasi & Himpunan Relasi Peran Kardinalitas/ Derajat Relasi Page 9
Entitas Definisi Entitas: Entitas adalah suatu benda atau obyek di dalam dunia nyata yang dapat dikenali secara berbeda dari obyek yang lain Contoh: Setiap mahasiswa di kampus Maranatha adalah entitas Setiap entitas memiliki sekumpulan sifat (properties). Beberapa dari sifat ini ada yang dapat mengidentifikasi suatu entitas secara unik Contoh: setiap mahasiswa memiliki mahasiswa_nrp yang nilainya mampu mengidentifikasi seorang mahasiswa secara unik Page 10
Himpunan Entitas Definisi Himpunan Entitas: Himpunan Entitas adalah sekumpulan entitas yang memiliki tipe yang sama dan berbagi sifat-sifat (atribut) yang sama. Contoh: Sekumpulan orang yang belajar di kampus Maranatha adalah suatu himpunan Mahasiswa Sekumpulan orang yang merupakan customer suatu bank dapat disebut sebagai himpunan nasabah Page 11
Konsep Dasar Model ER Entitas & Himpunan Entitas Atribut Tipe-tipe Atribut Relasi & Himpunan Relasi Peran Kardinalitas/ Derajat Relasi Page 12
Atribut Suatu entitas direpresentasikan oleh sekumpulan atribut. Atribut adalah sifat-sifat deskriptif yang dimiliki oleh setiap anggota dari suatu himpunan entitas. Contoh atribut untuk himpunan entitas mahasiswa: mahasiswa_nrp, mahasiswa_nama, mahasiswa_kota Setiap entitas memiliki nilai untuk setiap atributnya. Misalnya, suatu entitas mahasiswa memiliki nilai-nilai atribut sbb: Mahasiswa_nrp = 1373002 Mahasiswa_nama = Yohanes Mahasiswa_kota = Bandung Page 13
Atribut (2) Untuk setiap atribut, terdapat sekumpulan nilai-nilai yang diperbolehkan, yang disebut sebagai domain atau value set. Contoh: 1. Domain untuk atribut mahasiswa_nama: String, panjangnya 30 2. Domain untuk atribut customer_id: String, dengan bentuk C-n dimana n merupakan bilangan integer positif 3. Domain untuk atribut kredit_nomor: String,dengan bentuk K-n dimana n merupakan bilangan integer positif Page 14
Jenis-jenis Atribut Simple & Composite Attribute Single-valued & Multivalued Attribute Derived Attribute Page 15
Simple & Composite Attribute Atribut simpel / sederhana: Atribut atomik yang tidak dapat dibagi lagi menjadi subbagian yang lebih kecil. Misal: mahasiswa_nrp Atribut komposit: Contoh: Atribut yang dapat dibagi lagi menjadi sub-sub atribut yang lebih kecil, yang mempunyai makna. Atribut nama dapat didesain sebagai atribut komposit yang terdiri atas nama_depan, nama_tengah, nama_belakang Atribut alamat terdiri atas jalan, kota, provinsi, kode_pos Atribut komposit dapat juga memiliki tingkatan. Contoh: Komponen atribut alamat_jalan dapat dibagi menjadi nama_jalan, nomor_blok, nomor_rumah Page 16
Contoh Atribut Komposit nama nama_depan nama_belakang nama_tengah Contoh Atribut Komposit dengan tingkatan alamat jalan kota provinsi Kode_pos nama_jalan Nomor_blok Nomor_rumah Page 17 1
Single-valued & Multivalued Attribute Atribut single-value hanya memiliki satu nilai tunggal. Contoh: mahasiswa_nrp, kredit_nomor, rekening_saldo, kredit_jumlah Atribut Multivalue memiliki sekumpulan nilai. Contoh: Entitas pegawai memiliki atribut nomor_telepon. Atribut ini dapat diberi suatu batas bawah dan batas atas, misalnya nomor_telepon seorang pegawai memiliki batas bawah=0, batas atas =2. Page 18
Contoh Atribut Multivalue Misal: Pegawai A, memiliki 2 telepon: telp rumah dan HP telepon Pegawai Page 19
Derived Attribute Nilai dari atribut derived dapat diambil dari nilai atribut yang lain. Contoh: Seorang mahasiswa mempunyai atribut mahasiswa_usia. Apabila mahasiswa tersebut memiliki tanggal_lahir, maka mahasiswa_usia merupakan atribut derived yang nilainya diperoleh dari perhitungan tanggal lahir mahasiswa_usia = tanggal sistem tanggal_lahir Page 20
Contoh Atribut derived tanggal_lahir usia mahasiswa Page 21
Atribut NULL Not Applicable (Nilai tidak ada karena atribut tidak dipakai) Contoh: no_fax, gelar, dll. Missing (Nilai ada tetapi hilang) Contoh: berat_badan Not Known (Nilai tidak diketahui apakah ada atau tidak) Contoh: no_telepon Page 22
E-R Diagram Dengan Atribut Komposit, Atribut Bernilai Banyak, dan Atribut Turunan Page 23 2
E-R Diagram Dengan Atribut Bernilai Banyak dan Atribut Turunan Turunan dari Date_Employed & Tgl hari ini Atribut bernilai banyak: pegawai dapat mempunyai beberapa skill Page 24
E-R Diagram Dengan Atribut Bernilai Banyak dan Atribut Komposit Page 25 2
Konsep Dasar Model ER Entitas & Himpunan Entitas Atribut Tipe-tipe Atribut Relasi & Himpunan Relasi Peran Kardinalitas/ Derajat Relasi Page 26
Himpunan Relasi Relasi adalah hubungan di antara beberapa entitas Himpunan relasi adalah sekumpulan relasi yang memiliki tipe yang sama Contoh: Entitas customer dan entitas kredit memiliki relasi meminjam Page 27
Contoh kasus: basis data bank dengan entitas nasabah dan kredit Page 28
Contoh kasus: Himpunan Relasi Meminjam Page 29
Relasi Rekursif Entitas yang dihubungkan oleh suatu relasi (relationship) tidak harus menunjuk pada entitas yang berbeda. Entitas yang sama dapat ikut serta lebih dari satu kali di dalam relasi dengan peran (role) yang berbeda. Page 30 3
Peran pada Entitas (entity s role) Definisi : Fungsi yang diperankan oleh suatu entitas di dalam suatu relasi (menunjukkan arti relasi). Contoh: relasi bekerja-untuk Seorang staf pegawai bekerja untuk seorang manajer, dan manajer tersebut bekerja juga untuk manajer atasannya, dst Page 31 3
Relasi bekerja-untuk staf Pegawai manajer bekerja-untuk Contoh Kasus: Peran pertama seorang pegawai bernama Maradona: Staf Peran kedua Maradona: Manajer Label manajer dan staf dinamakan peran; fungsi ini menjelaskan sebagai apa entitas Pegawai berinteraksi lewat relasi bekerja-untuk Page 32 3
Constraints Suatu skema ER dapat memiliki batasanbatasan (constraints) yang harus dipatuhi. Ada 2 jenis contraints: - Mapping cardinalities - Participation constraints Page 33 3
Mapping Cardinalities DEFINISI Cardinal Number = bilangan yang menunjukan jumlah sesuatu, misal 1, 2, atau 3 Ordinal Number = bilangan yang menunjukan urutan, misal kesatu, kedua, atau ketiga. Mapping = Pemetaan Mapping Cardinalities Jumlah Pemetaan Biasa disebut juga sebagai Cardinality Ratio Definisi lengkap: Mapping Cardinalities adalah bilangan yang mengekspresikan jumlah entitas yang mana entitas lain dapat berhubungan melalui suatu himpunan relasi. Page 34 3
Mapping Cardinalities (2) Untuk setiap himpunan relasi R antara himpunan entitas A dan himpunan entitas B, pasti memiliki salah satu dari mapping cardinalities sbb: One to one (Satu ke Satu) One to many (Satu ke Banyak) Many to one (Banyak ke Satu) Many to many (Banyak ke Banyak) Page 35 3
Mapping Cardinality: One to One Setiap entitas di A berhubungan dengan paling banyak dengan satu entitas di B, dan begitu juga sebaliknya, setiap entitas di B berhubungan dengan paling banyak dengan satu entitas di A. Contoh kasus di UK Maranatha: Seorang mahasiswa hanya memiliki satu rekening bank BCA Maranatha. Suatu rekening bank di BCA Maranatha hanya dapat dimiliki oleh seorang Mahasiswa Page 36 3
Contoh kasus : One to One Page 37
Mapping Cardinality: One to Many & Many to One Setiap entitas di A berhubungan dengan berapapun (nol atau lebih) entitas di B. Namun, setiap entitas di B hanya dapat berhubungan paling banyak dengan satu entitas di A. Contoh kasus di perpustakaan Maranatha: Seorang mahasiswa dapat meminjam 0,1, atau beberapa buku. Namun, suatu buku hanya dapat dipinjam oleh seorang mahasiswa Page 38 3
Contoh Kasus: Many to One Page 39
Mapping Cardinality: Many to Many Setiap entitas di A berhubungan dengan berapapun (nol atau lebih) entitas di B, dan sebailknya, setiap entitas di B berhubungan dengan berapapun (nol atau lebih) entitas di A. Contoh kasus di UK Maranatha: Seorang mahasiswa dapat mengambil satu atau beberapa mata kuliah, dan setiap mata kuliah dapat diambil oleh saru atau beberapa mahasiswa. Page 40 4
Contoh Kasus: Many to Many Page 41
RELASI REKURSIF & KARDINALITAS Suami Pekerja Orang Menikah Pegawai Diatur Istri Manager Mata Kuliah Prasyarat Page 42
Atribut Deskriptif (Descriptive Attributes) Himpunan relasi dapat pula mempunyai atribut. Contoh: Mhsw buku tgl_pinjam Mahasiswa Meminjam Buku Tgl pinjam Page 43 4
Kardinalitas dan Desain ER Kardinalitas mempengaruhi desain ER. Contoh: o Andaikan 1 anggota boleh meminjam banyak buku tetapi 1 buku hanya boleh dipinjam oleh 1 anggota saja lalu dibuang o Andaikan 1 anggota boleh meminjam hanya 1 buku dan buku tsb. hanya boleh dipinjam oleh 1 anggota saja lalu dibuang Page 44 4
Atribut Relasi Atribut himpunan relasi dapat dipindahkan ke entitas yang berpartisipasi untuk relasi One to One, One to Many, dan Many to One. Ke entitas yang mana? Banyak atau Satu? Notes : TIDAK BERLAKU untuk relasi Many to Many. Page 45 4
Participation Constraints Participation Constraints seringkali juga disebut sebagai suatu derajat relasi. Total Participation Partial Participation apabila setiap/semua entitas di E berpartisipasi dalam relasi R. Apabila tidak semua/ hanya beberapa saja entitas di E yang berpartisipasi dalam relasi R. Page 46
Contoh Kasus: customer meminjam - kredit Pada suatu Bank, seorang customer dapat meminjam kredit. Tapi tidak semua customer harus meminjam kredit. Artinya, setiap entitas kredit berhubungan minimal dengan satu customer. Dengan kata lain, partisipasi kredit pada relasi meminjam adalah TOTAL. Di lain pihak, seorang customer tidak perlu harus meminjam kredit. Dengan kata lain, partisipasi customer pada relasi meminjam adalah PARTIAL. Page 47 4
Contoh Kasus: customer meminjam - kredit PARTISIPASI PARTIAL PARTISIPASI TOTAL Page 48 4
PARTISIPASI TOTAL/SEBAGIAN Contoh: Mahasiswa orang tua Buku perpustakaan mahasiswa Mahasiswa mata kuliah Ibu anak Suami istri Mata kuliah ruang kelas Pelanggan membuat order Supplier men-supply barang Page 49 4
Keys (kunci) IDE DASAR: Bagaimana kita dapat membedakan secara unik suatu entitas dengan entitas yang lainnya di dalam satu himpunan entitas? Kita harus memiliki suatu cara agar suatu entitas di dalam himpunan entitas dapat dibedakan satu dengan yang lainnya Secara konseptual, setiap individu entitas adalah tunggal (distinct). Namun, dari sudut basis data, perbedaan antar entitas ini harus ditunjukkan lewat atribut-atributnya. Dengan kata lain, agar kita dapat membedakan suatu entias dari entitas yang lain, maka tidak diperbolehkan ada dua entitas yang semua nilai atributnya persis sama. Bagaimana caranya? Jawabannya adalah dengan menggunakan KEY. Page 50
Key (2) Key adalah satu atau gabungan dari beberapa atribut yang dapat membedakan semua baris data (row) dalam tabel secara unik. Key memampukan kita untuk mengidentifikasi himpunan atribut yang dapat membedakan entitas yang satu dengan yang lainnya. Key berlaku juga untuk relasi Page 51 5
Jenis-jenis Key Super Key Candidate Key Primary Key Alternate Key Page 52 5
Super Key (Kunci Super) Definisi: himpuan satu atau lebih atribut yang dapat membedakan setiap baris data dalam sebuah tabel secara unik. Mungkin ada lebih dari 1 Superkey pada sebuah tabel Contoh: Entitas Customer Super key: customer_id Super key: {customer_id, customer_name} Bukan Super key: customer_name Page 53
TABEL MAHASISWA NRP Nama Alamat Tgl_Lahir 0472001 Ria Jl. Badak 2 11/09/85 0472002 Riny Jl. Sapi 3 12/01/85 0472003 Erica Jl. Macan 1 09/09/84 0472004 John Jl. Riau 3 01/03/85 0472005 Lucas Jl. Duku 4 04/03/85 0472006 Paul Jl. Badak 5 01/03/85 0472007 Philip Jl. Riau 30 01/03/85 0472008 Mary Jl. Riau 3 03/03/83 Page 54 5
Super Key Contoh Superkey pada tabel Mahasiswa: NRP Nama, jika kita bisa menjamin tidak ada nilai yang sama untuk atribut ini {NRP, Nama} {NRP, Nama, Alamat} {NRP, Nama, Alamat, Tgl_Lahir} Page 55 5
Candidate Key (Calon Kunci) Definisi: kumpulan atribut minimal yang dapat membedakan setiap baris data dalam sebuah tabel secara unik. Sebuah Candidate Key pastilah Super key, tapi belum tentu sebaliknya. Page 56 5
Candidate Key Suatu super key dapat memiliki atribut-atribut yang sebenarnya sudah merupakan super key. Misal: {customer_id, customer_name} adalah sebuah super key. Note: customer_id itu sendiri merupakan super key. Pada candidate key, tidak diperbolehkan memiliki key di dalam key Misal: {customer_id, customer_name} bukan candidate key, karena customer_id adalah key Candidate key seringkali disebut sebagai super key minimal. Contoh candidate key: {customer_name, customer_address} Page 57
Candidate Key Pada sebuah tabel dimungkinkan adanya lebih dari satu Candidate-Key. Contoh Candidate-Key pada tabel Mahasiswa: (nama), jika kita bisa menjamin tidak ada nilai yang sama untuk atribut ini (NRP) Page 58 5
CONTOH Contoh: Orang (No_KTP, nama, alamat) Bagaimana jika di alamat yang sama, tidak ada 2 orang yang bernama sama? Page 59 5
CONTOH No_KTP Nama Alamat 123 Budi Jl. Duku 2 124 Etica Jl. Badak 3 125 Budi Jl. Sunda 4 126 John Jl. Badak 3 127 Joshua Jl. Macan 6 128 Budi Jl. Badak 3 Page 60 6
Primary Key (Kunci utama) Definisi: candidate key yang dipilih oleh perancang basis data sebagai alat utama untuk mengidentifikasi entitas pada suatu himpunan entitas Primary key harus dipilih sedemikian rupa sehingga atributnya tidak pernah atau jarang berubah Contoh: mahasiswa_nrp dapat dipilih sebagai primary key. Page 61 6
Primary Key Pemilihan Primary key didasari oleh: Key tersebut lebih sering (lebih natural) untuk dijadikan sebagai acuan Key tersebut lebih ringkas Jaminan keunikan Key tersebut lebih baik Page 62 6
Key Pada Himpunan Relasi Setiap relasi individual harus dapat dibedakan dengan relasi individual yang lain dalam sebuah himpunan relasi. Karena itulah, himpunan relasi juga harus memiliki key! Page 63 6
Key Pada Himpunan Relasi Pada umumnya, key pada himpunan relasi dibentuk dari key dari masing-masing himpunan entitas yang dihubungkannya. Contoh: Jika key pada himpunan entitas pertama adalah {x} dan key pada himpunan entitas kedua adalah {y}, maka key pada himpunan relasi dari keduanya adalah {xy}. Page 64 6
Alternate Key (kunci alternatif) Adalah candidate key yang tidak dipilih menjadi primary key. Contoh: {mahasiswa-nama, mahasiswaalamat} adalah candidate key, namun tidak dipilih menjadi primary key. Page 65 6
Rangkuman Kuliah-2 Konsep Dasar Model ER: - Entitas & Himpunan Entitas - Atribut - Tipe-tipe Atribut - Relasi & Himpunan Relasi - Peran pada Entitas - Kardinalitas/Derajat Relasi Constraints Keys Page 66 6
Latihan Page 67
More on Atribut Vs Entitas True or false? o Entitas Orang terdiri dari atribut pegawai dan mahasiswa o Entitas Mobil dengan atribut Suzuki dan Toyota? o Entitas Hewan dengan atribut Babi, Anjing, dan Kucing? o Entitas Buku dengan atribut IDbuku, judul, pengarang? Page 68 6
Tentukan super key Contoh: Pegawai (NIK, alamat, tgl_lahir, No_KTP) Orang (No_KTP, nama, tgl_lahir) Page 69 6