Çfarë është një marrëdhënie me bazën e të dhënave?

Përmbajtje:

Çfarë është një marrëdhënie me bazën e të dhënave?
Çfarë është një marrëdhënie me bazën e të dhënave?
Anonim

Krijohet një marrëdhënie midis dy tabelave të bazës së të dhënave kur një tabelë përdor një çelës të huaj që i referohet çelësit kryesor të një tabele tjetër. Ky është koncepti bazë pas termit bazë të dhënash relacionale.

Si funksionon një çelës i huaj për të krijuar një marrëdhënie

Një çelës kryesor identifikon në mënyrë unike çdo rekord në tabelë. Është një lloj çelësi kandidat që zakonisht është kolona e parë në një tabelë dhe mund të gjenerohet automatikisht nga baza e të dhënave për të siguruar që është unik. Një çelës i huaj është një çelës tjetër kandidat (jo çelësi kryesor) që përdoret për të lidhur një rekord me të dhënat në një tabelë tjetër.

Për shembull, merrni parasysh këto dy tabela që përcaktojnë se cili mësues mëson cilën lëndë. Këtu, çelësi kryesor i tabelës së Kurseve është Course_ID. Çelësi i tij i huaj është Teacher_ID:

ID_Kursi Emri_kursi Teacher_ID
Kursi_001 Biologji Teacher_001
Kursi_002 Matematikë Teacher_002
Kursi_003 Anglisht Teacher_003

Mund të shihni se çelësi i huaj në Kurse përputhet me një çelës kryesor te Mësuesit:

Teacher_ID Emri_Mësues
Teacher_001 Carmen
Teacher_002 Veronica
Teacher_003 Jorge

Mund të themi se çelësi i huaj Teacher_ID ndihmoi në krijimin e një marrëdhënieje midis tabelave të Kurseve dhe Mësuesve.

Image
Image

Llojet e marrëdhënieve të bazës së të dhënave

Duke përdorur çelësa të huaj ose çelësa të tjerë kandidatë, mund të zbatoni tre lloje marrëdhëniesh midis tabelave:

Një-për-Një

Ky lloj marrëdhënieje lejon vetëm një regjistrim në secilën anë të marrëdhënies. Çelësi primar lidhet vetëm me një rekord (ose asnjë) në një tabelë tjetër. Për shembull, në një martesë, secili bashkëshort ka vetëm një bashkëshort tjetër. Kjo lloj marrëdhënie mund të zbatohet në një tabelë të vetme dhe për këtë arsye nuk përdor një çelës të huaj.

Një-në-Shumë

Një lidhje një me shumë lejon që një rekord i vetëm në një tabelë të lidhet me shumë rekorde në një tabelë tjetër. Konsideroni një biznes me një bazë të dhënash që ka tabela të klientëve dhe porosive.

Një klient i vetëm mund të blejë porosi të shumta, por një porosi e vetme nuk mund të lidhet me shumë klientë. Prandaj, tabela e porosive do të përmbajë një çelës të huaj që përputhet me çelësin kryesor të tabelës së Klientëve, ndërsa tabela e Klientëve nuk do të ketë asnjë çelës të huaj që tregon tabelën e porosive.

Shumë-për-Shumë

Kjo është një marrëdhënie komplekse në të cilën shumë regjistrime në një tabelë mund të lidhen me shumë regjistrime në një tabelë tjetër. Për shembull, biznesi ynë ka të ngjarë të ketë nevojë për tabela të klientëve dhe porosive dhe ka të ngjarë gjithashtu të ketë nevojë për një tabelë Produktesh.

Përsëri, marrëdhënia midis tabelës Klientët dhe Porositë është një me shumë, por merrni parasysh marrëdhënien midis tabelës Porositë dhe Produktet. Një porosi mund të përmbajë produkte të shumta dhe një produkt mund të lidhet me porosi të shumta pasi disa klientë mund të paraqesin një porosi që përmban disa nga të njëjtat produkte. Kjo lloj marrëdhënie kërkon të paktën tre tabela.

Pse janë të rëndësishme marrëdhëniet me bazën e të dhënave?

Vendosja e marrëdhënieve të qëndrueshme ndërmjet tabelave të bazës së të dhënave ndihmon në sigurimin e integritetit të të dhënave, duke kontribuar në normalizimin e bazës së të dhënave. Për shembull, çka nëse nuk lidhim asnjë tabelë përmes një çelësi të huaj dhe në vend të kësaj kombinonim të dhënat në tabelat Kurset dhe Mësuesit, si:

Teacher_ID Emri_Mësues Kurs
Teacher_001 Carmen Biologji, Matematikë
Teacher_002 Veronica Matematikë
Teacher_003 Jorge Anglisht

Ky dizajn është jo fleksibël dhe shkel parimin e parë të normalizimit të bazës së të dhënave, Forma e Parë Normale, e cila thotë se çdo qelizë e tabelës duhet të përmbajë një pjesë të vetme, diskrete të të dhënave.

Ose ndoshta kemi vendosur të shtojmë një rekord të dytë për Carmen, në mënyrë që të zbatojmë 1NF:

Teacher_ID Emri_Mësues Kurs
Teacher_001 Carmen Biologji
Teacher_001 Carmen Matematikë
Teacher_002 Veronica Matematikë
Teacher_003 Jorge Anglisht

Ky është ende një dizajn i dobët, duke futur dyfishime të panevojshme dhe ato që quhen anomali të futjes së të dhënave, që do të thotë se mund të kontribuojë në të dhëna jokonsistente. Për shembull, nëse një mësues ka regjistrime të shumta, çka nëse disa të dhëna duhen redaktuar, por personi që kryen redaktimin e të dhënave nuk e kupton që ekzistojnë të dhëna të shumta? Tabela më pas do të përmbajë të dhëna të ndryshme për të njëjtin individ, pa ndonjë mënyrë të qartë për ta identifikuar ose shmangur atë.

Ndarja e kësaj tabele në dy tabela, Mësuesit dhe Kurset, krijon marrëdhënien e duhur midis të dhënave dhe për këtë arsye ndihmon në sigurimin e konsistencës dhe saktësisë së të dhënave.

Recommended: