UNIVERSITI TUN HUSSEIN ONN MALAYSIA FAKULTI KEJURUTERAAN ELEKTRIK DAN ELEKTRONIK
Model Hubungan 18 Januari 2010
Sepintas lalu… • • • • • • •
Pengenalan Struktur data hubungan Ciri-ciri suatu hubungan Istilah dan terminologi Kunci-kunci perhubungan data Kewibawaan Hubungan Kesandaran Fungsi
1
Pengenalan • Diperkenalkan pertama kali oleh E.F. Codd berasaskan penyelidikan di IBM pada 1970. • Penggunaan struktur data yang mudah menjadikan model tersebut sebagai penyumbang penting kepada pembangunan sistem pangkalan data pada hari ini.
Pengenalan • Objektif model hubungan – Mencapai kebebasan data yang tinggi – Menyediakan asas data yang kukuh bagi pengendalian masalah data semantik, konsisten dan pernormalan.
2
Struktur data hubungan • Hubungan adalah jadual yang terdiri dari baris dan lajur. • Pengguna perlu melihat pangkalan data sebagai satu jadual. • Paras logikal dalam ANSI-SPARC
Ciri-ciri Suatu Hubungan • Ciri-ciri model hubungan ¾ Mempunyai struktur dua dimensi ¾ Satu baris mewakili satu rekod daripada entiti ¾ Setiap lajur mewakili satu atribut dan setiap atribut mempunyai nama yang unik ¾ Persilangan antara baris dan lajur mewakili satu unit data. ¾ Setiap jadual mesti mempunyai satu kunci primer yang dapat mengenalpasti setiap rekod secara unik
3
Ciri-ciri suatu hubungan (Con) ¾ Semua nilai bagi atribut yang sama mesti mengikut format yang sama. ¾ Setiap lajur mempunyai had nilai yang dibenarkan yang dikenali sebagai domain ¾ Setiap baris mewakili maklumat yang mewakili satu kejadian entiti ¾ Susunan baris dan lajur adalah tidak penting
Istilah dan terminologi • Bagi mengelakkan kekeliruan untuk istilahistilah dalam model hubungan. Istilah Formal
Alternatif 1
Alternatif 2
Hubungan
Jadual
Fail
Rekod
Baris
Rangkap
Atribut
Lajur
Medan
4
Kunci-kunci perhubungan data • Kunci Primer (Primary Key) • Penentu unik dalam setiap rekod/baris • Contoh: NoMatrik, NoPekerja • Kunci Komposit (Composite Key) • Kumpulan atribut (2 atau lebih atribut yang menjadi penentu kepada rekod • Contoh: NoMatrik dan KodKursus untuk tentukan Gred markah pelajar
Kunci-kunci perhubungan data • Kunci Pilihan (Alternate Key) • Atribut atau kumpulan atribut yang boleh menjadi penentu yang unik tetapi tidak dipilih sebagai kunci primer. • Contoh: NoKadPengenalan • Kunci Kedua (Secondary Key) • Atribut yang boleh digunakan untuk membuat capaian kepada rekod tetapi tidak cukup syarat menjadi kunci primer • Contoh: NamaPelajar
5
Kunci-kunci perhubungan data • Kunci Asing (Foreign Key) • Atribut atau kumpulan atribut yang terdapat dalam sesuatu jadual untuk tujuan untuk memadankannya dengan kunci primer jadual yang lain. Tujuannya untuk tujuan rujukan. • Contoh: Atribut NoStaf dalam jadual PELAJAR menunjukkan penasihat kepada PELAJAR. Atribut NoStaf dalam jadual PELAJAR ini merupakan kunci asing kepada jadual PELAJAR
Kunci-kunci perhubungan data • Kunci Logikal (Logical Key) • Sama seperti kunci primer • Kunci Fizikal (Physical Key) • Kunci yang dipilih untuk menjadi kunci dalam pangkalan data. Kunci yang digunakan untuk mengindeks hubungan dalam pangkalan data. • Contoh: NoMatrik
6
Kewibawaan Hubungan • Merujuk kepada kepercayaan (reliability), keaslian (originality), dan autoriti (authority) terhadap data. • Model hubungan akan mempengaruhi kewibawaan sesuatu pangkalan data • Peraturan kewibawaan berkait rapat dengan kekangan domain (domain constraint) dan atribut nol (Null atributes)
Kewibawaan Hubungan • Nol (Null) • Mewakili nilai suatu atribut yang tidak diketahui pada masa itu atau tidak bersesuaian dengan rekod berkenaan. • Tiada nilai yang sesuai pada ketika itu
7
Kewibawaan Hubungan • Kewibawaan Entiti • Tiada atribut yang menjadi kunci primer adalah nol dalam jadual asas • Atribut kunci primer tidak boleh bernilai Nol
Kewibawaan Hubungan • Kewibawaan Rujukan • Merujuk kepada kunci asing pada jadual yang dirujuk. • Jika kunci asing bukan nilai nol, pastikan ianya wujud pada jadual yang dirujuk.
8
Ciri-ciri DBMS Hubungan • 12 Kriteria yang telah digariskan oleh A.F. Codd (1985) untuk menentukan suatu DBMS itu DBMS hubungan atau tidak. • Connolly (1996) telah mengkategorikan kriteria kepada LIMA (5) kumpulan mengikut fungsi:
LIMA (5) Kategori mengikut fungsi • • • • •
Peraturan Asas – (Rule 0 dan 12) Peraturan Struktural – (Rule 1 dan 6) Peraturan Kewibawaan – (Rule 3 dan 10) Peraturan Pengolahan Data – (Rule 2,4,5 dan 7) Peraturan Kebebasan Data – (Rule 8,9 dan 11)
9
Peraturan Asas (Rule 0 dan 12) • Ujian yang mudah. Jika tidak dipenuhi maka DBMS itu tidak boleh dikatakan DBMS Hubungan Rule 0 – Peraturan Asas
Rule 12 – Peraturan ‘Nonsubversion’
Suatu DBMS hubungan mestilah berupaya mengurus pangkalan datanya menggunakan hubungannya sendiri.
Sekiranya sistem hubungan mempunyai satu bahasa peringkat rendah, ia tidak boleh digunakan untuk melangkau peraturan kewibawaan dan kekangan yang dinyatakan dalam bahasa hubungan peringkat tinggi
Menentukan capaian terhadap pangkalan data sentiasa dibawah kawalan DBMS
Peraturan Struktural (Rule 1 dan 6) • Menentukan struktur asas hubungan seperti jadual, domain dan kunci disokong oleh suatu DBMS hubungan. Rule 1 – Perwakilan Maklumat
Rule 6 – Kemaskini Pandangan
Semua maklumat dalam pangkalan data hubungan pada peringkat logikal mesti diwakili sebagai nilai dalam jadual
Semua pandangan yang boleh dikemaskini secara teori mestilah dikemaskini oleh sistem
10
Peraturan Integriti (Rule 3 dan 10)
Rule 3 – Perwakilan NULL
Rule 10 – Perwakilan Kewibawaan
Sistem mestilah berupaya mewakili NULL secara sistematik tanpa mengira jenis unsur data. NULL mestilah berbeza daripada sifar atau lain-lain nombor.
Kekangan kewibawaan yang khusus pada sesuatu pangkalan data mestilah dapat ditakrif dalam subbahasa data dan disimpan dalam katalog, bukan dalam aturcara
Peraturan Pengolahan Data (Rule 2,4,5 dan 7)
Rule 2 – Jaminan Capaian
Rule 4 – Katalog Hubungan
Mana-mana unsur data dalam DB mestilah dapat diakses dengan memberikan nama jadual, lajur dan kunci primer atau kombinasinya
Katalog sistem yang mengandungi maklumat pangkalan data pada peringkat logikal mestilah diwakili sebagaimana data biasa.
Rule 5 – Subbahasa Data LEngkap
Rule 7 – Pengendalian INSERT, DELETE, UPDATE
DBMS mesti mempunyai sekurangkurangnya satu bahasa yang boleh digunakan untuk: takrifan data, takrifan pandangan, pengolahan data, kekangan kewibawaan, penguatkuasaan, kendalian transaksi
Kebolehan mengendalikan hubungan asas dan pandangan sebagai operan tunggal bukan sahaja dapat dilakukan bagi tujuan mendapatkan kembali data tetapi bagi tujuan penambahan, penghapusan dan kemasikini data
11
Peraturan Pengolahan Data (Rule 8,9 dan 11) Rule 8 – Kebebasan data fizikal
Rule 8 – Kebebasan Data Logikal
Aturcara penggunaan tidak terjejas oleh perubahan yang dibuat terhadap perwakilan storan atau kaedah capaian
Perubahan yang dibuat terhadap paras logikal yang tidak menukar kandungan maklumat pada paras logikal tidak memerlukan pengubahsuaian terhadap aturcara penggunaan
Rule 11 – Kebebasan Pengagihan Subbahasa pengolahan data bagi DBMS hubungan mestilah berkeupayaan supaya pertanyaan dan aturcara penggunaan secara logiknya tidak berubah walaupun secara fizikalnya terpusat (centralized) atau teragih (diatributed)
Kesandaran Fungsi (Functional Dependencies) • Sesuatu atribut itu dikatakan bersandar secara fungsi jika nilainya ditentukan oleh atribut lain. • Boleh diwakilkan sebagai berikut:• XÆY • Dimana X ialah penentu dan Y ialah atribut yang bersandar.
12
Kesandaran Fungsi (Functional Dependencies) • • • • •
Jika A Æ (B,C) Jadi A Æ B dan A Æ C Contoh: NoMatrik Æ Nama, Umur, Jantina Nama, Umur dan Jantina bersandar secara fungsi kepada NoMatrik
Kesandaran Fungsi (Functional Dependencies) • • • • • •
Tetapi jika (A,B) Æ C TIDAK Semestinya A Æ C dan B Æ C Contoh: (NoMatrik, KodKursus) Æ Gred Tidak semestinya NoMatrik menentukan Gred dan KodKursus menentukan Gred
13
Transformasi Model E-R ke model hubungan (Entiti Mudah) Nama Umur
NoPekerja
PEKERJA
Jawatan Jantina
PEKERJA(NoPekerja, Nama, Umur, Jantina, Jawatan)
Transformasi Model E-R ke model hubungan (Entiti Multi-nilai) Umur
Nama
NoPekerja
PEKERJA
Punya
TELEFON
Jantina Jawatan Keterangan
PEKERJA(NoPekerja, Nama, Umur, Jantina, Jawatan)
Nombor
TELEFON(NoPekerja, Keterangan, Nombor)
14
Transformasi Model E-R ke model hubungan untuk One-to-one relationship • Hubungan 1:1 Nama entiti ditukar ke nama hubungan(jadual) Atribut kepada entiti ditukar kepada medan Masukkan kunci primer daripada mana-mana entiti ke dalam entiti pasangan
Transformasi Model E-R ke model hubungan untuk One-to-one relationship • Contoh Nama
NoPekerja
Jantina
Umur
PEKERJA
NoJabatan Nama Jabatan
Mengarah
JABATAN
Jawatan
15
Transformasi Model E-R ke model hubungan untuk One-to-one relationship PEKERJA(NoPekerja, Nama, Umur, Jantina, Jawatan) JABATAN(NoJabatan, NamaJabatan, NoPekerja)
ATAU
Foreign Key
PEKERJA(NoPekerja, Nama, Umur, Jantina, Jawatan, NoJabatan) Foreign Key
JABATAN(NoJabatan, NamaJabatan)
Transformasi Model E-R ke model hubungan untuk One-to-many relationship • Hubungan 1:M ¾ Nama entiti ditukar ke nama hubungan(jadual) ¾ Atribut kepada entiti ditukar kepada medan ¾ Masukkan kunci daripada parent entity ke dalam child entity dimana entiti yang mempunyai hubungan maksimum satu ialah parent dan hubungan maksimum banyak ialah child
16
Transformasi Model E-R ke model hubungan untuk One-to-many relationship
NoPekerja
NoMatrik
Nama
PENASIHAT
PELAJAR
Nasihat
Umur Jantina
Program
Parent
Nama
Kolej
Child
Transformasi Model E-R ke model hubungan untuk One-to-many relationship
PENASIHAT(NoPekerja, Nama, Umur, Jantina) PELAJAR(NoMatrik, Nama, Program, Kolej, NoPekerja)
17
Transformasi Model E-R ke model hubungan untuk Many-to-many relationship • Hubungan M:N – Nama entiti ditukar ke nama hubungan(jadual) – Atribut kepada entiti ditukar kepada medan – Tidak perlu membentuk foreign key tetapi bentuk hubungan ketiga yang menjadi perantara bagi kedua-dua hubungan – Hubungan ketiga ini perlu mengandungi kunci bagi kedua-dua entiti sebagai kunci komposit
Transformasi Model E-R ke model hubungan untuk Many-to-many relationship • Contoh NoMatrik
KodKursus
Nama
PELAJAR
Daftar
Nama Kursus
KURSUS
Program Kolej
JamKredit
18
Transformasi Model E-R ke model hubungan untuk Many-to-many relationship
• PELAJAR(NoMatrik, Nama, Program, Kolej) • KURSUS(KodKursus, Nama, JamKredit) • PELAJAR_KURSUS(NoMatrik, KodKursus)
Transformasi Model E-R ke model hubungan untuk One to one relationship (Recursive) • Contoh masalah • Sebuah syarikat memberi kemudahan pinjaman kepada pekerja-pekerja syarikatnya. Syarat untuk meminjam:– Setiap peminjam perlu mendapatkan seorang penjamin daripada pekerja dalam syarikat. – Setiap penjamin hanya boleh menjamin seorang pekerja sahaja pada satu-satu masa.
19
Transformasi Model E-R ke model hubungan untuk One to one relationship (Recursive)
PEKERJA
Menjamin
Seorang pekerja boleh menjamin seorang pekerja Seorang pekerja hanya boleh dijamin oleh seorang pekerja
Transformasi Model E-R ke model hubungan untuk One to one relationship (Recursive) • Transformasi ke model hubungan • Bagi menukar ke model hubungan, satu medan perlu ditambah yang akan menjadi medan rujukan (foreign key) PEKERJA(NoPekerja, Nama, Umur, NoPenjamin*) *NoPenjamin adalah NoPekerja yang menjamin pekerja
20
Transformasi Model E-R ke model hubungan untuk One to one relationship (Recursive) NoPekerja
Nama
Umur
Jantina
Penjamin
456
Hafiz
43
Lelaki
326
326
Salmah
37
Perempuan
231
Amin
40
Lelaki
651
651
Zarifah
30
Perempuan
524
524
Zulkifli
34
Lelaki
Transformasi Model E-R ke model hubungan untuk One to many relationship (Recursive) • Contoh masalah • Satu organisasi telah menukar syarat untuk meminjam wang:– Setiap peminjam perlu mendapatkan seorang penjamin – Setiap penjamin boleh menjamin ramai peminjam.
21
Transformasi Model E-R ke model hubungan untuk One to many relationship (Recursive)
PEKERJA
Menjamin
Seorang pekerja boleh menjamin ramai pekerja Ramai pekerja boleh dijamin oleh seorang pekerja yang sama
Transformasi Model E-R ke model hubungan untuk One to many relationship (Recursive) • Transformasi ke model hubungan • Bagi menukar ke model hubungan, satu medan perlu ditambah yang akan menjadi medan rujukan (foreign key) PEKERJA(NoPekerja, Nama, Umur, NoPenjamin*) *NoPenjamin adalah NoPekerja yang menjamin pekerja
22
Transformasi Model E-R ke model hubungan untuk One to many relationship (Recursive) NoPekerja
Nama
Umur
Jantina
Penjamin
456
Hafiz
43
Lelaki
326
326
Salmah
37
Perempuan
456
231
Amin
40
Lelaki
326
651
Zarifah
30
Perempuan
456
524
Zulkifli
34
Lelaki
326
101
Shahrum
53
Lelaki
578
Azli
45
Lelaki
101
Transformasi Model E-R ke model hubungan untuk Many to many relationship (Recursive) • Contoh masalah • Pendaftaran Kursus A memerlukan kepada prasyarat beberapa kursus lain. • Kursus A juga menjadi pra-syarat kepada beberapa kursus lain.
23
Transformasi Model E-R ke model hubungan untuk many to many relationship (Recursive)
KURSUS
Pra-syarat
Kursus A memerlukan kepada pra-syarat beberapa kursus lain Kursus A juga menjadi pra-syarat kepada beberapa kursus lain.
Transformasi Model E-R ke model hubungan untuk many to many relationship (Recursive) • Pemodelan entiti banyak ke banyak memerlukan pembentukan satu hubungan baru bagi KURSUS dan hubungan baru dapat menghubungkan kursus dengan kursus lain sebagai pra-syarat. KURSUS(KodKursus, NamaKursus, JamKredit) KURSUS_SYARAT(KodKursus,Prasyarat)
24
Transformasi Model E-R ke model hubungan untuk many to many relationship (Recursive) • KURSUS KodKursus
NamaKursus
JamKredit
BKE5343
Sistem Pengurusan Pangkalan Data
3
BKE4353
Kejuruteraan Web
3
BKE4253
Komunikasi Data
3
BKE5223
Sistem Pengoperasian
3
BKE5242
Kejuruteraan Perisian
3
BKE5353
Komunikasi Cellular
3
KURSUS_SYARAT
KodKursus
PraSyarat
BKE5343
BKE4353
BKE5353
BKE5343
BKE5223
BKE5242
BKE4253
BKE5242
Transformasi Model E-R ke model hubungan untuk Subtype and Supertype • Contoh: • Ahli perpustakaan terdiri dari Pensyarah, Pelajar, dan Staf AHLI
AHLI_PEN Fakulti NoBilik Telefon
AHLI_PEL Kolej Program
NoAhli Nama TempohTamat
AHLI_STAF Jawatan Jabatan Telefon
25
Transformasi Model E-R ke model hubungan untuk Subtype and Supertype • Pemodelannya seperti berikut • • • •
AHLI(NoAhli, Nama, TempohTamat) AHLI_PEN(NoAhli,Fakulti, NoBilik, Telefon) AHLI_PEL(NoAhli, Program, Kolej) AHLI_STAF(NoAhli, Jawatan, Jabatan, Telefon)
26