1NF কী?
1NF হলো DBMS-এ প্রথম স্বাভাবিক ফর্ম, যা একটি অস্বাভাবিক টেবিলে প্রয়োগ করা হয় সেটিকে স্বাভাবিক করতে। একটি অস্বাভাবিক টেবিলের নিম্নলিখিত সমস্যাগুলো রয়েছে যেগুলো একটি নিখুঁত ডাটাবেস ডিজাইনের জন্য এড়িয়ে চলা উচিত:
অস্বাভাবিক টেবিলের সমস্যাগুলো
ডেটা রিডানডেন্সি (Data Redundancy)
একই ডেটা আইটেম একাধিকবার সংরক্ষণ করা হলো ডেটা রিডানডেন্সি।
একটি উদাহরণ দেখি:
আমাদের একটি <Employee> টেবিল আছে যাতে কর্মচারীদের বর্তমান ঠিকানা সংরক্ষণ করার একটি ফিল্ড রয়েছে। এই কর্মচারীদের মধ্যে কিছুকে কোম্পানি বাসা দিয়েছে, তাই তাদের একই ঠিকানা রয়েছে। ঠিকানাটি ডাটাবেসে একাধিকবার পুনরাবৃত্তি হবে:
টেবিল 1.1
| EmpID | EmpName | EmpAddress |
| 001 | Amit | 11, VA Street, New York |
| 002 | Tom | 11, VA Street, New York |
| 003 | David | 11, VA Street, New York |
| 004 | Steve | 13, HG Block, Philadelphia |
| 005 | Jeff | 13, HG Block, Philadelphia |
এটি সমাধান করতে, কর্মচারীর ঠিকানা একটি আলাদা টেবিলে সংরক্ষণ করুন এবং
আপডেশন আনোমালি (Updation Anomaly)
এটি ঘটে যখন আপনি একটি টেবিল আপডেট করার সময় সমস্যা মুখোমুখি হন।
একটি উদাহরণ দেখি:
টেবিল 1.2
| EmpID | EmpName | EmpAddress | EmpDept |
| 001 | Amit | 11, VA Street, New York | A |
| 002 | Tom | 11, VA Street, New York | B |
| 003 | Tom | 11, VA Street, New York | C |
| 004 | Steve | 13, HG Block, Philadelphia | D |
| 005 | Jeff | 27, ZR Block, Virginia | E |
যদি আমরা Tom-এর ঠিকানা আপডেট করতে চাই, যিনি দুটি ডিপার্টমেন্ট থেকে, তবে আমাদের দুটি সারি আপডেট করতে হবে। যদি আমরা শুধু একটি সারি আপডেট করি, তবে Tom-এর দুটি ভিন্ন ঠিকানা হবে যা ডেটা অসামঞ্জস্যতা সৃষ্টি করবে।
ডিলিশন আনোমালি (Deletion Anomaly)
মান लीজिए কোম্পানি ডিপার্টমেন্ট D বন্ধ করতে সিদ্ধান্ত নেয়, তবে সারি ডিলিট করলে কর্মচারী Steve-এর ডেটাও ডিলিট হয়ে যাবে।
ইনসারশন আনোমালি (Insertion Anomaly)
এটি ঘটে যখন আপনি এমন একটি রেকর্ডে ডেটা ইনসার্ট করার চেষ্টা করেন যা অস্তিত্বে নেই।
নরমালাইজেশন উপরের সব সমস্যা/আনোমালি দূর করে এবং আপনাকে একটি স্বাভাবিক নিখুঁত ডাটাবেস ডিজাইন দেয় যা একটি ডাটাবেস অ্যাডমিনিস্ট্রেটর পছন্দ করে।
দेखি প্রথম স্বাভাবিক ফর্ম (1NF) ব্যবহার করে ডেটা কীভাবে স্বাভাবিক করা যায়।
কেন 1NF
প্রথম স্বাভাবিক ফর্ম (1NF) ডাটাবেসের ডেটা রিডানডেন্সি সমস্যা এবং আনোমালিগুলো দূর করতে সহায়ক। 1NF-এ সব অ্যাট্রিবিউটের অ্যাটোমিক ডোমেইন থাকতে হবে। যদি এটা অ্যাটোমিক না হয়, তবে আপনার ডাটাবেস ডিজাইন খারাপ। এটি স্বাভাবিকীকরণের প্রথম ধাপ।
সুতরাং, একটি টেবিল স্বাভাবিক ফর্মে থাকার জন্য সার্বপ্রথম নিয়ম হলো সেটিতে শুধু অ্যাটোমিক মান থাকবে।
উদাহরণ
নিচের উদাহরণে একটি টেবিল আছে যাতে প্রতিটি কলামে অ্যাটোমিক মান রয়েছে, DeptRole কলাম বাদে। সুতরাং, DeptRole কলাম ডিপার্টমেন্ট A, B, এবং C-এর জন্য অ্যাটোমিক মান নিয়ম লঙ্ঘন করছে।
টেবিল 1.3
| DeptId | DeptName | DeptRole |
| 001 | A | Finance, HR |
| 002 | B | Programming, Networking |
| 003 | C | Management, Marketing |
| 004 | D | Operations |
এখন এটিকে সংশোধন করে 1NF-এ রূপান্তর করি:
| DeptId | Dept Name | DeptRole |
| 001 | A | Finance |
| 001 | A | HR |
| 002 | B | Programming |
| 002 | B | Networking |
| 003 | C | Management |
| 003 | C | Marketing |
| 004 | D | Operations |
এখন উপরের টেবিল 1NF-এ है এবং প্রতিটি কলামে অ্যাটোমিক মান রয়েছে যা নিচের স্ক্রিনশটে خلاصা করা হয়েছে:
