በመረጃ ጎታ ውስጥ ከአንድ እስከ ብዙ ግንኙነቶች

በአንድ የመረጃ ቋት ውስጥ ከአንድ እስከ ብዙ ያለው ግንኙነት የተከሰተው በሠንጠረዝ 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

የውጭ ቁልፍን በመጠቀም በአስተማሪዎችና በቃለ መጠይቆች ሠንጠረዥ መካከል ግንኙነትን አዘጋጅተናል.

ይህ የሁለቱም ባዮሎጂ እና ሒሳብ ካርመንን ያስተምራሉ እናም ዣሮ ደግሞ እንግሊዝኛ ያስተምራል.

ይህ ዲዛይኑ ማንኛውንም የድብቁቃን ድግግሞሽ እንዴት እንደሚርቅ, እያንዳንዱ አስተማሪ ብዙ ትምህርቶችን እንዲያስተላልፍ, ከአንድ-እስከ-በላይ ግንኙነትን ተግባራዊ ያደርጋል.

የውሂብ ጎታዎች እንዲሁም የብዙ-ለብዙ ግንኙነቶች መተግበር ይችላሉ.