• Tidak ada hasil yang ditemukan

Perancangan Database Bagian I

N/A
N/A
Protected

Academic year: 2021

Membagikan "Perancangan Database Bagian I"

Copied!
8
0
0

Teks penuh

(1)

Perancangan

Database

Bagian I

1 4/26/2009

Pengantar

Apa yang akan dipelajari dalam modul ini?

Model data relasional

Relasi

Kunci

Integrity Constraints

Anomali

Transformasi Diagram E/R ke Relasi

Pemetaan Hubungan

4/26/2009 2

Model Data Relasional

• Diperkenalkan oleh Codd tahun 1970 • Data direprentasikan

dalam tabel berdimensi dua 3 Nomor_Peg Nama 05001 Karmen 05002 Tigor 05003 Sita Devi 4/26/2009

Model Data Relasional

• Tiga komponen yang mendasari model data relasional:

– Struktur data (data structure)

Data disusun dalam bentuk tabel (relasi) – Pemanipulasi data (data manipulation)

Tabel menyimpan operasi-operasi untuk

memanipulasi data. Contoh: perintah dalam bahasa SQL.

– Integritas data (data integrity)

Adanya fasilitas-fasilitas dalam aturan bisnis

(business rules)yang menjaga integritas data saat terjadi manipulasi data.

4/26/2009 4

Model Data Relasional

• Istilah relasi(relation)

menyatakan nama tabel • Suatu relasi dapat dituliskan

dengan cara:

Menggambarkan tabel Menuliskan notasi nama tabel

(namaKunciPrimer, nama kolom2,…) – Contoh: PEGAWAI(Nomor_Peg, Nama) 5 Nomor_Peg Nama 05001 Karmen 05002 Tigor 05003 Sita Devi Struktur data 4/26/2009

Relasi

• 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

6 PEGAWAI(Nomor_Peg, Nama)

Kunci primer

(2)

Kunci

• Kunci dapat dibedakan menjadi:

1. Kunci sederhana: Terdiri atas sebuah atribut

2. Kunci komposit: Tersusun atas dua atribut atau lebih 7 Kunci sederhana: PEGAWAI(Nomor_Peg, Nama) DEPARTEMEN(Kode_Dep, Nama_Dep) BARANG(Kode_Barang, Nama_Barang) Kunci komposit:

BARANG DIPESAN(No_Pesanan, Kode_Barang, Jumlah)

NILAI(No_Mhs, Kode_Matakuliah,Skor)

4/26/2009

Kunci Tamu

• Kunci tamu (foreign key) biasa digunakan

sebagai penghubung ke relasi lain

8 Kd_Kota  Nama_Kota 0501 Semarang 0502 Salatiga 0503 Kendal Kd_Pelanggan  Nama A001 Aditya B001 Bakdi B002 Bramanto Kd_Kota 0501 0502 0502

PELANGGAN(Tabel yang merujuk )

KOTA (Tabel yang dirujuk )

Kunci primer

Kunci asing

4/26/2009

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)

9 4/26/2009

Sifat Relasi

1. Setiap relasi memiliki nama yang unik 2. Setiap isian pada perpotongan baris dan kolom

(sel) 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

10 4/26/2009

Kekangan Integritas

(

Integrity Constraint

)

• Tujuannya adalah untuk memfasilitasi penjagaan

keakurasian dan integritas data dalam database

(supaya tetap konsisten) • Macamnya:

Kekangan domain (domain contraints)

Integritas entitas (entity integrity constraints)

Integritas referensial (referential integrity constraints)

Kekangan operasional 11

4/26/2009

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

12 4/26/2009

(3)

Contoh :

Gambar 1. Diagram E/R Nama atribut :……… Arti :……… Tipe data :……… Format :……… Jangkauan :……… Keunikan :……… Dukungan null:………. 4/26/2009 13 MHS mengambil KULIAH NIM

Integritas Entitas

• Memastikan bahwa data yang terkait dengan kunci primer tidak terlanggar

• Secara khusus, data Null pada kunci primer akan ditolak

Nullberarti nilai pada atribut tidak pernah

diberikan

14 4/26/2009

Integritas Referensial

• Memastikan bahwa konsistensi antara dua buah relasi tetap terjaga

15 Kd_Kota Nama_Kota 0501 Semarang 0502 Salatiga 0503 Kendal Kd_Pelanggan Nama A001 Aditya B001 Bakdi B002 Bramanto Kd_Kota 0501 0502 0502 Keadaan Awal: 4/26/2009

Efek Tanpa Integritas

Referensial

16 Kd_Kota Nama_Kota 0501 Semarang 0502 Salatiga 0503 Kendal Kd_Pelanggan Nama A001 Aditya B001 Bakdi B002 Bramanto Kd_Kota 0501 0502 0502

Keadaan Setelah data 0502 pada KOTA dihapus:

Menjadi tidak konsisten 4/26/2009

Efek Integritas

Referensial

17 Kd_Kota Nama_Kota 0501 Semarang 0503 Kendal Kd_Pelanggan Nama A001 Aditya B002 Bramanto Kd_Kota 0501 0502 0502 Salatiga

Keadaan Setekah data 0502 pada KOTA dihapus:

B001 Bakdi 0502

Ikut terhapus! atau penghapusan

ditolak

4/26/2009

Manipulasi data dalam

database

• Aturan-aturan yang perlu diterapkan agar tidak terjadi pelanggaran terhadap aturan integritas referensial :

Insertion ruleDeletion ruleUpdate rule

(4)

Insertion rule

• Aturan: Jika dilakukan penyisipan baris terhadap sebuah tabel yang merujuk, maka harus terdapat nilai yang bersesuaian dalam tabel yang dirujuk.

• Contoh: Jika dalam tabel Pelangganakan

dimasukkan data kota dengan kode kota 0510, maka tidak diijinkan. Mengapa?

4/26/2009 19

Deletion Rule

• Aturan: Jika diberlakukan penghapusan baris

terhadap sebuah tabel yang dirujuk dan memiliki nilai yang bersesuaian dengan tabel yang merujuk maka harus ada perlakuan tertentu

untuk menjamin integritas databasetersebut.

4/26/2009 20

Deletion Rule……

• Perlakuan yang mungkin diterapkan:

Restrict

Tidak mengijinkan penghapusan terhadap baris dalam tabel yang dirujuk.

Nullify

Nilai yang bersesuaian dari tabel yang merujuk disetmenjadi

nullkemudian menghapus baris dalam tabel yang dirujuk.

Cascading deletion

Baris yang bersesuaian dalam tabel yang merujuk secara otomatis akan ikut terhapus

4/26/B009 21

Update Rule

• Ada dua hal yang harus diperhatikan:

Jika nilai yang diupdate adalah kunci tamu pada tabel yang merujuk, maka perlakuan seperti insertion rule.

Jika nilai yang diupdate pada tabel yang dirujuk memiliki nilai yang bersesuaian dengan tabel yang merujuk maka perlakuan adalah sama seperti deletion rule.

4/26/2009 22

Implementasi Aturan

Integritas Referensial

1. Menerapkan logika pada program aplikasi yang menjamin aturan integritas referensial tetap dipertahankan, yaitu dalam baris-baris program. 2. Aturan integritas referensial dikenakan pada

tabel saat dibuat. Dapat dilakukan jika DBMS yang dipakai memiliki fasilitas untuk

mendukung integritas referensial. Mis: SQL.

4/26/2009 23

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

24 4/26/2009

(5)

Diskusi kelompok

• Untuk setiap jenis perlakuan (referential integrity constraint),

berikan contoh berdasar tabel PELANGGAN dan

KOTA

4/26/2009 25

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 26 4/26/2009

Anomali

1. Anomali penyisipan 2. Anomali penghapusan 3. Anomali peremajaan 27 4/26/2009

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 10 Citra Bandung ZIP drive 4 Candra Jakarta Keyboard 5 Citra Bandung Mouse CCP 25

PEMASOK KOTA BARANG JUMLAH Kartika Jakarta Monitor GGG 10

Citra Bogor ZIP drive 4 Candra Jakarta Keyboard 5

Citra Bandung Mouse CCP 25

28

Pemasok Citra pindah ke Bogor dan Pengubahan dilakukan hanya pada

data pertama

4/26/2009

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

Matematika I Rama Gedung Selatan

Sistem Pakar Sinta Gedung Selatan

Kecerdasan Buatan Merapi Gedung Utara

29 4/26/2009

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 20 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 20 Bahasa Jepang 160.000 30 4/26/2009

(6)

Tranformasi Diagram ER/EER

ke Relasi

• Memetakan Entitas Reguler (kuat)

31

PELANGGAN

No_Pelanggan

Nama_Pelanggan

Alamat_Pelanggan

No_Pelanggan Nama_Pelanggan Alamat_Pelanggan

Tipe entitas PELANGGAN Relasi PELANGGAN 4/26/2009

Tranformasi Diagram ER

ke Relasi

• Memetakan Entitas dengan Atribut Komposit

32

PELANGGAN

No_Pelanggan

Nama_Pelanggan

Alamat_Pelanggan

No_Pelanggan Nama_Pelanggan Jalan

Tipe entitas PELANGGAN dengan atribut komposit Relasi PELANGGAN Jalan Kota Kode_Pos Kota Kode_Pos 4/26/2009

Tranformasi Diagram ER

ke Relasi

• Memetakan Entitas dengan Atribut Bernilai Ganda

33

PEGAWAI

No_Pegawai

Nama_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

4/26/2009

Pemetaan Entitas

Lemah

34 PEGAWAI Memiliki No_Pegawai

