Anda di halaman 1dari 32

Materi 6

Relasi/ Tabel
Setiap relasi memiliki kunci primer
(primary key)
Kunci primer adalah atribut atau
sejumlah atribut yang menjadi
pembeda setiap baris dalam relasi
Kunci primer biasa dinyatakan
Kunci primer
dengan garis bawah
PEGAWAI(Nomor_Peg, Nama)

Kunci
Kunci dapat dibedakan menjadi:
1. Kunci sederhana : Terdiri atas sebuah
atribut
2. Kunci komposit : Tersusun atas dua atribut
atau lebih

Kunci sederhana:

Kunci komposit:

BARANG DIPESAN(No_Pesanan, Kode_Ba


PEGAWAI(Nomor_Peg, Nama)
Jumlah)
DEPARTEMEN(Kode_Dep, Nama_Dep)
NILAI(No_Mhs, Kode_Matakuliah,Skor)
BARANG(Kode_Barang, Nama_Barang)

Kunci Tamu

Kunci tamu (foreign key) biasa digunakan


sebagai penghubung ke relasi lain
PELANGGAN
Kd_Pelanggan Nama

Kunci
asing

Kd_Kota

A001

Aditya

0501

B001

Bakdi

0502

B002

Bramanto 0502

Kunci primer

KOTA
Kd_Kota Nama_Kota

0501

Semarang

0502

Salatiga

0503

Kendal

Kunci Tamu (Lanjutan)


Garis bawah terputus-putus biasa
dipakai untuk menyatakan kunci
tamu
Contoh:
PELANGGAN(Kd_Pelanggan, Nama, Kd_Kota)

KOTA(Kd_Kota, Nama_Kota)

Sifat Tabel
1. Setiap Tabel memiliki nama yang unik
2. Setiap isian pada perpotongan baris dan
kolom harus bersifat atomik (bernilai
tunggal)
3. Setiap baris bersifat unik
4. Setiap atribut memiliki nama yang unik
5. Urutan kolom tidak penting
6. Urutan baris juga tidak penting

Kekangan Integritas
(Integrity Constraint)
Tujuannya adalah untuk memfasilitasi
penjagaan keakurasian dan integritas
data dalam database (supaya tetap
konsisten)
Macamnya:
Kekangan domain
Integritas entitas
Integritas referensial
Kekangan operasional

Kekangan Domain
Memastikan data dalam domain yang telah
ditetapkan
Domain adalah kemungkinan nilai terhadap suatu
atribut
Contoh:
A,B,C,D,E untuk nilai
TRUE untuk pria dan FALSE untuk wanita
INTEGER untuk menyatakan nilai bulat

Dalam praktek, domain juga mencakup panjang


data
Contoh:
CHARACTER, SIZE 35
INTEGER, 3 DIGITS

Integritas Entitas
Memastikan bahwa data yang terkait
dengan kunci primer tidak terlanggar
Secara khusus, data Null pada kunci
primer akan ditolak
Null berarti nilai pada atribut tidak
pernah diberikan

Integritas Referensial
Memastikan bahwa konsistensi
antara dua buah relasi tetap terjaga
Keadaan Awal:
Kd_Pelanggan Nama

Kd_Kota

Kd_Kota Nama_Kota

A001

Aditya

0501

0501

Semarang

B001

Bakdi

0502

0502

Salatiga

B002

Bramanto 0502

0503

Kendal

Efek Tanpa Integritas


Referensial
Keadaan Setekah
data 0502 pada
KOTA dihapus:
0502

Kd_Pelanggan Nama

Kd_Kota

Salatiga

Kd_Kota Nama_Kota

A001

Aditya

0501

0501

Semarang

B001

Bakdi

0502

0503

Kendal

B002

Bramanto 0502

Menjadi
tidak konsisten

Efek Integritas Referensial


Keadaan Setekah
data 0502 pada
KOTA dihapus:
0502

Kd_Pelanggan Nama

Kd_Kota

Salatiga

Kd_Kota Nama_Kota

A001

Aditya

0501

0501

Semarang

B002

Bramanto 0503

0503

Kendal

B001

Bakdi

0502

Ikut terhapus!
atau
penghapusan

Kekangan Operasional
Kekangan yang berhubungan dengan
aturan bisnis
Misalnya Saldo tabungan tidak boleh
negatif
Pada Access, kekangan seperti ini bisa
diimplementasikan pada Validation Rule.
Pada PostgreSQL, hal ini bisa
diimplementasikan dalam prosedur
tersimpan

Relasi Berstruktur Baik


Suatu relasi dikatakan berstruktur baik
kalau :
Mengandung redundansi sesedikit
mungkin dan
Memungkinkan pemakai memasukkan,
mengubah, atau menghapus baris tanpa
menimbulkan kesalahan atau tidak
konsisten
Kesalahan atau akibat tidak konsisten
yang ditimbulkan pada ulasan di atas biasa
dinamakan anomali

Anomali
1. Anomali penyisipan
2. Anomali penghapusan
3. Anomali peremajaan

Anomali Peremajaan
Terjadi bila
terdapat
pengubahan pada
sejumlah data
yang redundan,
tetapi tanpa
sengaja tidak
semua ikut diubah

PEMASOK

KOTA

BARANG

JUMLAH

Kartika

Jakarta

Monitor GGG

Citra

Bandung

ZIP drive

Candra

Jakarta

Keyboard

Citra

Bandung

Mouse CCP

10

25

Pemasok Citra pindah ke Bogor dan


Pengubahan dilakukan hanya pada
data pertama

PEMASOK

KOTA

BARANG

JUMLAH

Kartika

Jakarta

Monitor GGG

Citra

Bogor

ZIP drive

Candra

Jakarta

Keyboard

Citra

Bandung

Mouse CCP

10

25

Anomali Penyisipan
Terjadi bila ada
penambahan data
Perhatikan contoh
disamping
Masalah: Bagaimana
caranya menyimpan
fakta bahwa ruang
baru bernama Arjuna
ada pada gedung
selatan?

KULIAH

RUA NG

TEMPAT

Jaringan Komputer

Merapi

Gedung Utara

Pengantar Basis Data

Merbabu

Gedung Utara

Matematikaa I

Rama

Gedung Selatan

Sistem Pakar

Sinta

Gedung Selatan

Kecerdasan Buatan

Merapi

Gedung Utara

Anomali Penghapusan
Terjadi kiranya sesuatu
baris yang tak terpakai
dihapus dan sebagai
akibatnya terdapat data
lain yang hilang
Perhatikan contoh di
samping
Apa yang terjadi
seandainya data bahwa
siswa dengan identitas 12
dihapus? Data yang
menyatakan bahwa biaya
kursus bahasa Jepang juga
akan terhapus

NO_SISWA

NAMA_KURSUS

BIAYA

10

Bahasa Inggris

120.000

10

Bahasa Prancis

120.000

10

Bahasa Mandarin

180.000

15

Bahasa Inggris

120.000

12

Bahasa Jepang

160.000

Tranformasi Diagram ER/EER


ke Relasi
Memetakan Entitas Reguler (kuat)
Nama_Pelanggan

No_Pelanggan PELANGGAN Alamat_Pelanggan

No_Pelanggan
Nama_Pelanggan
Alamat_Pelanggan

Tipe entitas
PELANGGAN

Relasi
PELANGGAN

Tranformasi Diagram ER
ke Relasi
Memetakan Entitas dengan Atribut Komposit
Nama_Pelanggan

Jalan
Kota
Kode_Pos

No_Pelanggan PELANGGAN Alamat_Pelanggan

No_Pelanggan
Nama_Pelanggan Jalan

Kota Kode_Pos

Tipe entitas
PELANGGAN
dengan atribut
komposit

Relasi
PELANGGAN

Tranformasi Diagram ER
ke Relasi
Memetakan Entitas dengan Atribut Bernilai Ganda
Nama_Pegawai
Alamat_Pegawai

No_Pegawai

PEGAWAI

Keterampilan

No_Pegawai Nama_Pegawai Alamat_Pegawai

No_Pegawai Keterampilan

Tipe entitas
PEGAWAI dengan
atribut bernilai
ganda

Relasi PEGAWAI

Relasi KETERAMPILAN
PEGAWAI

Pemetaan Entitas Lemah


No_Pegawai

Nama_PegawaiNama_Tanggungan

PEGAWAI

Memiliki

No_Pegawai Nama_Pegawai

Tanggal_Lahir

TANGGUNGAN

Relasi PEGAWAI

No_Pegawai
Nama_TanggunganTanggal_Lahir

Relasi
TANGGUNGAN

Pemetaan Hubungan 1 to M
No_Pelanggan Nama_Pelanggan Nomor_Pesan

PELANGGAN

No_Pesan

PESANAN

Mengirim

No_Pelanggan
Nama_Pelanggan

Tanggal_Pesan

Relasi PELANGGAN

Tanggal_Pesan No_Pelanggan

Relasi PESANAN

Pemetaan Hubungan M to M
No_Pesan

Tgl_Pesan

Kode_Produk

Harga_Unit

Jumlah

PESANAN

PRODUK

Meminta

No_Pesan

Tgl_pesan

No_Pesan

Kode_Produk

Kode_Produk Harga_Unit

Relasi PESANAN
Jumlah

Relasi BARIS
PESANAN

Relasi PRODUK

Pemetaan Hubungan 1 to 1
No_Dosen

Nama_Dosen

Kode_Prodi

Nama_Prodi

Tanggal_Penugasan

DOSEN

No_Dosen

Mengepalai

Nama_Dosen

PROGRAM STUDI

Relasi DOSEN

Kode_Prodi Nama_Prodi No_DosenTanggal_penugasan Relasi

PROGRAM
STUDI

Pemetaan Entitas Asosiatif


(Ternary)
No_Pelanggan

Nama

No_Kirim

PELANGGAN

No_Pelanggan

Vendor

Alamat

Tanggal
Jumlah
PENGIRIMAN

Nama

VENDOR

Relasi PELANGGAN

Relasi
No_Kirim
Tanggal JumlahNo_Pelanggan
Kode_Vendor PENGIRIMA
N
Relasi VENDOR
Kode_Vendor
Alamat

Pemetaan Unary 1:N


Nama_Pegawai
Tgl_Lahir

No_Pegawai

PEGAWAI

Mengepalai

No_Pegawai Nama_Pegawai Tgl_lahir ID_Manajer

Relasi PEGAWAI

Pemetaan Unary M:M


Nama_Item
Harga_Unit

No_Item
ITEM

Jumlah

Tersusun_atas

No_Item

Nama_Item

Harga_Unit

Relasi ITEM

No_Item

No_Komponen

Jumlah

Relasi
KOMPONEN

Pemetaan Hubungan
Supertipe/Subtipe
Nama_Pegawai

Alamat

Nomor_Pegawai

PEGAWAI

Tgl_Mulai_Kerja

Tipe_Pegawai:
H

PEGAWAI HARIAN PEGAWAI TETAP PEGAWAI KONTRAK

Upah_Harian Gaji_Bulanan

Kompensasi

Tunjangan Nomor_KontrakLama_Kontrak

Pemetaan Hubungan
Supertipe/Subtipe (Lanjutan)

Model relasional tidak mendukung


hubungan supertipe/subtipe secara
langsung
Strategi pemecahan untuk kasus di depan:
1. Buat relasi terpisah untuk masing-masing
supertipe dan subtipe
2. Berikan atribut-atribut yang umum (termasuk
kunci primer) ke supertipe
3. Masukkan pembeda subtipe pada supertipe
4. Tambahkan kunci primer pada supertipe ke
semua subtipe

Solusi Pemetaan Hubungan


Supertipe/Subtipe
Nomor_PegawaiNama_Pegawai Alamat
Tgl_Mulai_Kerja
Tipe_PegawaiPEGAWAI

Nomor_Pegawai Upah_Harian

PEGAWAI HARIAN

Nomor_Pegawai
Gaji_BulananTunjangan

PEGAWAI TETAP

Nomor_Pegawai
Nomor_Kontrak
Lama_Kontrak
Kompensasi

PEGAWAI KONTRAK

PR
Suatu hasil ujian dinyatakan dengan atribut
seperti berikut:
No_Mhs
Nama_Mhs
Mataujian
No_Dosen_Penguji
Nama_Dosen_Penguji

Gambarkan diagram E-R-nya


Kemudian ubahlah diagram E-R tersebut ke
relasi

Anda mungkin juga menyukai