Изучаем SQL. №9. Нормализация БД

Изучаем SQL
Нормализация для баз данных, это как рефакторинг в программировании. Если у нас маленькая БД и расширяться не планируется, то незачем и заморачиваться. Но, если вы строите мало-мальское веб или декстопное приложение работающее с базой данных, тогда нормализация значительно упростит и ускорит вашу работу в последствии, так как отпадет фактор дублирования данных. Сама база станет работать быстрее и будет занимать меньше места.

Сегодня займемся теорией . Можете сразу порыскать на ВИКИ. Или ТУТ. И, как не странно, мелкософт неплохо рассказывает о нормализации БД.

Первая нормальная форма
Самым главным принципом первой нормальной формы является атомарность. Таблица не должна содержать повторяющиеся в другой таблице данные. Если такие данные существуют, тогда нужно создать для них отдельную таблицу. Таблица не должна содержать несколько однотипных столбцов. Определить первичный ключ для таблицы, столбец, который будет определять строку.
И вообще, разбить таблицу на максимально малое эффективное количество столбцов.

Например у нас есть таблица

ID  Имя  Улица  Город Страна
1  Николай  Сумская  Киев  Украина
2  Игорь  Ленина Питер  Россия
3  Светлана  Вокзальная  Киев  Украина
4  Татьяна Ленина Москва  Россия

Как видите, данные повторяются. Поэтому нет смысла делать такие громоздкие таблицы. Проще сделать отдельно таблицы с пользователями, отдельно таблицу улицы, отдельно города и отдельно страны.
Первичным ключом выступает столбец ID. Теперь по ID можно будет найти нужную строку.

Тое сть, мы расщепили таблицу на отдельные части, как на атомы. отсюда и название.

 

Вторая нормальная форма
Эта форма требует, чтобы:
-Таблица уже находилась в первой нормальной форме.
-Любое поле таблицы, должно полностью зависеть от его первичного ключа.
например, таблица пользователей.

 ID  Имя  Город
 1  Олег  2
 2  Татьяна  1

таблица городов:

 ID  Город
 1  Киев
 2  Москва

Получается, что Олег живет в Москве, а Татьяна в Киеве.

 

Третяя нормальная форма
-Таблица уже находится во второй нормальной форме.
-Любой её не ключевой атрибут функционально зависит только от первичного ключа.

Пока что дальше этой формы уроки  не планирую.

5 идей о “Изучаем SQL. №9. Нормализация БД

  1. Wolodymyr

    Было бы не плохо расширить статью, более подробно и с примерами. Ведь эта тема крайне важная для понимания, что есть такое реляционная база. Хотя бы на примере трех -четырех таблиц с какими-то данными , больше чем 2 записи 🙁

    1. admin Автор поста

      Честно говоря, мне было попросту некогда все разжевывать да и лень матушка приложила свою руку к этой статье. Так что прошу понять и простить. будет время и желание — обязательно растолкую. А если сами разберетесь и возникнет желание поделиться с остальными, то с удовольствием опубликую вашу статью на данную тему.

      1. Wolodymyr

        ну мне еще «курить и курить» всю эту тему. но если разберусь, обязательно напишу под Вашей редакцией 🙂 Спасибо.

  2. droidmod

    Процесс преобразования отношений базы данных к виду, отвечающему нормальным формам, называется нормализацией . Нормализация предназначена для приведения структуры БД к виду, обеспечивающему минимальную логическую избыточность, и не имеет целью уменьшение или увеличение производительности работы или же уменьшение или увеличение физического объёма базы данных.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.