Skip to main content

Pengenalan kepada Hubungan Pangkalan Data

PANGKALAN DATA (Mungkin 2025)

PANGKALAN DATA (Mungkin 2025)
Anonim

Istilah pangkalan data "hubungan" atau "hubungan" menerangkan cara data di dalam jadual dihubungkan.

Pendatang baru ke dunia pangkalan data sering mengalami kesulitan melihat perbezaan antara pangkalan data dan spreadsheet. Mereka melihat jadual data dan mengiktiraf bahawa pangkalan data membolehkan anda mengatur dan menanyakan data dengan cara yang baru, tetapi gagal memahami pentingnya hubungan antara data yang memberikan namanya teknologi pangkalan data hubungannya.

Hubungan membolehkan anda menerangkan hubungan antara jadual pangkalan data yang berbeza dengan cara yang berkuasa. Hubungan ini kemudiannya dapat dimanfaatkan untuk melakukan pertanyaan silang meja yang kuat, yang dikenali sebagai bergabung.

Jenis Hubungan Pangkalan Data

Terdapat tiga jenis hubungan pangkalan data yang berbeza, masing-masing dinamakan mengikut bilangan baris jadual yang mungkin terlibat dalam hubungan. Setiap tiga jenis hubungan wujud di antara dua jadual.

  • Hubungan antara satu sama lain berlaku apabila setiap entri dalam jadual pertama mempunyai satu, dan hanya satu, rakan sejawatan dalam jadual kedua. Hubungan antara satu sama lain jarang digunakan kerana ia sering lebih cekap untuk hanya memasukkan semua maklumat dalam satu jadual. Beberapa pereka pangkalan data memanfaatkan hubungan ini dengan membuat jadual yang mengandungi subset data dari jadual lain.
  • Hubungan antara satu sama lain adalah jenis hubungan pangkalan data yang paling biasa. Mereka berlaku apabila setiap rekod dalam Jadual A sepadan dengan satu atau lebih rekod dalam Jadual B, tetapi setiap rekod dalam Jadual B sepadan dengan hanya satu rekod dalam Jadual A. Sebagai contoh, hubungan antara jadual Guru dan jadual Pelajar di sekolah rendah Pangkalan data mungkin akan menjadi hubungan satu sama banyak, kerana setiap pelajar mempunyai hanya satu guru, tetapi setiap guru mempunyai beberapa pelajar. Reka satu-banyak ini membantu menghapuskan data pendua.
  • Hubungan ramai-kepada-banyak berlaku apabila setiap rekod dalam Jadual A sepadan dengan satu atau lebih rekod dalam Jadual B, dan setiap rekod dalam Jadual B sepadan dengan satu atau lebih rekod dalam Jadual A. Sebagai contoh, perhubungan antara Guru dan Jadual Kursus mungkin akan banyak- kepada-banyak kerana setiap guru boleh mengarahkan lebih daripada satu kursus, dan setiap kursus mungkin mempunyai lebih dari satu pengajar.

Hubungan Rujukan Sendiri: Satu Kes Khas

Hubungan rujuk diri berlaku apabila terdapat hanya satu jadual yang terlibat. Satu contoh biasa ialah jadual Pekerja yang mengandungi maklumat mengenai penyelia setiap pekerja. Setiap penyelia juga merupakan pekerja dan mempunyai penyelia sendiri. Dalam kes ini, terdapat hubungan satu rujukan kepada diri sendiri, kerana setiap pekerja mempunyai satu penyelia, tetapi setiap penyelia mungkin mempunyai lebih dari satu pekerja.

Mewujudkan Hubungan Dengan Kekunci Asing

Anda membuat hubungan antara jadual dengan menyatakan kunci asing. Kunci ini memberitahu pangkalan data hubungan bagaimana jadual berkaitan. Dalam banyak kes, satu lajur dalam Jadual A mengandungi kunci utama yang dirujuk dari Jadual B.

Pertimbangkan lagi contoh jadual Guru dan Pelajar. Jadual guru mengandungi hanya ID, nama, dan lajur kursus:

Guru
InstructorIDTeacher_NameKursus
001John DoeBahasa Inggeris
002Jane SchmoeMatematik

Jadual Pelajar merangkumi ID, nama, dan lajur utama asing:

Pelajar
ID pelajarNama pelajarTeacher_FK
0200Lowell Smith001
0201Brian Short001
0202Corky Mendez002
0203Monica Jones001

Lajur Teacher_FK dalam jadual Pelajar merujuk nilai utama utama pengajar dalam jadual Guru.

Lazimnya, pereka pangkalan data akan menggunakan "PK" atau "FK" dalam nama lajur untuk mengenal pasti kunci utama atau lajur utama asing.

Perhatikan bahawa kedua-dua jadual ini menggambarkan hubungan antara satu sama lain antara guru dan pelajar.

Hubungan dan Integriti Rujukan

Sebaik sahaja anda telah menambah kunci asing ke meja, anda boleh membuat kekangan pangkalan data yang menguatkuasakan integriti rujukan antara kedua-dua jadual. Ini memastikan hubungan antara jadual tetap konsisten. Apabila satu jadual mempunyai kunci asing ke jadual lain, konsep integriti rujukan menyatakan bahawa apa-apa nilai utama asing dalam Jadual B mesti merujuk kepada rekod yang sedia ada dalam Jadual A.

Melaksanakan Hubungan

Bergantung pada pangkalan data anda, anda melaksanakan hubungan antara jadual dengan cara yang berbeza. Akses Microsoft menyediakan wizard yang memudahkan anda mengaitkan jadual dan juga menguatkuasakan integriti rujukan.

Sekiranya anda menulis SQL secara langsung, anda mula-mula akan membuat Guru Jadual, mengisytiharkan ruangan ID menjadi kunci utama:

MENJAGA JAWAPAN Guru (

InstructorID INT AUTO_INCREMENT PRIMARY KEY, Teacher_Name VARCHAR (100), Kursus VARCHAR (100));

Apabila anda membuat jadual Pelajar, anda menyatakan lajur Teacher_FK menjadi kunci asing yang merujuk kepada lajur PengajarID dalam jadual Guru:

LAKUKAN JADUAL Pelajar ( StudentID INT AUTO_INCREMENT PRIMARY KEY, Student_Name VARCHAR (100), Teacher_FK INT, KELEBIHAN UTAMA (Teacher_FK) RUJUKAN Guru (PengajarID)));

Menggunakan Hubungan untuk Sertai Jadual

Sebaik sahaja anda telah mencipta satu atau lebih hubungan dalam pangkalan data anda, anda boleh memanfaatkan kuasa mereka dengan menggunakan pertanyaan SQL JOIN untuk menggabungkan maklumat dari beberapa jadual. Jenis penyertaan yang paling biasa ialah SQL INNER JOIN, atau gabungan mudah. Jenis gabungan ini memulangkan semua rekod yang memenuhi syarat menyertai dari beberapa jadual.Sebagai contoh, keadaan JOIN ini akan mengembalikan Student_Name, Teacher_Name, dan Kursus di mana kunci asing dalam jadual Pelajar sepadan dengan kunci utama dalam jadual Guru:

SELECT Students.Student_Name, Teachers.Teacher_Name, Teachers.CourseDARI PelajarINNER JOIN TeachersON Students.Teacher_FK = Teachers.InstructorID;

Kenyataan ini menghasilkan jadual seperti ini:

Jadual Kembali daripada Penyataan Sertai SQL

Student_NameTeacher_NameCourseLowell SmithJohn DoeEnglishBrian ShortJohn DoeEnglishCorky MendezJane SchmoeMathMonica JonesJohn DoeEnglish