Нормальные формы баз данных.
Привет всем, и сегодня мы поговорим о том, что такое нормальные формы и как их правильно использовать.
Нормальные формы - это правила, которые должны соблюдаться при правильной проектировке базы данных.
Нормальных форм существует целых 6 штук, однако обычно соблюдают всего лишь 3 и этого более чем достаточно. Вот давайте их и разберем.
Первая нормальная форма
Чтобы была соблюдена первая форма, все данные в полях должны быть атомарны. Т.е. одно поле - одно значение.
Представим, например, что у нас есть таблица с учителями. Там есть поле "уроки", куда записываются те уроки, которые ведет данный учитель. У одного учителя может быть сразу несколько уроков, верно? И вы могли подумать, а почему бы не записывать их через запятую?
математика, русский
Но так ни в коем случае делать не стоит, ибо вы нарушите первую нормальную форму и выбирать данные будет не очень удобно, правда?
Чтобы это исправить, вы должны создать 2 записи с одним и тем же учителем.
1) Чемоданчиков | математика |
2) Чемоданчиков | русский |
Поздравляю! Первая нормальная форма выполнена. Давайте перейдем ко второй.
Вторая нормальная форма
Во-первых, ваша таблица уже должна быть в первой нормальной форме. Во-вторых, в вашей таблице обязательно должен быть первичный ключ и все записи должны от него зависеть. Те данные, которые не зависят от данного ключа, должны быть вынесены в отдельную таблицу-справочник.
Например, все тот же пример с учителями. Учителя и уроки - две разные таблицы, а не одна. Вы должны создать поля id, урок, учитель в первой таблице с уроками и создать вторую таблицу с учителями, где будут, например, поля id, имя, фамилия.
Таблица с уроками
id | Lesson | Teacher |
Таблица с учителями
id | Name | Second name |
Теперь заполним таблицу с учителями
id | Name | Second name |
1 | Сергей | Чемоданчиков |
2 | Игорь | Карапузиков |
3 | Петр | Первый |
Вот такие учителя работают у нас. Теперь перейдем к таблице с уроками
id | Lesson | Teacher |
1 | математика | 1 |
2 | русский | 1 |
3 | литература | 3 |
Как вы, наверное, заметили, мы в поле teacher написали id со второй таблицы с уроками. Теперь, если нам нужно будет изменить имя или фамилию у учителя, нам нужно будет изменить данные всего в одном месте.
Итак, чтобы была соблюдена вторая форма, вы должны везде иметь первичный ключ и выносить записи, которые не зависят от первичного ключа в другие таблицы - справочники.
Поздравляю! Мы разобрались со второй нормальной формой. Перейдем к третьей, заключительной.
Третья нормальная форма
Для начала ваша таблица должна быть в первой и второй нормальной форме.
Чтобы была соблюдена третья нормальная форма, у вас не должно быть транзитивной зависимости.
Например, у нас есть таблица с такими полями
- Город
- Адрес
- Индекс
Здесь у нас явно прослеживается транзитивная зависимость. Зачем нам поле город, если у нас есть индекс? По индексу мы можем понять, что за город.
Итак, мы разобрались с тремя наиболее важными нормальными формами. Следите, чтобы ваши таблицы всегда были в этих формах. Удачного проектирования баз данных! :)
-
- Михаил Русаков
Комментарии (0):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.