ಡೇಟಾಬೇಸ್ ಸಂಬಂಧಗಳು

ಡೇಟಾಬೇಸ್ ಸಂಬಂಧಗಳು ಎಲ್ಲಾ ಸಂಬಂಧಿತ ಡೇಟಾಬೇಸ್ಗಳ ಬೆನ್ನೆಲುಬಾಗಿದೆ

ಒಂದು ಮೇಜಿನ ಮತ್ತೊಂದು ಮೇಜಿನ ಪ್ರಾಥಮಿಕ ಕೀಲಿಯನ್ನು ಉಲ್ಲೇಖಿಸುವ ಒಂದು ವಿದೇಶಿ ಕೀಯನ್ನು ಹೊಂದಿರುವ ಸಂದರ್ಭದಲ್ಲಿ ಎರಡು ಡೇಟಾಬೇಸ್ ಕೋಷ್ಟಕಗಳ ನಡುವೆ ಸಂಬಂಧವನ್ನು ಸ್ಥಾಪಿಸಲಾಗಿದೆ. ಸಂಬಂಧಿತ ಡೇಟಾಬೇಸ್ ಎಂಬ ಪದದ ಹಿಂದಿನ ಮೂಲ ಪರಿಕಲ್ಪನೆಯಾಗಿದೆ.

ಒಂದು ಸಂಬಂಧವನ್ನು ಸ್ಥಾಪಿಸಲು ಒಂದು ವಿದೇಶಿ ಕೀ ಹೇಗೆ ಕೆಲಸ ಮಾಡುತ್ತದೆ

ಪ್ರಾಥಮಿಕ ಮತ್ತು ವಿದೇಶಿ ಕೀಲಿಗಳ ಮೂಲಭೂತ ಅಂಶಗಳನ್ನು ಪರಿಶೀಲಿಸೋಣ. ಪ್ರಾಥಮಿಕ ಕೀಲಿಯು ಪ್ರತಿ ದಾಖಲೆಯನ್ನೂ ಟೇಬಲ್ನಲ್ಲಿ ಗುರುತಿಸುತ್ತದೆ. ಇದು ಸಾಮಾನ್ಯವಾಗಿ ಕೋಷ್ಟಕದಲ್ಲಿ ಮೊದಲ ಕಾಲಮ್ ಆಗಿರುವ ಅಭ್ಯರ್ಥಿ ಕೀಲಿಯಾಗಿದೆ ಮತ್ತು ಅದನ್ನು ಅನನ್ಯವಾಗಿರುವುದನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು ಡೇಟಾಬೇಸ್ನಿಂದ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ರಚಿಸಬಹುದು.

ಮತ್ತೊಂದು ಟೇಬಲ್ನಲ್ಲಿ ದಾಖಲೆಯನ್ನು ಲಿಂಕ್ ಮಾಡಲು ಬಳಸಲಾಗುವ ವಿದೇಶಿ ಕೀ ಮತ್ತೊಂದು ಅಭ್ಯರ್ಥಿ ಕೀಲಿಯಾಗಿದೆ (ಪ್ರಾಥಮಿಕ ಕೀಲಿ ಅಲ್ಲ).

ಉದಾಹರಣೆಗೆ, ಯಾವ ಶಿಕ್ಷಕನು ಯಾವ ಕೋರ್ಸ್ ಅನ್ನು ಕಲಿಸುತ್ತಾನೆ ಎಂಬುದನ್ನು ಗುರುತಿಸುವ ಈ ಎರಡು ಕೋಷ್ಟಕಗಳನ್ನು ಪರಿಗಣಿಸಿ.

ಇಲ್ಲಿ, ಕೋರ್ಸೆಸ್ ಟೇಬಲ್ನ ಪ್ರಾಥಮಿಕ ಕೀಲಿಯು Course_ID ಆಗಿದೆ. ಅದರ ವಿದೇಶಿ ಕೀ Teacher_ID ಆಗಿದೆ:

ಕೋರ್ಸ್ಗಳು
ಕೋರ್ಸ್_ಐಡಿ ಕೋರ್ಸ್_ಹೆಸರು Teacher_ID
ಕೋರ್ಸ್_001 ಜೀವಶಾಸ್ತ್ರ ಶಿಕ್ಷಕರ_001
ಕೋರ್ಸ್_002 ಮಠ ಶಿಕ್ಷಕರ_001
ಕೋರ್ಸ್_003 ಇಂಗ್ಲಿಷ್ ಶಿಕ್ಷಕರ_003

ಕೋರ್ಸೆಸ್ನಲ್ಲಿರುವ ವಿದೇಶಿ ಕೀಲಿಯು ಶಿಕ್ಷಕರಲ್ಲಿ ಪ್ರಾಥಮಿಕ ಕೀಲಿಯನ್ನು ಹೋಲುತ್ತದೆ ಎಂದು ನೀವು ನೋಡಬಹುದು:

