Введение
Этот контрольный пункт предназначен для оценки ваших знаний, полученных из наших вводных статей о базах данных, где мы определили базы данных и представили общие системы управления базами данных. Вы можете использовать этот контрольный пункт, чтобы проверить свои знания по этим темам, просмотреть ключевые термины и команды, а также найти ресурсы для дальнейшего обучения.
A database is any logically modeled collection of information or data. When people refer to a “database” in the context of websites, applications, and the cloud, they often mean a computer program that manages data stored on a computer. These programs, known formally as database management systems (DBMS), can be combined with other programs (like a web server and a front-end framework) to form production-ready applications.
В этом контрольном пункте вы найдете два раздела, которые синтезируют основные идеи из вводных статей: краткое объяснение того, что такое база данных (включая подразделы о реляционных и нереляционных базах данных) и раздел о том, как взаимодействовать с вашей СУБД через командную строку или графические пользовательские интерфейсы. В каждом из этих разделов есть интерактивные компоненты, чтобы помочь вам проверить свои знания. В конце этого контрольного пункта вы найдете возможности для дальнейшего обучения системам управления базами данных, полностью управляемым базам данных и созданию ваших приложений с использованием баз данных на бэкэнде.
Ресурсы
- Введение в базы данных
- Понимание ограничений SQL
- SQLite vs MySQL vs PostgreSQL: Сравнение систем управления реляционными базами данных
- A Comparison of NoSQL Database Management Systems and Models
- Как установить и обезопасить Redis на Ubuntu 22.04
- Как выполнять операции CRUD в MongoDB
Что такое база данных?
A database is any logically modeled collection of information, and a database management system is what most people think of when they think “I know what a database is!” You use a database management system (DBMS), which is a computer program designed to interact with the information, to access and manipulate the information stored in your database.
Термины для изучения
Определите следующие термины и используйте выпадающую функцию для проверки ваших знаний.
Replication
Репликация – это практика синхронизации данных между несколькими отдельными базами данных. Эта практика обеспечивает избыточность, улучшает масштабируемость и снижает время чтения.
Sharding
Шардирование базы данных – это архитектурная практика разделения данных на куски, называемые логическими шардами, которые распределяются по отдельным узлам, называемым физическими шардами. Дополнительные сведения об этой практике можно найти в нашей статье о Понимании шардирования баз данных.
Есть три общих модели отношений, используемых для систем управления базами данных:
Relational Model | Relationship |
---|---|
One-to-one | In a one-to-one relationship, rows in one table (sometimes called the parent table) are related to one and only one row in another table (sometimes called the child table). |
One-to-many | In a one-to-many relationship, a row in the initial table (sometimes called the parent table) can relate to multiple rows in another table (sometimes called the child table). |
Many-to-many | In a many-to-many relationship, rows in one table can related to multiple rows in the other table, and vice versa. While these tables may also be referred to as parent and child tables, the multidirectional relationship does not necessitate a hierarchical relationship. |
Эти модели отношений структурируют, как базы данных могут быть взаимосвязаны между собой.
Существуют две категории управления базами данных: реляционные и нереляционные базы данных. В следующих подразделах вы узнаете о каждом типе и обычных СУБД для этих типов.
Реляционные базы данных
A relational database organizes information through relations, which you might recognize as a table.
Проверь себя
What are the elements that make up a relation?
A relation is a set of tuples, or rows in a table, with each tuple sharing a set of attributes, or columns. A tuple is a unique instance of what type of data the table holds, whereas an attribute specifies the data type for what is allowed in the column.
What is the difference between a primary key and a foreign key?
A primary key refers to the column that will uniquely identify each row in a relational table, whereas a foreign key is a copy of the primary key inserted into a second relation in order to create a relationship between two tables.
Когда информация хранится в базе данных и организована в отношение, к ней можно получить доступ через запросы, которые делают структурированный запрос информации. Многие реляционные базы данных используют язык структурированных запросов (Structured Query Language), обычно называемый SQL, для управления запросами к базе данных.
Вы можете использовать SQL ограничения при проектировании вашей базы данных. Эти ограничения накладывают ограничения на то, какие изменения можно вносить в данные в таблице.
Проверь себя
Why might you impose constraints on your database?
- Бизнес-правила: Ограничения позволяют администраторам баз данных гарантировать, что база данных соответствует определенным политикам и процедурам, отвечающим потребностям и ожиданиям бизнеса.
- Целостность данных: Ввод данных подвержен ошибкам, поэтому ограничения предоставляют дополнительные параметры для обеспечения корректности данных.
What are the five constraints that are formally defined by the SQL standard?
PRIMARY KEY
требует, чтобы каждая запись в указанном столбце была уникальной и не былаNULL
, и позволяет использовать этот столбец для идентификации каждой отдельной строки в таблице.FOREIGN KEY
требует, чтобы каждая запись в указанном столбце уже существовала в определенном столбце из другой таблицы.UNIQUE
запрещает добавление дублирующих значений в указанный столбец.CHECK
определяет требование для столбца, известное как предикат, который должен соответствовать каждому значению, вводимому в него.NOT NULL
запрещает добавление любых значенийNULL
в указанный столбец.
Некоторые открытые реляционные системы управления базами данных, построенные на SQL, включают MySQL, MariaDB, PostgreSQL и SQLite. Продолжайте изучать реляционные базы данных с помощью Понимание Реляционных Баз Данных и изучите общие реляционные СУБД с помощью SQLite против MySQL против PostgreSQL: Сравнение Реляционных Систем Управления Базами Данных.
Термины Реляционных Баз Данных, Которые Следует Знать
С помощью каждой из статей вы узнали словарный запас о реляционных базах данных. Определите каждый из следующих терминов, а затем используйте выпадающую функцию для проверки своей работы.
Constraint
A constraint is any rule applied to a column or table that limits what data can be entered into it.
Data Types
A data type dictates what kind of entries are allowed in a column.
Object Database
Для хранения информации используется объектная база данных. PostgreSQL – это реляционная база данных, которая включает в себя некоторые особенности объектных баз данных.
Serverless
A serverless database, like SQLite, allows any process that accesses the database to write and write to the database disk file directly. This behavior is in contrast to the interprocess communication that is implemented by other relational database engines.
Вы можете написать бессерверную функцию, чтобы попрактиковаться в запуске бессерверного приложения.
Signed and Unsigned Integers
Некоторые типы числовых данных являются со знаком, что означает, что они могут представлять как положительные, так и отрицательные числа, в то время как другие являются беззнаковыми и могут представлять только положительные числа.
Теперь, когда вы знаете о реляционных базах данных, вы можете понять их аналог: нереляционные базы данных.
Нереляционные и NoSQL базы данных
Если вам нужно хранить данные в неструктурированной форме, нереляционная база данных предоставляет альтернативную модель. Поскольку нереляционная база данных не использует SQL, ее иногда называют базой данных NoSQL.
Есть различные доступные варианты для нереляционных баз данных, такие как хранилища ключ-значение, столбцовые базы данных, хранилища документов и графовые базы данных. Каждая из этих моделей обращает внимание на возможные проблемы при использовании реляционной базы данных, включая горизонтальное масштабирование, консистентность на уровне узлов и управление неструктурированными данными.
Термины для знакомства с нереляционными базами данных
Каждая из моделей нереляционной базы данных имеет специфические особенности, делающие ее уникальной. Определите тип модели, а затем воспользуйтесь выпадающим списком, чтобы проверить свою работу.
Key-value databases
Базы данных ключ-значение хранят и управляют ассоциативными массивами, содержащими пары ключ-значение, где ключ – это уникальный идентификатор, который извлекает свое связанное значение.
Columnar databases
Столбцовые базы данных ориентированы на столбцы, что означает, что они хранят данные в столбцах. Данные отображаются в порядке записей, где первая запись в одном столбце связана с первой записью в других столбцах.
Document-oriented databases
Также известные как хранилища документов, это NoSQL базы данных, которые хранят данные в форме документов. Каждый документ содержит метаданные для структурирования данных, и для извлечения документов можно использовать API или язык запросов.
Graph databases
Графовые базы данных являются подкатегорией хранилищ документов, и этот тип базы данных подчеркивает отношения между документами.
Вы можете проверить свои знания о том, какие популярные системы управления нереляционными базами данных соответствуют типу модели базы данных, с помощью следующей интерактивной функции выпадающего списка.
Проверь себя
Сопоставьте следующую систему управления базами данных с ее операционной моделью базы данных.
- Redis
- Couchbase
- Cassandra
- OrientDB
- MongoDB
- Neo4j
- MemcacheDB
- Apache HBase
Compare your answers using the dropdown feature.
Operational Database Model | Example DBMSs |
---|---|
Key-value store | Redis, MemcacheDB |
Columnar database | Cassandra, Apache HBase |
Document store | MongoDB, Couchbase |
Graph database | OrientDB, Neo4j |
Независимо от того, используете ли вы реляционную или нереляционную базу данных, скорее всего, вы создаете приложение, которое включает систему управления базами данных как часть своего стека.
Создание стека приложений
Система управления базами данных чаще всего развертывается как неотъемлемый аспект более крупного приложения. Эти приложения иногда называются стеками, такими как LAMP-стек или стек Elastic.
Проверьте себя
Используйте выпадающий список, чтобы получить ответы.
What makes up a LAMP stack?
LAMP – это акроним технологий, входящих в этот стек:
- Linux – операционная система
- Apache – веб-сервер
- MySQL – база данных
- PHP – для обработки динамического контента
Есть и другие варианты L*MP, такие как стек LEMP, где E означает Nginx, или стек LOMP, где O означает OpenLiteSpeed.
What makes up Elastic stack?
Стек Elastic построен вокруг Elasticsearch, который является и поисковым движком, и документоориентированной базой данных.
Если вы настраиваете удаленный сервер со своим стеком приложений, рекомендуется шифровать данные для защиты системы от злонамеренного вмешательства. Вы можете шифровать коммуникации с использованием протокола транспортного уровня (TLS), который преобразует передаваемые данные в шифротекст, который может быть расшифрован только правильным шифром. Статические данные, хранящиеся в вашей базе данных, останутся незашифрованными, если не использовать СУБД, предлагающую шифрование данных в покое.
Для управления базой данных вы можете делать это непосредственно из интерфейса командной строки или через графический интерфейс пользователя.
Использование командной строки с вашей СУБД
Вы начали использовать командную строку Linux с нашими вводными статьями о облачных серверах и настроили веб-сервер с помощью вводных статей о решениях для веб-серверов. Через статьи о базах данных вы продолжали знакомиться с командной строкой, используя такие команды, как:
grep
для поиска определенного текста или строки в данных в формате plain-text.netstat
для проверки конфигурации сети с флагами-lnp
для отображения слушающих сокетов (-l
), числовых адресов (-n
) и PID и имени программы для каждого сокета (-p
).systemctl
для управления службойsystemd
.
Вы также экспериментировали с инструментами командной строки, поставляемыми с различными системами управления базами данных, чтобы взаимодействовать с установленной базой данных. Интерфейс командной строки позволяет вам выполнять команды на сервере баз данных и работать интерактивно из окна терминала. В следующей таблице перечислены распространенные СУБД и их соответствующий инструмент командной строки:
DBMS | CLI tool |
---|---|
MongoDB | MongoDB shell |
MySQL | mysql |
PostgreSQL | psql |
Redis | redis-cli |
Есть также сторонние клиенты командной строки для некоторых систем управления базами данных, таких как Redli для Redis.
При использовании командной строки для работы с вашей системой управления базами данных вы открываете серверный приглашение, специфичное для вашей базы данных, обычно связанное с вашей учетной записью для этой системы управления базами данных. Например, если бы вы открыли приглашение сервера MySQL и вошли под своим пользователем MySQL, вы бы увидели приглашение базы данных следующим образом:
-
У каждого клиента командной строки СУБД свой синтаксис команд.
После изучения ограничений SQL, вы можете использовать эти ограничения с базой данных MySQL, выполнив следующие команды:
CREATE DATABASE
для создания базы данных.USE
для выбора базы данных.CREATE TABLE
для создания таблицы с указанием столбцов и примененных к ним ограничений.ALTER TABLE
сADD
для добавления ограничений к существующей таблице и сDROP CONSTRAINT
для удаления ограничения из существующей таблицы.
Вы можете продолжить развивать свои навыки работы с базой данных MySQL с серией Как использовать SQL.
С Redis вы установили и защитили Redis с помощью следующих команд и экспериментировали с переименованием команд:
auth
для аутентификации клиентов для доступа к базе данных.exit
иquit
для выхода из приглашения Redis-CLI.get
для получения значения ключа.ping
для проверки подключения.set
для установки ключей.
И в оболочке MongoDB вы использовали двоичный JSON (известный как BSON) для выполнения операций CRUD с помощью следующих методов фильтрации запросов:
count
метод для проверки количества объектов в указанной коллекции.deleteOne
для удаления первого документа, соответствующего указанным критериям.deleteMany
для удаления нескольких объектов сразу.find
для извлечения документов из вашей базы данных MongoDB с функциейpretty
для улучшения читаемости строк.insertOne
метод для создания отдельных документов.insertMany
метод для вставки нескольких документов в одной операции или коллекции.ObjectId
объектный тип данных для хранения идентификаторов объектов.updateOne
для обновления одного документа с указанными ключами.updateMany
для обновления каждого документа в коллекции, соответствующего указанным фильтрам.
Вы, вероятно, будете использовать операции CRUD для взаимодействия с данными в различных системах управления базами данных.
Проверьте себя
What does CRUD stand for?
CRUD – это акроним, используемый для описания следующих четырех основных операций с данными:
- Create
- Read
- Update
- Delete
Хотя вы можете управлять базой данных напрямую из командной строки, вы также можете использовать графический интерфейс пользователя (GUI) для многих распространенных систем управления базами данных.
Использование графического пользовательского интерфейса
Существует множество различных инструментов GUI для работы с вашей базой данных, если вы решите не использовать предназначенный инструмент командной строки.
Для управления администрированием MySQL через веб-интерфейс вы можете использовать phpMyAdmin, установив и защитив phpMyAdmin на различных операционных системах, либо подключившись удаленно к управляемой базе данных MySQL. Также можно использовать MySQL Workbench, чтобы подключиться к серверу MySQL удаленно.
Аналогично phpMyAdmin, pgAdmin – это веб-интерфейс для управления PostgreSQL. Вы можете установить и настроить pgAdmin в режиме сервера или использовать его для запланированных автоматических резервных копий с помощью pgAgent.
Для MongoDB вы можете рассмотреть использование MongoDB Compass в качестве графического интерфейса для доступа к вашей базе данных.
Независимо от того, выберете ли вы командную строку или графический интерфейс для управления вашей базой данных, у вас есть все необходимые инструменты для управления вашей системой базы данных.
Что дальше?
С более глубоким пониманием баз данных и популярных систем управления базами данных вы сможете хранить и управлять вашими данными или создавать приложение, использующее систему баз данных.
Для получения дополнительной информации о работе с конкретными системами управления базами данных, вы можете следовать нашим сериям Как использовать SQL и Как управлять данными с помощью MongoDB. Если у вас возникнут проблемы с MySQL, вы можете использовать отладку с помощью Как устранить неполадки в MySQL. Для проблем с MongoDB оцените, как ваши проблемы связаны с Как выполнять операции CRUD в MongoDB.
Когда вы будете готовы создавать свои приложения с использованием баз данных, попробуйте следовать этим руководствам по установке стеков для обычных приложений:
- Как установить стек Linux, Apache, MySQL, PHP (LAMP) на Ubuntu 22.04
- Как установить стек Linux, Nginx, MySQL, PHP (LEMP) на Ubuntu 22.04
- Как установить Linux, OpenLiteSpeed, MariaDB, PHP (стек LOMP) на Ubuntu 22.04
Если вы предпочитаете создавать свои приложения с полностью управляемыми базами данных, ознакомьтесь с предложениями DigitalOcean по управляемым кластерам MongoDB, MySQL или PostgreSQL, а также управляемым Redis. Вы также можете выбрать популярный вариант базы данных для установки в один клик в Marketplace DigitalOcean.
С вашими новыми знаниями баз данных вы также можете продолжить свой путь в облаке с контейнерами и безопасностью. Если вы еще этого не сделали, ознакомьтесь с нашими вводными статьями о облачных серверах и веб-серверах.
Source:
https://www.digitalocean.com/community/tutorials/databases-checkpoint