Introdução
Este checkpoint tem como objetivo ajudar você a avaliar o que aprendeu com nossos artigos introdutórios sobre Bancos de Dados, onde definimos bancos de dados e apresentamos sistemas comuns de gerenciamento de banco de dados. Você pode usar este checkpoint para testar seus conhecimentos sobre esses tópicos, revisar termos-chave e comandos, e encontrar recursos para aprendizado contínuo.
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.
Neste checkpoint, você encontrará duas seções que sintetizam as ideias centrais dos artigos introdutórios: uma breve explicação do que é um banco de dados (com subseções sobre bancos de dados relacionais e não relacionais) e uma seção sobre como interagir com seu SGBD por meio da linha de comando ou interfaces gráficas do usuário. Em cada uma dessas seções, há componentes interativos para ajudar você a testar seus conhecimentos. No final deste checkpoint, você encontrará oportunidades para aprendizado contínuo sobre sistemas de gerenciamento de banco de dados, bancos de dados totalmente gerenciados e construção de aplicativos com bancos de dados de backend.
Recursos
- Uma Introdução aos Bancos de Dados
- Compreensão de Restrições SQL
- SQLite vs MySQL vs PostgreSQL: Uma Comparação dos Sistemas de Gerenciamento de Banco de Dados Relacionais
- A Comparison of NoSQL Database Management Systems and Models
- Como Instalar e Proteger o Redis no Ubuntu 22.04
- Como Realizar Operações CRUD no MongoDB
O Que é um Banco de Dados?
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.
Termos para Conhecer
Defina os seguintes termos e depois use o recurso de menu suspenso para verificar seu trabalho.
Replication
Replicação refere-se à prática de sincronizar dados em múltiplos bancos de dados separados. Essa prática fornece redundância, melhora a escalabilidade e reduz as latências de leitura.
Sharding
Sharding de Banco de Dados é uma prática arquitetural de separar dados em pedaços chamados shards lógicos que são distribuídos em nós separados chamados shards físicos. Para saber mais sobre essa prática, você pode revisar nosso artigo sobre Compreensão do Sharding de Banco de Dados.
Existem três modelos relacionais comuns usados para sistemas de banco de dados:
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. |
Esses modelos relacionais estruturam como bancos de dados podem se relacionar entre si.
Existem duas categorias para gerenciamento de banco de dados: banco de dados relacionais e não relacionais. Nas subseções seguintes, você aprenderá sobre cada tipo e os SGBDs comuns para esses tipos.
Bancos de Dados Relacionais
A relational database organizes information through relations, which you might recognize as a table.
Verifique Você Mesmo
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.
Quando as informações são armazenadas em um banco de dados e organizadas na relação, elas podem ser acessadas por meio de consultas que fazem uma solicitação estruturada de informações. Muitos bancos de dados relacionais usam a Linguagem de Consulta Estruturada, comumente referida como SQL para gerenciar consultas ao banco de dados.
Você pode usar SQL restrições ao projetar seu banco de dados. Essas restrições impõem restrições sobre quais alterações podem ser feitas nos dados na tabela.
Verifique Você Mesmo
Why might you impose constraints on your database?
- Regras de Negócios: Restrições permitem que os administradores de banco de dados garantam que o banco de dados esteja alinhado com políticas e procedimentos definidos que atendam às necessidades e expectativas comerciais.
- Integridade de Dados: A entrada de dados é propensa a erros de entrada, então as restrições fornecem parâmetros adicionais para garantir dados corretos.
What are the five constraints that are formally defined by the SQL standard?
PRIMARY KEY
requer que cada entrada na coluna fornecida seja única e nãoNULL
, e permite que você use essa coluna para identificar cada linha individual na tabela.FOREIGN KEY
requer que cada entrada na coluna fornecida já exista em uma coluna específica de outra tabela.UNIQUE
proíbe a adição de quaisquer valores duplicados na coluna fornecida.CHECK
define um requisito para uma coluna, conhecido como predicado, que cada valor inserido nela deve atender.NOT NULL
proíbe a adição de quaisquer valoresNULL
na coluna fornecida.
Alguns sistemas de gerenciamento de banco de dados relacionais de código aberto construídos com SQL incluem MySQL, MariaDB, PostgreSQL e SQLite. Continue aprendendo sobre bancos de dados relacionais com Compreensão de Bancos de Dados Relacionais e reveja os sistemas de gerenciamento de banco de dados relacionais comuns com SQLite vs MySQL vs PostgreSQL: Uma Comparação de Sistemas de Gerenciamento de Banco de Dados Relacionais.
Termos de Bancos de Dados Relacionais Para Conhecer
Através de cada um dos artigos, você desenvolveu um vocabulário sobre bancos de dados relacionais. Defina cada um dos seguintes termos e, em seguida, use o recurso de menu suspenso para verificar seu trabalho.
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
Um banco de dados de objetos utiliza estruturas orientadas a objetos para armazenar informações. O PostgreSQL é um banco de dados relacional que incorpora algumas características dos bancos de dados de objetos.
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.
Você pode escrever uma função sem servidor para praticar a execução de um aplicativo sem servidor.
Signed and Unsigned Integers
Alguns tipos de dados numéricos são assinados, o que significa que podem representar números positivos e negativos, enquanto outros são não assinados e só podem representar números positivos.
Agora que você conhece os bancos de dados relacionais, pode entender seus equivalentes: bancos de dados não relacionais.
Bancos de Dados Não Relacionais e NoSQL
Se você precisa armazenar dados de forma não estruturada, um banco de dados não relacional oferece um modelo alternativo. Como um banco de dados não relacional não utiliza SQL, às vezes é chamado de banco de dados NoSQL.
Existem várias opções disponíveis para um banco de dados não relacional, como armazenamento de chave-valor, bancos de dados colunares, bancos de dados de documentos e bancos de dados de grafo. Cada um desses modelos aborda possíveis problemas ao usar um banco de dados relacional, incluindo dimensionamento horizontal, consistência eventual entre nós e gerenciamento de dados não estruturados.
Termos de Banco de Dados Não Relacional para Conhecer
Cada um dos modelos de banco de dados não relacionais possui recursos específicos que o tornam único. Defina o tipo de modelo e, em seguida, use o recurso de lista suspensa para verificar o seu trabalho.
Key-value databases
Bancos de dados de chave-valor armazenam e gerenciam matrizes associativas que contêm pares de chave-valor, onde a chave é um identificador exclusivo que recupera seu valor associado.
Columnar databases
Bancos de dados colunares são orientados por coluna, o que significa que eles armazenam dados em colunas. Os dados aparecem em ordem de registro, onde a primeira entrada em uma coluna está relacionada à primeira entrada em outras colunas.
Document-oriented databases
Também conhecidos como um bancos de dados de documentos, esses são bancos de dados NoSQL que armazenam dados na forma de documentos. Cada documento contém metadados para estruturar os dados, e uma API ou linguagem de consulta pode ser usada para recuperar documentos.
Graph databases
Bancos de dados de grafo são uma subcategoria dos bancos de dados de documentos, e esse tipo de banco de dados destaca os relacionamentos entre documentos.
Você pode testar seus conhecimentos sobre quais sistemas populares de gerenciamento de banco de dados não relacionais se alinham ao tipo de modelo de banco de dados com o recurso de lista suspensa interativo a seguir.
Verifique seus conhecimentos
**Corresponda o seguinte sistema de gerenciamento de banco de dados ao seu modelo operacional de banco de dados.**
- 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 |
Independentemente de estar utilizando um banco de dados relacional ou não relacional, é provável que esteja construindo uma aplicação que inclua um sistema de gerenciamento de banco de dados como parte de sua pilha tecnológica.
Construindo uma Pilha de Aplicações
O sistema de gerenciamento de banco de dados é geralmente implementado como um aspecto essencial de uma aplicação maior. Essas aplicações são às vezes chamadas de pilhas, como a pilha LAMP ou a pilha Elastic.
Verifique por Si Mesmo
Use a função de menu suspenso para obter as respostas.
What makes up a LAMP stack?
LAMP é um acrônimo para a tecnologia que compõe esta pilha:
- Linux, sistema operacional
- Apache, servidor web
- MySQL, banco de dados
- PHP para processamento de conteúdo dinâmico
Existem outras opções L*MP, como o LEMP stack, onde E representa o Nginx, ou o LOMP stack, onde O representa o OpenLiteSpeed.
What makes up Elastic stack?
A pilha Elastic é construída em torno do Elasticsearch, que é simultaneamente um mecanismo de busca e um banco de dados orientado a documentos.
Se você configurar um servidor remoto com sua pilha de aplicativos, é recomendável criptografar seus dados para proteger seu sistema contra interferências maliciosas. Você pode criptografar as comunicações usando segurança na camada de transporte (TLS), que converterá os dados em movimento em um texto cifrado que só pode ser descriptografado pelo algoritmo certo. Os dados estáticos armazenados em seu banco de dados permanecerão não criptografados, a menos que você utilize um SGBD que ofereça criptografia de dados em repouso.
Para gerenciar seu banco de dados, você pode optar por fazer isso diretamente pela interface de linha de comando ou por meio de uma interface gráfica do usuário.
Usando a Linha de Comando com seu SGBD
Começaste a usar a linha de comando do Linux com os nossos artigos introdutórios sobre servidores na nuvem e configuraste um servidor web com os artigos introdutórios sobre soluções de servidor web. Através dos artigos sobre bases de dados, continuaste a desenvolver familiaridade com a linha de comando, usando comandos como:
– `grep
` para pesquisar dados em texto simples por um texto ou string específicos.
– `netstat
` para verificar a configuração de rede com as flags `-lnp
` para mostrar os sockets em escuta (`-l
`), endereços numéricos (`-n
`), e o PID e nome do programa para cada socket (`-p
`).
– `systemctl
` para controlar o serviço `systemd
`.
Também experimentaste as ferramentas da linha de comando que vêm com diferentes sistemas de gestão de bases de dados para interagir com a instalação da base de dados. A ferramenta CLI permite-te executar comandos no servidor de bases de dados e trabalhar interativamente a partir da tua janela de terminal. A tabela seguinte lista sistemas comuns de gestão de bases de dados e as suas ferramentas CLI associadas:
DBMS | CLI tool |
---|---|
MongoDB | MongoDB shell |
MySQL | mysql |
PostgreSQL | psql |
Redis | redis-cli |
Existem também clientes de linha de comando de terceiros para alguns sistemas de gerenciamento de banco de dados, como o Redli para o Redis.
Ao usar a linha de comando para trabalhar com seu sistema de banco de dados, você abre um prompt de servidor específico do banco de dados, normalmente associado à sua conta de usuário para esse sistema de gerenciamento de banco de dados. Por exemplo, se você abrir um prompt de servidor MySQL e fizer login com seu usuário MySQL, você verá um prompt de banco de dados assim:
-
Cada cliente de linha de comando do SGBD tem sua própria sintaxe para comandos.
Depois de aprender sobre restrições SQL, você pode usar essas restrições com um banco de dados MySQL executando esses comandos:
CREATE DATABASE
para criar um banco de dados.USE
para selecionar um banco de dados.CREATE TABLE
para criar uma tabela com especificações para as colunas e restrições aplicadas a essas colunas.ALTER TABLE
comADD
para adicionar restrições a uma tabela existente e comDROP CONSTRAINT
para excluir uma restrição de uma tabela existente.
Você pode continuar a desenvolver suas habilidades de banco de dados MySQL com a série Como Usar SQL.
Com o Redis, você instalou e garantiu o Redis com os seguintes comandos e experimentou a renomeação dos comandos:
auth
para autenticar clientes para acesso ao banco de dados.exit
equit
para sair do prompt do Redis-CLI.get
para recuperar o valor da chave.ping
para testar a conectividade.set
para definir chaves.
E, no shell do MongoDB, você usou o JSON binário (conhecido como BSON) para executar operações CRUD com os seguintes métodos de filtragem de consulta:
count
método para verificar a contagem de objetos em uma coleção especificada.deleteOne
para remover o primeiro documento que corresponde às especificações.deleteMany
para remover vários objetos de uma vez.find
para recuperar documentos no seu banco de dados MongoDB com o recurso de impressãopretty
para tornar as linhas mais legíveis.insertOne
método para criar documentos individuais.insertMany
método para inserir vários documentos em uma única operação ou coleção.ObjectId
tipo de objeto para armazenar identificadores de objeto.updateOne
para atualizar um único documento com chaves especificadas.updateMany
para atualizar todos os documentos em uma coleção que correspondem aos filtros especificados.
Provavelmente, você utilizará operações CRUD para interagir com seus dados em muitos sistemas de gerenciamento de banco de dados.
Verifique você mesmo
What does CRUD stand for?
CRUD é um acrônimo usado para descrever as seguintes quatro operações fundamentais de dados:
- Criar
- Recuperar
- Atualizar
- Excluir
Embora você possa optar por gerenciar seu banco de dados diretamente a partir da linha de comando, também pode usar uma interface gráfica do usuário (GUI) para muitos sistemas de gerenciamento de banco de dados comuns.
Usando uma Interface Gráfica do Usuário
Há muitas ferramentas de GUI diferentes para trabalhar com seu banco de dados se você decidir não usar a ferramenta CLI projetada.
Para lidar com a administração do MySQL pela web, você pode usar o phpMyAdmin ao instalar e proteger o phpMyAdmin em vários sistemas operacionais diferentes ou ao conectar remotamente a um Banco de Dados Gerenciado MySQL. Você também pode usar o MySQL Workbench para conectar-se a um servidor MySQL remotamente.
Similar ao phpMyAdmin, o pgAdmin é uma interface web para gerenciar o PostgreSQL. Você pode instalar e configurar o pgAdmin em modo de servidor ou usá-lo para agendar backups automáticos com o pgAgent.
Para o MongoDB, você pode considerar usar o MongoDB Compass como a interface gráfica para acessar seu banco de dados.
Independentemente de optar por usar a linha de comando ou uma interface gráfica para gerenciar seu banco de dados, agora você possui as ferramentas necessárias para administrar seu sistema de banco de dados.
O que vem a seguir?
Com uma compreensão mais forte de bancos de dados e sistemas de gerenciamento de banco de dados populares, você pode armazenar e gerenciar seus dados ou construir um aplicativo que use um sistema de banco de dados.
Para mais informações sobre como trabalhar com sistemas de gerenciamento de banco de dados específicos, você pode seguir nossas séries Como Usar SQL e Como Gerenciar Dados com MongoDB. Se você encontrar problemas com o MySQL, pode solucioná-los com Como Diagnosticar Problemas no MySQL. Para problemas com o MongoDB, avalie como seus problemas estão relacionados a Como Realizar Operações CRUD no MongoDB.
Quando estiver pronto para construir seus aplicativos com bancos de dados, tente seguir estes tutoriais para configurações comuns de pilha de aplicativos:
- Como Instalar o Linux, Apache, MySQL, PHP (Pilha LAMP) no Ubuntu 22.04
- Como Instalar o Linux, Nginx, MySQL, PHP (Pilha LEMP) no Ubuntu 22.04
- Como instalar o Linux, OpenLiteSpeed, MariaDB, PHP (pilha LOMP) no Ubuntu 22.04
Se você prefere construir seus aplicativos com bancos de dados totalmente gerenciados, confira as ofertas da DigitalOcean para clusters MongoDB gerenciados, hospedagem do MySQL ou PostgreSQL, e Redis gerenciado. Você também pode escolher uma opção popular de banco de dados para instalação com um clique no Marketplace da DigitalOcean.
Com seus novos conhecimentos em bancos de dados, você também pode continuar sua jornada na nuvem com containers e segurança. Se ainda não o fez, confira nossos artigos introdutórios sobre servidores na nuvem e servidores web.
Source:
https://www.digitalocean.com/community/tutorials/databases-checkpoint