نرمال‌سازی پایگاه داده

نرمال‌سازی پایگاه داده (Database Normalization) فرآیندی است که برای سازماندهی داده‌ها در یک پایگاه داده رابطه‌ای (Relational Database) به کار می‌رود. هدف اصلی این فرآیند، کاهش افزونگی داده‌ها (Data Redundancy)، بهبود یکپارچگی داده‌ها (Data Integrity) و تسهیل مدیریت و به‌روزرسانی داده‌ها است. نرمال‌سازی با تجزیه جداول بزرگ به جداول کوچک‌تر و مرتبط‌تر انجام می‌شود و مراحل مختلفی دارد که به آن‌ها «فرم‌های نرمال» (Normal Forms) گفته می‌شود.

مراحل نرمال‌سازی (Normal Forms)

  1. فرم اول نرمال (1NF)
  2. فرم دوم نرمال (2NF)
  3. فرم سوم نرمال (3NF)
  4. فرم بوایس-کاد نرمال (BCNF)
  5. فرم چهارم نرمال (4NF)
  6. فرم پنجم نرمال (5NF)

در ادامه هر یک از این مراحل را با مثال‌های متعدد شرح می‌دهیم.


1. فرم اول نرمال (1NF)

تعریف: یک جدول در فرم اول نرمال است اگر:

  • هر ستون شامل مقادیر اتمیک (غیرقابل تقسیم) باشد.
  • هر رکورد در جدول منحصر به فرد باشد (یعنی کلید اصلی داشته باشد).

مثال:

فرض کنید جدولی به نام Students داریم که اطلاعات دانشجویان و دروس آن‌ها را نگه‌داری می‌کند:

StudentIDStudentNameCourses
1AliMath, Physics
2SaraChemistry
3RezaBiology

این جدول در فرم اول نرمال نیست، زیرا ستون Courses شامل مقادیر غیراتمیک (چند مقدار در یک سلول) است. برای نرمال‌سازی، باید این جدول را به صورت زیر تغییر دهیم:

StudentIDStudentNameCourse
1AliMath
1AliPhysics
2SaraChemistry
3RezaBiology

اکنون هر سلول حاوی یک مقدار اتمیک است و جدول در فرم اول نرمال قرار دارد.


2. فرم دوم نرمال (2NF)

تعریف: یک جدول در فرم دوم نرمال است اگر:

  • در فرم اول نرمال باشد.
  • تمامی ستون‌های غیرکلیدی به طور کامل به کلید اصلی وابسته باشند (یابستگی تابعی کامل داشته باشند).

مثال:

جدول StudentCourses را در نظر بگیرید:

StudentIDCourseIDCourseNameInstructor
1101MathDr. Smith
1102PhysicsDr. Jones
2103ChemistryDr. Brown

در این جدول، کلید اصلی ترکیبی از StudentID و CourseID است. اما ستون‌های CourseName و Instructor فقط به CourseID وابسته هستند، نه به کلید اصلی ترکیبی. بنابراین، این جدول در فرم دوم نرمال نیست.

برای نرمال‌سازی، جدول را به دو جدول تقسیم می‌کنیم:

جدول ۱: StudentCourses

StudentIDCourseID
1101
1102
2103

جدول ۲: Courses

CourseIDCourseNameInstructor
101MathDr. Smith
102PhysicsDr. Jones
103ChemistryDr. Brown

اکنون هر دو جدول در فرم دوم نرمال هستند.


3. فرم سوم نرمال (3NF)

تعریف: یک جدول در فرم سوم نرمال است اگر:

  • در فرم دوم نرمال باشد.
  • هیچ وابستگی تراگذر (Transitive Dependency) وجود نداشته باشد، یعنی هیچ ستون غیرکلیدی به ستون غیرکلیدی دیگر وابسته نباشد.

مثال:

جدول Students را در نظر بگیرید:

StudentIDStudentNameDepartmentDepartmentHead
1AliCSDr. Smith
2SaraMathDr. Jones
3RezaCSDr. Smith

در این جدول، DepartmentHead به Department وابسته است، که خود یک ستون غیرکلیدی است. این یک وابستگی تراگذر است. برای نرمال‌سازی، جدول را به دو جدول تقسیم می‌کنیم:

جدول ۱: Students

StudentIDStudentNameDepartment
1AliCS
2SaraMath
3RezaCS

جدول ۲: Departments

DepartmentDepartmentHead
CSDr. Smith
MathDr. Jones

اکنون هر دو جدول در فرم سوم نرمال هستند.


4. فرم بوایس-کاد نرمال (BCNF)

تعریف: یک جدول در فرم بوایس-کاد نرمال است اگر:

  • در فرم سوم نرمال باشد.
  • برای هر وابستگی تابعی (Functional Dependency)، سمت چپ وابستگی باید یک ابرکلید (Superkey) باشد.

مثال:

جدول Enrollments را در نظر بگیرید:

StudentIDCourseIDInstructor
1101Dr. Smith
2101Dr. Smith
3102Dr. Jones

فرض کنید هر درس فقط توسط یک مربی تدریس می‌شود، اما یک مربی می‌تواند چندین درس را تدریس کند. در این حالت، CourseIDInstructor یک وابستگی تابعی است، اما CourseID یک ابرکلید نیست. برای نرمال‌سازی، جدول را به دو جدول تقسیم می‌کنیم:

جدول ۱: Enrollments

StudentIDCourseID
1101
2101
3102

جدول ۲: CourseInstructors

CourseIDInstructor
101Dr. Smith
102Dr. Jones

اکنون هر دو جدول در فرم بوایس-کاد نرمال هستند.


5. فرم چهارم نرمال (4NF)

تعریف: یک جدول در فرم چهارم نرمال است اگر:

  • در فرم بوایس-کاد نرمال باشد.
  • هیچ وابستگی چندمقداری (Multivalued Dependency) غیرضروری وجود نداشته باشد.

مثال:

جدول Students را در نظر بگیرید:

StudentIDCourseIDHobby
1101Swimming
1101Reading
1102Swimming
2101Painting

در این جدول، StudentID →→ CourseID و StudentID →→ Hobby دو وابستگی چندمقداری هستند. برای نرمال‌سازی، جدول را به دو جدول تقسیم می‌کنیم:

جدول ۱: StudentCourses

StudentIDCourseID
1101
1102
2101

جدول ۲: StudentHobbies

StudentIDHobby
1Swimming
1Reading
2Painting

اکنون هر دو جدول در فرم چهارم نرمال هستند.


6. فرم پنجم نرمال (5NF)

تعریف: یک جدول در فرم پنجم نرمال است اگر:

  • در فرم چهارم نرمال باشد.
  • هیچ وابستگی پیوندی (Join Dependency) غیرضروری وجود نداشته باشد.

مثال:

جدول Projects را در نظر بگیرید:

EmployeeIDProjectIDSkillID
1101201
1102202
2101201

در این جدول، وابستگی‌های پیوندی وجود دارد. برای نرمال‌سازی، جدول را به سه جدول تقسیم می‌کنیم:

جدول ۱: EmployeeProjects

EmployeeIDProjectID
1101
1102
2101

جدول ۲: EmployeeSkills

EmployeeIDSkillID
1201
1202
2201

جدول ۳: ProjectSkills

ProjectIDSkillID
101201
102202

اکنون هر سه جدول در فرم پنجم نرمال هستند.


جمع‌بندی

نرمال‌سازی پایگاه داده یک فرآیند گام‌به‌گام است که با هدف کاهش افزونگی داده‌ها و بهبود یکپارچگی آن‌ها انجام می‌شود. هر مرحله از نرمال‌سازی (از 1NF تا 5NF) قوانین خاصی دارد که باید رعایت شود. با این حال، در عمل، معمولاً تا فرم سوم نرمال (3NF) یا فرم بوایس-کاد نرمال (BCNF) برای اکثر پایگاه‌های داده کافی است.

دیدگاه شما

نشانی ایمیل شما منتشر نخواهد شد.