መደበኛነትን ማረጋገጥ ለማገዝ የሽግግር ጥገኛዎችን ያስወግዱ
በመረጃ ቋት ውስጥ ያለ የተራነት ጥገኝነት ነው, በተመሳሳይ ሠንጠረዥ ውስጥ ባዶ እሴቶች ውስጥ ተጨባጭ ግንኙነቶች ናቸው . የሶስተኛው መደበኛ ፎርም (3NF) የሂደቱን መደበኛነት ደረጃ ለመድረስ ማንኛውንም የሽግግር ጥገኛ ማስወገድ ይኖርብዎታል.
በተፈጥሯዊነት ላይ ግሸተኛ ጥገኝነት በሶስት ወይም ከዚያ በላይ የባህርይ (ወይም የውሂብ ጎታ አምዶች) በእነርሱ መካከል ተግባራዊ የሆነ ጥገኝነት የሚጠይቁ ሲሆን ይህም በሠንጠረዥ B ውስጥ በአል-ደረጃ ሲ
ይህ እንዴት እንደሚሰራ እንመልከት.
የሽያጭ ጥገኛ ምሳሌ
ደራሲዎች
ደራሲ _ መታወቂያ | ደራሲ | መጽሐፍ | ደራሲ_ውሃነት |
---|---|---|---|
Auth_001 | Orson Scott Card | የ Ender ጨዋታው | የተባበሩት መንግስታት |
Auth_001 | Orson Scott Card | የ Ender ጨዋታው | የተባበሩት መንግስታት |
Auth_002 | ማርጋሬት አውዱድ | የባለቤቴው ታሪክ | ካናዳ |
ከላይ በ AUTHORS ምሳሌ ውስጥ:
- መጽሃፍ → ፃም : እዚህ, የመጽሐፉ ባህሪው የደራሲውን አይነታ ይወስናል. የመጽሐፉን ስም ካወቁ የጸሐፊውን ስም መማር ይችላሉ. ሆኖም ደራሲው መጽሐፍን አይወስንም, ምክንያቱም አንድ ደራሲ ብዙ መጻሕፍትን መጻፍ ይችላል. ለምሳሌ, የኦርሰን ስካርድ ካርዱን የደራሲውን ስም ስላወቅን, የመጽሐፉን ስም ገና አናውቅም.
- ደራሲው → author_Nationality : በተመሳሳይ መልኩ, የደራሲው ባህርይ ፈጣሪውን ዘረኝነት ይወስናል , ነገር ግን በአጠገባቸው አይደለም. ዜጋ መሆኑን ማወቅ ግን ጸሐፊውን ለመወሰን አለመቻላችን ነው.
ነገር ግን ይህ ሰንጠረዥ የሽግግር ጥምረት ያስተዋውቃል-
- መጽሃፍ → የደራሲው ዘውግ-የዘር ሐረግ: የመጽሐፉን ስም ካወቅን, ዜግነትን በመጥቀስ አምድ በኩል እንወስዳለን.
የተዛባ ግንዛቤን ማስወገድ
ሶስተኛ መደበኛ ፎርም ለመሙላት የሽግግር ጥረትን እናስወግደው.
ከጸሐፊዎች ሠንጠረዥ የመፅሐፍ አምዱን በማስወገድ እና የተለየ የቡድን ሰንጠረዥ በመፍጠር ልንጀምረው እንችላለን:
መጽሐፍት
Book_ID | መጽሐፍ | ደራሲ _ መታወቂያ |
---|---|---|
Book_001 | የ Ender ጨዋታው | Auth_001 |
Book_001 | የአእምሮ ህፃናት | Auth_001 |
Book_002 | የባለቤቴው ታሪክ | Auth_002 |
ደራሲዎች
ደራሲ _ መታወቂያ | ደራሲ | ደራሲ_ውሃነት |
---|---|---|
Auth_001 | Orson Scott Card | የተባበሩት መንግስታት |
Auth_002 | ማርጋሬት አውዱድ | ካናዳ |
ይሄ መፍትሄ ይሆን? አሁን የእኛን ጥገኝነት እንመርጣለን:
የቢዝነስ ሰንጠረዥ :
- Book_ID → መጽሐፍት: መጽሃፉ Book_ID ላይ ይወሰናል.
- በዚህ ሠንጠረዥ ውስጥ ሌሎች ምንም ነገር አልታየም, ስለዚህ እኛ ደህና ነን. የውጭ ቁልፍ ፃፉ Author_ID ይህን ሰንጠረዥ ወደ AUTHORS ሰንጠረዥ ከዋናው ቁልፍ ደራሲ __ID ጋር ያገናኛል . ግንኙነቶችን ፈጥረናል, ከሽርሽር ጥገኝነት, የግንኙነት የውሂብ ጎታዎች ቁልፍ ንድፍ.
AUTHORS ሰንጠረዥ :
- Author_ID → ደራሲ: ደራሲው በ Author_ID ላይ የተመሰረተ ነው .
- ደራሲው → የደራሲው ዘውግ- ዜግነት : ዜግነቱ በደራሲው ሊወሰን ይችላል.
- ደራሲ_ውይይት_ይይት_አገር_ይይት ዜግነት ዜግነቱ ከደራሲ_ው በመጥቀስ ደራሲው ነው. አሁንም ቢሆን የሽግግር ጥገኝነት አለን.
ይህንን ውሂብ ለመደመር ሶስተኛው ሰንጠረዥ ማከል ያስፈልገናል.
COUNTRIES
አገር_ID | አገር |
---|---|
Coun_001 | የተባበሩት መንግስታት |
Coun_002 | ካናዳ |
ደራሲዎች
ደራሲ _ መታወቂያ | ደራሲ | አገር_ID |
---|---|---|
Auth_001 | Orson Scott Card | Coun_001 |
Auth_002 | ማርጋሬት አውዱድ | Coun_002 |
አሁን በሰንጠረዦች መካከል ለማገናኘት የውጭ ቁልፎችን በመጠቀም ሦስት ጠረጴዛዎች አሉን.
- የ BOOK ሠንጠረዥ የውጭ ቁልፍ ደራሲ _ID አንድ መጽሐፍ በ AUTHORS ሠንጠረዥ ውስጥ ወደ አንድ ደራሲ ያገናኛል.
- የ AUTHORS ሠንጠረዥ የውጭ ቁልፍ CLOSE_ID በ COUNTRIES ሰንጠረዥ ወደ አንድ ሀገር ያገናኛል.
- በዚህ ንድፍ ውስጥ ከሌላ ሰንጠረዥ ጋር ማገናኘት አያስፈልግም ምክንያቱም የ COUNTRIES ሠንጠረዥ ምንም የውጭ ቁልፍ የለውም.
ተለዋዋጭ የሆኑ ጥገኛዎች ለምን መጥፎ የአካባቢያዊ ዲዛይን ናቸው
3NF እንዲያረጋግጥ ለማገገም የሽግግር ጥገኝነት ማስወገጃ ዋጋ ምንድን ነው? የመጀመሪያዋን ሠንጠረዥ እንደገና እንመርጠውና ችግሮችን ለመፍጠር እንሞክር.
ደራሲዎች
ደራሲ _ መታወቂያ | ደራሲ | መጽሐፍ | ደራሲ_ውሃነት |
---|---|---|---|
Auth_001 | Orson Scott Card | የ Ender ጨዋታው | የተባበሩት መንግስታት |
Auth_001 | Orson Scott Card | የአእምሮ ህፃናት | የተባበሩት መንግስታት |
Auth_002 | ማርጋሬት አውዱድ | የባለቤቴው ታሪክ | ካናዳ |
ይህ ዓይነቱ ዲዛይን ለክፉ መዛባትና አለመግባባቶች አስተዋፅኦ ሊያደርግ ይችላል, ለምሳሌ:
- ሁለቱን መጽሃፎች «የአእምሮ ህጻናት» እና «የኤንርድ ጨዋታ» ብትሰርዟቸው የደራሲውን «ኦርሰን ስኮርድ ካርድ» እና ዜግነሩን ከውሂብ ጎት ላይ አጥፋው.
- አንድ መጽሐፍ ካልጨመሩ በስተቀር አዲስ የውሂብ ጎታ ወደ የመረጃ ቋቱ ማከል አይችሉም. ደራሲው ገና ያልታተመ ከሆነ ወይም እርስዎ የጻፈችውን መጽሐፍ ስም የማያውቁትስ?
- «ኦርሰን ስኮ ካርድ» የዜግነት ድርጅቱን ከቀየረ በሚገለገልባቸው ሁሉም መዛግብት ላይ መቀየር አለብዎት. ከአንድ ተመሳሳይ ጸሐፊ ጋር ብዙ መዝገቦችን ማምጣት ትክክለኛ ያልሆነ መረጃን ሊያስከትል ይችላል: - መረጃው አስገቢው ግለሰብ ብዙ መዝገቦች እንዳሉት ካላወቀና በአንድ መዝገብ ብቻ ውሂቡን ሲለውስ?
- እንደ «The Handmaid's Tale» ያለ መጽሐፍን ሙሉ ለሙሉ ሰርሰው ሳይቀር መሰረዝ አይችሉም.
እነዚህ የተለመዱ ምክንያቶች ምክንያቶች ለምን መደበኛ መሆንን , እና ከሽያጭ ጥገኛዎች መራቅ, ውሂቦችን ይከላከሉ እና ወጥነት ይሁኑ.