Wednesday, August 11, 2010

Tutorial 3 - Pangkalan Data Hubungan

Pangkalan Data Hubungan merupakan satu model yang mengandungi maklumat-maklumat yang akan disimpan di dalam pangkalan data dan ianya lebih menyerupai kepada bentuk jadual-jadual. Setiap jadual akan berhubungan di antara satu sama lain dengan menggunakan atribut kekunci iaitu Kekunci Utama serta Kekunci Asing.

Setiap jadual digelar sebagai skema jadual pangkalan data. Manakala maklumat yang tersimpan di dalam jadual digelar sebagai kejadian.

Untuk membentuk Pangkalan Data Hubungan, saya lebih suka merujuk kepada Model ER yang telah kita bentuk di dalam Tutorial 2 kerana ianya adalah saling berkaitan. Bagi saya, untuk memindahkan setiap hubungan yang terdapat di dalam Model ER kepada bentuk hubungan pangkalan data mempunyai petua-petua tertentu yang boleh diikuti. Melalui teknik ini, kita perlu memahami jenis hubungan bagi setiap entiti serta apakah atribut kekunci untuk setiap entiti.

a. Hubungan 1:1

Petua 1: Bagi Hubungan 1:1 (Rujuk Rajah 1.1) dalam Tutorial 2, ia merujuk kepada hubungan entiti kuat kepada entiti lemah (PENSYARAH kepada PERJAWATAN). Atribut kekunci bagi entiti PENSYARAH adalah Kod Pens manakala entiti lemah iaitu PERJAWATAN juga mempunyai atribut kekunci iaitu Gred. Apabila kita ingin memindahkan kepada bentuk jadual skema, kita akan turunkan atribut kekunci Kod Pens bagi PENSYARAH menjadi satu atribut yang terdapat di dalam jadual PERJAWATAN dan disebabkan entiti PERJAWATAN bergantung kepada entiti PENSYARAH, maka atribut Kod Pens tadi turut akan menjadi atribut kekunci di dalam jadual PERJAWATAN. Ini akan menyebabkan jadual PERJAWATAN akan mempunyai dua atribut kekunci (Kekunci Komposit Gabungan) iaitu Kod Pens dan Gred.



Contoh hubungan dua entiti dalam rajah Model ER.


Rajah 3.1 Skema Jadual Pangkalan Data Hubungan

Petua 2: Situasi ini akan jadi berbeza sekiranya entiti PERJAWATAN bukan satu entiti yang lemah. Apabila entiti PERJAWATAN ini boleh berdiri sendiri tanpa bergantung kepada entiti PENSYARAH, maka atribut kekunci bagi mana-mana jadual boleh dipindahkan kepada jadual satu lagi yang saling berhubungan. Atribut kekunci yang terdapat di dalam jadual yang berhubung itu digelar sebagai Kekunci Asing. Kekunci Asing digunakan untuk menghubungkan dua jadual yang berbeza. Sebagai contoh, lihat Model ER di bawah serta penukarannya kepada skema pangkalan data hubungan.

Rajah 3.2 : Model ER PENSYARAH KEPADA PERJAWATAN

Bagi Rajah Model ER di atas, hubungan bagi kedua-dua entiti adalah satu kepada satu. Mengikut petua yang kedua, apabila model ini dipindahkan kepada skema pangkalan data hubungan, ia boleh menghasilkan dua keadaan. Bagi saya penurunan kekunci utama bagi satu entiti kepada satu lagi entiti adalah mengikut kesesuaian apabila kita berjumpa keadaan seperti diatas. Sila rujuk rajah skema pangkalan data  hubungan bagi kedua-dua keadaan.


Rajah 3.3 : Skema Pangkalan Data Hubungan 1:1 (Keadaan 1)

Bagi Rajah 3.3, Kekunci utama bagi entiti/jadual  PENSYARAH iaitu KodPens telah diturunkan kepada jadual PERJAWATAN dengan menjadi kekunci asing bagi jadual tersebut.


Rajah 3.4 : Skema Pangkalan Data Hubungan 1:1 (Keadaan 2)

Sebaliknya bagi Rajah 3.4, kekunci utama PERJAWATAN iaitu BilJawat telah diturunkan kepada jadual PENSYARAH dan ianya menjadi kekunci asing bagi jadual tersebut. Keadaan ini wujud hanya pada Hubungan 1:1 pada pangkalandata kita.


b. Hubungan 1:N

Petua 3: Hubungan 1:N atau satu kepada banyak lebih dikenali sebagi hubungan bapa kepada anak. Biasanya saya suka menekankan bahawa dalam keadaan ini, situasinya boleh dibaca secara logik iaitu seorang bapa boleh mempunyai tiada anak (0) langsung atau ramai anak. Secara logik juga, identiti bapa akan diturunkan kepada anak dimana anak akan sentiasa memegang identiti bapa.

Begitu juga untuk Hubungan 1:N di dalam pangkalan data. Apabila kita ingin menukar Model ER yang mempunyai hubungan 1:N, kita perlu memastikan kita tahu yang mana satu merupakan entiti bapa (1) dan entiti anak (N). Kita boleh merujuk kepada nilai kardinaliti yang terletak di dalam hubungan pada Model ER. Sebagai contoh sila rujuk model ER di bawah yang menghubungkan JABATAN kepada PENSYARAH.



Secara logik, satu JABATAN akan mempunyai ramai PENSYARAH dan seorang PENSYARAH hanya bekerja dalam satu JABATAN sahaja. Sila rujuk juga nilai kardinaliti 1:N di mana 1 merujuk kepada JABATAN (yang pastinya kita akan terus mengenali ia sebagai entiti BAPA) dan N pula merujuk kepada PENSYARAH (entiti ANAK), maka mengikut petua, identiti bapa (jadual JABATAN) iaitu KodJabatan yang merupakan kekunci utama akan diturunkan kepada entiti anak (jadual PENSYARAH). Oleh itu KodJabatan yang terdapat di dalam jadual  PENSYARAH merupakan satu kekunci asing yang dapat menghubungkan kedua-dua jadual tersebut. Sila rujuk Rajah 3.5 untuk skema pangkalan data hubungan yang terhasil.

Rajah 3.5 : Skema Pangkalan Data Hubungan 1:N


c. Hubungan M:N

Petua 4 : Bagi hubungan M:N, secara mudahnya kita perlu memastikan untuk menghubungkan kedua-dua entiti ini menjadi jadual, kita perlu menerbitkan satu lagi jadual sebagai penghubung (intersaction table). Bagi situasi ini, jadual penghubung tersebut perlu mengandungi kekunci utama daripada kedua-dua jadual yang dihubungkan (dan ia akan menjadi kekunci komposit/kekunci utama di dalam jadual penghubung) serta ia turut mengandungi atribut-atribut lain yang mungkin wujud dalam hubungan itu sendiri. Sila rujuk Model ER di bawah.



Bagi model ER ini, PENSYARAH dan KURSUS mempunyai hubungan banyak kepada banyak (M:N) di mana seorang PENSYARAH boleh menghadiri banyak kursus dan satu kursus boleh dihadiri oleh ramai PENSYARAH. Apabila kita ingin memindahkannya kepada bentuk skema pangkalan data hubungan, ia akan menerbitkan satu jadual hubungan yang akan menghubungkan jadual PENSYARAH dengan jadual KURSUS. Kita bebas menamakan jadual hubungan tersebut tetapi nasihat saya, nama jadual hubungan perlulah sesuai dan boleh dijadikan rujukan terhadap hubungan yang terhasil. Sila rujuk rajah 3.6 untuk hasil terbitannya.

Rajah 3.6 : Skema Pangkalan Data Hubungan M:N


Setelah kita mengenalpasti jenis hubungan dengan mengenalpasti kekunci utama dan kekunci asing yang diperlukan untuk menghubungkan setiap jadual, maka terhasillah satu skema pangkalan data hubungan yang lengkap yang boleh kita rujuk sebagai skema jadual yang akan digunakan untuk pembangunan pangkalan data terutamanya membangunkan jadual di dalam Access. Di bawah merupakan skema lengkap bagi Rajah Model ER Pangkalan Data Maklumat PENSYARAH yang terdapat di dalam Tutorial 2.

Rajah 3.7 : Skema Pangkalan Data Hubungan Sistem Maklumat Pensyarah


No comments: