RELATIONAL DATA MODEL

advertisement
BASIS DATA (BS203)
MODEL RELASIONAL
[email protected]
fb: NDoro Edi
Outline
• Pendahuluan
– Model Data Relational & Syarat
• Transformasi Model ER  Model Relasi
– Himpunan Entitas, yg memiliki
• Atribut komposit
• Atibut bernilai banyak
– Himpunan Entitas Lemah
– Relasi Biner, Unary, N-Ary
– Implementasi Spesialisasi/Generalisasi
– Agregasi
– Integritas Basis Data
Transformasi
• Model Relasional adalah sebuah
struktur yang paling banyak
digunakan oleh sebagian DBMS.
• Oleh karena itu akan disajikan cara
transformasi E-R Diagram ke dalam
Model Basis Data Relasional.
Contoh ER-D
Nama
Alamat
NRP
Tgl_Lahir
Mahasiswa
4
TABEL MAHASISWA
NRP
0472001
0472002
0472003
0472004
0472005
0472006
0472007
0472008
Nama
Ria
Riny
Erica
John
Lucas
Paul
Philip
Mary
Alamat
Jl. Badak 2
Jl. Sapi 3
Jl. Macan 1
Jl. Riau 3
Jl. Duku 4
Jl. Badak 5
Jl. Riau 30
Jl. Riau 3
Tgl_Lahir
11/09/85
12/01/85
09/09/84
01/03/85
04/03/85
01/03/85
01/03/85
03/03/83
Model Basis Data Relasional
• Model basis data relasional
mempresentasikan basis data sebagai
sekumpulan tabel. Masing-masing tabel
mempunyai nama yang unik.
• Baris data (Row/Record) pada tabel
mempresentasikan sekumpulan nilai yang
saling berhubungan.
• Setiap nilai dihubungkan kepada sebuah
atribut.
Syarat
1.
2.
3.
4.
5.
6.
Setiap relasi mempunyai nama yang
unik.
Tak ada tupel (baris) yang kembar.
Urutan tupel tidaklah penting (tupeltupel dapat dipandang dalam
sembarang urutan).
Setiap atribut (kolom) memiliki nama
yang unik.
Letak atribut bebas (urutan atribut tidak
penting).
Setiap atribut memiliki nilai tunggal dan
jenisnya sama untuk semua tupel.
Transformasi Himpunan
Entitas
• Himpunan entitas kuat dengan atribut a1,
a2, …, an diimplementasikan sebagai
sebuah tabel dengan n kolom yang unik
(satu kolom per atribut).
• Setiap baris pada tabel
merepresentasikan satu entitas dari
himpunan entitas.
• Kita dapat menambah, menghapus, dan
mengubah baris pada tabel.
Transformasi Himpunan
Entitas dengan Atribut
Komposit
• Atribut Komposit diratakan dengan
membuat kolom baru untuk setiap
komponen dari atribut komposit.
Contoh
Relation schema: Customer-schema = (customer-id, firstname, middle-initial, last-name, street-number, street-name,
apartment-number,city,state,zip-code)
Integritas Referensial Customer = Relasi Customer
Entitas Customer
dengan atribut
komposit
Relasi CUSTOMER
Atribut Bernilai Banyak
(Multi Valued Attribute)
• Atribut Bernilai Banyak (misal disebut M)
dari himpunan entitas E direpresentasikan
dengan tabel EM yang terpisah.
 Tabel EM mempunyai atribut yang terdiri
dari kunci primer E dan atribut M yang
bernilai banyak.
 Setiap nilai dari Atribut Bernilai Banyak
menjadi baris yang berbeda pada tabel EM.
Contoh
E
M
 Tabel EM (Customer-PhoneNumber)
◦ Relation Schema: terdiri dari kunci primer E dan atribut M
 Customer-Schema = (customer-id, date-of-birth)
 Customer-PhoneNumber-Schema= (customer-id, phone-number)
Integritas Referensial
Customer
Customer-phone-number
(a)
Atribut Bernilai Banyak menjadi relasi terpisah dengan kunci tamu
(b)
Relasi Satu ke Banyak antara entitas awal dengan relasi baru
Latihan 3
Nama_d
NIK
Nama
DOSEN
Nama_b
Alamat
Gelar
Himpunan Entitas Lemah
 Himpunan entitas lemah dengan atribut a1, a2, …,
an dan himpunan entitas kuatnya dengan kunci
primer b1, b2, …, bm direpresentasikan sebagai
tabel dengan n+m kolom, satu untuk setiap {a1,
a2, …, an} U {b1, b2, …, bm}. b1, b2, …, bm
adalah kunci tamu dari yang menunjuk pada
himpunan entitas kuat.
 Pada penghapusan data, bila data pada himpunan
entitas yang kuat dihapus, data dengan kunci
primer tersebut juga harus dihapus dari himpunan
entitas lemah.
Payment-number
amount
Loan-number
loan
Hasil Relasi
Foreign key
Primary key
Payment-date
Loan-payment
payment
Payment-amount
Foreign key
Composite primary key
Latihan 5
Nama
NRP
Mahasiswa
Punya
Alamat
Nama
Hobbi
Kota
Jalan
NRP
Mahasiswa
Alamat
Punya
Pekerjaan
OrangTua
Nama
Alamat
Nama
Nama_d
Nama_b
Transformasi Relasi Biner
• Terdiri dari
– Transformasi relasi 1 : 1 (1-1)
– Transformasi relasi 1 : N atau N : 1 (1N/N-1)
– Transformasi relasi M : N (M-N)
Transformasi
Himpunan Relasi 1 : 1
• Untuk mentransformasikan relasi dengan
Derajat Relasi 1-1 yang menghubungkan 2
buah himpunan entitas (S dan T), pilih salah
satu relasi (katakan S) dan tambahkan dengan
kunci primer T plus atribut dari himpunan relasi
tersebut.
• Dalam hal memilih relasi, pilihlah yang jumlah
row-nya lebih sedikit atau yang ukuran
tabelnya diperkirakan lebih kecil.
Transformasi
Himpunan Relasi 1 : 1
nama_dos
nik
Dosen
alamat_dos
kode_jur
Mengepalai
Tabel: Dosen
nik nama_dos alamat_dos
nama_jur
Jurusan
Tabel: Jurusan
kode_jur nama_jur nik
Foreign key
Transformasi
Himpunan Relasi 1 : N atau N : 1
• Untuk mentransformasikan relasi dengan Derajat
Relasi 1-N atau N-1 yang menghubungkan 2
buah himpunan entitas (S dan T), pilih relasi
yang berderajat N (katakan S) dan tambahkan
kunci primer T (yang berderajat 1) plus atribut
dari himpunan relasi tersebut. Dengan kata lain,
kunci primer dari relasi yang berderajat satu
menjadi kunci tamu di relasi yang berderajat
banyak.
Transformasi
Himpunan Relasi 1 : N atau N : 1
waktu
nama_dos
nik
Dosen
alamat_dos
kode_kul
Mengajar
nama_kul
Kuliah
Tabel: Dosen
nik nama_dos alamat_dos
Foreign key
Tabel: Kuliah
kode_kul nama_kul nik waktu
Atribut
relasi
Transformasi Himpunan Relasi
M:N
Untuk mentransformasikan relasi dengan
Derajat Relasi N-N yang menghubungkan 2
buah himpunan entitas (S dan T), tambahkan
tabel khusus dengan kolom: kunci primer dari
himpunan entitas S plus kunci primer dari
himpunan entitas T plus atribut dari himpunan
relasi tersebut.
Translasi Relasi M:N
nim
nama_mhs
Mahasiswa
alamat_mhs
Foreign key
ke tabel Mahasiswa
Primary key
kode_kul
nilai
Mempelajari
tgl_lahir
nama_kul
Kuliah
Foreign key
ke tabel Kuliah
nim kode_kul nilai Tabel khusus yang mewakili
Relasi Mempelajari:
Tabel Mempelajari/Tabel
Nilai
Atribut relasi
KUNCI TAMU
(FOREIGN KEY)
• Kunci Tamu (kadang disebut kunci asing)
adalah sembarang atribut yang menunjuk
ke kunci primer pada tabel lain.
• Kunci tamu dapat menunjuk pada tabel
yang sama (tabel sendiri) – tidak selalu
harus menunjuk pada tabel yang lain.
Implementasi Relasi Tunggal
(Unary Relation)
 Satu ke Banyak: penggunaan field key dua
