35
Kunci dan Relasi Sucipto, M.Kom

Pemetaan EER

Embed Size (px)

Citation preview

Kunci dan RelasiSucipto, M.Kom

Candidate KeyCandidate KeyCandidate Key (kunci calon) adalah salah satu rangkaian yang mempunyai nilai unik untuk membedakan atau mengidentifikasi  nilai-nilai kombinasi yang unik diantara semua kejadian yang spesifik dari entetitas.

Tabel PegawaiAtribut (KdPeg, NoKtp, Nama, Alamat,

TempatLahir, TglLahir, Kota)

Candidat Key (KdPeg, NoKtp)

Primary KeyPrimary KeyPrimary Key (kunci utama) adalah atribut Merupakan candidate key yang telah dipilih untuk mengidentifikasi setiap record secara unik. Primary key harus merupakan field yang benar-benar unik dan tidak boleh ada nilai NULL.Kriteria PK :

– Key tersebut lebih natural untuk dijadikan acuan– Key tersebut lebih sederhana– Key tersebut cukup uniqe

Contoh :Tabel Pegawai

Atribut (KdPeg, NoKtp, Nama, Alamat, TempatLahir, TglLahir, Kota)

KdPeg dan NoKtp adalah kunci calon (Candidate Key) dan untuk kunci utama (Primary Key) adalah salah satu yang dipilih dari kunci calon. Misalnya KdPeg di jadikan primary key, maka primary key nya adalah KdPeg.

Alternate KeyAlternate KeyAlternate key Adalah candidate key yang tidak terpilih. 

Contoh :Tabel Pegawai

Atribut (KdPeg, NoKtp, Nama, Alamat, TempatLahir, TglLahir, Kota)

KdPeg dan NoKtp adalah kunci calon (Candidate Key), Misalnya KdPeg di jadikan primary key, maka NoKtp menjadi Alternate key.

Foreign KeyForeign Key• Jika sebuah primary key terhubungan ke table/entity lain, maka

keberadaan primary key pada entity tersebut di sebut sebagai foreign key. Foreign key adalah Sebuah kumpulan field dalam satu relasi yang digunakan untuk me“refer” (menunjuk) ke suatu baris (tuple) pada relasi yang lain (harus berkorespondensi dengan primary key pada relasi yang kedua), seperti: ‘logical pointer’.

• “Foreign key” adalah satu attribute yang melengkapi satu relationship yang menunjukan ke induknya, dengan kata lain keduanya saling berkaitan.

Kd_Kota

Nama_Kota

0501 Pontianak0502 Singkawang0503 Ketapang

Kd_Pelanggan

Nama

A001 AdityaB001 Bakdi B002 Bramanto

Kd_Kota

050105020502

KOTA

Kunci primer

Kunci asingFK

PKPK

Kunci Tamu (Lanjutan…)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)

Composite KeyComposite KeyDalam desain database, composite key adalah kunci yang terdiri dari 2 atau lebih atribut yang secara unik mengidentifikasi suatu kejadian entitas. Setiap atribut yang membentuk kunci senyawa adalah kunci sederhana dalam haknya sendiri. Contoh : BARANG (No_Pesanan, Kode_Barang, Jumlah)NILAI (No_Mhs, Kode_Matakuliah, Skor)

•Secondary keySekunder key adalah sebuah atribut atau kombinasi yang digunakan hanya untuk tujuan pengambilan data.

No_PelangganNama_Pelanggan Jalan Kota Kode_Pos

Secondary KeyPrimary Key

Relasi/ TabelRelasi/ 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 dengan garis bawah

PEGAWAI(PEGAWAI(Nomor_PegNomor_Peg, Nama), Nama)Kunci primer

Sifat TabelSifat Tabel1. Setiap Tabel memiliki nama yang unik2. Setiap isian pada perpotongan baris dan

kolom harus bersifat atomik (bernilai tunggal)

3. Setiap baris bersifat unik4. Setiap atribut memiliki nama yang unik5. Urutan kolom tidak penting6. Urutan baris juga tidak penting

