በአንድ የመረጃ ቋት ውስጥ ከአንድ እስከ ብዙ ያለው ግንኙነት የተከሰተው በሠንጠረዝ B ውስጥ ያለው እያንዳንዱ መዝገብ በ ሰንጠረ ለ B ውስጥ በርካታ የተያያዙ መዛግብቶች ሲኖሩት ነገር ግን በ ሰንጠረ ለ ለ ውስጥ ያለው እያንዳንዱ መዝገብ በሠንጠረዥ ሀ ውስጥ አንድ ተጨባ ሪኬት ብቻ ሊኖረው ይችላል. የውሂብ ጎታ በጣም የተለመደ የደንበኞች የመረጃ ቋት ንድፍ እና በጥሩ ንድፍ ልብ ውስጥ ነው.
በመምህሩ እና በሚያስተማሩዋቸው ኮርሶች መካከል ያለውን ግንኙነት ተመልከቱ. አንድ አስተማሪ ብዙ ኮርሶችን ማስተማር ይችላል, ነገር ግን ኮርሱ ከአስተማሪው ጋር ተመሳሳይ ግንኙነት አይኖረውም.
ስለዚህ, በአስተማሪዎች ሰንጠረዥ ለእያንዳንዱ መዝገብ, በ "ኮርሶች" ሰንጠረዥ ውስጥ ብዙ መዝገቦች ሊኖሩ ይችላሉ. ይህ ከአንድ እስከ ለብዙ ግንኙነቶች ነው አንድ አስተማሪ ለበርካታ ኮርሶች.
ከአንድ እስከ ብዙ ግኑኝነት መመራት አስፈላጊ የሆነው ለምንድን ነው?
ከአንድ እስከ ከብዙ ግንኙነቶች ለመወከል, ቢያንስ ሁለት ገበታዎች ያስፈልግዎታል. እስቲ ምክንያቱን እንመልከት.
ምናልባትም ስማችን እና ኮርሶችን ለመመዝገብ የምንፈልገውን የአስተማሪዎች ሠንጠረዥ እንፈጥሩ ይሆናል. እንዲህ ልንል እንችላለን:
መምህር_ID | መምህር_ስም | ኮርስ |
---|---|---|
Teacher_001 | ካርሜን | ባዮሎጂ |
መምህር_002 | ቬሮኒካ | ሒሳብ |
Teacher_003 | ጃሆር | እንግሊዝኛ |
ካርሜ ሁለት ወይም ከዚያ በላይ ኮርሶች ቢያስተምርስ? በዚህ ንድፍ ሁለት አማራጮች አሉን. አሁን ወደ ካርኔን አሁን ባለው መዝገብ ላይ ልናክለው እንችላለን, እንደዚህ እንደሚከተለው.
መምህር_ID | መምህር _ ስም | ኮርስ |
---|---|---|
Teacher_001 | ካርሜን | ባዮሎጂ, ሒሳብ |
መምህር_002 | ቬሮኒካ | ሒሳብ |
Teacher_003 | ጃሆር | እንግሊዝኛ |
ከላይ ያለው ንድፍ ግን ሊስተካከለው የማይችል ሲሆን ውሂብን ለማስገባት, ለማርትዕ ወይም ለመሰረዝ በሚሞከርበት ጊዜ በኋላ ችግር ሊያስከትል ይችላል.
ውሂብን ለመፈለግ አስቸጋሪ ያደርገዋል. ይህ ንድፍ እያንዳንዱ የሠንጠረዥ ክፍል አንድ ነጠላ ልዩ ውህድ መያዝ ያለበት የመጀመሪያ ደረጃ መደበኛ ፎርሙላር (1NF) የመጀመሪያውን መሰረታዊ ውሂብ መለኪያ (norm) መሠረት ይጥላል .
ሌላው አማራጭ አማራጭ ለካርማን ሁለተኛ መዝገብ ለማከል ሊሆን ይችላል:
መምህር_ID | መምህር _ ስም | ኮርስ |
---|---|---|
Teacher_001 | ካርሜን | ባዮሎጂ |
Teacher_001 | ካርሜን | ሒሳብ |
መምህር_002 | ቬሮኒካ | ሒሳብ |
Teacher_003 | ጃሆር | እንግሊዝኛ |
ይህ ለ 1 NF ያገለግላል ነገር ግን አሁንም ድሃ የውሂብ ጎታ ንድፍ ነው, ምክንያቱም የፕሮጀክት ክፍተት ስለሚያስፈልግ በጣም አስፈላጊ የሆነ የውሂብ ጎታ በጣም አስፈላጊ በሆነ መልኩ እንዲከማች ሊያደርግ ይችላል. ከሁሉም በላይ, ውሂቡ ወጥነት ሊኖረው ይችላል. ለምሳሌ ያህል, ካርመን የሚለው ስም ቢቀየርስ? ከውሂብ ጋር የሚሰራ አንድ ሰው ስሜን በአንድ መዝገብ ውስጥ ሊያዘምን ይችላል እና በሁለተኛው መዝገብ ላይ ሊያዘምን አልቻለም. ይህ ንድፍ 1NF የተከተለ ሁለተኛ መደበኛ መስፈርት (2NF) ይጥሳል እንዲሁም በርካታ የውሂብ ሰንጠረዥን በመለያየት እና በበርካታ ጠረጴዛዎች መካከል በመፍጠር በርካታ የምዝግቦች ድግግሞሽዎችን ማስወገድ ይኖርበታል.
ከአንድ-እስከ-ብዙ ግንኙነቶች ጋር መረጃን እንዴት ንድፍ እንደሚያዘጋጁ
በአስተማሪዎች እና በክፍሎች ሰንጠረዥ ውስጥ ከአንድ-እስከ-በላይ ግንኙነቶችን ለመተግበር ሰንጠረዦቹን ለሁለት ይሰነጥቀዋል እና የውጭ ቁልፍን በመጠቀም እንገናኝሃለን .
እዚህ, የአመላሾች ሰንጠረዥ ውስጥ የኮርስ መመሪያን አስወግደናል.
መምህር_ID | መምህር _ ስም |
---|---|
Teacher_001 | ካርሜን |
መምህር_002 | ቬሮኒካ |
Teacher_003 | ጃሆር |
እዚህ ላይ የ "ኮርሶች" ሰንጠረዥ. የውጭ ቁልፍ, መምህር_ID, በአስተማሪዎች ሰንጠረዥ ውስጥ አስተማሪን ያገናኛል.
Course_ID | Course_Name | መምህር_ID |
---|---|---|
Course_001 | ባዮሎጂ | Teacher_001 |
Course_002 | ሒሳብ | Teacher_001 |
Course_003 | እንግሊዝኛ | Teacher_003 |
የውጭ ቁልፍን በመጠቀም በአስተማሪዎችና በቃለ መጠይቆች ሠንጠረዥ መካከል ግንኙነትን አዘጋጅተናል.
ይህ የሁለቱም ባዮሎጂ እና ሒሳብ ካርመንን ያስተምራሉ እናም ዣሮ ደግሞ እንግሊዝኛ ያስተምራል.
ይህ ዲዛይኑ ማንኛውንም የድብቁቃን ድግግሞሽ እንዴት እንደሚርቅ, እያንዳንዱ አስተማሪ ብዙ ትምህርቶችን እንዲያስተላልፍ, ከአንድ-እስከ-በላይ ግንኙነትን ተግባራዊ ያደርጋል.
የውሂብ ጎታዎች እንዲሁም የብዙ-ለብዙ ግንኙነቶች መተግበር ይችላሉ.