የውሂብ ጎታ ግንኙነቶች የሁሉም ግንኙነቶች የውሂብ ጎኖች የጀርባ አጥንት ናቸው
አንድ ሰንጠረዥ በሌላ ሰንጠረዥ ዋና ቁልፍ የሚጠቀስ የውጭ ቁልፍ ከሆነ በሁለት የውሂብ ጎታ ሰንጠረዥ መካከል ግንኙነት ይደረጋል. ይህ መሠረታዊ ቃል ከእውነተኛ የውሂብ ጎታ በስተጀርባ ነው.
ግንኙነትን ለመመስረት የውጭ ቁልፍ እንዴት ይሰራል
ዋና ዋና እና የውጭ ቁልፎችን ይከልሱ. ዋናው ቁልፍ በሠንጠረዡ ውስጥ ያለውን እያንዳንዱን ውጤት ለይቶ ይገልጻል. በአንድ የሰንጠረዥ የመጀመሪያ አምድ ውስጥ የተለመደው የእጩ ቁልፍ ቁልፍ ነው , እና የተለየ መሆኑን ለማረጋገጥ በውሂብ ጎታ በቀጥታ ሊፈጠር ይችላል.
የውጪ ቁልፍ ሌላ ሰንጠረዥ ቁልፍ ነው (ዋናው ቁልፍ አይደለም) በማስተሳሰር ላይ በሌላ ሰንጠረዥ ወደ መዝገብ.
ለምሳሌ, የትኛውን መምህራንን የትኛውን መምህራንን እንደሚያስተምሯቸው እነዚህ ሁለት ሰንጠረዦች አስቡባቸው.
እዚህ, የ "ኮርሶች" ሰንጠረዥ ዋናው ቁልፍ "" 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 | ጃሆር | እንግሊዝኛ |
ይህ አሁንም ደካማ የሆነ ንድፍ ነው, አላስፈላጊ ድግግሞሽን ያስተዋውቀዋል እና የውሂብ የመገጣጠም ስህተቶች ይባላሉ , ይህ ማለት ግን ወጥነት በሌለው ውሂብ ውስጥ አስተዋፅኦ ሊያደርግ ይችላል ማለት ነው.
ለምሳሌ, አንድ አስተማሪ ብዙ መዝገቦች ካሉ, አንዳንድ መረጃዎች ማስተካከል ቢፈልጉስ, ነገር ግን የውሂብ አርትዖት የሚያከናውን ሰው በርካታ መዝገቦች እንዳሉ አላወቀም? ሠንጠረዡ ከዚያ በኋላ ለተመሳሳይ ግለሰብ የተለየ መረጃ ያካትታል, ምንም ሳይታወቅ ማንነቱን መለየት ወይም ማስወገድ.
ይህንን ሰንጠረዥ በሁለት ሠንጠረዦች ውስጥ ማፍረስ, አስተማሪዎችና ኮርሶች (ከላይ እንደታየው), በውሂብ መካከል ተገቢ ግንኙነት ይፈጥራል, ስለዚህም ወጥነት እና ትክክለኝነትን ለማረጋገጥ ይረዳል.