Ponto de Verificação de Bancos de Dados

Introdução

Este checkpoint destina-se a ajudá-lo a avaliar o que aprendeu com nossos artigos introdutórios sobre Bancos de Dados, onde definimos bancos de dados e introduzimos sistemas de gerenciamento de banco de dados comuns. Você pode usar este checkpoint para testar seus conhecimentos sobre esses tópicos, revisar termos e comandos-chave 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 (incluindo subseções sobre bancos de dados relacionais e não relacionais) e uma seção sobre como interagir com seu SGDB por meio da linha de comando ou interfaces gráficas de usuário. Em cada uma dessas seções, existem componentes interativos para ajudá-lo 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 seus aplicativos com bancos de dados de backend.

Recursos

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, em seguida, use o recurso de menu suspenso para verificar seu trabalho.

Replication

Replicação refere-se à prática de sincronização de dados em vários bancos de dados separados. Essa prática oferece redundância, melhora a escalabilidade e reduz as latências de leitura.

Sharding

Fragmentação de Banco de Dados é uma prática arquitetônica de separar dados em pedaços chamados fragmentos lógicos que são distribuídos em nós separados chamados fragmentos físicos. Para mais informações sobre essa prática, você pode revisar nosso artigo sobre Compreensão da Fragmentação 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 os 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 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 restrições SQL ao projetar seu banco de dados. Essas restrições impõem limitaçõ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ócio: As 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 do negócio.
  • 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ão nula, 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 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 valores nulos 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 revise 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 use o recurso de dropdown 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 informações. O PostgreSQL é um banco de dados relacional que incorpora algumas características de 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 uma aplicação 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 seu equivalente: os bancos de dados não relacionais.

Bancos de Dados Não Relacionais e NoSQL

Se você precisa armazenar dados de maneira 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 no uso de um banco de dados relacional, incluindo escalabilidade horizontal, consistência eventual entre nós e gerenciamento de dados não estruturados.

Termos de Banco de Dados Não Relacionais 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 use o recurso de menu suspenso para verificar o trabalho realizado.

Key-value databases

Bancos de dados chave-valor armazenam e gerenciam matrizes associativas que contêm pares chave-valor, em que a chave é um identificador exclusivo que recupera seu valor associado.

Columnar databases

Bancos de dados colunares são orientados a colunas, o que significa que eles armazenam dados em colunas. Os dados aparecem em ordem de registro, em que a primeira entrada em uma coluna está relacionada à primeira entrada em outras colunas.

Document-oriented databases

Também conhecidos como 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 os documentos.

Graph databases

Bancos de dados de grafo são uma subcategoria de bancos de dados de documentos e esse tipo de banco de dados destaca os relacionamentos entre documentos.

Você pode testar seu conhecimento sobre quais sistemas de gerenciamento de bancos de dados não relacionais populares se alinham ao tipo de modelo de banco de dados com o recurso interativo de menu suspenso a seguir.

Verifique seu Conhecimento

Combina o seguinte sistema de gerenciamento de banco de dados com seu modelo operacional correspondente.

  • 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

Esteja você 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.

Construindo uma Pilha de Aplicações

O sistema de gerenciamento de banco de dados é frequentemente implantado como um aspecto essencial de uma aplicação maior. Essas aplicações são às vezes chamadas de pilhas, como a pilha LAMP ou pilha Elastic.

Confira 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 é tanto um mecanismo de busca quanto um banco de dados orientado a documentos.

Se você configurar um servidor remoto com sua pilha de aplicativos, é recomendável que você criptografe seus dados para proteger seu sistema contra interferências maliciosas. Você pode criptografar comunicações usando segurança de camada de transporte (TLS), que converterá dados em movimento em um texto cifrado que só pode ser descriptografado pelo cifra correto. Os dados estáticos armazenados em seu banco de dados permanecerão não criptografados a menos que você use 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 através de uma interface de usuário gráfica.

Usando a Linha de Comando com seu SGBD

Começou a usar a linha de comando do Linux com nossos artigos introdutórios sobre servidores em nuvem e configurou um servidor web com as soluções apresentadas nos artigos introdutórios sobre servidores web. Através dos artigos sobre bancos de dados, continuou a desenvolver familiaridade com a linha de comando usando comandos como:

– `grep` para buscar dados em texto simples por um texto ou string específica.
– `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`.

Além disso, experimentou ferramentas de linha de comando fornecidas por diferentes sistemas de gerenciamento de banco de dados para interagir com a instalação do banco de dados. A ferramenta de linha de comando permite a execução de comandos no servidor de banco de dados e trabalhar interativamente a partir da janela do terminal. A tabela a seguir lista sistemas de gerenciamento de bancos de dados comuns e suas ferramentas de linha de comando 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ê veria um prompt de banco de dados assim:

Cada cliente de linha de comando de DBMS 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 estes 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 com ADD para adicionar restrições a uma tabela existente e com DROP CONSTRAINT para excluir uma restrição de uma tabela existente.

Você pode continuar desenvolvendo 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 renomear comandos:

  • auth para autenticar clientes para acesso ao banco de dados.
  • exit e quit 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 em seu banco de dados MongoDB com o recurso de impressão pretty 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 de dados para armazenar identificadores de objetos.
  • 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ê usará 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
  • Read
  • Update
  • Deletar

Embora você possa optar por gerenciar seu banco de dados diretamente da linha de comando, também é possível usar uma interface gráfica do usuário (GUI) para muitos sistemas comuns de gerenciamento de banco de dados.

Usando uma Interface Gráfica do Usuário

Há muitas ferramentas GUI diferentes para trabalhar com seu banco de dados, caso decida 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 muitos sistemas operacionais diferentes ou ao conectar-se 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 escolher usar a linha de comando ou uma interface gráfica para gerenciar seu banco de dados, agora você tem as ferramentas necessárias para gerenciar seu sistema de banco de dados.

O que vem a seguir?

Com um entendimento mais sólido de bancos de dados e sistemas populares de gerenciamento de banco de dados, você pode armazenar e gerenciar seus dados ou construir um aplicativo que utilize um sistema de banco de dados.

Para obter mais informações sobre como trabalhar com sistemas específicos de gerenciamento de banco de dados, você pode seguir nossa série Como Usar SQL e Como Gerenciar Dados com MongoDB. Se você encontrar problemas com o MySQL, pode depurar com Como Diagnosticar Problemas no MySQL. Para problemas com o MongoDB, avalie como seus problemas se relacionam com as 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 pilhas de aplicativos:

Se preferir construir suas aplicações com bancos de dados totalmente gerenciados, confira as ofertas da DigitalOcean para clusters MongoDB gerenciados, hospedagem de 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 seu novo conhecimento sobre bancos de dados, você também pode continuar sua jornada na nuvem com contêineres 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