Normalization
নরমালাইজেশন
Database Keys এবং Normalization: 1NF, 2NF, 3NF ও BCNF
পড়তে প্রায় ১২ মিনিট
এই পাঠ শেষে আপনি পারবেন
- Super Key, Candidate Key, Primary Key ও Prime Attribute চিহ্নিত করা
- 1NF, 2NF, 3NF ও BCNF-এর শর্ত এবং কোনটি কোন dependency দূর করে তা বলা
- Insertion, Updation ও Deletion anomaly কেন ঘটে তা ব্যাখ্যা করা
Database Keys একনজরে
- Super Key: এক বা একাধিক অ্যাট্রিবিউটের সেট যা একটি টেবিলের প্রতিটি রো-কে অনন্যভাবে (uniquely) শনাক্ত করতে পারে।
- Candidate Key: ন্যূনতম (Minimal) Super Key—যার কোনো প্রকৃত উপসেট (proper subset) একা Super Key হতে পারে না।
- Primary Key: Candidate Key-গুলোর মধ্য থেকে ডেটাবেস ডিজাইনার যেটিকে প্রধান শনাক্তকারী হিসেবে বেছে নেন। এটি কখনোই NULL হতে পারে না।
- Alternate Key: Primary Key ছাড়া বাকি সব Candidate Key।
- Foreign Key: একটি টেবিলের অ্যাট্রিবিউট যা অন্য (বা একই) টেবিলের Primary Key-কে রেফার করে Referential Integrity বজায় রাখে।
- Prime Attribute: যেকোনো Candidate Key-এর অন্তর্ভুক্ত অ্যাট্রিবিউট।
Normalization-এর ধাপসমূহ (1NF → BCNF)
Normalization-এর মূল উদ্দেশ্য হলো Data Redundancy (পুনরাবৃত্তি) কমানো এবং Insertion, Update ও Deletion Anomaly দূর করা।
- 1NF (First Normal Form): প্রতিটি সেলের মান Atomic (অবিভাজ্য) হতে হবে; কোনো multi-valued বা composite অ্যাট্রিবিউট থাকা যাবে না।
- 2NF (Second Normal Form): টেবিলটি 1NF-এ থাকতে হবে এবং কোনো Partial Dependency থাকা যাবে না। অর্থাৎ কোনো non-prime অ্যাট্রিবিউট কোনো Candidate Key-এর আংশিক অংশের (proper subset) ওপর নির্ভর করতে পারবে না।
- 3NF (Third Normal Form): টেবিলটি 2NF-এ থাকতে হবে এবং কোনো Transitive Dependency থাকা যাবে না। প্রতিটি functional dependency
X → Y-এর জন্য: হয়Xএকটি Super Key হবে, নতুবাYএকটি Prime Attribute হবে। - BCNF (Boyce-Codd Normal Form / 3.5NF): 3NF-এর চেয়েও কঠোর। প্রতিটি non-trivial dependency
X → Y-এর জন্য X অবশ্যই একটি Super Key হতে হবে।
মনে রাখার শর্টকাট:
1NF -> Atomic values (নো মাল্টিভ্যালু)
2NF -> No Partial Dependency (পুরো Key-র ওপর নির্ভরশীল)
3NF -> No Transitive Dependency (Non-key -> Non-key নিষিদ্ধ)
BCNF -> প্রতিটি Determinant (বাম পাশ) অবশ্যই Super Keyসংস্করণ ১ · সর্বশেষ হালনাগাদ ২১ অক্টোবর, ২০২৬