Hiji-to-Loba hubungan dina databés a

Hiji hiji-ka-loba hubungan dina database a lumangsung nalika unggal catetan di Table A mungkin gaduh seueur rékaman numbu di Table B, tapi unggal catetan di Table B bisa mibanda ngan hiji catetan saluyu di Table A. Hiji hiji-ka-loba hubungan di database hiji rarancang database paling umum relational na nyaeta di haté desain alus.

Mertimbangkeun hubungan antara guru jeung kursus aranjeunna ngajar. Hiji guru bisa ngajarkeun sababaraha kursus, tapi pastina teu bakal boga hubungan sarua jeung guruna.

Kituna, pikeun tiap catetan dina tabel Guru, aya bisa jadi loba rékaman dina tabel Kursus-kursus. Ieu salah sahiji-to-loba hubungan: hiji guru keur sababaraha kursus.

Naha ngadegkeun hiji Hiji-to-Loba Hubungan téh penting

Keur ngagambarkeun hubungan hiji-ka-loba, Anjeun kudu sahenteuna dua tabel. Hayu urang tingali naha.

Sugan we dijieun tabel Guru nu urang hayang ngarekam nami na kursus diajarkeun. Urang bisa ngarancang deui kawas kieu:

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

Kumaha lamun Carmen ngajarkeun dua atawa leuwih kursus? Simkuring boga dua pilihan kalayan design ieu. Urang ngan bisa nambahan ka catetan aya Carmen urang, saperti kieu:

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

Desain di luhur kitu, inflexible tur bisa ngahasilkeun masalah engké mun nyobian ngalebetkeun, edit atawa ngahapus data.

Ayeuna damel hésé milari data. Desain ieu ngalanggar prinsip mimiti normalisasi database, munggaran Normal Bentuk (1NF) , anu nyebutkeun yén unggal sél tabel kedah ngandung hiji tunggal, sapotong diskrit data.

alternatif desain sejen bisa jadi mun saukur nambahan hiji catetan kadua pikeun Carmen:

Guru jeung Kursus-kursus
guru _ID guru _Name kursus
Teacher_001 Carmen biologi
Teacher_001 Carmen math
Teacher_002 Veronica math
Teacher_003 Jorge Inggris

Ieu tataman mun 1NF tapi nyaeta masih rarancang database goréng sabab nawarkeun redundancy sarta bisa bloat database anu kacida gedéna unnecessarily. Langkung importantly, data bisa jadi inconsistent. Contona, kumaha lamun ngaran Carmen urang robah? Batur gawé bareng data bisa ngamutahirkeun ngaran dirina dina hiji catetan jeung gagal pikeun ngapdet deui dina catetan kadua. Desain ieu ngalanggar Kadua Normal Bentuk (2NF), nu tataman mun 1NF na ogé kedah nyingkahan redundancies tina sababaraha rékaman ku misahkeun golongan data kana sababaraha tabel sarta nyieun hubungan antara aranjeunna.

Kumaha desain databés hiji Kalawan Hiji-to-Loba hubungan

Pikeun nerapkeun hubungan hiji-ka-loba di tabel Guru sarta Kursus-kursus, urang megatkeun tabel kana dua na numbu aranjeunna ngagunakeun konci asing .

Di dieu, urang geus dihapus kolom Kursus dina tabel Guru:

guru
guru _ID guru _Name
Teacher_001 Carmen
Teacher_002 Veronica
Teacher_003 Jorge

Sarta di dieu mangrupakeun tabel Kursus-kursus. Catet yén konci asing na, Teacher_ID, numbu tangtu pikeun guru dina tabel Guru:

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

Kami geus ngembangkeun hiji hubungan antara Guru na tabel Kursus-kursus maké konci asing.

Ieu Kami ngabejaan yen duanana Biologi sarta math anu diajarkeun ku Carmen jeung nu Jorge ngajarkeun basa Inggris.

Urang bisa ningali kumaha desain ieu avoids sagala redundancies mungkin, ngamungkinkeun guru individu ngajar sababaraha kursus, jeung implements hubungan hiji-ka-loba.

Basis data oge bisa nerapkeun hubungan hiji-ka-hiji jeung hubungan loba-to-loba.