kali tetapi untuk fungsi yang berbeda.
 Banyak ke Banyak:
◦ pembentukan tabel baru yang
merepresentasikan relasi tersebut.
◦ Tabel baru ini mendapatkan field dari semua
atribut relasi (jika ada) yang ditambah dengan
atribut key dari himpunan entitasnya.
 Satu ke Satu: merupakan kasus khusus
dari hubungan satu ke banyak.
Contoh Unary 1:N
Tabel : Employee
employee-id employee-name
telepon-number
employee-id-mngr
Contoh Unary M : N
Hasil Unary M : N
• Tabel : Mahasiswa
NRP
Nama
TglLahir
• Tabel : Praktikum
NRPPeserta
NRP-Asisten-Praktikum
Contoh Unary 1:1
• Tabel : Orang
No-KTP
Nama TglLhr
No-KTP-Pasangan
Implementasi Relasi Multi
Entitas (N-ary Relation)
Relasi Multi Entitas dengan atribut a1, a2,
…, an yang menghubungkan himpunan
entitas Ei’s (katakan ada m himpunan
entitas): direpresentasikan dengan sebuah
tabel yang mempunyai n+m kolom, satu
untuk setiap {a1, a2, …, an} U {kunciprimer(E1), kunci-primer(E2), …, kunciprimer(Em)}
Contoh Ternary
nm-jab
id-jab
jabatan
nik
bekerja
pegawai
alamat
nm-cabang
nama
kota
cabang
kd-cab
kota
Hasil Relasi Ternary
• Skema Relasi (Relation Schema)
– Pegawai (NIK, nama, alamat, kota)
– Jabatan (id-jab, nm-jab)
– Bekerja (NIK, id-jab, kd-cab)
– Cabang (kd-cab, nm-cabang, kota)
Integritas Referensial
(Ternary)
Cabang
Implementasi
Spesialiasi/Generalisasi
• Cara 1:
– Buat tabel untuk entitas superior (higherlevel entity/lebih tinggi)
– Buat sebuah tabel untuk entitas yang ada di
bawahnya (sub entitas/ lower-level entity),
termasuk dari primary key superior entitas +
atribut sub entitas.
• Kerugian cara 1:
– Untuk mendapatkan informasi mengenai sub
entitas harus mengakses 2 buah tabel
Implementasi
Spesialiasi/Generalisasi
• Cara 2:
– Buat tabel untuk setiap himpunan entitas dengan
semua atribut lokal (di sub entitas) + atribut yg
diwariskan.
– Kalau cara ini digunakan untuk generalisasi yg
‘overlapping’, maka beberapa nilai seperti alamat
dan kota akan disimpan 2 kali dengan sia-sia.
Implementasi
Spesialiasi/Generalisasi
• Cara 3:
– Kalau generalisasinya disjoint dan total, tidak perlu
membuat tabel untuk himpunan entitas superior.
– Kalau generalisasinya ‘partial’, entitas yang
tidak termasuk sub entitas manapun tidak
dapat direpresentasikan.
Guidance
 Total Overlap & Partial Overlap  cara 1
lebih baik (tidak akan ada pengulangan data
terlalu banyak pada tabel sub-entitas)
 Partial + disjoint  cara 1 atau cara 2 tetapi
tabel superior harus ada agar entitas yang
tidak termasuk pada sub entitas manapun
dapat tetap direpresentasikan
 Total + disjoint  cara 3
