4.1 Pengenalan

Dengan menukar jadual pangkalan data kepada jadual biasa, anda kini boleh menganalisis hubungan antara mereka. Bilangan unsur yang berinteraksi antara dua jadual yang berkaitan dipanggil kardinaliti. Cardinality membantu anda mengawal seberapa cekap anda membahagikan data anda ke dalam jadual.

Secara teorinya, semua entiti boleh mengekalkan hubungan antara satu sama lain, tetapi dalam praktiknya, terdapat tiga jenis hubungan antara entiti:

  • Satu lawan satu
  • Satu kepada ramai
  • banyak ke banyak

4.2 Komunikasi satu dengan satu

Jika terdapat hanya satu kejadian entiti A untuk setiap kejadian entiti B, mereka dikatakan mempunyai hubungan satu dengan satu (sering dilambangkan sebagai "1:1"). Pada rajah ER, hubungan sedemikian ditunjukkan oleh garis dengan bar kecil pada setiap hujung:

Perhubungan 1:1 secara amnya menunjukkan bahawa, melainkan anda mempunyai sebab yang kukuh untuk memisahkannya, data kedua-dua jadual sebaiknya digabungkan menjadi satu.

Walau bagaimanapun, dalam beberapa keadaan adalah munasabah untuk menggunakan jadual dengan perhubungan 1:1. Jika jadual anda mempunyai medan dengan data pilihan, seperti perihalan, dan dalam banyak kes ia kosong, masuk akal untuk mengalihkan semua penerangan ke jadual berasingan, yang akan membolehkan anda menyingkirkan jurang yang kerap dan meningkatkan kecekapan pangkalan data anda .

Kemudian, untuk memetakan data dengan betul, anda perlu memasukkan sekurang-kurangnya satu lajur yang sama dalam setiap jadual (sebaik-baiknya pilih kunci utama untuk ini).

4.3 Hubungan satu-dengan-banyak

Jenis perhubungan ini berlaku apabila rekod dalam satu jadual dikaitkan dengan berbilang entiti dalam yang lain. Sebagai contoh, pelanggan yang sama boleh membuat beberapa pesanan, atau pelawat perpustakaan boleh meminjam beberapa buku dalam satu lawatan. Perhubungan satu dengan banyak (atau singkatannya 1:M) dinyatakan dalam rajah menggunakan tatatanda kaki gagak, seperti ditunjukkan dalam contoh di bawah:

Untuk menggunakan perhubungan 1:M semasa merancang pangkalan data, cuma tambah kunci utama daripada jadual "satu" sebagai atribut kepada jadual "banyak". Jika kunci utama berada dalam jadual lain, ia dipanggil "kunci asing". Jadual "satu" dianggap sebagai jadual induk, manakala jadual "banyak" dianggap sebagai jadual anak.

4.4 Hubungan ramai-ke-banyak

Apabila berbilang entiti dalam satu jadual boleh disambungkan kepada berbilang entiti dalam yang lain, mereka dianggap mempunyai perhubungan banyak-ke-banyak (atau M:M). Sebagai contoh, hubungan sedemikian wujud antara pelajar dan kelas, kerana setiap pelajar boleh menghadiri beberapa kelas yang berbeza, dan, dengan itu, ramai pelajar boleh datang ke setiap kelas.

Pada rajah ER, jenis hubungan ini dipaparkan seperti berikut:

Malangnya, adalah mustahil untuk melaksanakan hubungan sedemikian secara langsung dalam pangkalan data. Oleh itu, ia perlu dibahagikan kepada dua perhubungan satu dengan banyak.

Untuk melakukan ini, anda perlu mencipta entiti baharu antara kedua-dua jadual. Jika hubungan M:M diwujudkan antara jualan dan produk, entiti baharu boleh dipanggil "produk yang dijual" kerana ia akan mewakili kandungan setiap jualan.

Dengan "barang yang dijual" dan jadual "jualan" dan jadual "barangan" akan dipautkan mengikut jenis 1:M. Dalam model yang berbeza, entiti perantaraan sedemikian dipanggil secara berbeza - "jadual penghubung", "entiti bersekutu" atau "jadual nod".

