Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Васильев Ю. - Python для data science (Библиотека программиста) - 2023.pdf
Скачиваний:
6
Добавлен:
07.04.2024
Размер:
7.21 Mб
Скачать

5

Работа с базами данных

База данных (БД) — это организованная коллекция

данных, к которой легко получить доступ, управлять

ею и обновлять. Даже если изначально в архитектуре

проекта нет БД, данные, проходящие через приложение, скорее всего, в какой-то момент будут обращаться к одной

или нескольким базам.

Продолжая обсуждение импортирования данных в Python-приложение, в этой главе мы рассмотрим, как работать с данными из БД. Приведенные примеры продемонстрируют, как получить доступ к данным, хранящимся в базах различных типов, и обрабатывать их. Мы также исследуем, как управлять БД, в которых язык SQL является основным инструментом работы с данными, и базами, для которых он таковым не является. Вы узнаете, как использовать Python для взаимодействия с несколькими популярными базами данных: MySQL, Regis и MongoDB.

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

108      Глава 5. Работа с базами данных

Базы данных могут быть реляционными и нереляционными (NoSQL). Реляционные базы данных имеют строго определенную структуру, реализованную

ввиде схемы для хранимых данных. Такой подход помогает обеспечить целостность, последовательность и общую точность данных. Однако у него есть и недостаток: реляционные БД плохо масштабируются при увеличении объема данных. А базы данных NoSQL, напротив, не накладывают ограничений на структуру хранимых данных, что обеспечивает большую гибкость, адаптивность и масштабируемость. В этой главе мы рассмотрим хранение и поиск данных как

вреляционных, так и в нереляционных базах данных.

Реляционные базы данных

Реляционные базы данных, также известные как базы данных из строк и столбцов, — самый распространенный сегодня тип БД. Они обеспечивают структурированное хранение данных. Подобно тому как список книг на Amazon имеет определенную структуру для хранения информации (с полями для названий книг, авторов, описаний, рейтингов и т. д.), данные, хранящиеся

вреляционной базе данных, должны соответствовать заранее определенной формальной схеме. Работа с реляционной БД начинается с разработки формальной схемы: вы определяете набор таблиц, каждая из которых состоит из нескольких полей (столбцов), и указываете, какой тип данных будет храниться

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

Реляционные базы данных предназначены для оперативной вставки, обновления и/или удаления малых и больших объемов структурированных данных. Существует множество приложений, для которых такой тип БД будет лучшим выбором. В частности, реляционные базы данных хорошо подходят для систем обработки транзакций в реальном времени (OLTP, online transaction processing), которые обрабатывают большой объем операций множества пользователей.

Среди распространенных систем реляционных баз данных — MySQL, MariaDB, PostgreSQL. В этом разделе мы рассмотрим MySQL, — пожалуй, самую популярную в мире базу данных с открытым исходным кодом. На ее примере мы проиллюстрируем, как взаимодействовать с БД.

Вы узнаете, как настроить MySQL, создать новую базу данных, определить ее структуру и написать Python-скрипты для сохранения данных в базе и их получения.