tanpa tabel superior karena setiap entitas
pasti menjadi anggota dari salah satu sub
entitas
Contoh Total + Disjoint
ISA
Transformasi Total + Disjoint
•
•
Skema Relasi
Cara 1
– Karyawan (NIK, Nama, Alamat, Tgl-Gajian, Tipe Karyawan)
– Karyawan Tetap (NIK, Gaji-Bulanan)
– Karyawan Harian (NIK, Honor-per-jam)
•
Cara 2
– Karyawan (NIK, Nama, Alamat, Tgl-Gajian, Tipe Karyawan)
– Karyawan Tetap (NIK, Nama, Alamat, Tgl-Gajian, Tipe
Karyawan, Gaji-Bulanan)
– Karyawan Harian (NIK, Nama, Alamat, Tgl-Gajian, Tipe
Karyawan, Honor-per-jam)
•
Cara 3
– Karyawan Tetap (NIK, Nama, Alamat, Tgl-Gajian, Tipe
Karyawan, Gaji-Bulanan)
– Karyawan Harian (NIK, Nama, Alamat, Tgl-Gajian, Tipe
Karyawan, Honor-per-jam)
Latihan 1
Address
birthdate
NoKTP
JobType
Employee
ISA
Secretary
TypingSpeed
disjoint
Technician
TGrade
Name
Engineer
EngType
Latihan 2
Name
Address
NoKTP
Person
ISA
Salary
Employee
Degrees
Alumnus
Major
Year
Degree
Birth-date
Major-Dept
Student
Implementasi Agregasi
• Untuk merepresentasikan agregasi,
buat tabel baru yang memiliki:
 Kunci primer dari relasi agregasi
 Kunci primer dari entitas-entitas yang
dihubungi oleh relasi agregasi
 Atribut dari relasi agregasi
Contoh Agregasi
Skema Relasi Agregasi
•
•
•
•
•
Mahasiswa (NRP, NamaMhs)
Kuliah (KodeMK, NamaMK)
Mempelajari (NRP, KodeMK, Waktu)
Praktikum (kode_pra, nama_pra, jumlah_jam)
Mengikuti (NRP, KodeMK, kode_pra, nilai)
50
Integritas Basis Data
• Integritas Keunikan Data (Key
Constraints): setiap baris pada tabel
harus unik. Tidak boleh ada dua baris
yang sama.
• Integritas Domain Data (Domain
Constraints): nilai untuk setiap atribut
harus benar berdasarkan domain dari
atribut tersebut.
o Contoh: umur  integer; 4 boleh dan
4.3 tidak boleh!
Integritas Basis Data
• Integritas Referensial (Referential
Integrity Constraints): bila salah satu
baris pada tabel menunjuk pada baris di
tabel lain (kunci tamu), baris yang ditunjuk
tersebut harus ada. Dengan kata lain, nilai
dari kunci tamu harus ada sebagai kunci
primer di tabel yang ditunjuk.
• Integritas Entitas (Entity Integrity
Constraints): kunci primer tidak boleh
bernilai NULL.
Integritas Referensial

Ada 4 hal yang dapat dilakukan untuk
menjaga integritas referensial:
1. Tidak memperbolehkan
menghapus/mengubah data di tabel
utama jika ada tabel lain yang menunjuk
pada data tersebut melalui kunci tamu.
2. Jika menghapus data di tabel utama,
data di tabel yang menunjuk pada tabel
utama tersebut juga turut dihapus.
Integritas Referensial (2)
3. Jika menghapus data pada tabel utama,
kita dapat membuat nilai dari kunci tamu
pada tabel yang menunjuk pada tabel
utama NULL. Tetapi hal ini tidak
diperbolehkan untuk himpunan entitas
lemah.
4. Jika data ditambahkan pada tabel yang
menunjuk pada tabel utama tetapi data
tersebut tidak ada di tabel utama,
penambahan tidak diperbolehkan.
Contoh Integritas Referensial
Rangkuman Kuliah Model Relasional
• Pendahuluan
– Model Data Relational & Syarat
• Transformasi Model ER  Model Relasi
– Himpunan Entitas, yg memiliki
• Atribut komposit
• Atibut bernilai banyak
– Himpunan Entitas Lemah
– Relasi Biner, Unary, N-Ary
– Implementasi Spesialisasi/Generalisasi
– Agregasi
– Integritas Basis Data
Download