Kekangan IntegritasKekangan Integritas(Integrity Constraint)(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 DomainKekangan 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 EntitasIntegritas 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 ReferensialIntegritas Referensial• Memastikan bahwa konsistensi

antara dua buah relasi tetap terjaga

Kd_Kota Nama_Kota

0501 Pontianak

0502 Singkawang

0503 Ketapang

Kd_Pelanggan Nama

A001 Aditya

B001 Bakdi

B002 Bramanto

Kd_Kota

0501

0502

0502

Keadaan Awal:Tabel Pelanggan Tabel Kota

Efek Tanpa Integritas Efek Tanpa Integritas ReferensialReferensial

Kd_Kota Nama_Kota

0501 Pontianak

0502 Singkawang

0503 Ketapang

Kd_Pelanggan Nama

A001 Aditya

B001 Bakdi

B002 Bramanto

Kd_Kota

0501

0502

0502

Keadaan Setekah data 0502 pada KOTA dihapus:Menjadi

tidak konsisten

Tabel Pelanggan Tabel Kota

Efek Integritas ReferensialEfek Integritas Referensial

Kd_Kota Nama_Kota

0501 Pontianak

0503 Ketapang

Kd_Pelanggan Nama

A001 Aditya

B002 Bramanto

Kd_Kota

0501

0503

0502 Singkawang

Keadaan Setekah data 0502 pada KOTA dihapus:

B001 Bakdi 0502Ikut terhapus!

atau penghapusan ditolak

Tabel Pelanggan Tabel Kota

Kekangan OperasionalKekangan 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 BaikRelasi 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

AnomaliAnomali1. Anomali penyisipan2. Anomali penghapusan3. Anomali peremajaan

Anomali PeremajaanAnomali Peremajaan• Terjadi bila terdapat

pengubahan pada sejumlah data yang redundan, tetapi tanpa sengaja tidak semua ikut diubah.

PEMASOK KOTA BARANG JUMLAH

Kartika Pontianak Monitor GGG 10

Citra Kuburaya ZIP drive 4

Candra Jungkat Keyboard 5

Citra Kuburaya Mouse CCP 25

Pemasok Citra pindah ke Singkawang dan Pengubahan dilakukan hanya pada

data pertama

PEMASOK KOTA BARANG JUMLAH

Kartika Pontianak Monitor GGG 10

Citra Singkawang ZIP drive 4

Candra Jungkat Keyboard 5

Citra Kuburaya Mouse CCP 25

Anomali PenyisipanAnomali Penyisipan• Terjadi bila ada

penambahan data• Perhatikan contoh

disamping• Masalah: “Bagaimana

caranya menyimpan fakta bahwa ruang baru bernama C.5.1 ada pada Gedung Ampera ?”

KULIAH RUA NG TEMPAT

Jaringan Komputer Lab 6 Gedung Ilham

Pengantar Basis Data Lab 7 Gedung Ilham

Matematikaa I C.2.7 Gedung Ampera

Sistem Pakar C.2.6 Gedung Ampera

Kecerdasan Buatan Lab 3 Gedung Ilham

Anomali PenghapusanAnomali 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 No_siswa 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 Tranformasi Diagram ER/EER ke Relasike Relasi

• Memetakan Entitas Reguler (kuat)

PELANGGANNo_Pelanggan

Nama_Pelanggan

Alamat_Pelanggan

No_PelangganNama_PelangganAlamat_Pelanggan

Tipe entitas PELANGGAN

Relasi PELANGGAN

Tranformasi Diagram ER Tranformasi Diagram ER ke Relasike Relasi

• Memetakan Entitas dengan Atribut Komposit

PELANGGANNo_Pelanggan

Nama_Pelanggan

Alamat_Pelanggan

No_PelangganNama_Pelanggan Jalan

Tipe entitas PELANGGAN dengan atribut komposit

Relasi PELANGGAN

JalanKota

Kode_Pos

Kota Kode_Pos

Tranformasi Diagram ER Tranformasi Diagram ER ke Relasike Relasi

• Memetakan Entitas dengan Atribut Bernilai Ganda

PEGAWAI

No_PegawaiNama_Pegawai

Keterampilan

No_Pegawai Nama_Pegawai Alamat_Pegawai

Tipe entitas PEGAWAI dengan atribut bernilai ganda

Relasi PEGAWAI

Alamat_Pegawai

No_Pegawai Keterampilan Relasi KETERAMPILAN PEGAWAI

Pemetaan Entitas LemahPemetaan Entitas Lemah

PEGAWAI Memiliki

No_Pegawai Nama_PegawaiNama_Tanggungan Tanggal_Lahir

TANGGUNGAN

No_Pegawai Nama_Pegawai Relasi PEGAWAI

No_PegawaiNama_TanggunganTanggal_Lahir Relasi TANGGUNGAN

1 M

Pemetaan Hubungan 1 to MPemetaan Hubungan 1 to M

MengirimPELANGGAN

No_Pelanggan Nama_Pelanggan Nomor_Pesan Tanggal_Pesan

PESANAN

No_PelangganNama_Pelanggan Relasi PELANGGAN

No_Pesan Tanggal_Pesan No_Pelanggan Relasi PESANAN

1 M

Pemetaan Hubungan M to MPemetaan Hubungan M to M

MemintaPESANAN

No_Pesan Tgl_Pesan Kode_Produk Harga_Unit

PRODUK

No_Pesan Tgl_pesan Relasi PESANAN

Kode_Produk Harga_Unit

Relasi BARIS PESANAN

Jumlah

No_Pesan Kode_Produk Jumlah

Relasi PRODUK

M N

Pemetaan Hubungan 1 to 1Pemetaan Hubungan 1 to 1

MengepalaiDOSEN

No_Dosen Nama_Dosen Kode_Prodi Nama_Prodi

PROGRAM STUDI

No_Dosen Nama_Dosen Relasi DOSEN

Relasi PROGRAM STUDI

Tanggal_Penugasan

Kode_Prodi Nama_Prodi No_DosenTanggal_penugasan

1 1

Pemetaan Entitas AsosiatifPemetaan Entitas Asosiatif(Ternary)(Ternary)

PENGIRIMANPELANGGAN

No_Pelanggan Nama Vendor Alamat

VENDOR

No_Pelanggan Nama Relasi PELANGGAN

Kode_Vendor Alamat

Relasi PENGIRIMAN

Tanggal

No_Kirim Tanggal Jumlah

Relasi VENDOR

No_KirimJumlah

No_PelangganKode_Vendor

1 1

Pemetaan Unary 1:NPemetaan Unary 1:N

PEGAWAI

No_PegawaiNama_Pegawai

No_Pegawai Nama_Pegawai Tgl_lahir Relasi PEGAWAI

Tgl_Lahir

Mengepalai

ID_Manajer

1

M

Pemetaan Unary M:MPemetaan Unary M:M

ITEM

No_ItemNama_Item

No_Item Nama_Item Harga_Unit Relasi ITEM

Harga_Unit

Tersusun_atasJumlah

No_Item No_Komponen Jumlah Relasi KOMPONEN

M

N

Pemetaan Hubungan Pemetaan Hubungan SuperSuperclassclass/Sub/Subclassclass

PEGAWAI

d

PEGAWAI HARIAN PEGAWAI TETAP PEGAWAI KONTRAK

Gaji_Bulanan

Nomor_Pegawai

Nama_Pegawai Alamat

Tgl_Mulai_Kerja

Upah_Harian Nomor_KontrakLama_KontrakTunjangan

Kompensasi

Tipe_Pegawai:

“H”

“K”“T”

Pemetaan Hubungan Pemetaan Hubungan SuperSuperclassclass/Sub/Subclassclass (Lanjutan…) (Lanjutan…)

• Model relasional tidak mendukung hubungan superclass/subclass secara langsung

• Strategi pemecahan untuk kasus di depan:1. Buat relasi terpisah untuk masing-masing

superclass dan subclass2. Berikan atribut-atribut yang umum (termasuk

kunci primer) ke superclass3. Masukkan pembeda subclass pada superclass4. Tambahkan kunci primer pada superclass ke

semua subtclass

Solusi Pemetaan Hubungan Solusi Pemetaan Hubungan Supertipe/SubtipeSupertipe/Subtipe

Nomor_PegawaiNama_Pegawai AlamatTgl_Mulai_Kerja PEGAWAI

Nomor_Pegawai Upah_Harian PEGAWAI HARIAN

Nomor_PegawaiGaji_Bulanan PEGAWAI TETAP

Nomor_PegawaiNomor_Kontrak

PEGAWAI KONTRAK

Tunjangan

Lama_KontrakKompensasi

Tipe_Pegawai

PRPR• 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