Diktat Kuliah Basis Data PENS - ITS BAB 2 MODEL RELASI ENTITAS (E-R MODEL) Tinjauan Desain Basis Data • Desain Konseptual (Dengan menggunakan ER-Model) • Informasi apa yang dikandung oleh suatu entity dan relasi yang harus disimpan dalam basis data • Batasan integritas (integrity constraint) dan aturan bisnis yang harus ditangani • Skema basis data dalam ER Model dapat dipresentasikan dalam bentuk gambar (ER diagram). • Memetakan ER Diagram ke dalam skema relasional. Dasar-dasar ER Model • • • Entiti : obyek dunia nyata yang dapat dibedakan dari obyek yang lain. Entiti digambarkan (dalam basis data) dengan menggunakan himpunan atribut. Himpunan entity : Kumpulan entity yang sejenis. Misal : himpunan data pegawai o Semua entity dalam himpunan entity memiliki himpunan atribut yang sama o Tiap himpunan entity memiliki kunci (key) o Tiap atribut memiliki do main. Relasi : Asosiasi diantara dua atau lebih entity Misal : Ani bekerja di Departemen Farmasi Iwan Syarif Diktat Kuliah Basis Data PENS - ITS • Himpunan Relasi : Himpunan relasi yang sejenis o Himpunan relasi n-ary R berelasi dengan sejumlah himpunan entity n E1 … En § Himpunan entity yang sama dapat berpartisipasi dalam himpunan relasi yang berbeda, atau mempunyai peran yang berbeda dalam suatu himpunan yang sama. Batasan Kunci (Key Constraints) • • Pada suatu contoh kasus, seorang pegawai dapat bekerja pada beberapa departments; sebuah departement memiliki banyak pegawai Sebaliknya, tiap departement hanya memiliki seorang manager, yang berhubungan dengan key constraint pada Manages. Iwan Syarif Diktat Kuliah Basis Data PENS - ITS Batasan partisipasi (Participation Constraints) • Apakah setiap departemen mempunyai seorang manager ? o Jika semua departemen pasti mempunyai manager maka partisipasi Departements dalam Manages dapat dikatakan total. Sebaliknya jika tidak semua departement memiliki manager maka partisipasinya adalah partial. Entiti Le mah • Entiti lemah dapat diidentifikasi secara unik jika terdapat peran kunci utama (primary key) yang berasal dari atau dimiliki oleh entity yang lain (owner). o Himpunan entity owner dan entity lemah harus berartisipasi dalam himpunan relasi one-to-many (satu owner, banyak entity lemah). Hirarki ISA (‘is a’) Iwan Syarif Diktat Kuliah Basis Data PENS - ITS • • • • • Seperti pada C++, dan bahasa pemrograman yang lain, suatu atribut dapat diturunkan. Jika kita deklarasikan A ISA B, setiap entity A juga termasuk entity B. Overlap constraints : Bolehkah seorang pegawai mempunyai status sebagai pegawai dengan hitungan gaji perjam (Hourly_Emps) sama halnya seperti pegawai dengan perjanjian kontrak (Contract_Emps) ? (Boleh/Tidak) Covering constraints : Apakah setiap entity Employees juga merupakan entity Hourly_Emps dan Contract_Emps ? Alasan menggunakan ISA : o Untuk menambahkan deskripsi atribut yang lebih spesifik pada subclass. o Untuk mengidentifikasi entity yang berpartisipasi dalam suatu relasi. Aggregasi • Digunakan pada saat kita perlu memodelkan apa saja yang terlibat dalam suatu himpunan relasi. o Aggregasi membolehkan kita untuk memperlakukan suatu himpunan relasi sebagai himpunan entity untuk tujuan partisipasi dalam relasi yang lain. Iwan Syarif Diktat Kuliah Basis Data PENS - ITS ð Aggregasi vs. relasi ternary • Monitors adalah relasi yang distinct dengan deskripsi atribut. • Juga dapat dikatakan bahwa tiap sponsorship dimonitor oleh kebanyakan seorang pegawai. Desain Konseptual dengan menggunakan ER Model • Pilihan desain : o Haruskan konsep dimodelkan sebagai entity atau atribut ? o Haruskah konsep dimodelkan sebagai entity atau relasi ? o Identifikasi relasi : binary atau ternary ? atau aggregasi ? • Batasan dalam ER Model : o Semakin banyak semantic data yang dapat ditangkap o Tapi beberapa batasan tidak dapat ditangkap dalam ER diagram. Entiti vs. Atribut • Haruskah informasi alamat (address) menjadi atribut dari Employee atau menjadi entity (dihubungkan ke Employee oleh suatu relasi) ? • Tergantung pada penggunaan yang kita inginkan dari informasi alamat tersebut, dan juga tergantung pada semantic data. o Jika terdapat beberapa address per Employee, maka address harus menjadi suatu entity (nilai dari atribut tidak bisa diset, atau diinisialisasi). o Jika struktur dari address (kota, jalan, dll) dianggap penting, maka address tersebut juga harus dimodelkan sebagai suatu entity (karena nilai suatu atribut harus atomic). • Works_In2 tidak mengijinkan seorang employee untuk bekerja pada suatu departement dalam dua atau lebih periode. Iwan Syarif Diktat Kuliah Basis Data PENS - ITS • Sama dengan permasalahan menyimpan beberapa address untuk seorang employee : Kita perlu menyimpan beberapa nilai dari deskripsi atribut untuk tiap instance dari relasi berikut ini. Entiti vs. Relasi • ER diagram diatas akan OK jika seorang manager mengambil budget yang terpisah pada tiap departemen. • Apa yang terjadi jika manager mengambil budget yang dikover dari semua departemen ? o Penyimpanan redundant untuk dbudget yang disimpan pada tiap departemen. Relasi Binary vs. Ternary • • Jika policy dimiliki hanya oleh satu orang employee : o Key constraint pada policies mengartikan bahwa suatu keb ijakan (policy) diterapkan untuk hanya dapat mengkover satu orang dependent Apa yang merupakan constraint tambahan pada diagram yang kedua berikut ini ? Iwan Syarif Diktat Kuliah Basis Data PENS - ITS • • Contoh sebelumnya telah mengilustrasikan suatu kasus pada saat dua relasi binary lebih baik dibandingkan satu relasi ternary. Contoh yang lain : relasi ternary Contracts berelasi dengan himpunan entity Parts, Departments dan Suppliers, yang memiliki atribut deskriptif qty. Tidak ada kombinasi relasi relasi biner yang layak untuk menggantikan subsitusi ini : o S ‘dapat mensupply’ P, D ‘memerlukan’ P, dan D ‘berurusan dengan’ S. Dapatkah diandaikan bahwa D memiliki perjanjian untuk membeli P dari S ? o Bagaimana cara kita merecord qty ? Ringkasan : Desain Konseptual dan ER-Model • Desain Konseptual memenuhi persyaratan dalam analisa kebutuhan (requirements analysis). • ER Model paling banyak digunakan dalam desain konseptual o Konstruksinya ekspresif, paling dekat dengan cara manusia berp ikir tentang aplikasi yang akan mereka kerjakan. • Elemen dasar : entity, relasi, dan atribut (dari entity dan relasi). • Beberapa elemen tambahan : entity lemah, hirarki ISA, dan aggregasi • Catatan : Terdapat banyak variasi dalam ER Model. • Beberapa macam batasan integritas (integrity constraints) dapat dinyatakan dalam ER Model : batasan kunci (key constraints), batasan partisipasi (participation constraints), dan overlap/covering constraints untuk hirarki ISA. Beberapa foreign key constraints juga secara implisit dinyatakan dalam definisi himpunan relasi. o Beberapa constraints semisal functional dependencies tidak dapat dinyatakan dalam ER Model. o Constraints memegang peranan penting dalam membentuk suatu desain basis data yang baik. • Desain ER bersifat subyektif. Terdapat banyak cara untuk memodelkan suatu scenario. Pilihannya meliputi : o Entiti vs. atribut, entity vs. relasi, relasi binary atau n-ary, menggunakan hirarki ISA atau tidak, menggunakan aggregasi atau tidak. Iwan Syarif Diktat Kuliah Basis Data PENS - ITS • Untuk memastikan suatu basis data didesain dengan bagus : skema relasional yang dihasilkan harus bisa dianalisa dan diperbaiki di waktu mendatang. Informasi functional dependencies dan teknik normalisasi juga diperlukan dalam hal ini (akan dibahas pada bab selanjutnya). Iwan Syarif