Setiap entri jadual pautan menghubungkan dua entiti berbeza bagi jadual bersebelahan (dan mungkin juga mengandungi maklumat tambahan). Sebagai contoh, jadual pautan antara pelajar dan kelas mungkin kelihatan seperti ini:

4.5 Wajib atau tidak?

Satu lagi pendekatan untuk analisis pautan adalah untuk menentukan entiti yang berkaitan adalah prasyarat untuk kehadiran entiti lain. Bahagian pautan pilihan ditandakan dengan bulatan pada batang.

Sebagai contoh, untuk membolehkan sesebuah negara mempunyai wakilnya sendiri di PBB, ia mesti wujud di peta dunia, tetapi kenyataan sebaliknya adalah palsu:

Dua entiti boleh saling bergantung (iaitu, satu tidak boleh wujud tanpa yang lain).

Pautan rekursif

Kadangkala jadual boleh merujuk kepada dirinya sendiri. Sebagai contoh, jadual pekerja mungkin mempunyai atribut "pengurus" yang akan merujuk kami kepada pekerja lain dalam jadual yang sama. Ini adalah hubungan rekursif.

Sambungan tambahan

Pautan dianggap berlebihan jika ia dinyatakan lebih daripada sekali. Sebagai peraturan, salah satu daripadanya boleh dipadamkan tanpa kehilangan maklumat penting. Sebagai contoh, jika entiti "pelajar" disambungkan kepada entiti "guru" bukan sahaja secara langsung, tetapi juga secara tidak langsung melalui "kelas", masuk akal untuk menghapuskan hubungan antara entiti "pelajar" dan "guru". Keputusan ini dibenarkan oleh fakta bahawa adalah mungkin untuk menugaskan pelajar kepada guru hanya melalui kelas.

4.6 Integriti rujukan data

Apabila menukar kunci utama dan asing, seseorang harus memerhatikan aspek seperti integriti rujukan data . Idea utamanya adalah untuk menyimpan dua jadual dalam pangkalan data yang menyimpan data yang sama secara konsisten.

Integriti data mewakili perhubungan yang dibina dengan betul antara jadual dengan pautan yang betul di antaranya. Dalam kes apa integriti data boleh dilanggar:

  • Anomali pemadaman . Berlaku apabila baris dipadamkan daripada jadual utama. Dalam kes ini, kunci asing daripada jadual bergantung terus merujuk kepada baris yang dipadamkan daripada jadual induk.
  • Anomali sisipan . Berlaku apabila satu baris dimasukkan ke dalam jadual bergantung. Dalam kes ini, kunci asing daripada jadual bergantung tidak sepadan dengan kunci utama mana-mana baris daripada jadual induk.
  • Kemas kini anomali. Dengan anomali sedemikian, beberapa baris satu jadual mungkin mengandungi data yang dimiliki oleh objek yang sama. Jika anda menukar data dalam satu baris, ia boleh bercanggah dengan data dari baris lain.

Anomali pemadaman

Untuk menyelesaikan anomali pemadaman, kunci asing hendaklah ditetapkan kepada salah satu daripada dua kekangan:

Jika baris daripada jadual bergantung semestinya memerlukan baris daripada jadual induk, maka kunci asing ditetapkan kepada pemadaman lata. Iaitu, apabila satu baris dipadamkan daripada jadual induk, baris yang berkaitan akan dipadamkan daripada jadual bergantung.

Jika baris daripada jadual bergantung tidak membenarkan hubungan dengan baris daripada jadual utama (iaitu, hubungan sedemikian adalah pilihan), maka kunci asing ditetapkan kepada NULL apabila baris berkaitan dipadamkan daripada jadual utama. Lajur kunci asing mesti boleh dibatalkan.

Anomali sisipan

Untuk menyelesaikan anomali sisipan apabila menambah pada jadual data bergantung, lajur yang mewakili kunci asing mesti boleh dibatalkan. Oleh itu, jika objek yang ditambah tidak mempunyai sambungan dengan jadual utama, maka lajur kunci asing akan mempunyai nilai NULL.

Kemas kini anomali

Untuk menyelesaikan masalah anomali kemas kini, normalisasi digunakan, yang telah dibincangkan sebelum ini.