MODEL-MODEL DATA
KULIAH BASIS DATA
6 MARET 2014
OUTLINE
• Model data ER (Entity Relationship)
• Model data lain
MODEL DATA ENTITY
RELATIONSHIP
KONSEP
• Merupakan representasi data secara abstrak dan
konseptual à menghasilkan skema konseptual dari data
pada sistem.
• Penemu: Peter Chen (1976)
• Digunakan untuk mengiterpretasi, menspesifikasi dan
mendokumentasi kebutuhan basis data tanpa
mempedulikan DBMS yang digunakan.
• 3 komponen pokok:
• Entity/entitas
• Atribut
• Relationship
DIAGRAM ER
• Adalah diagram yang merepresentasikan model data
ER.
• Karakteristik:
• Memberikan pandangan konseptual terhadap basis
data.
• Independen terhadap pilihan basis data.
• Dapat mengidentifikasi masalah pada saat desain basis
data.
NIM nama
no_mk
nama_mk
N mengambil M
Mahasiswa Matakuliah
tgl_lhr th_akad
sks
ENTITAS
• Adalah objek yang ada yang dapat dibedakan dengan
objek lainnya.
• Objek tersebut memiliki peran dalam sistem.
• Contoh:
• Basis data universitas:
• Mahasiswa
• Matakuliah
• Dosen
• Entitas bisa nyata, bisa abstrak, misal entitas liburan.
• Himpunan entitas: himpunan dari entitas yang sejenis.
• Tidak harus disjoin.
• Dalam diagram ER:
• Digambarkan sebagai kotak dengan label nama dari
entitas.
NIM nama
no_mk
nama_mk
N mengambil M
Mahasiswa Matakuliah
tgl_lhr th_akad
sks
ATRIBUT
• Adalah fakta/properti dari entitas yang menggambarkan
karakteristiknya.
• Contoh:
• Atribut dari Mahasiswa: NIM, Nama mahasiswa, tanggal
lahir.
• Atribut dari Dosen: NIDN, Nama dosen, tanggal lahir.
• Atribut dari Matakuliah: ID matakuliah, Nama matakuliah,
SKS.
• Atribut memiliki:
• Nama
• Domain: nilai-nilai yang diperbolehkan
• Contoh: SKS harus berupa bilangan bulat dari 1 s.d. 6
• Untuk setiap instance dari entitas, atribut memiliki nilai
tertentu yang harus berada pada domainnya.
• Setiap entitas dideskripsikan dengan sekumpulan pasangan atribut
dan nilainya.
• Macam-macam atribut:
• Sederhana vs komposit:
• Sederhana: tidak dapat dibagi, contoh: umur.
• Komposit: terdiri dari beberapa atribut, contoh: alamat (jalan,
nomor, desa, kecamatan, kabupaten/kota, propinsi)
• Single-valued vs Multi-valued:
• Single-valued: hanya memiliki satu nilai, contoh: tanggal lahir.
• Multi-valued: memiliki beberapa nilai, contoh: nomor telepon,
email.
• Dalam diagram ER:
• Digambarkan sebagai oval dengan label nama atribut.
• Tiap atribut dihubungkan dengan entitasnya menggunakan garis.
NIM nama
no_mk
nama_mk
N mengambil M
Mahasiswa Matakuliah
tgl_lhr th_akad
sks
RELATIONSHIP
• Adalah hubungan antara 2 atau lebih entitas.
• Mahasiswa ‘mengambil’ Matakuliah.
• Matakuliah ‘diampu’ oleh Dosen.
• Relationship memiliki:
• Nama
• Kumpulan entitas yang terlibat di dalamnya.
• Jumlah entitas yang terlibat (umumnya 2).
• Kardinalitas.
• Kadang-kadang memiliki atribut.
• Relationship bisa rekursif à menghubungkan entitas yang sama.
• Dalam diagram ER:
• Digambarkan sebagai garis yang menghubungakn 2 atau lebih
entitas.
• Nama relationship ditulis dalam kotak diamond yang berada di
tengah-tengah garis.
• Kardinalitas dituliskan di atas garis pada setiap sisinya.
NIM nama
no_mk
nama_mk
N mengambil M
Mahasiswa Matakuliah
tgl_lhr th_akad
sks
KARDINALITAS
• Setiap entitas dapat berpartisipasi dalam 0, 1, atau lebih
instances relationship.
• Kardinalitas: menggambarkan jumlah entitas yang dapat
dihubungkan ke entitas yang lain dalam suatu himpunan
relationship.
• Relationship dari 2 entitas dapat digolongkan menjadi 3:
• One to one (1:1) (panah 2 arah)
• Setiap dosen menempati 1 ruang.
• One to many (1:M) (panah 1 arah)
• Seorang dosen membimbing banyak mahasiswa, tetapi
setiap mahasiswa hanya dibimbing oleh 1 dosen.
• Many to many (M:M) (tidak ada panah)
• Setiap mahasiswa mengambil beberapa matakuliah, setiap
matakuliah bisa diambil oleh beberapa mahasiswa.
KONSEP LAIN
• Weak Entity:
• Entitas yang tidak dapat cukup didefinisikan dengan
atributnya.
• Contoh: edisi buku, anak
• ID-dependent entity:
• Weak entity yang id-nya memuat id dari entitas dia
bergantung.
• Contoh: apartemen di blok dengan id Nama_gedung
dan no_Apartemen.
• Derived Attribute:
• Atribut yang diturunkan dari atribut/entitas lain, contoh:
umur
• Kunci: mengidentifikasi entitas secara unik, contoh: NIM.
EXTENDED ER
• Spesialisasi:
• Proses sub-grouping terhadap entitas.
• Contoh: entitas Orang bisa diklasifikasikan menjadi entitas
Pegawai dan Mahasiswa.
• Tiap kelompok memiliki atribut Orang, ditambah atribut
yang mencirikan kelompoknya.
• Generalisasi:
• Proses penggabungan entitas menjadi entitas lebih umum.
• Kebalikan dari spesialisasi à bottom-up.
• Contoh: entitas Dosen dan Peg_TU dapat digabungkan
sebagai entitas Pegawai karena memiliki beberapa atribut
yang sama.
• Higher level entity: superclass, lower level: subclass.
• Atribut dari entitas superclass diwariskan kepada sub-class.
MEMBUAT MODEL ER
• Identifikasi:
• Entitas
• Atribut
• Relationship
• Kardinalitas
• Petunjuk umum:
• Entitas: kata benda (benda, objek)
• Atribut: kata benda (fakta, properti)
• Relationship: kata kerja
SOAL
• Buatlah desain basis data dengan model ER dari suatu
kompetisi sepakbola. Setiap klub memiliki pemain dan
manajer, dan bermain melawan klub lainnya.
• Tentukan entitas yang terlibat dan atribut-atributnya.
• Tentukan relationship antar entitas dan kardinalitasnya.
• Gambar diagram ER-nya.
• Ulangi soal di atas untuk basis data sebuah supermarket.
MODEL DATA LAIN
MODEL DATA HIERARKI
• Digunakan pada awal-awal berkembangnya DBMS,
misalnya oeh IBM untuk Information Management System
(IMS).
• Data diorganisasi seperti struktur pohon.
• Hanya ada 1 parent untuk setiap record.
• Memungkinkan relasi one-to-many.
• Sangat efisien untuk menggambarkan relasi-relasi seperti
daftar isi, pengurutan paragraf.
• Implementasi: pointer.
• Tidak efisien untuk editing.
MODEL DATA NETWORK
• Seperti tree, tetapi memperbolehkan miltiple parent.
• Memungkinkan many-to-many relationship.
• Didefinisikan oleh spesifikasi CODASYL.
• Menggunakan 2 konsep dasar:
• Record: memuat field.
• Set: mendefinisikan one-to-many relationship antara
record.
• Set terdiri dari linked list sirkular.
• Implementasi dengan pointer yang langsung merujuk
pada lokasi dari record di disk.
MODEL DATA RELASIONAL
• Diperkenalkan oleh E.F. Codd (1970)
• 3 komponen penting: Relasi, Attribut, Domain
• Relasi: tabel dengan baris dan kolom à menunjukkan entitas
• Atribut ditunjukkan dengan nama dari kolom.
• Baris menunjukkan instance dari relasi.
• Domain adalah himpunan nilai yang dapat diset ke attribut.
• Basis data terdiri dari beberapa tabel.
• Kunci primer mengidentifikasi baris secara unik.
• Kekurangan:
• Sulit menyimpan data kompleks.
• Tidak mendukung muti-valued attribute.
• Tidak scalable untuk akses banyak tabel yang memerlukan join à
mengakses inheritance dalam OO
MODEL OBJECT-ORIENTED
• Muncul karena paradigma OOP.
• Tujuan: menghindari ketidaksesuaian ketika mengkonversi
informasi dari representasinya di database (sebagai baris-
baris pada tabel) dan representasinya pada program
aplikasi (sebagai objek).
• Objek: abstraksi dari suatu artifak.
• Merupakan instance dari class.
• Objek memiliki state dan behavior.
• State dari objek dapat didefiniskan oleh atribut
• Memuat himpunan metode untuk memanipulasi objek.
• Objek dimanipulasi dengan method.
• Contoh:
• Objek: Person dengan atribut nama, alamat, no_KTP, dan
method ubahAlamat.
KONSEP DASAR OO
• Konsep dasar:
• Abstraksi:
• Enkapsulasi:
• Pewarisan:
• Memungkinkan penggunaan komponen yang sudah ada.
• Abstraksi: prinsip mengabaikan aspek yang tidak relevan dengan
maksud saat itu.
• Enkapsulasi: menyembunyikan informasi dari modul yang lain.
• Pewarisan: mendefinisikan suatu kelas dari kelas yang lain.
• Contoh: superclass Orang dengan sub-class Dosen dan
Mahasiswa.
• Mutiple inheritance.
• Keuntungan:
• Reusability
• Lebih menggambarkan real world
ORDBMS
• Meliputi:
• Objek
• Model data
• Bahasa kueri untuk memanipulasi data.
• Sistem basis data.
• Basis data OR: kumpulan objek yang behavior, state, dan
relationship –nya dapat dipandang atau dimanipulasi
menggunakan object method, prosedur-prosedur
penyimpanan, dan bahasa kueri.
• Komponen:
• Struktur data untuk menyimpan data: tabel objek
• Integrity constraint: obejct identifier, relationship
• Operasi: bahasa kueri (SQL, PL/SQL)