Коллекция вопросов ❓ на собеседовании в C# 🍧

Обзор вопросов по языка програмиированию C# и технологии NET


Project maintained by Dvurechensky-Docs Hosted on GitHub Pages — Theme by mattgraham

🧮 Что такое нормальные формы БД и зачем они нужны?

Typing SVG

Static Badge

✨ Оглавление

⬆ Вернуться к главной


1️⃣ Почему нормализация важна

Цель нормализации — структурировать данные так, чтобы избежать дублирования, обеспечить целостность и упростить поддержку.

Проблемы без нормализации:

Примеры аномалий:


2️⃣ Нормальные формы (NF) и их смысл

1NF — Первая нормальная форма

Суть: каждая ячейка таблицы содержит только одно значение, таблица плоская.

Плохо:
| Student | Courses        |
|---------|----------------|
| Alice   | Math, English  |

Хорошо:
| Student | Course  |
|---------|---------|
| Alice   | Math    |
| Alice   | English |

2NF — Вторая нормальная форма

Суть: таблица в 1NF и все неключевые поля зависят полностью от первичного ключа, а не от его части.

Плохо:
| OrderID | ProductID | ProductName | Quantity |
|---------|-----------|-------------|---------|

ProductName зависит только от ProductID, а не от всего ключа (OrderID+ProductID) → нарушение 2NF

Хорошо:
OrderDetails:
| OrderID | ProductID | Quantity |

Products:
| ProductID | ProductName |

3NF — Третья нормальная форма

Суть: таблица в 2NF и нет транзитивных зависимостей (неключевые поля не зависят друг от друга).

Плохо:
| StudentID | DeptID | DeptName |

DeptName зависит от DeptID, который не является ключом таблицы → транзитивная зависимость

Хорошо:
Students:
| StudentID | DeptID |

Departments:
| DeptID | DeptName |

BCNF — Бойс-Кодд нормальная форма

Суть: сильная версия 3NF, все детерминанты — ключи.


4NF — Четвёртая нормальная форма

Суть: нет многозначных зависимостей (multi-valued dependencies).


5NF — Пятая нормальная форма

Суть: нет избыточных данных из-за соединений (join dependencies).


6NF — Шестая нормальная форма


3️⃣ Зачем нормальные формы нужны на практике


⬆ Вернуться к главной

✨Dvurechensky✨