Pengenalan kepada Hubungan Pangkalan Data

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 kepentingan hubungan antara data yang memberikan teknologi pangkalan data relasi namanya.

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 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
InstructorID Teacher_Name Kursus
001 John Doe Bahasa Inggeris
002 Jane Schmoe Matematik

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

Pelajar
ID pelajar Nama pelajar Teacher_FK
0200 Lowell Smith 001
0201 Brian Short 001
0202 Corky Mendez 002
0203 Monica Jones 001

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.Course
DARI Pelajar
INNER JOIN Teachers
ON 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