Tugas Presentasi basis data lanjut Kelompok : I Made Sukarya Dwija P (0808605007) I Putu Eka Suparwita (0808605008) Oka Karmayasa (0808605009) Made Sakha Yudha (0808605011) Insidania Kartolegowo (0808605012) Jurusan Ilmu Komputer Fakultas MIPA Universitas Udayana 2010 Pemodelan Data Model Data Model Data pada hakekatnya adalah kumpulan perangkat konseptual untuk menggambarkan data,relasi data, makna (semantik) data, dan batasan data. Ada sejumlah cara dalam merepresentasikan Model Data untuk keperluan perancangan basis data, yaitu dikelompokkan sebagai berikut: o Model Hirarkis (Hierarchical Model) o Model Jaringan (Network Model) o Model Relasional (Relational Model) o Model Relasi Entitas (Entity-Relationship Model) o Model Berbasis Objek (Object Oriented Model) 1. Model Data Hirarkis Model data hirarkis adalah model data paling tua yang pernah diterapkan dalam suatu DBMS. Model ini mengikuti pola hirarki pada suatu organisasi atau pada suatu keluarga, dimana terdapat rekaman data yang berfungsi sebagai “bapak” (parent-record) ada yang berfungsi sebagai “anak” (child-record). Dalam model ini seorang “bapak” bisa memiliki lebih dari satu “anak” tetapi seorang “anak” hanya boleh memiliki satu “bapak”. Model ini akan menyebabkan timbulnya “redudansi” data, karena banyak kemungkinan bahwa matakuliah yang sama diambil oleh beberapa mahasiswa, sehingga record-matakuliah tersebut direkam berkali-kali dibawah record-mahasiswa yang mengambilnya. Disamping itu apabila ada matakuliah yang tidak diprogram-kan oleh mahasiswa maka ada kemungkinan record-nya tidak ada dalam database karena tidak memiliki parent. Contoh model hirarkis yang menunjukkan hubungan Dosen-MataKuliah-Mahasiswa dapat pula digambarkan dalam bentuk diagram sebagai berikut. 2. Model Data Jaringan Model data jaringan adalah pengembangan dari model data hirarkis. Pada model jaringan diperkenankan bahwa sebuah child-record bisa memiliki lebih dari satu parent-record. Pada implementasi-nya berarti antara parent-record dan child-record diperlukan penghubung (link atau pointer) yang bisa satu arah atau dua-arah. Dengan model jaringan ini maka informasi dimana seorang mahasiswa dapat mengambil beberapa matakuliah (pointer dari record mahasiswa tsb ke beberapa record-kuliah) dan juga informasi bahwa satu matakuliah dapat di-program-kan oleh banyak mahasiswa (pointer dari record-kuliah ke beberapa record-mahasiswa) keduanya dapat di-representasikan. Model Jaringan dari Dosen-Matakuliah-Mahasiswa dapat digambarkan sebagai berikut. Persoalan yang timbul adalah “terjadinya hutan pointer” akibat relasi antar record yang rumit sehingga penelusuran data menjadi sangat sulit. Ketika model relasional menjadi lebih populer maka model ini pun ditinggalkan orang. 3. Model Data Relasional Salah seorang pencetus awal dari basis data relasional adalah E.F.Codd yang juga telah menciptakan serangkaian operasi matematika relasional terhadap model data relasional. Pada prinsipnya model data relasional dapat di-representasikan dalam bentuk table (tabel) data,dimana: hanya memiliki satu tipe record saja, setiap record adalah baris ld pada setiap record sama mengenali satu record Contoh: domain mahasiswa dapat diwakili oleh satu tabel mahasiswa dengan kunci utama adalah NIM (Nomor Induk Mahasiswa), dan domain matakuliah dapat diwakili oleh satu tabel kuliah dengan kunci utama kode-mkuliah. Hubungan antara kedua domain ini dinyatakan dalam bentuk relasi, ada tiga kemungkinan relasi antar dua domain yaitu: -satu (one-to-one relation) : bahwa satu mahasiswa hanya boleh mengambil satu matakuliah, dan satu matakuliah hanya boleh diambil oleh satu mahasiswa, relasi disingkat dengan simbol 1-to-1. Dalam implementasi dua file yang memiliki relasi 1-to-1 dapat digabung menjadi satu file. -banyak (one-to-many relation) : bahwa satu mahasiswa boleh ambil banyak matakuliah tetapi satu matakuliah hanya boleh diambil oleh satu mahasiswa, relasi disingkat dengan simbol 1-to-M atau M-to-1. Pada relasi 1-to-M atau M-to-1, kunci record dari file pada sisi-1 harus ditambahkan sebagai kunci-tamu pada file sisi-M -banyak (many-to-many relation) : bahwa satu mahasiswa boleh ambil banyak matakuliah, dan satu matakuliah boleh diambil oleh banyak mahasiswa, relasi disingkat dengan simbol M-to-M. Pada relasi M-to-M harus diciptakan sebuah file ‘relasi’ yang berisi minimal dua field kunci record dari masing-masing file yang berelasi. 4. Model Relasi-Entitas Model Relasi-Entitas atau (Entity Relationship Model) pada hakekatnya perwujudan dari model relasional dalam bentuk diagram, yaitu E-R Diagram. ERD (Entity Relationship Diagram) merupakan notasi grafis dalam pemodelan data konseptual yang mendeskripsikan hubungan antara penyimpanan dan akan membantu mengorganisasikan data dalam suatu proyek ke dalam entitas-entitas. Dengan ERD dapat menjawab data apa yang diperlukan?, bagaimana data yang satu berhubungan dengan data yang lain? Komponen ERD : 1. Entitas (Entity) Definisi : sebuah barang atau obyek yang dapat dibedakan dari obyek lain (obyek yang bisa diidentifikasi). Setiap entitas memiliki atribut. Entitas dapat berupa : Obyek secara fisik : orang, kendaraan, rumah, pegawai,dll Obyek dengan keberadaan konseptual : pekerjaan, mata kuliah, dll Tipe entitas lemah (weak entity) : merupakan entitas yang tidak memiliki key, keberadaannya bergantung pada entitas lain dan harus terelasi dengan entitas yang memilikinya. 2. Atribut (Attribute) Definisi : karakteristik atau property tertentu yang menggambarkan suatu entitas. Contohnya : Mahasiswa mempunyai NIM, nama, tanggal lahir, jenis kelamin, alamat, telepon, dll. Jenis-Jenis atribut : Key atribut : merupakan atribut yang bernilai unik. Misalnya Mahasiswa memiliki NIM yang tidak akan sama dengan mahasiswa yang lainnya. Penulisan key dalam ERD akan diberi garis bawah Atribut sederhana/Atomic : atribut yang tidak dapat dipecah-pecah. Contohya : Jenis kelamin Atribut komposit : atribut yang dapat dipecah-pecah Contohnya : Nama nama depan, nama tengah, nama belakang Alamat jalan, kota,kodepos Atribut bernilai banyak (multivalued) : atribut yang bisa memiliki nilai banyak Contoh : Pengalaman, Hobby Atribut turunan (derived) : atribut yang nilainya bisa diturunkan dari atribut lainnya. Contoh : Umur bisa diturunkan dari tanggal lahir Null values : atribut yang bisa bernilai kosong. Karena atribut tersebut memang tidak ada atau tidak diketahui keberadaannya. Ketidaktahuan ada dua jenis yaitu ada tapi tidak diketahui (tinggi badan), atau tidak diketahui ada atau tidak (no telepon). 3. Relasi (Relationship) Definisi : hubungan dua atau lebih entitas yang terkait Contoh : entitas departemen dan entitas pegawai dihubungkan oleh sebuah relasi memiliki (misalnya departemen HRD memiliki pegawai David Adriana) Derajat relasi : jumlah entitas yang terlibat didalam suatu relasi. Terdiri dari satu entitas disebut Unary, terdiri dari dua disebut Binary, terdiri dari tiga disebut Ternary. Relasi dapat pula memiliki atribut, misalnya pada relasi mengambil yang menghubungkan antara mahasiswa dan matakuliah terdapat nilai (nilai dihasilkan sebagai akibat mahasiswa mengambil suatu mata kuliah). 4. Kardinalitas (Ratio Constraint) Definisi : angka yang menunjukkan banyaknya kemunculan suatu obyek terkait dengan kemunculan obyek lain pada suatu relasi. Kombinasi yang mungkin : One to one (1:1) : pegawai mengepalai departemen One to many (1:N) : dosen membimbing mahasiswa Many to many (M:N) : mahasiswa mengambil matakuliah 5. Modalitas Definisi : partisipasi sebuah entitas pada suatu relasi 0 jika partisipasi bersifat optional/parsial 1 jika partisipasi bersifat wajib/total Contoh : Partisipasi total = setiap anak memiliki ibu Partisipasi parsial = tidak setiap perempuan memiliki anak Simbol – simbol ERD 5. Model Data Berbasis Objek Model data berbasis objek dikembangkan searah dengan perkembangan pemrograman berbasis objek. Salah satu karakteristik dari sistem berbasis objek adalah encapsulation yaitu suatu objek terpisah dari objek lain sehingga setiap objek seakan-akan berada dalam kapsulnya masingmasing. Pada setiap kapsul terdapat komponen data (attribute) dikemas bersama dengan komponen aksesnya (methods). Sebagai contoh, berikut ini disajikan data pegawai dalam format berbasis objek.