Marrëdhëniet një-me-shumë në një bazë të dhënash

Përmbajtje:

Marrëdhëniet një-me-shumë në një bazë të dhënash
Marrëdhëniet një-me-shumë në një bazë të dhënash
Anonim

Një marrëdhënie një me shumë në një bazë të dhënash ndodh kur çdo rekord në tabelën A mund të ketë shumë regjistrime të lidhura në tabelën B, por çdo rekord në tabelën B mund të ketë vetëm një rekord përkatës në tabelën A.

Një marrëdhënie një me shumë në një bazë të dhënash është dizajni më i zakonshëm i bazës së të dhënave relacionale dhe është në zemër të dizajnit të mirë.

Bazat e të dhënave mund të zbatojnë gjithashtu një marrëdhënie një-me-një dhe një marrëdhënie shumë-me-shumë.

Image
Image

Shembull i një marrëdhënieje një me shumë

Merrni parasysh marrëdhënien midis një mësuesi dhe kurseve që ata japin. Një mësues mund të mësojë disa klasa, por kursi nuk do të kishte të njëjtën marrëdhënie me mësuesin.

Prandaj, për çdo rekord në tabelën e Mësuesve, mund të ketë shumë regjistrime në tabelën e Kurseve. Ky shembull ilustron një marrëdhënie një me shumë: një mësues me shumë kurse.

Pse është e rëndësishme krijimi i një marrëdhënieje një me shumë

Për të përfaqësuar një marrëdhënie një me shumë, ju nevojiten të paktën dy tabela. Le të shohim pse.

Aderimi në modelin e parë normal të formës

Ndoshta kemi krijuar një tabelë në të cilën duam të regjistrojmë emrin dhe lëndët e mësuara. Ne mund të hartojmë një tabelë të mësuesve dhe kurseve si kjo:

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

Po sikur Carmen të mësojë dy ose më shumë kurse? Ne kemi dy opsione me këtë dizajn. Ne mund ta shtojmë atë në rekordin ekzistues të Carmen, si kjo:

Teacher_ID Mësues_Emri Kurs
Teacher_001 Carmen Biologji, Matematikë
Teacher_002 Veronica Matematikë
Teacher_003 Jorge Anglisht

Megjithatë, dizajni i mësipërm është jo fleksibël dhe mund të rezultojë në probleme më vonë kur futni, modifikoni ose fshini të dhënat. E bën të vështirë kërkimin e të dhënave.

Ky dizajn shkel gjithashtu parimin e parë të normalizimit të bazës së të dhënave, Forma e Parë Normale (1NF), e cila thotë se çdo qelizë e tabelës duhet të përmbajë një pjesë të vetme, diskrete të të dhënave.

Rregulli i dytë i formës normale

Një alternativë tjetër dizajni mund të jetë shtimi i një rekordi të dytë për Carmen:

Mësues_ID Mësues_Emri Kurs
Teacher_001 Carmen Biologji
Teacher_001 Carmen Matematikë
Teacher_002 Veronica Matematikë
Teacher_003 Jorge Anglisht

Kjo qasje i përmbahet 1NF, por është ende një dizajn i dobët i bazës së të dhënave, sepse paraqet tepricë dhe mund të fryjë një bazë të dhënash të madhe në mënyrë të panevojshme. Më e rëndësishmja, të dhënat mund të bëhen të paqëndrueshme.

Për shembull, po sikur të ndryshonte emri i Carmen? Dikush që punon me të dhënat mund të përditësojë emrin e saj në një regjistrim dhe të mos e përditësojë atë në rekordin e dytë.

Ky dizajn shkel standardin e Formës së Dytë Normale (2NF), i cili i përmbahet 1NF dhe duhet gjithashtu të shmangë tepricat e regjistrimeve të shumta. Rregulli 2NF e arrin këtë duke ndarë nëngrupe të dhënash në tabela të shumta dhe duke krijuar një marrëdhënie midis tyre.

Si të hartoni një bazë të dhënash me marrëdhënie një-në-shumë

Për të zbatuar një marrëdhënie një me shumë në tabelën Mësuesit dhe Kurset, ndani tabelat në dy dhe lidhini ato duke përdorur një çelës të huaj.

Këtu, hoqëm kolonën e Kursit në tabelën Mësuesit:

Mësues_ID Mësues_Emri
Teacher_001 Carmen
Teacher_002 Veronica
Teacher_003 Jorge

Dhe këtu është tabela e Kurseve. Vini re se çelësi i tij i huaj, Teacher_ID, lidh një kurs me një mësues në tabelën Teachers:

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

Ne kemi zhvilluar një marrëdhënie ndërmjet tabelës Mësuesit dhe Kurset duke përdorur një çelës të huaj. Ky rregullim na tregon se Carmen jep mësim biologji dhe matematikë dhe se Jorge jep anglisht.

Ne mund të shohim se si ky dizajn shmang çdo tepricë të mundshme, lejon mësuesit individual të japin mësime të shumëfishta dhe zbaton një marrëdhënie një me shumë.

Recommended: