የውሂብ ጎታ በሶስተኛ መደበኛ ፎርም (3NF) ማስገባት

ሶስተኛ መደበኛ ፎርማት (3NF) የመረጃ ቋት መርሆዎችን መሰረት በማድረግ የመረጃ ቋት መርሆዎችን መሰረት በማድረግ በመረጃ ቋት (Normal Form) (1NF) እና ሁለተኛ መደበኛ ፎርማት (2NF) የተሰጡ ናቸው.

ሶስተኛ መደበኛ መስፈርቶች

አንድ የመረጃ ቋት ሶስተኛው መደበኛ ቅጽ ለመሆኑ ሁለት መሠረታዊ መስፈርቶች አሉ.

ስለ ዋናው ቁልፍ ጥገኛነት

ሁሉም አምዶች በዋናው ቁልፍ ላይ የተመሰረቱ መሆናቸውን ስንመለከት ምን እንደምናደርግ እስቲ እንመርምር.

የአንድ አምድ እሴቱ ከሁለቱም ዋናው ቁልፍ እና በሌላ ሠንጠረዥ ውስጥ ሊገኝ ይችላል, 3NF ይጥሳል. በእነዚህ አምዶች የሰራተኞች ሠንጠረዥ ያስቡ:

ሁለቱም የመጨረሻው ስም እና የመጀመሪያ ስም በ EmployeeID ዋጋ ብቻ ይወሰዳሉ? የመጨረሻው ስም የመጨረሻ ስም ሊኖረው ይችላል? አይኖርም ምክንያቱም በ LastName ውስጥ የተካተተ ምንም ነገር አይኖርም ምክንያቱም የመጀመሪያውን ስም ዋጋ ይጠቁማል. FirstName በ LastName ላይ ሊመዘገብ ይችላል? አይሆንም ምክንያቱም ይሄ እውነት ነው ምክንያቱም ማንኛውም የመጨረሻው ስም ሊሆን ይችላል, እንደ FirstName ዋጋ ፍንጭ መስጠት አልቻለም. ስለዚህ, ይህ ሰንጠረዥ 3 ኙነት ያለው ነው.

ነገር ግን ይህንን ተሸከርን

አምራቹ እና ሞዴሉ ከተሽከርካሪዎች ሊገኙ ይችላሉ-ነገር ግን ሞዴሉ ከአምራቹ ሊወጣ ይችላል ምክንያቱም የተሽከርካሪ ሞዴል በአንድ አምራች ብቻ የተፈጠረ ስለሆነ. ይህ የሠንጠረዥ ንድፍ ከ 3 NF ጋር የተጣጣመ አይደለም, እናም በዚህ ምክንያት የውሂብ ክፍተቶች ሊያስከትል ይችላል. ለምሳሌ, የተሳሳተ መረጃዎችን በማስተዋወቅ ሞዴሉን ሳይዘመኑ አምራቹን ማሻሻል ይችላሉ.

የተጣጣመውን አምድ ለማሟላት ተጨማሪ ጥገኛውን አምድ ወደ ሌላ ሠንጠረዥ ማንቀሳቀስ እና የውጭ ቁልፍን በመጠቀም ማጣቀስ ያስፈልገናል. ይህም ሁለት ሠንጠረዦችን ያስከትላል.

ተሽከርካሪዎች

ከዚህ በታች በሚገኘው ሰንጠረዥ ውስጥ ሞዴልዲ ለ Models ሰንጠረዥ የውጭ ቁልፍ ነው:

ሞዴሎች ሰንጠረዥ

ይህ አዲስ የሠንጠረዥ ካርታዎች አምራቾች ለአምራቾች. ለሞዴል የተወሰነውን የተሽከርካሪ መረጃን ለማዘመን ከፈለጉ በሠንጠረዥ ውስጥ ከማሽከርከር ይልቅ በዚህ ሠንጠረዥ ውስጥ ያደርጉታል.

በ 3NF ሞዴል ውስጥ የመነጩ መስኮች

ሠንጠረዥ በባህሩ ውስጥ ባሉ ሌሎች አምዶች ላይ ተመስርቶ ተመንቶ የወጣውን መስክ ይዞ ሊሆን ይችላል. ለምሳሌ, ይሄንን የመግብር ትዕዛዞች ሠንጠረዥ ተመልከት.

የ 3 NF ደንብን ማሟላት ጠቅላላ እረፍቶች በመነሻ ቁልፍ ላይ ሙሉ በሙሉ ጥገኛ ከመሆን ይልቅ የመብሰያውን ዋጋ በብዛታቸው በማባዛት ሊገኝ ስለሚችል ነው. ሶስተኛው መደበኛ ቅጽን ለማሟላት ከሠንጠረዡ ማስወገድ ይኖርብናል.

እንደ እውነቱ ከሆነ, በመረጃ ማጠራቀሚያ ውስጥ ሙሉ ለሙሉ ማከማቸት ይሻላል.

የውሂብ ጎታ መጠይቆችን ሲያከናውን "በዝግታ" መተካት እንችላለን. ለምሳሌ, ከዚህ ቀደም ይህን መጠይቅ የስዕላት ቁጥሮችን እና ድራጮችን ማምጣት እንችል ይሆናል:

SELECT OrderNumber, ጠቅላላ ከፍለጋ መግዣዎች

አሁን የሚከተለውን መጠይቅ መጠቀም እንችላለን:

SELECT OrderNumber, UnitPrice * Quantity AS ጠቅላላ ከፍለጋ ንጥረ ነገሮች

የሂደቱ ደንቦችን ሳይጥስ ተመሳሳይ ውጤቶችን ለማግኘት.