Nama_Pegawai Nama_Tanggungan Tanggal_Lahir

TANGGUNGAN

No_Pegawai Nama_Pegawai Relasi PEGAWAI

No_Pegawai Nama_Tanggungan Tanggal_Lahir Relasi TANGGUNGAN

4/26/2009

Pemetaan Hubungan 1

to M

35 Mengirim PELANGGAN No_Pelanggan

Nama_Pelanggan Nomor_Pesan Tanggal_Pesan

PESANAN

No_Pelanggan Nama_Pelanggan Relasi PELANGGAN

No_Pesan Tanggal_Pesan No_Pelanggan Relasi PESANAN

4/26/2009

Pemetaan Hubungan M

to M

36 Meminta PESANAN 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

(7)

Pemetaan Hubungan 1

to 1

37 Mengepalai DOSEN 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_Dosen Tanggal_penugasan

4/26/2009

Pemetaan Entitas Asosiatif

(Ternary)

38 PENGIRIMAN

PELANGGAN No_Pelanggan

Nama Kode_Vendor Alamat

VENDOR

No_Pelanggan Nama Relasi PELANGGAN

Kode_Vendor Alamat

Relasi PENGIRIMAN Tanggal

No_Kirim Tanggal Jumlah

Relasi VENDOR No_Kirim Jumlah No_Pelanggan Kode_Vendor 4/26/2009

Pemetaan Unary 1:N

39 PEGAWAI No_Pegawai Nama_Pegawai

No_Pegawai Nama_Pegawai Tgl_lahir Relasi PEGAWAI Tgl_Lahir Mengepalai ID_Manajer 4/26/2009

Pemetaan Unary M:M

40 ITEM No_Item Nama_Item

No_Item Nama_Item Harga_Unit Relasi ITEM Harga_Unit

Tersusun_atas

Jumlah

No_Item No_Komponen Jumlah Relasi KOMPONEN

4/26/2009

Pemetaan Hubungan

Supertipe/Subtipe

41 PEGAWAI d

PEGAWAI HARIAN PEGAWAI TETAP PEGAWAI KONTRAK

Gaji_Bulanan Nomor_Pegawai

Nama_Pegawai Alamat

Tgl_Mulai_Kerja

Upah_Harian Tunjangan Nomor_Kontrak Lama_Kontrak Kompensasi Tipe_Pegawai: “H” “K” “T” 4/26/2009

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

42 4/26/2009

(8)

Solusi Pemetaan Hubungan

Supertipe/Subtipe

43

Nomor_Pegawai Nama_Pegawai Alamat Tgl_Mulai_Kerja PEGAWAI

Nomor_Pegawai Upah_Harian PEGAWAI HARIAN

Nomor_Pegawai Gaji_Bulanan PEGAWAI TETAP

Nomor_Pegawai Nomor_Kontrak PEGAWAI KONTRAK Tunjangan Lama_Kontrak Kompensasi Tipe_Pegawai 4/26/2009

Gambar

Tabel menyimpan operasi-operasi untuk
Gambar 1.  Diagram E/R Nama atribut :……………… Arti :……………… Tipe data :……………… Format :……………… Jangkauan :……………… Keunikan :……………… Dukungan null:……………

Referensi

Dokumen terkait

Komunikator : yang menyampaikan pesan kepada seseorang atau sejumlah orang; Encoding : Penyandian, yakni proses pengalihan pikiran dalam bentuk lambang; Message : pesan,

UNAIR NEWS – Tim peneliti program Calon Pengusaha Pemula Berbasis Teknologi (CPPBT) Fakultas Kedokteran Hewan Universitas Airlangga mengadakan acara pengenalan produk

Sedangkan dalam proses pengembangan Multimedia Pembelajarannya, peneliti menggunakan model prototype. Model Prototype adalah metode proses pembuatan sistem yang dibuat

Penelitian ini bertujuan untuk memberikan bukti empiris mengenai pengaruh penggunaan faktor produksi luas lahan, bibit, pupuk, fungisida, insetisida, dan tenaga

Deskriptor diambil berdasar- kan jumlah panelis yang menyatakan bahwa suatu soal diperkirakan mampu dijawab benar oleh siswa minimal lebih dari separoh (1/2) dari

Dengan diketahuinya keberadaan Battra ramuan dengan ramuan tanaman obat yang digunakan, merupakan tantangan bagi para peneliti untuk melakukan penelitian dan pengembangan ramuan

Analisis petrografi bertujuan untuk penamaan batu sedimen serta memperoleh data penunjang bagi Provenance agar dapat diketahui bagaimana kandungan persentase batuan baik

Puji syukur kepada Allah SWT atas rahmat dan karunia-Nya, sehingga penulis dapat menyelesaikan penyusunan skripsi dengan judul “FAKTOR - FAKTOR YANG MEMPENGARUHI