Введение в базы данных

Что такое база данных?

База данных — организованная структура данных, предназначенная для хранения, изменения и обработки взаимосвязанной информации (преимущественно больших объемов).

Для чего нужны базы данных?

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

Плюсы баз данных:

  • Сохранение данных по определенному правилу
  • Быстро находить данные
  • Изменять определенные данные
  • Поддерживать указанные порядок данных
  • Обеспечение безопасности
  • Использование резервного копирования (rsync, bacula и т.п.)

Для чего нужны системы управления базами данных?

  1. Многопользовательский доступ
  2. Разграничение прав доступа (администратор, пользователь)
  3. Общий доступ по сети (клиент-серверное взаимодействие)
  4. Абстракция работы с данными (язык запросов SQL)
  5. Восстановление после сбоев

Что такое реляционные системы управления базами данных ?

РСУБД (RDBMS) — когда между данными внутри базы данных есть взаимные отношения, которые можно использовать для уменьшения хранения данных в таблицах и эффективного управления запросами.

Примеры РСУБД:

  • PostgreSQL
  • Oracle Database
  • Microsoft SQL Server
  • Microsoft Access
  • SQLite
  • MySQL
  • MariaDB

Redis

Redis (от англ. remote dictionary server) — резидентная система управления базами данных класса NoSQL с открытым исходным кодом, работающая со структурами данных типа «ключ — значение». Используется как для баз данных, так и для реализации кэшей, брокеров сообщений.

Ориентирована на достижение максимальной производительности на атомарных операциях. Написана на Си, интерфейсы доступа созданы для большинства основных языков программирования.

Ссылка: https://redis.io/

MongoDB

MongoDB — документоориентированная система управления базами данных, не требующая описания схемы таблиц. Считается одним из классических примеров NoSQL-систем, использует JSON-подобные документы и схему базы данных. Написана на языке C++. Применяется в веб-разработке, в частности, в рамках JavaScript-ориентированного стека MEAN.

MongoDB подходит для следующих применений:

  • регистрация и хранение информации о событиях;
  • системы управления документами и контентом;
  • электронная коммерция;
  • игры;
  • данные мониторинга, датчиков;
  • мобильные приложения;
  • хранилище операционных данных веб-страниц (например, хранение комментариев, рейтингов, профилей пользователей, сеансы пользователей).

Ссылка: https://www.mongodb.com/

Доступ к удаленной базе данных MySQL из командной строки

Чтобы напрямую войти в удаленную консоль MySQL, используйте следующую команду:

mysql -u {username} -p'{password}' \
    -h {remote server ip or name} -P {port} \
    -D {DB name}

Например:

mysql -u root -p'root' \
        -h 127.0.0.1 -P 3306 \
        -D local

После ключа -p нет пробела, подробнее в документации.

Как узнать сколько места на диске занимают таблицы в базе данных через SQL запрос?

Выполните SQL запрос:

SELECT 
	`table_name` AS 'Имя таблицы',
	ROUND(((data_length + index_length) / 1024 / 1024), 2) AS 'Размер (МБ)'
FROM information_schema.TABLES
WHERE table_schema = 'table_name'
ORDER BY (data_length + index_length) DESC;

Удаление из таблицы записей по списку идентификаторов

Есть список идентификаторов (1, 4, 6, 7) и таблица test_table. Необходимо удалить все записи, у которых идентификатор находится в этом списке. Для этого выполним следующий SQL запрос:

DELETE FROM test_table WHERE id IN (1, 4, 6, 7);

Как узнать сколько места на диске занимают базы данных через SQL запрос?

Выполните SQL запрос:

SELECT table_schema AS 'База данных',
       ROUND(SUM(data_length + index_length) / 1024 / 1024 / 1024, 2) AS 'Размер в Гб'
FROM information_schema.TABLES
GROUP BY table_schema;

Как узнать версию PostgreSQL используя SQL?

Если есть доступ к базе данных через pgAdmin (phpPgAdmin, Navicat и т.п.), но нет доступа к серверу, на котором запущена база данных, то, чтобы узнать версию PosttgreSQL можно выполнить SQL запрос:

SELECT version();

Можно также запустить из командной строки следующим образом:

psql -c 'SELECT version();'

Если есть доступ к оболочке, то можно попробовать выполнить следующие команды pg_config и/или psql :

Версия сервера:

pg_config --version

Версия клиента:

psql --version