Muitos programas precisam salvar ou armazenar dados para uso posterior e ler os dados gravados. Embora existam muitas maneiras de fazer isso, a abordagem mais comum é usar um Sistema de gerenciamento de banco de dados relacional (RDBMS).MySQL é um RDBMS de código aberto padrão da indústria que tem sido amplamente adotado por projetos de desenvolvimento de software. Este guia fornece uma visão geral do MySQL e explica os principais conceitos de RDBMS.
O que é um banco de dados relacional (RDBMS)?
Um banco de dados é um aplicativo para armazenar e recuperar dados. Embora os mecanismos sejam diferentes, a maioria dos bancos de dados fornece uma API que permite aos usuários adicionar, excluir, acessar, pesquisar e gerenciar seus dados. Como alternativa ao uso de um banco de dados, os dados podem ser armazenados em arquivos de texto ou tabelas de hash. No entanto, essa técnica não é tão rápida ou conveniente quanto usar um banco de dados e raramente é usada em sistemas modernos.
Os primeiros aplicativos de banco de dados evoluíram para o moderno banco de dados relacional , que permite aos usuários armazenar grandes quantidades de dados. Um RDBMS não força mais os usuários a armazenar dados em uma grande tabela. Ele fornece maneiras mais estruturadas de particionar os dados e é projetado para um acesso mais eficiente. Os aplicativos RDBMS são otimizados para leituras e gravações rápidas e transferência em massa de informações.
Os designers de banco de dados conceituam e organizam os dados em termos de tabelas , colunas e linhas . Uma linha também é chamada de registro , ou tupla. Os bancos de dados relacionais contemporâneos estruturam os dados usando os seguintes conceitos:
- Cada banco de dados contém uma ou mais tabelas.
- Quando o usuário cria uma tabela, ele especifica as colunas dentro da tabela ao mesmo tempo.
- Cada coluna representa um atributo ou campo específico no registro. Uma coluna é projetada para conter dados de um determinado tipo de dados, por exemplo,
VARCHAR
, que significa uma string de comprimento variável. - Uma tabela contém um cluster de linhas.
- Cada linha em uma tabela representa uma entrada exclusiva do banco de dados. Cada coluna na linha contém um campo individual nessa entrada.
- Uma tabela de banco de dados é como uma matriz de dois por dois. Cada quadrado dentro da matriz contém um dado.
Um RDBMS é considerado relacional porque permite que os usuários definam relacionamentos dentro e entre as várias tabelas usando chaves e índices. Um banco de dados relacional permite que um usuário forneça ou gere uma chave primária para cada linha. O SQL pode garantir que essa chave seja exclusiva na tabela. Os campos nessas tabelas podem estar relacionados uns aos outros com base em suas chaves primárias e estrangeiras. Esses relacionamentos ajudam a estruturar e organizar o banco de dados e limitam a quantidade de duplicação de dados.
Um aplicativo RDBMS sempre fornece os recursos listados abaixo. Aplicativos individuais podem oferecer mais opções.
- Permite a criação, definição, modificação e remoção de tabelas, colunas, linhas, chaves primárias e índices do banco de dados.
- Ele aceita consultas SQL e armazena ou recupera os dados relevantes, combinando informações de diferentes tabelas de banco de dados conforme necessário.
- Garante a integridade dos dados e das referências entre as tabelas. Por exemplo, uma chave estrangeira sempre aponta para uma linha válida em outra tabela.
- Ele atualiza automaticamente índices, carimbos de data/hora e outros atributos gerados internamente conforme necessário.
Os bancos de dados relacionais usam a Linguagem de consulta estruturada (SQL) para consultar e atualizar o banco de dados. Por exemplo, um cliente RDBMS usa o SQL
INSERT
comando para adicionar uma nova linha a uma das tabelas do banco de dados. Quando um usuário adiciona uma nova linha, ele especifica simultaneamente um valor para cada coluna. Comandos SQL adicionais são usados para modificar e excluir linhas, gerenciar itens de banco de dados e recuperar uma lista de registros que atendem a critérios específicos. Por exemplo, considere um banco de dados para uma escola. Esse banco de dados possui várias tabelas, para professores, alunos, cursos, salas de aula e assim por diante. A definição dos
Students
A tabela pode conter colunas para o nome e sobrenome do aluno, ID, nota, família e muito mais. Cada linha nesta tabela simboliza um aluno individual e serve para representar e coletar todas as informações relevantes sobre esse aluno. Se o nome do aluno for "John", o first_name
coluna nesta linha contém John
. A ID do aluno pode servir como índice e chave primária e pode ser usada para fazer referência cruzada do aluno em outras tabelas. Por exemplo, um
Students
simplificado tabela pode ser definida usando a estrutura exibida abaixo. A linha superior representa os nomes das colunas na tabela. A tabela abaixo tem atualmente duas linhas de dados, uma para cada aluno. first_name | last_name | nota | family_id | id_aluno |
---|---|---|---|---|
João | Sim | 4 | 1116 | 5005 |
Jane | Aluno | 5 | 1224 | 5350 |
Quais são alguns termos comuns de RDBMS?
Os seguintes termos são frequentemente usados em relação aos bancos de dados:
- Coluna: Um conjunto de valores do mesmo tipo de dados, representando um atributo em uma tabela. As colunas são definidas quando uma tabela é criada.
- Chave composta: Uma chave que consiste em várias colunas. Uma chave composta é usada quando uma única coluna não pode identificar uma linha de forma confiável.
- Banco de dados: Um grupo organizado de dados que é armazenado eletronicamente. Um banco de dados geralmente é organizado em grupos menores de informações.
- Chave estrangeira: Um índice usado para vincular uma entrada de tabela a uma linha em outra tabela.
- Índice: Um método de acesso mais rápido às entradas do banco de dados. Um índice pode ser criado usando qualquer combinação de atributos, mas a implementação é específica do aplicativo. Um índice de banco de dados é semelhante a um índice em um livro.
- Chave primária: Uma coluna que serve como um índice para identificar exclusivamente uma linha dentro de uma tabela. Uma chave primária pode ser gerada automaticamente ou definida na definição da tabela. Uma chave primária pode ser usada para localizar uma linha específica em uma tabela.
- Integridade referencial: Uma propriedade de banco de dados interna para garantir que uma chave estrangeira sempre faça referência a uma linha válida em outra tabela.
- Sistema de gerenciamento de banco de dados relacional (RDBMS): Um tipo de sistema de banco de dados baseado em relacionamentos entre tabelas e entradas.
- Linha: Uma entrada estruturada em uma tabela que consiste em um conjunto de dados relacionados. Cada linha em uma tabela tem a mesma estrutura, que corresponde às especificações de coluna na definição da tabela. Uma linha também é chamada de registro ou tupla.
- Linguagem de consulta estruturada (SQL): Uma linguagem de programação específica de domínio simplificada usada para gerenciar dados em um RDBMS.
- Tabela: Uma coleção de registros de banco de dados, consistindo em uma série de linhas e colunas. Uma tabela pode ser pensada como uma matriz bidimensional de informações.
SQL x MySQL
Os termos SQL e MySQL são muitas vezes misturados ou usados de forma intercambiável, mas não são a mesma coisa. SQL é a linguagem de programação padrão para consultar aplicativos RDBMS. Ele é usado para escrever consultas de banco de dados e pode ser usado com qualquer sistema de banco de dados que o suporte. MySQL é uma instância específica de um RDBMS que usa SQL. Os usuários do banco de dados enviam comandos SQL para um RDBMS, como MySQL, para ler e gravar dados e administrar o banco de dados. Não existe um aplicativo chamado SQL, então não faz sentido fazer uma comparação “SQL vs MySQL”. No entanto, o termo banco de dados SQL é frequentemente usado informalmente como um termo abreviado para qualquer banco de dados relacional.
A linguagem SQL
A linguagem SQL é especificada como uma série de instruções. Não é considerada uma linguagem de programação imperativa de uso geral como o Python, porque não possui uma gama completa de estruturas de dados e instruções de controle. Em vez disso, é uma linguagem específica de domínio destinada a um único propósito. SQL é projetado para consulta, definição e manipulação de dados. Ele também foi projetado para fornecer controle de acesso a dados. Uma vantagem do SQL é que ele pode acessar vários registros usando apenas um comando. Ele não especifica como o banco de dados deve acessar uma entrada.
A linguagem SQL consiste em palavras-chave designadas, expressões, consultas, instruções, operadores e cláusulas opcionais. Os identificadores de objeto são usados para fazer referência a entidades de banco de dados, incluindo tabelas e colunas. SQL suporta um grande número de tipos de dados predefinidos, como
CHAR
, para o caractere e INTEGER
. Alguns dos operadores SQL mais importantes incluem =
, <>
, >
, <
, IN
, LIKE
, TRUE
, FALSE
, e NOT
. Versões recentes do SQL agora suportam um simples CASE
demonstração. A documentação do MySQL contém mais informações sobre a estrutura da linguagem SQL, tipos de dados e instruções. Algumas das instruções e cláusulas SQL mais usadas incluem o seguinte:
- ALTER: Modifica a estrutura de um objeto de banco de dados.
- CRIAR: Cria um objeto de banco de dados, como uma tabela ou banco de dados.
- EXCLUIR: Remove uma ou mais linhas existentes do banco de dados.
- QUEDA: Exclui permanentemente um objeto do banco de dados.
- DE: Indica qual tabela usar para a consulta.
- CONCESSÃO: Autoriza um usuário de banco de dados a realizar uma ação específica.
- GRUPO POR: Uma cláusula para organizar a saída de um
SELECT
declaração. - INSERIR: Adiciona linhas ao banco de dados.
- PARTICIPE: Uma cláusula que especifica como combinar e montar dados de várias tabelas.
- COMBINAR: Combina dados de várias tabelas.
- ORDENAR POR: Uma cláusula para classificar a saída de uma consulta.
- SELECIONAR: Recupera dados de uma ou mais tabelas. Este comando não altera o banco de dados nem altera nenhum dado.
- ATUALIZAÇÃO: Modifica uma ou mais linhas existentes.
- ONDE: Uma cláusula para identificar as linhas nas quais uma consulta deve operar. Normalmente é usado com um operador de comparação.
O curinga
*
é frequentemente usado em conjunto com o SELECT
comando. Este comando instrui o SQL a exibir todas as colunas na saída. Abaixo estão alguns exemplos de consultas SQL. O seguinte comando SQL exibe o
name
de cada classe na Class
banco de dados para cada linha onde o valor do subject
coluna é math
. SELECT name
FROM Class
WHERE subject='math';
A próxima instrução SQL cria a
Class
tabela. O CREATE
A instrução define cada coluna na tabela, juntamente com seu tipo de dados, em ordem sequencial. O VARCHAR
tipo de dados é usado para armazenar uma string de comprimento variável. O SMALLINT
tipo de dados é usado para pequenos valores inteiros do intervalo assinado de -32768
para 32767
. CREATE TABLE Class (
classID smallint,
name varchar(255),
subject varchar(255),
level smallint
);
O que é o banco de dados MySQL?
MySQL é um RDBMS que implementa SQL. Ele foi originalmente projetado para uso com bancos de dados de pequeno a médio porte, mas agora pode lidar com grandes quantidades de dados armazenados. O MySQL é escrito em C/C++ e é compatível principalmente com o padrão SQL. No entanto, ele adiciona muitas extensões e enfatiza a velocidade e a confiabilidade sobre a conformidade perfeita. Uma discussão mais detalhada sobre a conformidade com MySQL e SQL pode ser encontrada na documentação do MySQL sobre Padrões de Conformidade.
A versão básica do MySQL é distribuída pela Oracle Corporation e está disponível gratuitamente sob uma licença de código aberto. A versão atual do MySQL é 8.0. MySQL pode ser usado em qualquer distribuição Linux e na maioria das outras plataformas. É um componente importante da pilhaLAMP de código aberto , juntamente com Linux, Apache e a linguagem de programação PHP. A pilha LAMP é a pedra angular do desenvolvimento de aplicativos da Web de código aberto no Linux. MySQL pode ser usado como parte de um sistema cliente/servidor ou como parte de um sistema embarcado.
Como todos os aplicativos RDBMS, o MySQL é um banco de dados relacional. Administradores e usuários definem relacionamentos dentro e entre as tabelas no banco de dados. Colunas diferentes podem ser marcadas como obrigatórias ou opcionais e podem servir como chave primária ou como ponteiro para outra tabela. O MySQL é estável, confiável e fácil de usar. Aqui estão algumas vantagens específicas do MySQL:
- O MySQL é um produto maduro, popular e bem estabelecido. Ele tem mais suporte da comunidade do que outros bancos de dados de código aberto e melhor material de referência e documentação.
- O MySQL pode ser configurado para ser compatível com ACID quando usado com o sistema de armazenamento InnoDB. A sigla ACID significa Atomicidade, Consistência, Isolamento e Durabilidade. Isso significa que ele pode garantir a validade dos dados apesar de erros, falhas ou interrupções.
- É conhecido por seu alto desempenho, devido a recursos como bibliotecas de classes otimizadas, compactação, alocação de memória e tabelas de hash. Ele suporta threads de kernel multithread para uma operação mais eficiente em sistemas com várias CPUs.
- Ele suporta bancos de dados muito grandes, armazenando até centenas de milhões de registros e até 64 índices por tabela.
- O MySQL fornece mecanismos de segurança aprimorados, incluindo criptografia de todas as senhas.
- Permite replicação e redundância de dados para maior confiabilidade.
- O MySQL oferece suporte para aliases em tabelas e colunas e suporte completo para muitos conjuntos de caracteres diferentes.
- O MySQL funciona bem com o PHP, que é amplamente utilizado no desenvolvimento da Web.
- Ele funciona com muitos compiladores diferentes e em muitas plataformas diferentes, e foi projetado para ser portátil entre sistemas. Os programas cliente podem ser escritos em muitas linguagens. O MySQL fornece APIs para C/C++, PHP, Java, Python, Ruby e Perl.
- O MySQL está disponível como uma biblioteca que pode ser incorporada em aplicativos independentes.
- O MySQL é empacotado com vários utilitários de cliente convenientes, incluindo
mysqldump
emysqladmin
. Os usuários podem verificar, otimizar e reparar tabelas usando omysqlcheck
programa. - A licença de código aberto do MySQL permite que os desenvolvedores personalizem o MySQL e modifiquem o código-fonte para atender a seus requisitos.
O MySQL também está disponível em uma Enterprise Edition mais completa, com suporte total ao cliente. Para obter informações sobre como instalar o MySQL no Ubuntu ou em outras plataformas Linux, consulte o guia Linode em Instalar e configurar o MySQL no Ubuntu 20.04.
SQL vs. NoSQL
Os sistemas NoSQL são uma alternativa aos aplicativos RDBMS tradicionais baseados em SQL. Como o nome indica, eles usam um modelo não relacional para lidar com dados. Eles são tipicamente menos estruturados e mais flexíveis do que um RDBMS. Os sistemas NoSQL não são padronizados e podem assumir vários formatos. No entanto, eles geralmente são baseados em valores-chave, gráficos ou documentos, não baseados em tabelas. Alguns aplicativos NoSQL podem usar linguagens estruturadas específicas de domínio ou até mesmo aceitar consultas SQL em paralelo. Alguns exemplos de aplicativos NoSQL incluem Redis e MongoDB. Para mais informações sobre sistemas NoSQL, consulte o guia Linode para uma comparação entre bancos de dados SQL e NoSQL.
Quais são o cliente e servidor MySQL?
O cliente MySQL e o servidor MySQL são dois componentes diferentes que trabalham juntos em uma arquitetura de rede. Geralmente há um servidor central e um ou mais clientes. O aplicativo do servidor de banco de dados MySQL é instalado em um host, geralmente como parte da pilha LAMP. Esse servidor armazena a configuração e os dados do banco de dados e responde às consultas dos clientes. Ele também reforça a segurança e qualquer sistema de controle de acesso e replica e arquiva os dados conforme necessário. O mesmo servidor pode hospedar vários bancos de dados para clientes diferentes.
O cliente MySQL permite que os usuários se conectem a um servidor MySQL, seja no mesmo sistema ou em um host diferente. O cliente envia consultas SQL ao servidor para leitura ou gravação em um banco de dados. O cliente MySQL também administra, mantém e protege o cliente. Um cliente autônomo é recomendado para usuários que desejam se conectar apenas a um banco de dados remoto para executar consultas. Os administradores que desejam hospedar um banco de dados no servidor devem instalar o pacote completo do servidor MySQL. A instalação do servidor inclui um cliente para criar e administrar o banco de dados.
O utilitário cliente de linha de comando padrão do MySQL é denominado
mysql
. Ele pode ser instalado sem o componente servidor usando o comando yum install mysql
ou apt-get install mysql-client
. Para acessar o cliente MySQL, use o comando mysql <database_name>
. O nome de usuário, a senha e o endereço IP do servidor podem ser especificados usando parâmetros adicionais. Quando o usuário efetua login com sucesso, o cliente exibe o prompt do MySQL
mysql>
. O usuário pode então executar comandos SQL. Para obter mais informações sobre como instalar e usar o MySQL, consulte o guia Linode sobre Como se conectar a um banco de dados MySQL ou MariaDB. Para que serve o MySQL?
MySQL é um RDBMS versátil para uso com um conjunto de dados de qualquer tamanho. Pode ser considerado a qualquer momento em que um aplicativo deve armazenar e recuperar dados. O MySQL foi originalmente desenvolvido para configurações de servidor único de pequeno e médio porte. Mas com melhorias recentes de desempenho e escalabilidade, ele pode ser usado praticamente em qualquer lugar em um aplicativo de qualquer tamanho. Mesmo grandes empresas, como Uber, Airbnb e Shopify, usam o MySQL.
Os usuários devem instalar o MySQL para configurar o WordPress. O WordPress usa o MySQL para armazenar todos os seus dados e arquivos de configuração e interage dinamicamente com o MySQL para exibir e criar páginas da web. Os usuários não precisam necessariamente entender SQL para usar o WordPress. No entanto, pode ser útil ao realizar personalizações avançadas. No Linux, o WordPress geralmente é instalado como um pacote junto com o MySQL e o restante da pilha LAMP. Para obter mais informações sobre como configurar o MySQL e o WordPress, consulte o guia Linode sobre como instalar o WordPress no Ubuntu 20.04.
Outras aplicações comuns para MySQL incluem armazenamento de dados, processamento de transações, sistemas de reservas, comércio eletrônico e bancos de dados da web. Por exemplo, um banco de dados MySQL pode manter a lista de produtos e o inventário de uma loja online.
Conclusão
Este guia responde à pergunta comum:“O que é um banco de dados MySQL?” MySQL é um banco de dados relacional que organiza os dados com base nas relações entre tabelas e campos. É um tipo de Sistema de Gerenciamento de Banco de Dados Relacional (RDBMS), que armazena entradas como linhas dentro de tabelas. Cada linha consiste em um número de colunas, que representam os diferentes atributos do registro de dados. A linguagem de programação SQL específica do banco de dados é usada para armazenar e recuperar dados do MySQL. SQL usa uma série de instruções discretas e destina-se a funcionar com sistemas RDBMS.
O MySQL é conhecido por sua capacidade de armazenar grandes tabelas e grandes quantidades de dados, bem como por sua velocidade e confiabilidade. Ele fornece APIs para muitas linguagens de programação comuns e é empacotado com vários utilitários úteis. O servidor MySQL armazena dados e respostas a solicitações de clientes MySQL. O cliente é sempre empacotado com o servidor, mas pode ser usado como um aplicativo independente para se comunicar com bancos de dados remotos. O MySQL é usado em muitas empresas conhecidas e é essencial para quem deseja usar o WordPress. No entanto, também é usado em bancos de dados da Web e armazenamento de dados. Para obter mais informações sobre o MySQL, consulte a documentação do MySQL.
Mais informações
Você pode querer consultar os seguintes recursos para obter informações adicionais sobre este tópico. Embora estes sejam fornecidos na esperança de que sejam úteis, observe que não podemos garantir a precisão ou pontualidade dos materiais hospedados externamente.
- Documentação oficial do MySQL