Новичок
5 уроков
(1 час 30 минут)
Курс
Основы SQL для начинающих
На курсе по основам SQL для начинающих вы научитесь работать с такими популярными СУБД, как SQLite, MySQL и PostgreSQL.

#2 – Нормализация

Приветствуем вас на втором уроке видеокурса по основам SQL для начинающих! Этот видеоурок расскажет вам о таком понятии, как нормализация баз данных и рассмотрит запросы языка SQL, связанные с этой темой.


Основные понятия

Реляционная база данных (с английского «реляционный» означает отношение, зависимость, связь) – база данных, основанная на реляционной модели данных.

Нормализация – это разбиение таблиц на две или более, обладающие лучшими свойствами при включении, изменении и удалении данных. Нормализация избавляет таблицу от избыточных данных. Например, дана таблица:

Город Регион
1 Майкоп Республика Адыгея
2 Адыгейск Республика Адыгея
3 Апшеронск Краснодарский край
4 Белореченск Краснодарский край
5 Сочи Краснодарский край

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

Город ИД региона
1 Майкоп 1
2 Адыгейск 1
3 Апшеронск 2
4 Белореченск 2
5 Сочи 2
Регион
1 Республика Адыгея
2 Краснодарский край

Что нового вы узнаете на нашем видеоуроке

А сейчас мы вам расскажем, чем будет полезен для вас этот урок, чему вы научитесь, с какими фичами познакомитесь.

Ограничение типов данных

Сначала автор видеокурса рассматривает ограничения типов данных, называемые constraints. С первым мы познакомились еще на первом уроке. Он записывается как NOT NULL – не пустой, обязательно заполнен. Еще используется UNIQUE — каждое значение этого поля должно быть уникальным и DEFAULT – поле заполнено, но не передано никакого значения (значение по умолчанию).

Первичные и внешние ключи

Первичный ключ – индивидуальный номер каждой записи таблицы. Для создания первичного ключа пишется field_1 INT PRIMARY KEY. Также если в таблице существуют ссылки на записи других таблиц, вы можете связать их посредством внешних ключей: FOREIGN KEY(field_3) REFERENCES other_table(field_name).

Совет: при создании таблицы можно вставить IF NOT EXISTS для того, чтобы проверить на существования такой же.

После написания в текстовом редакторе всех запросов, необходимо его запустить в СУБД:

SQLite — .read sqlite.sql
MySQL – mysql –u root –p lesson < mysql.sql
PostgreSQL – psql –U postgres –d lesson –f postgresql.sql

Все запросы показываются на примере двух таблиц, приведенных в начале урока. Чтобы «включить» связь между таблицами в SQLite необходимо прописать в начале файла PRAGMA FOREIGN_KEYS = ON. В MySQL для срабатывания внешних ключей необходимо подключить подсистему хранения данных InnoDB (ENGINE InnoDB) после запроса на создание таблицы. Теперь изменить запись либо удалить в одной из таблиц будет не так просто. При таком запросе СУБД будет выдавать ошибку.

Экспорт

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

SQLite – sqlite3 lesson.sqlite .dump > sqlite_dump.sql (для вывода только структуры используется .shema);
MySQL – mysqldump –u root –p lesson > mysql_dump.sql (для вывода только структуры используется –d );
PostgreSQL – pg_dump –U postgres –d lesson > postgresql_dump.sql (для вывода только структуры используется –s).

Выборка из нескольких таблиц

И последняя полезность на сегодня. Для того чтобы вывести выборку из нескольких таблиц можно воспользоваться следующим запросом:
SELECT * FROM table_name LEFT JOIN other_table ON (table_name.field_2 = other_table.field_name); (вернет записи таблицы table_name, где поле field_2 таблицы table_name равно полю field_name таблицы other_table и поставит их слева от записей таблицы other_table)

Совет: если в таблицах содержатся поля с одинаковыми названиями, то необходимо уточнять поле таблицы, которую вы имеете в виду, например regions.name, либо переназначить название, например regions.name as region.

Вот и все, что сегодня хотелось бы вам рассказать. Желаем успехов в обучении, ваш LoftBlog!

Материалы к уроку:
Делись:

Оставь комментарий!

One thought on “#2 – Нормализация

  1. April:

    А как создать файл в формате sql? Как в нем работать то обьяснили, а самое простое не упомянули. Те кто первый раз с этим всем сталкивается как должен понять как это все делается? Ни в видео ни в информации под видео не указали как работать в редакторах и подключать sql.

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

Рекомендуемые курсы