Содержание
- Управление БД и электронными таблицами: отличия
- Как выглядит база данных
- Свойства базы данных
- Популярные СУБД и их отличие от БД
База данных (БД) — это набор структурированных данных, предназначенный для хранения, обработки и изменения большого количества информации.
Когда количество строк и столбцов в таблице превышает сотни и тысячи, обрабатывать такую информацию очень сложно. Для решения этой задачи объемные данные разбиваются на несколько таблиц и связываются между собой. Так происходит превращение таблиц в базы данных.
Для чего нужна база данных
При открытии бизнеса нужна хорошая структура для анализа конкурентов и поставщиков, а также возможность работать с несколькими таблицами синхронно. Сделать это в «Google Таблице» или Microsoft Excel вряд ли получится. База данных — отличный способ решать такие виды задач.
Для работы с базами данных необходим язык структурированных запросов SQL (Structured Query Language). Он позволяет создавать, изменять, удалять и извлекать данные.
Управление БД и электронными таблицами: отличия
Их можно представить на примере: вам необходимо вести учет всех клиентов компании. В таблице Microsoft Excel вы отмечаете данные клиентов, время прихода, место работы, причину обращения, дату последнего визита. Этот файл един для всех сотрудников компании. Когда вы заполняете таблицу, другой работник параллельно с вами делает то же самое: вносит изменения в те же ячейки, что и вы. Тут и кроется основной минус в управлении электронными таблицами с изменяющимися данными: ваша сохраненная информация не отобразится у другого сотрудника, если он открыл файл до ваших действий. Поэтому, когда он сохранит проделанную работу, внесенная вами информация будет утеряна.
При использовании базы данных такого никогда бы не произошло: каждое внесенное изменение отправлялось бы в виде запроса в систему управления базами данных (СУБД), и другие сотрудники вне очереди не смогли бы одновременно с вами отправлять запрос.
Базы данных и СУБД, в отличие от электронных таблиц, обеспечивают надежность и помогают избежать ситуаций, когда ваши изменения могут быть утрачены. Это называется разрешением коллизий.
Как выглядит база данных
База данных похожа на таблицу Microsoft Excel: у нее есть колонки с заголовками и информация внутри.
Свойства базы данных
- У БД обязательно должно быть имя.
- БД может быть доступна только для чтения: пользователи считывают данные, но не могут изменять их или объекты БД.
- БД может выводить свое текущее состояние, которое нельзя отредактировать.
- Для БД можно включить шифрование и ограничить доступ.
- БД может фиксировать состояние объектов и их отношений в заданный момент времени.
- БД постоянна: данные безостановочно накапливаются и используются.
- БД подстраивается под новые данные и актуализируется.
Типы баз данных
Типы БД можно классифицировать по разным критериям, включая структуру и модель данных, способ их хранения и обработки.
Иерархические
Имеют древовидную схему, в которой корень (единый ствол) порождает множество расходящихся ветвей. Данные структурируются отношением «родитель-потомок». Примером иерархической базы служат файлы в вашем компьютере. Имеется основной диск, в котором лежат папки, содержащие другие папки. Физическая связь возможна путем взаимодействия с предыдущей папкой.
Преимущества: обеспечивает целостность данных из-за отношений «родитель-потомок», а все изменения, сделанные в родительской таблице, автоматически обновляются в каждой дочерней.
Недостатки: если родительская и дочерняя таблицы не связаны между собой, добавление новых данных в дочернюю таблицу проблематично, ее нужно будет добавлять также в родительскую.
Иерархическая БД поддерживает отношения «один ко многим», но не поддерживает «многие ко многим». В основном используется там, где существуют явные иерархические отношения между элементами.
Сетевые
В отличие от иерархической структуры у каждой записи может быть больше одного родителя. Используется не древовидная схема, а общий граф. Сетевой тип БД делит данные на два типа: узлы и ребра. Узлами называются объекты, а ребрами — связи между ними и их направления.
Рассмотрим на примере изготовления кофе. У нас есть ингредиенты: вода, эспрессо, молоко, молочная пенка. Если мы смешаем воду и эспрессо, то получим американо. Эспрессо, молоко и молочная пенка сделают латте. Из молока и эспрессо получится капучино. В данном случае у капучино и латте два общих родителя: молоко и эспрессо.
Объектно-ориентированные
Расширение традиционных реляционных баз данных, в котором данные хранятся и обрабатываются в виде объектов. Объекты могут содержать также методы работы с данными, благодаря этому с данными можно работать эффективнее.
Объектно-ориентированный подход включает в себя наследование, полиморфизм и инкапсуляцию.
Наследование упрощает моделирование иерархических отношений между объектами, создавая новые классы на основе существующих и приобретая их атрибуты и методы.
Полиморфизм позволяет одному и тому же методу работать с объектами разных классов, если они наследуются от общего базового класса.
Инкапсуляция скрывает внутренние детали объекта и предоставляет доступ к ним только через определенные методы. Так улучшается безопасность и взаимодействие с объектами.
Реляционные
Наиболее распространенный тип БД, где данные организованы в таблицах, а отношения между ними определяются с помощью ключей. В каждом столбце таблицы указывается атрибут объекта, о котором идет речь. Это может быть имя пользователя, род деятельности. Конкретный атрибут или комбинация атрибутов выбираются в качестве первичного ключа. Когда на ключ ссылаются другие таблицы, то он называется внешним ключом.
Реляционные БД поддерживают как модель «один ко многим», так и «многие ко многим».
Основные принципы реляционных БД:
- Все данные на концептуальном уровне представляются в виде объектов, заданных в виде строк и столбцов.
- В пересечение строки и столбца таблицы можно занести только одно значение.
- Все операции выполняются над целыми отношениями, и результатом этих операций является отношение.
Реляционные базы могут быть организованы по строкам или столбцам, что влияет на их оптимальное использование в различных сценариях: учет персонала и товаров, ведение бухгалтерии и электронного документооборота.
Преимущества: обеспечивается целостность больших объемов информации, предоставляется доступ для нескольких пользователей одновременно при настройке уровней доступа.
Недостатки: требуют большого объема физической памяти, невысокая производительность. Чем больше объем базы, тем дольше обрабатываются запросы.
Примеры реляционных баз данных: PostgreSQL, MySQL, Oracle, SQLite и Microsoft SQL Server.
Нереляционные (NoSQL)
Способны обрабатывать неструктурированные данные. Применяют несколько моделей в зависимости от типа обрабатываемых данных.
Нереляционные базы отлично подходят для обработки неструктурированных или полуструктурированных данных.
Преимущества: быстрая скорость работы, не требуется организация данных в виде таблиц.
Недостатки: уступают в скорости обработки структурированных данных реляционным базам.
Популярные СУБД и их отличие от БД
Системы управления базами данных и базы данных тесно связаны друг с другом. БД — это структурированное хранилище данных, содержащее информацию в различных форматах: документах, таблицах, графах и объектах. СУБД — программное обеспечение для создания, управления и взаимодействия с БД.
Базы данных хранят информацию, а СУБД манипулируют ею.
Существует множество СУБД, предназначенных для различных целей.
Реляционные СУБД (MySQL, Oracle, PostgreSQL)
Используются для хранения данных в табличной форме. Они подходят для систем, требующих высокой транзакционной производительности и поддерживающих сложные запросы и операции с данными.
Колоночные СУБД (Vertica, ClickHouse)
Оптимизированы для хранения и обработки больших объемов данных, особенно когда требуются сложные аналитические вычисления. Они подходят для хранилищ данных и систем, где количество строк превышает сотни миллионов.
Графовые СУБД (Neo4j, Amazon Neptune)
Графовые системы управления базами используются для хранения данных, которые естественно представляются в виде графов: социальных сетей или систем рекомендаций.
СУБД ключ-значение (Redis, Memcached)
Предназначены для быстрого доступа к данным по ключу и часто используются для кеширования данных или брокеров сообщений. Они подходят для хранения простых структур данных с быстрым доступом.
Документные СУБД (MongoDB, CouchDB)
В них данные хранятся в формате документов, в том числе с разной структурой в одной сущности.