Hubungan database

hubungan databés téh tulang tonggong sadaya basis data relational

Hiji hubungan dijieun antara dua tabel database nalika hiji méja ngabogaan konci asing anu rujukan tombol primér tabel sejen. Ieu konsép dasar balik istilah database relational.

Kumaha hiji Key Luar Karya pikeun nyieun Hubungan

Hayu urang marios dasar tina kenop primér sarta asing. Hiji konci primér uniquely nangtukeun unggal catetan dina méja. Ieu mangrupakeun tipe konci calon anu biasana kolom kahiji dina méja tur bisa otomatis dihasilkeun ku databés pikeun mastikeun yén éta téh unik.

Hiji konci asing mangrupakeun konci calon sejen (henteu tombol primér) dipaké pikeun numbu catetan pikeun data dina tabél sejen.

Contona, anggap dua tabel ieu nu nangtukeun mana guruna ngajarkeun nu tangtu.

Di dieu, konci primér dina Kursus-kursus tabel nyaéta Course_ID. konci asing nyaeta Teacher_ID:

kursus
Course_ID Course_Name Teacher_ID
Course_001 biologi Teacher_001
Course_002 math Teacher_001
Course_003 Inggris Teacher_003

Anjeun tiasa ningali yén konci asing di Kursus-kursus cocog hiji konci primér dina Guru:

guru
Teacher_ID Teacher_Name
Teacher_001 Carmen
Teacher_002 Veronica
Teacher_003 Jorge

Urang bisa nyebutkeun yén Teacher_ID konci asing geus mantuan ngadegkeun hubungan antara Kursus-kursus jeung tabel Guru.

Rupa databés hubungan

Ngagunakeun kenop asing, atawa kenop calon séjén, anjeun tiasa nerapkeun tilu rupa hubungan antara tabel:

Hiji-to-hiji: tipe ieu hubungan ngamungkinkeun ngan hiji catetan dina saban gigir hubungan.

Tombol primér relates to ngan hiji catetan - atawa taya - dina tabél sejen. Contona, dina nikah, unggal salaki boga ngan hiji salaki lianna. jenis ieu hubungan bisa dilaksanakeun dina tabel tunggal jeung kituna henteu ngagunakeun konci asing.

Hiji-to-loba: A hubungan hiji-ka-loba ngamungkinkeun rékaman tunggal dina hiji méja bisa patali jeung sababaraha rékaman dina tabél sejen.

Mertimbangkeun bisnis kalayan database nu boga Konsumén na ordo tabel.

A customer tunggal tiasa mésér sababaraha pesenan, tapi hiji urutan tunggal teu bisa numbu ka sababaraha konsumén. Kituna tabel pesenan bakal ngandung hiji konci asing anu loyog tombol primér tabel Konsumén, bari tabel Konsumén bakal boga ngarah konci asing kana méja pesenan.

Loba-to-loba: Ieu hubungan kompléks nu loba rékaman di méja bisa numbu ka loba rékaman dina tabél sejen. Contona, bisnis urang meureun perlu henteu ngan Konsumén na ordo tabel, tapi dipikaresep ogé perlu hiji méja Produk.

Deui, hubungan antara Konsumén na ordo méja hiji-ka-loba, tapi nganggap hubungan antara pesenan sarta Produk méja. Hiji urutan bisa ngandung sababaraha produk, sarta produk anu bisa numbu ka sababaraha ordo: sababaraha konsumén bisa ngalebetkeun hiji urutan nu ngandung sababaraha produk anu sarua. jenis ieu hubungan merlukeun di minimum tilu tabel.

Naon hubungan databés penting?

Ngadegkeun hubungan konsisten antara tabel database mantuan mastikeun integritas data, contributing ka normalisasi database. Contona, kumaha lamun urang teu numbu tabel sagala ngaliwatan konci asing na gantina ngan digabungkeun data di Kursus-kursus na Guru tabel, kawas kitu:

Guru jeung Kursus-kursus
Teacher_ID Teacher_Name kursus
Teacher_001 Carmen Biology, math
Teacher_002 Veronica math
Teacher_003 Jorge Inggris

Desain Ieu inflexible tur ngalanggar prinsip mimiti normalisasi database, munggaran Normal Bentuk (1NF), anu nyebutkeun yén unggal sél tabel kedah ngandung hiji tunggal, sapotong diskrit data.

Atawa sugan we mutuskeun mun saukur nambahan hiji catetan kadua pikeun Carmen, guna ngalaksanakeun 1NF:

Guru jeung Kursus-kursus
Teacher_ID Teacher_Name kursus
Teacher_001 Carmen biologi
Teacher_001 Carmen math
Teacher_002 Veronica math
Teacher_003 Jorge Inggris

Ieu masih desain lemah, ngawanohkeun duplikasi perlu jeung naon nu disebut anomali data panempatan, nu ngan ngandung harti yén éta bisa nyumbang kana data inconsistent.

Contona, upami guru boga sababaraha rékaman, kumaha lamun sababaraha data perlu diedit, tapi jalma ngajalankeun anu ngedit data henteu nyadar yén sababaraha rékaman aya? tabél lajeng bakal ngandung data béda pikeun individu sarua, tanpa wae cara jelas pikeun ngaidentipikasi atawa ulah eta.

Megatkeun tabel ieu kana dua tabel, Guru sarta Kursus-kursus (sakumaha visualized luhur), nyiptakeun hubungan ditangtoskeun antara data sahingga mantuan mastikeun konsistensi data jeung akurasi.