ಶಿಕ್ಷಕರು
Teacher_ID ಶಿಕ್ಷಕರ_ಹೆಸರು
ಶಿಕ್ಷಕರ_001 ಕಾರ್ಮೆನ್
ಶಿಕ್ಷಕರ_002 ವೆರೋನಿಕಾ
ಶಿಕ್ಷಕರ_003 ಜಾರ್ಜ್

Teacher_ID ವಿದೇಶಿ ಕೀಲಿಗಳು ಕೋರ್ಸ್ಗಳು ಮತ್ತು ಶಿಕ್ಷಕರ ಕೋಷ್ಟಕಗಳ ನಡುವಿನ ಸಂಬಂಧವನ್ನು ಸ್ಥಾಪಿಸಲು ಸಹಾಯ ಮಾಡಿದೆ ಎಂದು ನಾವು ಹೇಳಬಹುದು.

ಡೇಟಾಬೇಸ್ ಸಂಬಂಧಗಳ ವಿಧಗಳು

ವಿದೇಶಿ ಕೀಲಿಗಳನ್ನು ಅಥವಾ ಇತರ ಅಭ್ಯರ್ಥಿ ಕೀಲಿಗಳನ್ನು ಬಳಸುವುದು, ಕೋಷ್ಟಕಗಳ ನಡುವೆ ನೀವು ಮೂರು ವಿಧದ ಸಂಬಂಧಗಳನ್ನು ಜಾರಿಗೆ ತರಬಹುದು:

ಒಬ್ಬರಿಂದ ಒಬ್ಬರು : ಈ ಸಂಬಂಧವು ಸಂಬಂಧದ ಪ್ರತಿಯೊಂದು ಬದಿಯಲ್ಲಿ ಒಂದೇ ದಾಖಲೆಯನ್ನು ಮಾತ್ರ ನೀಡುತ್ತದೆ.

ಪ್ರಾಥಮಿಕ ಕೋಷ್ಟಕವು ಮತ್ತೊಂದು ಕೋಷ್ಟಕದಲ್ಲಿ - ಅಥವಾ ಯಾವುದೂ ಇಲ್ಲ - ಕೇವಲ ಒಂದು ದಾಖಲೆಗೆ ಸಂಬಂಧಿಸಿದೆ. ಉದಾಹರಣೆಗೆ, ಮದುವೆಯೊಂದರಲ್ಲಿ, ಪ್ರತಿ ಸಂಗಾತಿಯೊಬ್ಬಳು ಇನ್ನೊಬ್ಬ ಸಂಗಾತಿಯನ್ನು ಹೊಂದಿದ್ದಾರೆ. ಈ ರೀತಿಯ ಸಂಬಂಧ ಒಂದೇ ಕೋಷ್ಟಕದಲ್ಲಿ ಜಾರಿಗೆ ತರಬಹುದು ಮತ್ತು ಆದ್ದರಿಂದ ಒಂದು ವಿದೇಶಿ ಕೀಲಿಯನ್ನು ಬಳಸುವುದಿಲ್ಲ.

ಒಂದರಿಂದ ಹಲವು : ಒಂದು ಕೋಷ್ಟಕದಲ್ಲಿ ಒಂದು ದಾಖಲೆಯು ಒಂದೇ ಕೋಷ್ಟಕದಲ್ಲಿ ಮತ್ತೊಂದು ಕೋಷ್ಟಕದ ಬಹು ದಾಖಲೆಗಳಿಗೆ ಸಂಬಂಧಿಸಿರುತ್ತದೆ.

ಗ್ರಾಹಕರು ಮತ್ತು ಆರ್ಡರ್ಸ್ ಕೋಷ್ಟಕಗಳನ್ನು ಹೊಂದಿರುವ ಡೇಟಾಬೇಸ್ನ ವ್ಯವಹಾರವನ್ನು ಪರಿಗಣಿಸಿ.

ಒಂದು ಗ್ರಾಹಕರು ಬಹು ಆದೇಶಗಳನ್ನು ಖರೀದಿಸಬಹುದು, ಆದರೆ ಒಂದೇ ಕ್ರಮವನ್ನು ಬಹು ಗ್ರಾಹಕರಿಗೆ ಲಿಂಕ್ ಮಾಡಲಾಗುವುದಿಲ್ಲ. ಆದ್ದರಿಂದ ಆರ್ಡರ್ಸ್ ಟೇಬಲ್ ಗ್ರಾಹಕರ ಟೇಬಲ್ನ ಪ್ರಾಥಮಿಕ ಕೀಲಿಯನ್ನು ಹೊಂದಿದ ಒಂದು ವಿದೇಶಿ ಕೀಲಿಯನ್ನು ಹೊಂದಿರುತ್ತದೆ, ಆದರೆ ಗ್ರಾಹಕರ ಮೇಜಿನು ಆರ್ಡರ್ಸ್ ಟೇಬಲ್ಗೆ ಯಾವುದೇ ವಿದೇಶಿ ಕೀಲಿಯನ್ನು ಹೊಂದಿರುವುದಿಲ್ಲ.

ಅನೇಕರಿಂದ ಅನೇಕ : ಇದು ಒಂದು ಸಂಕೀರ್ಣ ಸಂಬಂಧವಾಗಿದ್ದು, ಟೇಬಲ್ನಲ್ಲಿನ ಅನೇಕ ದಾಖಲೆಗಳು ಮತ್ತೊಂದು ಟೇಬಲ್ನಲ್ಲಿ ಅನೇಕ ದಾಖಲೆಗಳಿಗೆ ಲಿಂಕ್ ಮಾಡಬಹುದು. ಉದಾಹರಣೆಗೆ, ನಮ್ಮ ವ್ಯವಹಾರವು ಗ್ರಾಹಕರು ಮತ್ತು ಆರ್ಡರ್ಸ್ ಕೋಷ್ಟಕಗಳಷ್ಟೇ ಅಲ್ಲದೆ ಬಹುಶಃ ಉತ್ಪನ್ನಗಳ ಮೇಜಿನ ಅಗತ್ಯವಿರುತ್ತದೆ.

ಮತ್ತೊಮ್ಮೆ, ಗ್ರಾಹಕರು ಮತ್ತು ಆರ್ಡರ್ಸ್ ಟೇಬಲ್ ನಡುವಿನ ಸಂಬಂಧವು ಒಂದರಿಂದ ಹಲವು, ಆದರೆ ಆರ್ಡರ್ಸ್ ಮತ್ತು ಪ್ರಾಡಕ್ಟ್ಸ್ ಟೇಬಲ್ ನಡುವಿನ ಸಂಬಂಧವನ್ನು ಪರಿಗಣಿಸುತ್ತದೆ. ಆದೇಶವು ಅನೇಕ ಉತ್ಪನ್ನಗಳನ್ನು ಒಳಗೊಂಡಿರುತ್ತದೆ ಮತ್ತು ಉತ್ಪನ್ನವನ್ನು ಅನೇಕ ಆದೇಶಗಳಿಗೆ ಲಿಂಕ್ ಮಾಡಬಹುದು: ಹಲವಾರು ಗ್ರಾಹಕರು ಒಂದೇ ಉತ್ಪನ್ನಗಳನ್ನು ಒಳಗೊಂಡಿರುವ ಆದೇಶವನ್ನು ಸಲ್ಲಿಸಬಹುದು. ಈ ರೀತಿಯ ಸಂಬಂಧ ಕನಿಷ್ಟ ಮೂರು ಕೋಷ್ಟಕಗಳ ಅಗತ್ಯವಿದೆ.

ಡೇಟಾಬೇಸ್ ಸಂಬಂಧಗಳು ಯಾವುವು ಮುಖ್ಯ?

ದತ್ತಸಂಚಯ ಕೋಷ್ಟಕಗಳ ನಡುವೆ ಸ್ಥಿರವಾದ ಸಂಬಂಧವನ್ನು ಸ್ಥಾಪಿಸುವುದು ಡೇಟಾ ಸಮಗ್ರತೆಯನ್ನು ಖಚಿತಪಡಿಸುತ್ತದೆ, ಡೇಟಾಬೇಸ್ ಸಾಮಾನ್ಯೀಕರಣಕ್ಕೆ ಸಹಾಯ ಮಾಡುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, ನಾವು ವಿದೇಶಿ ಕೀಲಿಯ ಮೂಲಕ ಯಾವುದೇ ಕೋಷ್ಟಕಗಳನ್ನು ಲಿಂಕ್ ಮಾಡದಿದ್ದಲ್ಲಿ ಮತ್ತು ಬದಲಿಗೆ ಹಾಗೆ ಕೋರ್ಸ್ಗಳು ಮತ್ತು ಶಿಕ್ಷಕರ ಕೋಷ್ಟಕಗಳಲ್ಲಿ ಡೇಟಾವನ್ನು ಸಂಯೋಜಿಸಿದರೆ:

ಶಿಕ್ಷಕರು ಮತ್ತು ಕೋರ್ಸ್ಗಳು
Teacher_ID ಶಿಕ್ಷಕರ_ಹೆಸರು ಕೋರ್ಸ್
ಶಿಕ್ಷಕರ_001 ಕಾರ್ಮೆನ್ ಬಯಾಲಜಿ, ಮಠ
ಶಿಕ್ಷಕರ_002 ವೆರೋನಿಕಾ ಮಠ
ಶಿಕ್ಷಕರ_003 ಜಾರ್ಜ್ ಇಂಗ್ಲಿಷ್

ಈ ವಿನ್ಯಾಸವು ಹೊಂದಿಕೊಳ್ಳುವುದಿಲ್ಲ ಮತ್ತು ಡೇಟಾಬೇಸ್ ಸಾಮಾನ್ಯೀಕರಣದ ಮೊದಲ ತತ್ತ್ವವನ್ನು ಉಲ್ಲಂಘಿಸುತ್ತದೆ, ಮೊದಲ ಸಾಧಾರಣ ಫಾರ್ಮ್ (1NF), ಪ್ರತಿ ಟೇಬಲ್ ಕೋಶವು ಏಕೈಕ, ವಿಭಿನ್ನವಾದ ದತ್ತಾಂಶವನ್ನು ಹೊಂದಿರಬೇಕು ಎಂದು ಹೇಳುತ್ತದೆ.

ಅಥವಾ 1NF ಅನ್ನು ಜಾರಿಗೊಳಿಸುವ ಸಲುವಾಗಿ ಕಾರ್ಮೆನ್ಗಾಗಿ ಎರಡನೇ ದಾಖಲೆಯನ್ನು ಸರಳವಾಗಿ ಸೇರಿಸಲು ನಾವು ನಿರ್ಧರಿಸಿದ್ದೇವೆ:

ಶಿಕ್ಷಕರು ಮತ್ತು ಕೋರ್ಸ್ಗಳು
Teacher_ID ಶಿಕ್ಷಕರ_ಹೆಸರು ಕೋರ್ಸ್
ಶಿಕ್ಷಕರ_001 ಕಾರ್ಮೆನ್ ಜೀವಶಾಸ್ತ್ರ
ಶಿಕ್ಷಕರ_001 ಕಾರ್ಮೆನ್ ಮಠ
ಶಿಕ್ಷಕರ_002 ವೆರೋನಿಕಾ ಮಠ
ಶಿಕ್ಷಕರ_003 ಜಾರ್ಜ್ ಇಂಗ್ಲಿಷ್

ಇದು ಇನ್ನೂ ದುರ್ಬಲ ವಿನ್ಯಾಸವಾಗಿದ್ದು, ಅನಗತ್ಯವಾದ ನಕಲು ಮತ್ತು ದತ್ತಾಂಶ ಅಳವಡಿಕೆಯ ವೈಪರೀತ್ಯಗಳು ಎಂದು ಕರೆಯಲ್ಪಡುತ್ತದೆ, ಇದು ಕೇವಲ ಅಸಮಂಜಸ ದತ್ತಾಂಶಗಳಿಗೆ ಕೊಡುಗೆ ನೀಡಬಲ್ಲದು.

ಉದಾಹರಣೆಗೆ, ಒಂದು ಶಿಕ್ಷಕನಿಗೆ ಬಹು ದಾಖಲೆಗಳು ಇದ್ದಲ್ಲಿ, ಕೆಲವು ಡೇಟಾವನ್ನು ಸಂಪಾದಿಸಬೇಕಾದರೆ, ಆದರೆ ಡೇಟಾ ಸಂಪಾದನೆ ಮಾಡುವ ವ್ಯಕ್ತಿಯು ಬಹು ದಾಖಲೆಗಳು ಅಸ್ತಿತ್ವದಲ್ಲಿದೆಯೆಂದು ತಿಳಿದಿಲ್ಲವೇ? ಟೇಬಲ್ ನಂತರ ಅದೇ ವ್ಯಕ್ತಿಗೆ ವಿಭಿನ್ನ ಡೇಟಾವನ್ನು ಹೊಂದಿರುತ್ತದೆ, ಅದನ್ನು ಗುರುತಿಸಲು ಅಥವಾ ತಪ್ಪಿಸಲು ಯಾವುದೇ ಸ್ಪಷ್ಟವಾದ ಮಾರ್ಗವಿಲ್ಲ.

ಈ ಕೋಷ್ಟಕವನ್ನು ಎರಡು ಕೋಷ್ಟಕಗಳಾಗಿ ಬಿಡಿಸಿ, ಶಿಕ್ಷಕರು ಮತ್ತು ಕೋರ್ಸ್ಗಳು (ಮೇಲೆ ಚಿತ್ರಿಸಿದಂತೆ), ಡೇಟಾದ ನಡುವೆ ಸರಿಯಾದ ಸಂಬಂಧವನ್ನು ಸೃಷ್ಟಿಸುತ್ತದೆ ಮತ್ತು ಆದ್ದರಿಂದ ಡೇಟಾ ಸ್ಥಿರತೆ ಮತ್ತು ನಿಖರತೆಯನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ.