Normalizing Database របស់អ្នក: ទម្រង់ធម្មតាធម្មតា

ក្បួនសាមញ្ញទាំងពីរនេះនឹងជួយធ្វើឱ្យមូលដ្ឋានទិន្នន័យរបស់អ្នកមានលក្ខណៈធម្មតា

ទម្រង់ធម្មតាទីមួយ (1NF) កំណត់ក្បួនមូលដ្ឋានសម្រាប់មូលដ្ឋានទិន្នន័យដែលបានរៀបចំ:

តើច្បាប់ទាំងនេះមានអត្ថន័យយ៉ាងណានៅពេលពិចារណាអំពីការរៀបចំជាក់ស្តែងនៃទិន្នន័យ? វាពិតជាសាមញ្ញណាស់។

លុបចោលស្ទួន

ក្បួនទីមួយកំណត់ថាយើងមិនត្រូវស្ទួនទិន្នន័យនៅក្នុងជួរដេកតែមួយនៃតារាង។ នៅក្នុងសហគមន៍មូលដ្ឋានទិន្នន័យគំនិតនេះត្រូវបានគេសំដៅថាជាអាតូមនៃតារាងមួយ។ តារាងដែលអនុលោមតាមច្បាប់នេះត្រូវបានគេនិយាយថាជាអាតូម។ ចូរយើងស្វែងយល់គោលការណ៍នេះជាមួយនឹងគំរូបុរាណមួយ: តារាងមួយនៅក្នុងមូលដ្ឋានទិន្នន័យធនធានមនុស្សដែលរក្សាទុកទំនាក់ទំនងអ្នកគ្រប់គ្រងក្រោមបង្គាប់។ ចំពោះគោលបំណងនៃឧទាហរណ៍របស់យើងយើងនឹងកំណត់ក្បួនអាជីវកម្មដែលអ្នកគ្រប់គ្រងអាចមានអ្នកក្រោមបង្គាប់មួយឬច្រើនខណៈពេលដែលអ្នកក្រោមនីមួយៗអាចមានអ្នកគ្រប់គ្រងម្នាក់។

ដោយចេតនានៅពេលបង្កើតបញ្ជីឬសៀវភៅបញ្ជីដើម្បីតាមដានព័ត៌មាននេះយើងអាចបង្កើតតារាងដែលមានវាលដូចខាងក្រោម:

ទោះជាយ៉ាងណាក៏ដោយសូមរំលឹកឡើងវិញនូវគោលការណ៍ទីមួយដែលបានកំណត់ដោយ 1NF: លុបបំបាត់ជួរឈរដែលស្ទួនពីតារាងតែមួយ។ ច្បាស់ណាស់ជួរឈរ Subordinate1-Subordinate4 គឺស្ទួន។ ចំណាយពេលបន្តិចហើយពិចារណាអំពីបញ្ហាដែលបានលើកឡើងដោយសេណារីយ៉ូនេះ។ ប្រសិនបើអ្នកគ្រប់គ្រងមានតែអ្នកក្រមួយជួរដេក Subordinate2-Subordinate4 ត្រូវបានបំលែងជាទូទៅទំហំផ្ទុក (ទំនិញមូលដ្ឋានទិន្នន័យដ៏មានតម្លៃ) ។ លើសពីនេះទៀតស្រមៃមើលករណីដែលអ្នកគ្រប់គ្រងម្នាក់មានអ្នកក្រោមបង្គាប់ 4 នាក់ហើយតើមានអ្វីកើតឡើងប្រសិនបើនាងចំណាយពេលលើបុគ្គលិកផ្សេងទៀត? រចនាសម្ពន្ធ័តុទាំងមូលនឹងត្រូវការកែប្រែ។

នៅចំណុចនេះគំនិតភ្លឺជាលើកទីពីរជាទូទៅកើតឡើងចំពោះអ្នកថ្មីក្នុងមូលដ្ឋានទិន្នន័យ: យើងមិនចង់មានជួរឈរច្រើនជាងមួយហើយយើងចង់អនុញ្ញាតឱ្យមានទំហំផ្ទុកទិន្នន័យដែលអាចបត់បែនបាន។ សូមសាកល្បងអ្វីមួយដូចនេះ:

ហើយវាលកូនចិញ្ចឹមនឹងមានធាតុច្រើនក្នុងទម្រង់ "Mary, Bill, Joe" ។

ដំណោះស្រាយនេះគឺកាន់តែខិតជិតប៉ុន្តែវាក៏មិនស្ថិតក្នុងសញ្ញាណសំគាល់នោះដែរ។ ជួរឈរបណ្តោះអាសន្ននៅតែចម្លងតាមនិងមិនមែនអាតូម។ តើមានអ្វីកើតឡើងនៅពេលយើងត្រូវការបន្ថែមឬដកអ្នកក្រ? យើងត្រូវអាននិងសរសេរមាតិកាទាំងមូលនៃតារាង។ នោះមិនមែនជាបញ្ហាធំនៅក្នុងស្ថានភាពនេះទេប៉ុន្តែចុះយ៉ាងណាបើអ្នកគ្រប់គ្រងម្នាក់មានបុគ្គលិក 100 នាក់? ដូចគ្នានេះផងដែរ, វាស្មុគស្មាញដំណើរការនៃការជ្រើសរើសទិន្នន័យពីមូលដ្ឋានទិន្នន័យនៅក្នុងសំណួរនាពេលអនាគត។

នេះគឺជាតារាងមួយដែលបំពេញតម្រូវការទីមួយនៃ 1NF:

ក្នុងករណីនេះអ្នកក្រោមបង្គាប់នីមួយៗមានធាតុតែមួយប៉ុន្តែអ្នកគ្រប់គ្រងអាចមានធាតុច្រើន។

2. កំណត់អត្តសញ្ញាណកូនសោសំខាន់

ឥឡូវចុះអំពីក្បួនទីពីរ: កំណត់ជួរនីមួយៗដែលមានជួរឈរឬជួរឈរតែមួយគត់ ( កូនសោសំខាន់ )? អ្នកអាចមើលតារាងខាងលើនិងស្នើឱ្យប្រើជួរឈរក្រោមជាកូនសោសំខាន់។ តាមពិតជួរឈរក្រោមគឺជាបេក្ខជនដ៏ល្អសម្រាប់កូនសោសំខាន់ដោយសារតែច្បាប់អាជីវកម្មរបស់យើងបានបញ្ជាក់ថាអ្នកគ្រប់គ្រងនីមួយៗអាចមានអ្នកគ្រប់គ្រងតែមួយប៉ុណ្ណោះ។ ទោះជាយ៉ាងណាក៏ដោយទិន្នន័យដែលយើងបានជ្រើសរើសទុកក្នុងតារាងរបស់យើងធ្វើឱ្យដំណោះស្រាយនេះមិនសូវល្អ។ តើមានអ្វីកើតឡើងប្រសិនបើយើងជួលនិយោជិកម្នាក់ទៀតឈ្មោះជីម? តើយើងរក្សាទំនាក់ទំនងអ្នកគ្រប់គ្រងក្រោមបង្គាប់របស់គាត់នៅក្នុងមូលដ្ឋានទិន្នន័យយ៉ាងដូចម្តេច?

វាជាការល្អបំផុតដើម្បីប្រើអត្តសញ្ញាណតែមួយគត់ពិតប្រាកដ (ដូចជាលេខសម្គាល់បុគ្គលិក) ជា កូនសោសំខាន់ ។ តារាងចុងក្រោយរបស់យើងនឹងមើលទៅដូចនេះ:

ឥឡូវនេះតារាងរបស់យើងគឺនៅក្នុងសំណុំបែបបទធម្មតាដំបូង! ប្រសិនបើអ្នកចង់បន្តរៀនអំពីការប្រក្រតីកម្មសូមអានអត្ថបទផ្សេងទៀតនៅក្នុងស៊េរីនេះ: