CodeGym /படிப்புகள் /SQL & Hibernate /தரவுத்தளத்தில் உள்ள அட்டவணைகளுக்கு இடையிலான சார்புகள்

தரவுத்தளத்தில் உள்ள அட்டவணைகளுக்கு இடையிலான சார்புகள்

SQL & Hibernate
நிலை 17 , பாடம் 3
கிடைக்கப்பெறுகிறது

4.1 அறிமுகம்

தரவுத்தள அட்டவணைகளை வழக்கமான அட்டவணைகளாக மாற்றுவதன் மூலம், அவற்றுக்கிடையேயான உறவுகளை நீங்கள் இப்போது பகுப்பாய்வு செய்யலாம். இரண்டு தொடர்புடைய அட்டவணைகளுக்கு இடையில் தொடர்பு கொள்ளும் உறுப்புகளின் எண்ணிக்கை கார்டினாலிட்டி என்று அழைக்கப்படுகிறது. உங்கள் தரவை அட்டவணைகளாக எவ்வளவு திறமையாகப் பிரித்தீர்கள் என்பதைக் கட்டுப்படுத்த கார்டினாலிட்டி உதவுகிறது.

கோட்பாட்டளவில், அனைத்து நிறுவனங்களும் ஒருவருக்கொருவர் உறவுகளைப் பராமரிக்க முடியும், ஆனால் நடைமுறையில், நிறுவனங்களுக்கு இடையே மூன்று வகையான உறவுகள் உள்ளன:

  • நேருக்கு நேர்
  • ஒன்றுக்கு பல
  • பல பல

4.2 ஒருவருக்கு ஒருவர் தொடர்பு

உட்பிரிவு B இன் ஒவ்வொரு நிகழ்வுக்கும் ஒரே ஒரு நிகழ்வு மட்டுமே இருந்தால், அவை ஒன்றுக்கு ஒன்று உறவைக் கொண்டிருப்பதாகக் கூறப்படுகிறது (பெரும்பாலும் "1:1" எனக் குறிக்கப்படுகிறது). ER வரைபடங்களில், அத்தகைய உறவு ஒவ்வொரு முனையிலும் ஒரு சிறிய பட்டையுடன் ஒரு வரியால் குறிக்கப்படுகிறது:

ஒரு 1:1 உறவு பொதுவாக, அவற்றைத் தனித்தனியாக வைத்திருக்க உங்களுக்கு நல்ல காரணம் இல்லாவிட்டால், இரண்டு அட்டவணைகளின் தரவையும் ஒன்றாக இணைப்பது சிறந்தது என்பதைக் குறிக்கிறது.

இருப்பினும், சில சூழ்நிலைகளில் 1:1 உறவுகளுடன் அட்டவணைகளைப் பயன்படுத்துவது நியாயமானது. உங்கள் அட்டவணையில் விளக்கங்கள் போன்ற விருப்பத் தரவுகளுடன் புலங்கள் இருந்தால், மேலும் பல சந்தர்ப்பங்களில் அவை காலியாக இருந்தால், எல்லா விளக்கங்களையும் தனி அட்டவணைக்கு நகர்த்துவது அர்த்தமுள்ளதாக இருக்கும், இது அடிக்கடி இடைவெளிகளை அகற்றவும் உங்கள் தரவுத்தளத்தின் செயல்திறனை அதிகரிக்கவும் உங்களை அனுமதிக்கும். .

பின்னர், தரவை சரியாக வரைபடமாக்க, ஒவ்வொரு அட்டவணையிலும் குறைந்தது ஒரு ஒத்த நெடுவரிசையை நீங்கள் சேர்க்க வேண்டும் (இதற்கு முதன்மை விசையைத் தேர்ந்தெடுப்பது சிறந்தது).

4.3 ஒன்று முதல் பல உறவு

ஒரு அட்டவணையில் உள்ள பதிவு மற்றொன்றில் உள்ள பல நிறுவனங்களுடன் தொடர்புடையதாக இருக்கும்போது இந்த வகையான உறவு ஏற்படுகிறது. எடுத்துக்காட்டாக, ஒரே வாடிக்கையாளர் பல ஆர்டர்களை வைக்கலாம் அல்லது ஒரு நூலக பார்வையாளர் ஒரே வருகையில் பல புத்தகங்களை கடன் வாங்கலாம். கீழே உள்ள எடுத்துக்காட்டில் காட்டப்பட்டுள்ளபடி, ஒன்று முதல் பல உறவுகள் (அல்லது சுருக்கமாக 1:M) காகத்தின் கால் குறியீட்டைப் பயன்படுத்தி வரைபடத்தில் வெளிப்படுத்தப்படுகின்றன:

ஒரு தரவுத்தளத்தைத் திட்டமிடும் போது 1:M உறவைப் பயன்படுத்த, "ஒரு" அட்டவணையில் இருந்து முதன்மை விசையை "பல" அட்டவணையின் பண்புக்கூறாகச் சேர்க்கவும். முதன்மை விசை வேறொரு அட்டவணையில் இருந்தால், அது "வெளிநாட்டு விசை" என்று அழைக்கப்படுகிறது. "ஒரு" அட்டவணை பெற்றோர் அட்டவணையாகக் கருதப்படுகிறது, அதே நேரத்தில் "பல" அட்டவணை குழந்தை அட்டவணையாகக் கருதப்படுகிறது.

4.4 பல-பல உறவு

ஒரு அட்டவணையில் உள்ள பல உட்பொருளை மற்றொன்றில் உள்ள பல உட்பொருட்களுடன் இணைக்க முடியும் என்றால், அவை பல முதல் பல (அல்லது M:M) உறவைக் கொண்டதாகக் கருதப்படுகிறது. எடுத்துக்காட்டாக, மாணவர்களுக்கும் வகுப்புகளுக்கும் இடையே இத்தகைய உறவு உள்ளது, ஏனெனில் ஒவ்வொரு மாணவரும் வெவ்வேறு வகுப்புகளில் கலந்து கொள்ளலாம், அதன்படி, பல மாணவர்கள் ஒவ்வொரு வகுப்பிற்கும் வரலாம்.

ER வரைபடத்தில், இந்த வகையான உறவு பின்வருமாறு காட்டப்படும்:

துரதிர்ஷ்டவசமாக, தரவுத்தளத்தில் அத்தகைய உறவை நேரடியாக செயல்படுத்த இயலாது. எனவே, அது இரண்டு ஒன்று முதல் பல உறவுகளாகப் பிரிக்கப்பட வேண்டும்.

இதைச் செய்ய, இரண்டு அட்டவணைகளுக்கு இடையில் ஒரு புதிய உட்பொருளை உருவாக்க வேண்டும். விற்பனை மற்றும் தயாரிப்புகளுக்கு இடையே ஒரு M:M உறவு நிறுவப்பட்டால், புதிய நிறுவனத்தை "விற்கப்படும் பொருட்கள்" என்று அழைக்கலாம், ஏனெனில் அது ஒவ்வொரு விற்பனையின் உள்ளடக்கத்தையும் குறிக்கும்.

"விற்பனை பொருட்கள்" மற்றும் "விற்பனை" அட்டவணை மற்றும் "பொருட்கள்" ஆகியவை வகை 1:M மூலம் இணைக்கப்படும். வெவ்வேறு மாதிரிகளில், இத்தகைய இடைநிலை நிறுவனங்கள் வித்தியாசமாக அழைக்கப்படுகின்றன - "இணைக்கும் அட்டவணைகள்", "தொடர்பு நிறுவனங்கள்" அல்லது "முனை அட்டவணைகள்".

ஒவ்வொரு இணைப்பு அட்டவணை உள்ளீடும் அருகிலுள்ள அட்டவணைகளின் இரண்டு வெவ்வேறு நிறுவனங்களை இணைக்கிறது (மேலும் கூடுதல் தகவல்களும் இருக்கலாம்). எடுத்துக்காட்டாக, மாணவர்களுக்கும் வகுப்புகளுக்கும் இடையிலான இணைப்பு அட்டவணை இப்படி இருக்கும்:

4.5 கட்டாயமா இல்லையா?

இணைப்பு பகுப்பாய்விற்கான மற்றொரு அணுகுமுறை, இணைக்கப்பட்ட நிறுவனங்களில் எது மற்றொரு நிறுவனத்தின் இருப்புக்கு முன்நிபந்தனை என்பதை தீர்மானிப்பதாகும். விருப்ப இணைப்பு பக்கமானது உடற்பகுதியில் ஒரு வட்டத்துடன் குறிக்கப்பட்டுள்ளது.

எடுத்துக்காட்டாக, ஐ.நா.வில் ஒரு மாநிலம் அதன் சொந்த பிரதிநிதியைக் கொண்டிருக்க, அது உலக வரைபடத்தில் இருக்க வேண்டும், ஆனால் அதற்கு நேர்மாறான அறிக்கை தவறானதாக இருக்கும்:

இரண்டு நிறுவனங்கள் ஒன்றையொன்று சார்ந்து இருக்கலாம் (அதாவது, மற்றொன்று இல்லாமல் இருக்க முடியாது).

சுழல் இணைப்புகள்

சில நேரங்களில் ஒரு அட்டவணை தன்னைக் குறிக்கலாம். எடுத்துக்காட்டாக, ஒரு பணியாளர் அட்டவணையில் "மேலாளர்" பண்புக்கூறு இருக்கலாம், அது அதே அட்டவணையில் உள்ள மற்றொரு பணியாளருக்கு நம்மைக் குறிப்பிடும். இது சுழல்நிலை உறவு.

கூடுதல் இணைப்புகள்

இணைப்புகள் ஒன்றுக்கு மேற்பட்ட முறை வெளிப்படுத்தப்பட்டால் அவை தேவையற்றதாகக் கருதப்படும். ஒரு விதியாக, முக்கியமான தகவல்களை இழக்காமல் அவற்றில் ஒன்றை நீக்கலாம். எடுத்துக்காட்டாக, "மாணவர்கள்" என்பது "ஆசிரியர்கள்" என்ற நிறுவனத்துடன் நேரடியாக மட்டுமல்லாமல், "வகுப்புகள்" மூலமாகவும் மறைமுகமாக இணைக்கப்பட்டிருந்தால், "மாணவர்கள்" மற்றும் "ஆசிரியர்கள்" ஆகிய நிறுவனங்களுக்கு இடையிலான உறவை அகற்றுவது அர்த்தமுள்ளதாக இருக்கும். வகுப்புகள் மூலம் மட்டுமே மாணவர்களை ஆசிரியர்களுக்கு ஒதுக்க முடியும் என்பதன் மூலம் இந்த முடிவு நியாயமானது.

4.6 தரவின் குறிப்பு ஒருமைப்பாடு

முதன்மை மற்றும் வெளிநாட்டு விசைகளை மாற்றும்போது, ​​தரவுகளின் குறிப்பு ஒருமைப்பாடு போன்ற ஒரு அம்சத்தை ஒருவர் கவனிக்க வேண்டும் . ஒரே தரவைச் சேமிக்கும் தரவுத்தளத்தில் இரண்டு அட்டவணைகளை வைத்திருப்பது இதன் முக்கிய யோசனையாகும்.

தரவு ஒருமைப்பாடு அட்டவணைகளுக்கு இடையே சரியான இணைப்புடன் ஒழுங்காக கட்டமைக்கப்பட்ட உறவுகளைக் குறிக்கிறது. எந்த சந்தர்ப்பங்களில் தரவு ஒருமைப்பாடு மீறப்படலாம்:

  • நீக்குதல் ஒழுங்கின்மை . பிரதான அட்டவணையில் இருந்து ஒரு வரிசை நீக்கப்படும் போது நிகழ்கிறது. இந்த வழக்கில், சார்பு அட்டவணையில் இருந்து வெளிநாட்டு விசை முதன்மை அட்டவணையில் இருந்து நீக்கப்பட்ட வரிசையை தொடர்ந்து குறிப்பிடுகிறது.
  • செருகும் ஒழுங்கின்மை . சார்பு அட்டவணையில் ஒரு வரிசை செருகப்படும் போது நிகழ்கிறது. இந்த வழக்கில், சார்பு அட்டவணையில் உள்ள வெளிநாட்டு விசை முதன்மை அட்டவணையில் இருந்து எந்த வரிசையின் முதன்மை விசையுடன் பொருந்தவில்லை.
  • புதுப்பிப்பு ஒழுங்கின்மை. அத்தகைய ஒழுங்கின்மையுடன், ஒரு அட்டவணையின் பல வரிசைகள் ஒரே பொருளுக்குச் சொந்தமான தரவைக் கொண்டிருக்கலாம். நீங்கள் ஒரு வரிசையில் தரவை மாற்றினால், அவை மற்றொரு வரிசையின் தரவுடன் முரண்படலாம்.

நீக்குதல் ஒழுங்கின்மை

நீக்குதல் ஒழுங்கின்மையைத் தீர்க்க, வெளிநாட்டு விசை இரண்டு கட்டுப்பாடுகளில் ஒன்றுக்கு அமைக்கப்பட வேண்டும்:

சார்பு அட்டவணையில் இருந்து ஒரு வரிசைக்கு முதன்மை அட்டவணையில் இருந்து ஒரு வரிசை அவசியமாக இருந்தால், வெளிநாட்டு விசை அடுக்கை நீக்குவதற்கு அமைக்கப்படும். அதாவது, முதன்மை அட்டவணையில் இருந்து ஒரு வரிசை நீக்கப்படும் போது, ​​தொடர்புடைய வரிசை(கள்) சார்பு அட்டவணையில் இருந்து நீக்கப்படும்.

சார்பு அட்டவணையில் இருந்து ஒரு வரிசையானது பிரதான அட்டவணையில் இருந்து ஒரு வரிசையுடன் எந்த தொடர்பையும் அனுமதிக்கவில்லை என்றால் (அதாவது, அத்தகைய உறவு விருப்பமானது), பின்னர் தொடர்புடைய வரிசை முதன்மை அட்டவணையில் இருந்து நீக்கப்படும் போது வெளிநாட்டு விசை NULL ஆக அமைக்கப்படும். வெளிநாட்டு விசை நெடுவரிசையானது பூஜ்யமாக இருக்க வேண்டும்.

செருகும் ஒழுங்கின்மை

சார்பு தரவு அட்டவணையில் சேர்க்கும் போது செருகும் ஒழுங்கின்மையைத் தீர்க்க, வெளிநாட்டு விசையைக் குறிக்கும் நெடுவரிசையானது nullable ஆக இருக்க வேண்டும். எனவே, சேர்க்கப்படும் பொருளுக்கு முக்கிய அட்டவணையுடன் எந்த தொடர்பும் இல்லை என்றால், வெளிநாட்டு விசை நெடுவரிசை ஒரு NULL மதிப்பைக் கொண்டிருக்கும்.

முரண்பாடுகளைப் புதுப்பிக்கவும்

புதுப்பிப்பு ஒழுங்கின்மை சிக்கலைத் தீர்க்க, இயல்பாக்கம் பயன்படுத்தப்படுகிறது, இது முன்னர் விவாதிக்கப்பட்டது.

கருத்துக்கள்
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION