কম্পিউটার টিউটোরিয়াল

প্রথম স্বাভাবিক ফর্ম (1NF)


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-এ है এবং প্রতিটি কলামে অ্যাটোমিক মান রয়েছে যা নিচের স্ক্রিনশটে خلاصা করা হয়েছে:

প্রথম স্বাভাবিক ফর্ম (1NF)


  1. ডাটাবেস টেবিল কীভাবে স্বাভাবিক করবেন (Normalize)

  2. দ্বিতীয় স্বাভাবিক ফর্ম (2NF)

  3. তৃতীয় স্বাভাবিক ফর্ম (3NF)

  4. Windows-এ MySQL টেবিল ডেটা কোথায় সংরক্ষিত থাকে?