Marrëdhëniet e të dhënave

Marrëdhëniet e bazës së të dhënave janë shtylla kurrizore e të gjitha bazave të të dhënave relacionale

Një lidhje vendoset midis dy tabelave të bazës së të dhënave kur një tabelë ka një çelës të jashtëm që i referohet çelësit kryesor të një tabele tjetër. Ky është koncepti bazë i bazës së të dhënave relacionale.

Si punon një çelës i jashtëm për të krijuar një lidhje

Le të shqyrtojmë bazat e çelësave primar dhe të huaj. Një çelës primar identifikon në mënyrë unike çdo rekord në tabelë. Është një lloj kyçe e kandidatit 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 jashtëm është një tjetër çelës i kandidatit (jo kyç primar) që përdoret për të lidhur një rekord me të dhënat në një tabelë tjetër.

Për shembull, konsideroni këto dy tabela që identifikojnë se cili mësues mëson se cili kurs.

Këtu, çelësi kryesor i tryezës së kurseve është Course_ID. Çelësi i saj i huaj është Teacher_ID:

kurse
Course_ID Course_Name Teacher_ID
Course_001 biologji Teacher_001
Course_002 Math Teacher_001
Course_003 anglisht Teacher_003

Ju mund të shihni se çelësi i jashtëm në Kurse përputhet me një çelës primar në Mësuesit:

mësuesit
Teacher_ID Teacher_Name
Teacher_001 Carmen
Teacher_002 veronikë
Teacher_003 jorge

Mund të themi se çelësi i jashtëm i mësimdhënësit ka ndihmuar në krijimin e një marrëdhënie midis kurseve dhe tabelave të mësuesve.

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

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

Një-në-një : Ky lloj marrëdhënie lejon vetëm një rekord në secilën anë të marrëdhënies.

Kyç primar ka të bëjë vetëm me një rekord - ose jo - në një tabelë tjetër. Për shembull, në një martesë, secili bashkëshort ka vetëm një bashkëshort tjetër. Ky lloj marrëdhënieje mund të zbatohet në një tabelë të vetme dhe prandaj nuk përdor një çelës të huaj.

Një-për-shumë : Një marrëdhënie një-me-shumë lejon një rekord të vetëm në një tabelë të lidhet me të dhëna të shumëfishta në një tabelë tjetër.

Konsideroni një biznes me një bazë të dhënash që ka tabela të Konsumatorëve dhe Urdhrave.

Një klient i vetëm mund të blejë porosi të shumta, por një porosi e vetme nuk mund të lidhej me klientë të shumtë. Prandaj tabela e urdhrave do të përmbajë një çelës të huaj që përputhet me çelësin kryesor të tabelës së Konsumatorëve, ndërsa tabela e Konsumatorëve nuk do të kishte asnjë çelës të huaj që tregon në tabelën e Urdhrave.

Shumë-me-shumë : Kjo është një marrëdhënie komplekse në të cilën shumë rekorde në një tabelë mund të lidhen me shumë të dhëna në një tabelë tjetër. Për shembull, biznesi ynë ndoshta ka nevojë jo vetëm për tavolina të Konsumatorëve dhe Urdhrave, por gjithashtu ka nevojë për një tabelë Produkte.

Përsëri, marrëdhënia midis Tabelës së Konsumatorëve dhe Urdhrave është e një-shumë, por e konsideron marrëdhënien midis Tabelës së Urdhrave dhe Produkteve. Një urdhër mund të përmbajë produkte të shumta dhe një produkt mund të lidhet me urdhërime të shumëfishta: disa konsumatorë mund të dorëzojnë një porosi që përmban disa nga të njëjtat produkte. Ky lloj marrëdhënie kërkon minimum tre tryeza.

Cilat janë marrëdhëniet e bazës së të dhënave të rëndësishme?

Vendosja e marrëdhënieve të qëndrueshme midis 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 i lidhëm ndonjë tabelë me një çelës të jashtëm dhe në vend të kësaj i kombinuam të dhënat në tavolinën e kurseve dhe mësuesve, si kështu:

Mësuesit dhe Kurse
Teacher_ID Teacher_Name kurs
Teacher_001 Carmen Biologji, Matematikë
Teacher_002 veronikë Math
Teacher_003 jorge anglisht

Ky dizajn është i paqëndrueshëm dhe shkel parimin e parë të normalizimit të bazës së të dhënave, Formati i Parë i Normal (1NF), i cili thotë se çdo qelizë e tabelës duhet të përmbajë një pjesë të vetme dhe të veçantë të të dhënave.

Ose ndoshta vendosëm të shtojmë një rekord të dytë për Carmen, me qëllim që të zbatojmë 1NF:

Mësuesit dhe Kurse
Teacher_ID Teacher_Name kurs
Teacher_001 Carmen biologji
Teacher_001 Carmen Math
Teacher_002 veronikë Math
Teacher_003 jorge anglisht

Kjo është ende një dizajn i dobët, duke prezantuar dublikimin e panevojshëm dhe atë që quhet anomali i futjes së të dhënave , gjë që vetëm do të thotë se mund të kontribuojë në të dhëna të paqëndrueshme.

Për shembull, nëse një mësues ka të dhëna të shumta, çka nëse disa të dhëna duhet të redaktohen, por personi që kryen përpunimin e të dhënave nuk e kupton se ekzistojnë të dhëna të shumta? Tabela pastaj 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 atë ose për ta shmangur atë.

Duke e thyer këtë tabelë në dy tavolina, Mësuesit dhe Kurse (siç është paraqitur më lart), krijon marrëdhënien e duhur midis të dhënave dhe për këtë arsye ndihmon në sigurimin e qëndrueshmërisë dhe saktësisë së të dhënave.