Showing posts with label Rekabentuk. Show all posts
Showing posts with label Rekabentuk. Show all posts

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


Thursday, August 5, 2010

Tutorial 2 - Model Hubungan Entiti

Model Hubungan Entiti (model ER) merupakan model paling asas sebagai kemudahan untuk membina pangkalan data. Ia merupakan konsep yang menghuraikan tentang struktur pangkalan data dan juga transaksi capaian serta kemaskini terhadap pagkalan data.


Perhubungan Dalam Pangkalan Data


Hubungan yang paling asas bagi membina pangkalan data hubungan adalah terdapat di dalam Model Hubungan Entiti (ERD) dan hubungan yang digunakan adalah lebih kepada hubungan Binari.

Terdapat 3 jenis hubungan binary dalam pangkalan data iaitu


a. Hubungan 1:1 (one to one)

Dimana dilihat dari segi satu jenis entiti tunggal berhubungan dengan satu entiti tunggal yang lain.


Rajah 1.1 : Contoh Hubungan 1:1

Berdasarkan kepada contoh di atas, terdapat dua entiti yang saling berhubungan iaitu entiti PENSYARAH dan entiti PERJAWATAN. Dalam hal ini satu PENYARAH hanya mempunyai satu maklumat PERJAWATAN sahaja. Selain itu, di sini dilihat entiti PERJAWATAN merupakan satu entiti yang lemah dan ia amat bergantung kepada entiti PENSYARAH. Ini bermaksud maklumat PERJAWATAN hanya wujud berdasarkan kepada kewujudan PENSYARAH dan ia akan menjadi satu maklumat PERJAWATAN hanya untuk seorang PENSYARAH sahaja.


b. Hubungan 1: N (one to many)


Rajah 1.2 : Contoh Hubungan 1:N

Dalam membangunkan sistem pangkalan data, hubungan yang sering saya temui adalah hubungan satu kepada banyak atau hubungan one to many ( 1:N). Bagi Rajah 1.2, ia akan dilihat sebagai satu JABATAN akan mempunyai lebih dari seorang (ramai) PENSYARAH manakala satu PENSYARAH akan hanya bekerja untuk satu JABATAN sahaja.


c. Hubungan M:N (many to many)


Rajah 1.3 : Contoh Hubungan M:N

Bagi Rajah 1.3, ini merupakan satu contoh bagi hubungan banyak kepada banyak atau Many to many (M:N). Bagi situasi ini, ia akan menjadi seorang PENSYARAH boleh menghadiri tidak ada kursus atau lebih dari satu kursus (banyak) KURSUS manakala satu KURSUS yang sama boleh dihadiri oleh lebih dari seorang (ramai) PENSYARAH. 

Hubungan 1:1, 1:N dan M:N akan menunjukkan kardinaliti bagi satu-satu hubungan. Dan di dalam tutorial ini, saya tidak bertujuan untuk menerangkan lebih lanjut berkenaan kardinaliti dalam pembangunan pangkalan data. Tujuan saya agar anda faham serba sedikit berkenaan situasi di dalam yang mungkin berlaku di dalam membangunkan satu pangkalan data yang ringkas sahaja.


Di bawah (Rajah 1.4) meruapakan contoh lengkap Model ER bagi satu sistem maklumat pensyarah jabatan. Setiap senarai maklumat yang terdapat di sebelah entiti merupakan atribut bagi entiti tersebut. Setiap atribut yang bergaris dan dihitamkan merupakan Atribut KEKUNCI yang merujuk kepada maklumat khusus yang unik yang akan membezakan setiap baris maklumat yang terdapat pada entiti tersebut.


Contoh Rajah Model ER



Rajah 1.4: Contoh Rajah Model ER


Setelah kita berjaya merekebentuk Model ER bagi pangkalan data kita, seterusnya barulah kita menukar model ER tersebut kepada rekabentuk pangkalan data hubungan agar ia lebih dekat dan jelas untuk dirujuk berdasarkan kepada sistem DBMS yang akan kita gunakan.