Термин «база данных» (БД, database) попадается на глаза всем, кто пользуется компьютером: и инженеру-программисту, и студенту, и тому, кто просто читает новости в интернете.
БД — это хранилище информации, которую можно быстро вносить и редактировать. Например, оформленные в интернет-магазине заказы, даты, имена клиентов, цены, формулы для математических вычислений.
Базами данных управляют через специальные системы управления. Сами БД — простейшие, реляционные, NoSQL, комбинированные — строятся по разным принципам. В статье мы расскажем, для чего предназначены базы, какие они бывают, и как иметь с ними дело.
- Что такое База Данных
- Как работают базы данных
- Как хранится информация в БД
- Типы баз данных
- Простейшие типы баз данных
- Простые структуры данных
- Иерархические
- Сетевые
- Реляционные БД
- NoSQL базы данных
- Документные
- Колоночные
- Графовые
- «Ключ-значение»
- Комбинированные типы
- NewSQL
- Многомодельные
- Преимущество разных типов баз данных
- Популярные системы управления базами данных (СУБД)
- Как работают с базой данных: упрощенная инструкция
- Выводы
Что такое База Данных
База данных — структурированные электронные сведения.
Пользователи манипулируют ими согласно правилам моделирования данных. В визуальном представлении это выглядит как книжный шкаф с документами, которые можно передвигать, сортировать, «прореживать», дополнять новыми бумагами.
Если человек делает проект, в котором обращается к структурированному хранилищу информации — например, пишет программу для учета клиентов банка или собирает сайт — ему нужно знать, какие бывают базы данных, чтобы правильно выбрать их тип. Они различаются по свойствам и ограничениям, которые важно учитывать в работе.
Как работают базы данных
БД — это среда, которая представляет собой таблицы с информацией. Самый наглядный пример базы данных — таблицы в программе MS Excel. Их заполняют цифрами и словами вручную, составляют формулы для управления содержимым ячеек, перетаскивают это содержимое мышью для замены или копирования.
База данных выглядит как таблица и хранится в отдельном файле.
Если БД «прикреплена» к сайту, увидеть ее в виде таблицы не получится, зато получится написать в строке поиска текстовый запрос и увидеть в списке результатов соответствующую выборку. Еще можно составить запрос на специальном языке Structured Query Language (SQL), чтобы вывести из базы интересующий массив строк.
Как хранится информация в БД
Структура базы данных представляет собой набор таблиц, которые состоят из строк (записей) и столбцов (полей). У столбцов есть уникальные имена, типы хранимых данных (текст, число, логический тип «Да/Нет», гиперссылка и др.), списки свойств и описания.
Базы данных бывают централизованными и распределенными.
Централизованная БД хранится на одном компьютере, распределенная — на нескольких. Для локального и удаленного доступа к распределенным базам применяют системы управления базами данных (СУБД).
Если БД однопользовательская, в один момент времени с её содержимым может работать один человек, если многопользовательская — несколько человек одновременно манипулируют данными.
✅Читайте про Метод replace() в Python здесь
Типы баз данных
Базы данных бывают простейшими, реляционными, NoSQL и комбинированными.
Простейшие типы баз данных
Эту группу делят на простые структуры данных, иерархические и сетевые БД.
Простые структуры данных
Самый простой способ хранить информацию — записать ее в текстовый файл. Если информации немного, этот вариант вполне подходит. Поля разделяют запятой, точкой с запятой, двоеточием или пробелом.
У текстовых файлов есть такие проблемы:
- ограничения по типу и уровню сложности данных;
- сложности с установкой связи между компонентами;
- невозможность параллельной работы с информацией.
Из-за этих проблем текстовые файлы используют при небольших требованиях к чтению и записи и в случаях, когда нет возможности писать запросы в сторонних программах.
Иерархические
Такие базы данных выглядят как деревья. «Дерево» начинается с «родителя», а от него тянутся связи-ветки к «потомкам». «Родитель» всегда один, а «потомков» может быть сколько угодно. Такого рода отношения называют «один ко многим». Для связи элементов иерархической базы данных применяют физические указатели. Самый близкий к пользователю пример — файловая система компьютера.
Проблема иерархической базы данных — невозможность создавать отношения «многие к многим» между объектами.
Сетевые
Сетевая БД — это иерархическая база данных с отношениями «многие ко многим». То есть, не дерево, а граф. Для доступа к информации в сетевой базе применяют те же шаблоны, что и в работе с иерархической БД.
🟠Читайте про Операции, операторы и выражения в языке Си (C) здесь
Реляционные БД
Такие базы данных выглядят как связанные таблицы со структурированной информацией. Для составления выборки из реляционной БД используют язык запросов SQL. Схема такой базы определяется до внесения данных.
Столбцам присваивают уникальные имена и определяют тип хранимой информации. Еще у каждой таблицы есть специальное поле «внешний ключ». Это поле хранит ссылки на столбцы в соседних таблицах с информацией. Благодаря внешнему ключу столбцы и таблицы соединяются по принципу «многие ко многим».
Реляционные базы данных — высокоорганизованные и гибкие. Они подходят для хранения разных типов информации в разных приложениях: на сайтах, в десктопных программах.
NoSQL базы данных
Реляционные БД хранят информацию разбитой по колонкам и столбцам. Чтобы сделать выборку данных, составляют SQL-запросы. В случае с NoSQL-базами запросы не пишут: такая база данных может содержать информацию в виде записей в формате JSON (JavaScript Object Notation), изображений или текста. Для доступа к этим объектам используют другие методы.
NoSQL БД бывают документными, колоночными, графовыми и типа «ключ-значение».
Документные
Документные БД, или архивы документов, хранят информацию в структурированных форматах: JSON, BSON или XML. Они не предписывают конкретные форматы и могут содержать документы с разной структурой. Пользователь вправе поменять свойства данных, когда вздумается, и это не скажется на структуре БД или самой записанной информации.
Документные базы данных применяют там, где нужно занимать параллельными вычислениями и манипулировать большим объемом информации.
Колоночные
Эти БД сохраняют информацию столбец за столбцом. Информация в каждом из столбцов однородная, поэтому хорошо сжимается.
Колоночные БД быстро обрабатывают запросы к подмножеству столбцов, потому что считывают конкретные столбцы, а не все строки подряд, как это происходит с реляционными БД. Из-за такой особенности их прикрепляют к приложениям, от которых требуется высокая скорость обработки информации.
Графовые
Они могут состоять из узлов, которые отображают объекты, и взаимоотношений между этими объектами. Каждый объект может быть связан с любым количеством других объектов Примеры графовой БД — социальные сети и wiki базы знаний.
Графовые БД явно показывают связи между типами данных и не предполагают пошаговый обход для доступа к тому или иному элементу.
«Ключ-значение»
Пользователь запрашивает ключ, программа выдает значение ключа: JSON-объект, изображение или текст. БД «ключ-значение» лишены жестких схем взаимоотношений между данными, поэтому подходят для одновременного хранения разной информации. Если программист выбирает такую БД, он берет на себя ответственность за присвоение имен ключам и за соответствие значению ключа типу или формату.
Комбинированные типы
Комбинированные БД делят на NewSQL и многомодельные. Принципы их устройства различаются, но могут быть объединены для решения проблем, связанных со специфическими ограничениями SQL и NoSQL баз.
NewSQL
Устроены как реляционные БД, но гораздо лучше масштабируются по горизонтали. У NoSQL-баз они выигрывают по согласованности. Результат — баланс согласованности и простоты доступа.
NewSQL базы обладают высокой производительностью и репликацией. Они не самые гибкие, требуют большого запаса вычислительной мощности и специальных знаний для манипулирования хранимой информацией.
Многомодельные
Соединяют плюсы разных типов баз данных. Например, пользователи получают доступ к информации, записанной в разные базы. Для доступа к ней они пишут один запрос. Еще пользователи могут менять информацию сразу в нескольких базах, и эти операции будут согласованными.
Многомодельные базы снижают нагрузку на СУБД, быстро и просто распределяют хранимую информацию, дают пользователям непрерывный доступ, масштабируются по горизонтали.
Преимущество разных типов баз данных
При разработке программ обычно пользуются реляционными и документными БД.
Реляционные базы:
- устроены просто, подходят для хранения 9 из 10 типов данных;
- выдают выборки в ответ на SQL-запросы — простые и знакомые каждому разработчику;
- позволяют обновить одну строку и автоматически обновляют все связанные с ней строки;
- защищены от ошибок при сбоях, так как «пропускают» все действия пользователя или не пропускают ни одного.
Документные базы:
- хранят объекты с разной структурой — в том числе, объекты из объектно-ориентированных программ, перечни, словари;
- поддерживают параллельность и быстро отвечают на запросы, потому что строки в них независимы друг от друга;
- поддерживают горизонтальное масштабирование — то есть, добавление компьютеров и распределение архивов между ними.
Популярные системы управления базами данных (СУБД)
СУБД — программа для управления информацией, которая хранится в базе данных. Эти программы предназначены для работы с реляционными и объектно-реляционными БД с использованием языка запросов SQL. Запросы предназначены для определения данных, управления и манипулирования ими. Самые распространенные СУБД — MySQL, PostgreSQL, SQLite и Oracle.
MySQL — самая простая и быстрая многопользовательская СУБД, способная обрабатывать таблицы с 50+ млн. строк. Система доступна в текстовом и графическом режимах. Последний удобен для тех, кто плохо знает язык запросов SQL.
PostgreSQL — лишена ограничений по размеру БД. Обеспечивает надежность транзакций, легко масштабируется, подробно документирована разработчиками.
SQLite — компактная и быстрая СУБД, которая позволяет хранить всю информацию в одном файле.
Oracle — стабильная система, которая быстро и полноценно восстанавливается после сбоев. Она безопасная, надежно защищает хранимую информацию.
Как работают с базой данных: упрощенная инструкция
- Формируют новые таблицы, чтобы задать структуру. На начальном этапе определяют поля, из которых состоит каждая строка таблицы, и задают им формат. Если в базе данных будет несколько таблиц со связями «многие ко многим», задают еще и внешние ключи. Формирование структуры и ввод данных — не связанные друг с другом понятия. Сначала составляют структуру, потом вписывают в таблицу все нужное.
- Заполняют таблицы информацией. Это делают вручную или пишут программный код, чтобы автоматически разнести по строкам большой объем информации.
- Обрабатывают информацию в таблицах. Обрабатывать можно с помощью запросов или программ. Главное — составить «инструкцию» для отбора записей. Когда компьютер обработает запрос, он выдаст таблицу с временным набором информации. Этот набор можно отправить в отчет или выстроить в виде формы.
- Выводят информацию на экран и принтер. Отсортированные запросом данные распечатывают на принтере, прикрепляют к электронному письму, выдают пользователю сайта или программы.
Выводы
Мы рассказали про виды баз данных в информатике, преимущества и особенности их применения. Для кэширования разработчики обычно выбирают базы «ключ-значение». Организовывать графы удобно с помощью графовых БД. Для отбора по колонкам подходят колоночные базы. В иных ситуациях пользуются реляционными и документными БД.