የውሂብ ጎታ ግንኙነቶች

የውሂብ ጎታ ግንኙነቶች የሁሉም ግንኙነቶች የውሂብ ጎኖች የጀርባ አጥንት ናቸው

አንድ ሰንጠረዥ በሌላ ሰንጠረዥ ዋና ቁልፍ የሚጠቀስ የውጭ ቁልፍ ከሆነ በሁለት የውሂብ ጎታ ሰንጠረዥ መካከል ግንኙነት ይደረጋል. ይህ መሠረታዊ ቃል ከእውነተኛ የውሂብ ጎታ በስተጀርባ ነው.

ግንኙነትን ለመመስረት የውጭ ቁልፍ እንዴት ይሰራል

ዋና ዋና እና የውጭ ቁልፎችን ይከልሱ. ዋናው ቁልፍ በሠንጠረዡ ውስጥ ያለውን እያንዳንዱን ውጤት ለይቶ ይገልጻል. በአንድ የሰንጠረዥ የመጀመሪያ አምድ ውስጥ የተለመደው የእጩ ቁልፍ ቁልፍ ነው , እና የተለየ መሆኑን ለማረጋገጥ በውሂብ ጎታ በቀጥታ ሊፈጠር ይችላል.

የውጪ ቁልፍ ሌላ ሰንጠረዥ ቁልፍ ነው (ዋናው ቁልፍ አይደለም) በማስተሳሰር ላይ በሌላ ሰንጠረዥ ወደ መዝገብ.

ለምሳሌ, የትኛውን መምህራንን የትኛውን መምህራንን እንደሚያስተምሯቸው እነዚህ ሁለት ሰንጠረዦች አስቡባቸው.

እዚህ, የ "ኮርሶች" ሰንጠረዥ ዋናው ቁልፍ "" Course_ID "" ነው. የውጭ ቁልፍ ቁልፍ መምህር_ID ነው:

ኮርሶች
Course_ID Course_Name መምህር_ID
Course_001 ባዮሎጂ Teacher_001
Course_002 ሒሳብ Teacher_001
Course_003 እንግሊዝኛ Teacher_003

በኮርክስ ውስጥ ያለው የውጭ ቁልፍ በአስተማሪዎች ውስጥ ዋናውን ቁልፍ ያዛምዳል.

መምህራን
መምህር_ID መምህር_ስም
Teacher_001 ካርሜን
መምህር_002 ቬሮኒካ
Teacher_003 ጃሆር

የባህሌው የውጭው ቁልፍ በኮሌጆች እና በአስተማሪዎች ሠንጠረዦች መካከሌ ግንኙነት ሇመፍጠር እንዯሚችሌ መናገር ይቻሊሌ.

የውሂብ ጎታ ግንኙነቶች ዓይነቶች

የውጭ ቁልፎችን ወይም ሌላ የእጩ ቁልፎችን በመጠቀም በሠንጠረዦች መካከል ሦስት ዓይነት ግንኙነቶችን ሊያከናውኑ ይችላሉ:

አንድ ለአንድ- ይህ አይነት ግንኙነት በግንኙነት በያንዳንዱ ጎን አንድ ሪኮርድ ብቻ ነው የሚፈቅደው.

ዋናው ቁልፍ አንድ መዝገብ ብቻ ነው - ወይም የለም - በሌላ ሰንጠረዥ ውስጥ. ለምሳሌ በጋብቻ ውስጥ የትዳር ጓደኛ ብቻ ሌላኛው የትዳር ጓደኛ ብቻ ይኖረዋል. እንዲህ ዓይነቱ ግንኙነት በአንድ ሠንጠረዥ ውስጥ ሊተገበር የሚችል ሲሆን የውጭ ቁልፍን አይጠቀምም.

ከአንድ-እስከ-ብዙዎች -የአንድ-ለብዙ ግንኙነቶች በአንድ ሠንጠረዥ ውስጥ በአንድ መዝገብ ውስጥ በሌላ ሰንጠረዥ ውስጥ ካሉ ብዙ መዝገቦች ጋር ይዛመዳል.

የደንበኛዎች እና ትዕዛዞች ሰንጠረዦች ባለው የውሂብ ጎታ ላይ አንድ የንግድ ሥራ ያስቡ.

አንድ ነጋዴ ብዙ ትዕዛዞች ሊገዛ ይችላል, ነገር ግን አንድ ትዕዛዝ ከብዙ ደንበኞች ጋር መገናኘት አልቻለም. ስሇዙህ የጨረታዎች ሰንጠረዥ በተጠቃሚዎች ሰንጠረዥ ዋናው ቁልፍ ጋር የሚጣጣም የውጭ ጉዴጓሌ ያካትታሌ. ነገር ግን የአገሌግልት ሰንጠረዡን የሚያመሇክት የውጭ ጉርሻ ሊይ ያሌተካተተ የውጪን ቁልፍ ያሌተጠቀሰበት.

ብዙ-ለብዙ -ይህ በአንድ ውዝግብ ውስጥ ያሉ ብዙ መዝገቦች በሌላ ሰንጠረዥ ውስጥ ካሉ ብዙ መዝገቦች ጋር ሊያገናኝ የሚችል ውስብስብ ግንኙነት ነው. ለምሳሌ, ንግዳችን የደንበኛዎች እና ትዕዛዞች ሰንጠረዦች ብቻ ሳይሆን የንብረቶች ሰንጠረዥ ያስፈልገዋል.

አሁንም በተገልጋዮች እና ትዕዛዞች ሰንጠረዥ መካከል ያለው ግንኙነት አንድ-ለ-አንድ ነው, ነገር ግን በፕሮግራሞች እና ምርቶች ሠንጠረዥ መካከል ያለውን ግንኙነት ያስቡ. አንድ ትዕዛዝ ብዙ ምርቶችን ሊያካትት ይችላል እንዲሁም አንድ ምርት ከበርካታ ትዕዛዞች ጋር ሊገናኝ ይችላል ብዙ ደንበኞች አንዳንድ ተመሳሳይ ምርቶች የያዘ ቅደም ተከተል ሊያቀርቡ ይችላሉ. እንዲህ ዓይነቱ ግንኙነት ቢያንስ ቢያንስ ሶስት ጠረጴዛዎችን ይጠይቃል.

የውሂብ ጎታ ግንኙነቶች በጣም አስፈላጊ ምንድን ነው?

በቢዝነል ዲዛይኖች መካከል ወጥ የሆነ ግንኙነቶችን ማመቻቸት የውሂብ ጎለመናን ማረጋገጥ እና ለከታሪካዊ መደበኛ ደረጃ ማጎልበት አስተዋፅኦ ያደርጋል ለምሳሌ, የውጭ ቁልፍን ማንኛውንም ሰንጠረዥ በማያያዝ እና በኮስፕሬስ እና መምህራን ሠንጠረዦች ውስጥ መረጃን በማጣመር ቢቀሩስ?

መምህራን እና ኮርሶች
መምህር_ID መምህር_ስም ኮርስ
Teacher_001 ካርሜን ባዮሎጂ, ሒሳብ
መምህር_002 ቬሮኒካ ሒሳብ
Teacher_003 ጃሆር እንግሊዝኛ

ይህ ንድፍ የተስተካከለ ነው, እንዲሁም እያንዳንዱ የሠንጠረዥ ክፍል አንድ, ልዩ ውሂብን ማካተት እንዳለበት የሚገልጸውን የመጀመሪያ ደረጃ መደበኛ ፎርም (1NF) የመረጃ መሰረታዊ ደረጃ መለኪያዎችን ይጥሳል.

ወይም ደግሞ ለ 1 ደቂቃ ያህል ለማስከበር ለካርማን ሁለተኛ መዝገብ ለማከል ወሰንን.

መምህራን እና ኮርሶች
መምህር_ID መምህር_ስም ኮርስ
Teacher_001 ካርሜን ባዮሎጂ
Teacher_001 ካርሜን ሒሳብ
መምህር_002 ቬሮኒካ ሒሳብ
Teacher_003 ጃሆር እንግሊዝኛ

ይህ አሁንም ደካማ የሆነ ንድፍ ነው, አላስፈላጊ ድግግሞሽን ያስተዋውቀዋል እና የውሂብ የመገጣጠም ስህተቶች ይባላሉ , ይህ ማለት ግን ወጥነት በሌለው ውሂብ ውስጥ አስተዋፅኦ ሊያደርግ ይችላል ማለት ነው.

ለምሳሌ, አንድ አስተማሪ ብዙ መዝገቦች ካሉ, አንዳንድ መረጃዎች ማስተካከል ቢፈልጉስ, ነገር ግን የውሂብ አርትዖት የሚያከናውን ሰው በርካታ መዝገቦች እንዳሉ አላወቀም? ሠንጠረዡ ከዚያ በኋላ ለተመሳሳይ ግለሰብ የተለየ መረጃ ያካትታል, ምንም ሳይታወቅ ማንነቱን መለየት ወይም ማስወገድ.

ይህንን ሰንጠረዥ በሁለት ሠንጠረዦች ውስጥ ማፍረስ, አስተማሪዎችና ኮርሶች (ከላይ እንደታየው), በውሂብ መካከል ተገቢ ግንኙነት ይፈጥራል, ስለዚህም ወጥነት እና ትክክለኝነትን ለማረጋገጥ ይረዳል.