3NF vs BCNF
መደበኛ ማድረግ በተዛማጅ የውሂብ ጎታዎች ውስጥ በመረጃ ውስጥ የሚገኙትን ድጋሚ ሁኔታዎችን ለመቀነስ የሚደረግ ሂደት ነው። ይህ ሂደት በዋነኛነት ትላልቅ ሰንጠረዦችን በትንሹ ድግግሞሾችን ወደ ትናንሽ ጠረጴዛዎች ይከፋፍላቸዋል። እነዚህ ትናንሽ ጠረጴዛዎች በደንብ በተገለጹ ግንኙነቶች እርስ በርስ ይዛመዳሉ. በደንብ በተስተካከለ ዳታቤዝ ውስጥ ማንኛውም ለውጥ ወይም የውሂብ ማሻሻያ አንድ ጠረጴዛ ብቻ ማሻሻልን ይጠይቃል። ሦስተኛው መደበኛ ቅጽ (3NF) በ 1971 በኤድጋር ኤፍ. ኮድድ አስተዋወቀ፣ እሱም የግንኙነት ሞዴል እና የመደበኛነት ጽንሰ-ሀሳብ ፈጣሪ ነው። ቦይስ-ኮድ መደበኛ ቅጽ (BCNF) በ1974 በኮድ እና ሬይመንድ ኤፍ.ቦይስ።
3NF ምንድን ነው?
3NF ለግንኙነት ዳታቤዝ መደበኛነት ጥቅም ላይ የሚውለው ሦስተኛው መደበኛ ቅጽ ነው። በኮድ ፍቺ መሠረት ሠንጠረዥ በ 3 ኤን ኤፍ ውስጥ አለ ተብሎ ይነገራል ፣ ያ ሠንጠረዥ በሁለተኛው መደበኛ ቅጽ (2NF) ከሆነ እና ከሆነ ፣ እና በሠንጠረዡ ውስጥ ያለው እያንዳንዱ የእጩ ቁልፍ ያልሆነ ባህሪ በቀጥታ የተመካ መሆን አለበት። የዚያ ጠረጴዛ እያንዳንዱ እጩ ቁልፍ. እ.ኤ.አ. በ 1982 ካርሎ ዛኒዮሎ ለ 3NF በተለየ መልኩ የተገለጸ ፍቺ አወጣ። 3NFን የሚያከብሩ ሰንጠረዦች በአጠቃላይ በሰንጠረዡ ውስጥ መዝገቦችን ሲያስገቡ፣ ሲሰርዙ ወይም ሲያዘምኑ የሚከሰቱ ያልተለመዱ ነገሮችን አያካትቱም።
BCNF ምንድን ነው?
BCNF (በተጨማሪም 3.5NF በመባልም ይታወቃል) በግንኙነት የውሂብ ጎታ መደበኛነት ስራ ላይ የሚውለው ሌላ መደበኛ ቅጽ ነው። በ3NF ያልተስተናገዱትን አንዳንድ ያልተለመዱ ነገሮችን ለመያዝ ተጀመረ። ሠንጠረዥ በBCNF ውስጥ አለ ተብሎ ይነገራል፣ እና ከሆነ፣ እና ከሆነ፣ ለእያንዳንዱ የቅጽ A → B ጥገኞች ቀላል ያልሆኑ፣ ሀ ልዕለ-ቁልፍ ነው። በ BCNF መደበኛ ፎርም ውስጥ ያልሆነ ሠንጠረዥ መበስበስ በ BCNF ፎርም (በመጀመሪያው ሠንጠረዥ ውስጥ የነበሩትን ጥገኞች በመጠበቅ ላይ) ሠንጠረዦችን ለማምረት ዋስትና አይሆንም.
በ3NF እና BCNF መካከል ያለው ልዩነት ምንድን ነው?
ሁለቱም 3NF እና BCNF በሠንጠረዦች ውስጥ ድጋሚ ሁኔታዎችን ለመቀነስ በግንኙነት ዳታቤዝ ውስጥ የሚያገለግሉ የተለመዱ ቅርጾች ናቸው። በ BCNF መደበኛ ቅጽ ውስጥ ባለው ሠንጠረዥ ውስጥ፣ ለእያንዳንዱ ቀላል ያልሆነ የተግባር ጥገኝነት ቅፅ A → B፣ A ልዕለ-ቁልፍ ሲሆን 3NFን የሚያከብር ሠንጠረዥ በ 2NF ውስጥ እና እያንዳንዱ ዋና ያልሆነ መሆን አለበት። ባህሪው በቀጥታ በእያንዳንዱ የእጩዎች ቁልፍ ላይ የተመሰረተ መሆን አለበት. BCNF ከ 3NF የበለጠ ጠንካራ የሆነ መደበኛ ቅርጽ ተደርጎ የሚወሰድ ሲሆን በ 3NF ሊያዙ የማይችሉትን አንዳንድ ያልተለመዱ ነገሮችን ለመያዝ ተዘጋጅቷል. የ BCNF ቅጹን የሚያከብር ሠንጠረዥ ማግኘት በ 3NF ውስጥ ያለውን ሰንጠረዥ መበስበስን ይጠይቃል። ይህ መበስበስ ጥያቄዎችን በሚፈጽምበት ጊዜ ተጨማሪ የመቀላቀል ስራዎችን (ወይም የካርቴዥያን ምርቶች) ያስከትላል። ይህ የማስላት ጊዜን ይጨምራል. በሌላ በኩል፣ BCNFን የሚያከብሩ ሠንጠረዦች 3NFን ብቻ ከሚያከብሩ ሠንጠረዦች ያነሰ ድጋሚ ይኖራቸዋል። በተጨማሪም፣ ብዙ ጊዜ፣ ጥገኝነት ጥበቃን እና ኪሳራ የለሽ መቀላቀልን ሳያስተጓጉል 3NFን የሚያከብር ሠንጠረዥ ማግኘት ይቻላል።ግን ይህ ሁልጊዜ በBCNF አይቻልም።