Banco de dados
Capítulos
Capítulo 1
Conceito | Descrição |
---|---|
Dado | Fatos brutos e isolados que representam uma informação básica. |
Informação | Conjunto de dados organizados e processados que adquirem significado e se tornam úteis para a tomada de decisões. |
Banco de Dados (BD) | Local onde os dados de uma aplicação são armazenados de forma estruturada. |
Sistema Gerenciador de Banco de Dados (SGBD) | Software que permite aos usuários interagir com os dados armazenados no banco de dados, fornecendo ferramentas para acessar, manipular e gerenciar as informações. |
Modelagem de Dados | Processo de representação visual e conceitual da estrutura de um banco de dados, mostrando as entidades, seus atributos e as relações entre elas. |
Modelo Conceitual | Representação abstrata e de alto nível de um banco de dados, focando nas entidades, seus atributos e as relações entre elas, independente da implementação física ou do SGBD utilizado. |
Modelo Lógico | Descreve o banco de dados no nível do SGBD escolhido, definindo as tabelas, colunas, tipos de dados e restrições de integridade, considerando as características específicas do SGBD. |
Modelo Físico | Detalha como o banco de dados será implementado fisicamente no sistema de armazenamento, definindo a organização dos arquivos, índices, tamanho dos campos e outros aspectos físicos. |
Entidade | Representação abstrata de um objeto do mundo real sobre o qual queremos armazenar informações em um banco de dados. |
Campo (Atributo) | Característica específica de uma entidade, armazenando um tipo específico de dado, como nome, data de nascimento, endereço, etc. |
Relacionamento | Associação entre duas ou mais entidades, representando como elas se conectam e interagem no modelo de dados. |
Chave Primária (PK) | Campo ou conjunto de campos que identifica unicamente cada instância de uma entidade. |
Chave Estrangeira (FK) | Campo em uma tabela que se relaciona com a chave primária de outra tabela, estabelecendo um link entre as entidades. |
Cardinalidade | Define a quantidade de instâncias de uma entidade que podem estar relacionadas a instâncias de outra entidade em um relacionamento. |
Entidade Associativa | Criada para representar um relacionamento muitos-para-muitos (N:N) entre duas entidades, contendo as chaves estrangeiras de ambas as entidades. |
Capítulo 2
Conceito | Descrição |
---|---|
Modelo Relacional | Modelo de dados adequado para um SGBD específico, baseado no princípio de que todos os dados estão armazenados em tabelas. |
Tupla | Conjunto horizontal de dados presentes nos atributos, similar a um registro ou linha em uma tabela. |
Atributo | Nome que identifica o dado armazenado em um banco de dados, equivalente a uma coluna em uma tabela. |
Domínio | Tipo de dado (inteiro, caractere, decimal, data, etc.) que define o tamanho, os valores permitidos e os padrões de validação para um atributo. |
Relação | Conjunto de tuplas que formam uma tabela, representando um objeto específico dentro do banco de dados. |
Álgebra Relacional | Linguagem formal de consulta que permite manipular relações (tabelas) através de operadores, como seleção, projeção e junção, para obter um resultado desejado. |
Operador de Seleção (Where) | Seleciona um subconjunto de tuplas de uma relação com base em uma condição pré-estabelecida, similar à aplicação de um filtro em uma tabela. |
Operador de Projeção (Select) | Retorna apenas colunas específicas de uma relação, similar a escolher quais colunas exibir em uma tabela. |
Restrições de Integridade | Regras aplicadas a um banco de dados para garantir a qualidade, consistência e confiabilidade dos dados armazenados. |
Chave Primária | Atributo ou conjunto de atributos que identifica unicamente cada tupla em uma relação, garantindo que não haja registros duplicados. |
Chave Estrangeira | Atributo em uma tabela que se relaciona à chave primária de outra tabela, estabelecendo um link entre as entidades e garantindo a integridade referencial. |
Chave Composta | Chave primária formada por dois ou mais atributos, geralmente utilizada em entidades associativas que representam relacionamentos muitos-para-muitos (N:N). |
Normalização | Processo de organização das relações (tabelas) em um banco de dados para reduzir a redundância de dados e melhorar a integridade dos dados. |
Formas Normais (FN) | Conjunto de regras e restrições que orientam o processo de normalização, sendo as três primeiras (1FN, 2FN, 3FN) as mais utilizadas na prática. |
Modelo Físico | Fase final do projeto de banco de dados, onde o modelo lógico é adaptado para um SGBD específico, definindo a organização física dos dados em disco, os tipos de dados, índices e outros aspectos de armazenamento. |
Schema | Agrupamento lógico de objetos (tabelas, índices, etc.) em um banco de dados, geralmente relacionado a uma área de negócio específica. |
Modelagem Dimensional | Técnica de modelagem utilizada principalmente em Data Warehouses e Data Marts para otimizar a análise de grandes volumes de dados. |
Tabela Dimensão | Tabela que descreve e classifica os fatos (medidas) em uma modelagem dimensional, contendo atributos descritivos, como nome do produto, data da venda, etc. |
Tabela Fato | Tabela que armazena as medidas (fatos) de negócio em uma modelagem dimensional, geralmente com dados numéricos e aditivos, como quantidade vendida, valor total da venda, etc. |
SQL (Structured Query Language) | Linguagem padrão utilizada para comunicação com bancos de dados relacionais, permitindo criar, consultar, manipular e controlar o acesso aos dados. |
Capítulo 3
Conceito | Descrição |
---|---|
Tipo de Dado | Define o padrão de informação que um objeto pode armazenar, como colunas em tabelas, parâmetros em procedimentos, variáveis e funções. |
Tipo Numérico | Armazenam valores inteiros, de ponto flutuante (sem limite na precisão e escala) ou de ponto fixo (com limite na precisão e escala). Exemplos: `bit`, `tinyint`, `int`, `float`, `decimal`. |
Tipo Cadeia de Caracteres (String) | Podem ser valores binários (`binary`, `varbinary`, `blob`) ou não binários (`char`, `varchar`, `text`). O tipo `varchar` é mais econômico pois só ocupa o espaço realmente utilizado. |
Tipo Valor Temporal | Armazenam dados de data e hora. Exemplos: `date`, `time`, `datetime`, `timestamp`, `year`. |
Chave Primária (PK) | Identificador único de uma linha em uma tabela. Não pode conter valores nulos. |
Chave Estrangeira (FK) | Faz referência à chave primária de outra tabela, estabelecendo um relacionamento entre elas. |
Chave Única (UK) | Garante a exclusividade de uma coluna em uma tabela, similar à chave primária, mas permitindo múltiplas declarações por tabela. |
Chave Composta | Uma chave primária formada por múltiplas colunas. |
Restrição | Regra que garante a integridade dos dados em um banco de dados. Pode ser aplicada em nível de coluna ou de tabela. |
Not Null | Impede que uma coluna aceite valores nulos. |
Check | Define regras específicas para os valores de uma coluna. No MySQL, essa restrição é ignorada. |
Default | Define um valor padrão para uma coluna caso nenhum valor seja informado. |
Autoincrement | Gera automaticamente um número inteiro sequencial e incremental para uma coluna, geralmente utilizado em chaves primárias. |
Unsigned | Impede que uma coluna do tipo inteiro aceite valores negativos. |
Zerofill | Preenche automaticamente com zeros os espaços não utilizados em uma coluna numérica. |
Comandos SQL | Instruções utilizadas para interagir com o banco de dados. O texto aborda comandos como: `create database`, `create table`, `insert`, `select`, `drop`, `alter table`. |
Capítulo 4
Conceito | Descrição |
---|---|
DML (Data Manipulation Language) | Linguagem utilizada para manipular os dados armazenados em um banco de dados, incluindo operações de inclusão, modificação, exclusão e consulta de dados. |
INSERT | Comando SQL utilizado para inserir novos registros em uma tabela. |
Sintaxe Simplificada do INSERT | Permite inserir valores em todas as colunas da tabela, seguindo a ordem de declaração das mesmas, sem a necessidade de especificar os nomes das colunas. No entanto, essa sintaxe não pode ser utilizada em tabelas com colunas que possuem a cláusula `autoincrement`. |
INSERT com Colunas Específicas | Permite inserir dados em colunas específicas de uma tabela. É necessário especificar os nomes das colunas que receberão os valores. |
Chave Estrangeira (FK) em INSERT | Ao inserir dados em uma tabela com chave estrangeira, o valor referenciado pela FK deve existir na tabela de origem (tabela "pai"). |
Subquery em INSERT | Permite utilizar um comando `SELECT` aninhado (subquery) para inserir dados na tabela, tornando a operação mais dinâmica e otimizada. |
DELETE | Comando SQL utilizado para excluir registros de uma tabela. |
Cláusula WHERE em DELETE | Essencial para filtrar as linhas que serão excluídas, evitando a exclusão acidental de todos os registros da tabela. |
Subquery em DELETE | Assim como no `INSERT`, o `DELETE` permite o uso de subqueries para tornar o processo de exclusão mais otimizado. |
TRUNCATE | Comando similar ao `DELETE` que remove todos os registros de uma tabela. É mais rápido que o `DELETE`, mas possui limitações, como a impossibilidade de usar triggers, cascade e replicações. |
ON DELETE NO ACTION | Declaração padrão para chaves estrangeiras que impede a exclusão de registros na tabela "pai" que estejam relacionados com registros na tabela "filha", garantindo a integridade referencial. |
ON DELETE CASCADE | Declaração para chaves estrangeiras que permite a exclusão em cascata. Ao excluir um registro na tabela "pai", os registros relacionados na tabela "filha" também são excluídos. |
UPDATE | Comando SQL utilizado para atualizar registros existentes em uma tabela. |
Cláusula SET em UPDATE | Utilizada para especificar as colunas que serão atualizadas e seus novos valores. |
Cláusula WHERE em UPDATE | Recomendada para filtrar os registros que serão atualizados, similar ao `DELETE`. |
Subquery em UPDATE | Permite utilizar um comando `SELECT` aninhado para atualizar dados na tabela. |
ON UPDATE NO ACTION | Declaração padrão para chaves estrangeiras que impede a atualização de valores na tabela "pai" que estejam sendo utilizados como chave estrangeira na tabela "filha". |
ON UPDATE CASCADE | Permite a atualização em cascata. Ao atualizar um valor na tabela "pai", os registros relacionados na tabela "filha" também são atualizados. |
Operadores Lógicos | Utilizados para combinar condições em uma consulta. Os operadores lógicos são `AND`, `OR` e `NOT`. |
Operadores Relacionais | Utilizados para comparar valores em uma consulta. Exemplos: `=`, `<>`, `>`, `<`, `>=`, `<=`, `IN`, `NOT IN`, `LIKE`, `BETWEEN`, `IS NULL`, `EXISTS`, `ANY`, `ALL`. |
Operadores Aritméticos | Utilizados para realizar operações matemáticas em uma consulta. Os operadores aritméticos são `+`, `-`, `*` e `/`. |
ORDER BY | Cláusula utilizada para ordenar os resultados de uma consulta em ordem crescente (`ASC`) ou decrescente (`DESC`). |
JOIN | Operação que permite combinar dados de múltiplas tabelas em uma única consulta. |
Tipos de JOIN | Inner Join, Outer Join (Left Join, Right Join, Full Join), Cross Join e Self Join. |
ALIAS | Recurso que permite renomear tabelas ou colunas em uma consulta, tornando o código mais legível e intuitivo. |
LIMIT | Cláusula utilizada para limitar o número de linhas retornadas em uma consulta. |
DISTINCT | Cláusula utilizada para retornar apenas valores únicos em uma consulta, eliminando duplicatas. |
CASE | Estrutura utilizada para criar condicionais dentro de uma consulta, permitindo executar diferentes ações com base em diferentes condições. |
UNION | Operador utilizado para combinar o resultado de múltiplas consultas `SELECT` em um único conjunto de resultados. |
UNION ALL | Similar ao `UNION`, mas inclui todas as linhas, incluindo duplicatas. |
Capítulo 5
Conceito | Descrição |
---|---|
Subqueries | Linhas de comando `select` aninhadas dentro de outros comandos SQL (como `select`, `insert`, `update` ou `delete`), que otimizam consultas e permitem a execução de operações complexas. |
Operadores Relacionais em Subqueries | Utilizados em conjunto com subqueries para comparar valores retornados pela subquery com a consulta principal. Exemplos: `=`, `>`, `<`, `>=`, `<=`. |
Operador `IN` | Verifica se um valor presente em uma coluna corresponde a um dos valores retornados por uma subquery ou lista. |
Operador `EXISTS` | Testa a existência de resultados em uma subquery, retornando verdadeiro (true) se houver pelo menos uma linha resultante, caso contrário, retorna falso (false). |
Operador `ANY` | Recupera registros da consulta principal que satisfaçam a condição de comparação com qualquer um dos registros retornados pela subquery. |
Operador `ALL` | Recupera apenas os registros da consulta principal que satisfaçam a condição de comparação com todos os registros retornados pela subquery. |
Subquery Correlacionada | Subquery que depende da consulta externa para cada linha avaliada, usando um alias da tabela externa na sua própria cláusula `WHERE`. |
Funções de Formatação de Dados Textuais | Funções do MySQL que manipulam dados do tipo texto, incluindo conversão de maiúsculas e minúsculas, remoção de espaços em branco e extração de partes de strings. Exemplos: `length()`, `upper()`, `lower()`, `trim()`, `substring()`, `replace()`. |
Funções de Formatação de Dados Numéricos e Temporais | Funções do MySQL que manipulam dados numéricos, de data e hora, como arredondamento, truncamento, extração de partes de datas e cálculos com datas. Exemplos: `round()`, `truncate()`, `curdate()`, `now()`, `date()`, `day()`, `month()`, `year()`, `adddate()`, `datediff()`. |
Funções de Agregação/Extração de Dados | Funções que sumarizam informações de um conjunto de linhas, como contagem, soma, média, valor mínimo e valor máximo. Exemplos: `count()`, `sum()`, `min()`, `max()`, `avg()`. |
Cláusula `GROUP BY` | Agrupa linhas com valores idênticos em uma ou mais colunas, permitindo a aplicação de funções de agregação nos grupos formados. |
Cláusula `HAVING` | Filtra os resultados de uma consulta que usa `GROUP BY`, aplicando condições aos grupos formados. |
Segurança de Dados | Conjunto de mecanismos que visam prevenir acessos não autorizados aos dados, garantindo a confidencialidade e protegendo informações sensíveis. |
Segurança Lógica | Controle de acesso a nível de usuário e permissões, definindo quem pode realizar quais operações no banco de dados. |
Segurança Física | Medidas que protegem o hardware e a infraestrutura do banco de dados contra danos físicos, como falhas de energia ou desastres naturais. |
Integridade de Dados | Conjunto de regras que garantem a precisão, consistência e validade dos dados armazenados no banco de dados. |
Integridade Declarativa | Implementada através de restrições definidas na estrutura do banco de dados, como chaves primárias, chaves estrangeiras e tipos de dados. |
Integridade Procedural | Implementada através de código, como triggers, stored procedures e funções, que validam dados e garantem a integridade em situações mais complexas. |
Capítulo 6
Conceito | Descrição |
---|---|
Índices | Estruturas que aceleram a busca e recuperação de linhas em tabelas, otimizando consultas. |
Tipos de Índices | * Clustered: organiza a tabela pela coluna indexada (ex: chave primária). Só pode haver um por tabela. <br> * Non-clustered: ponteiros para os dados, não os reorganiza (ex: chave estrangeira). |
Visão (View) | Retorna dados de uma consulta salva, simplificando acesso e aumentando segurança. |
Transações | Conjunto de operações como bloco único, garantindo integridade via "tudo ou nada" - sucesso total ou rollback. |
Propriedades ACID | Atomicidade, Consistência, Isolamento, Durabilidade - garantem confiabilidade e integridade. |
Problemas de Concorrência | Leitura suja, não repetida, fantasma, atualização perdida - surgem em acessos simultâneos. |
Níveis de Isolamento | Read uncommitted, committed, repeatable read, serializable - definem a proteção contra problemas de concorrência. |
Triggers | Ações disparadas por eventos em tabelas (inserção, atualização, exclusão), antes ou depois. |
Stored Procedures | Blocos de código SQL reutilizáveis, executados pelo SGBD, para tarefas repetitivas, melhorando segurança e consistência. |
Functions | Como procedures, mas retornam valor(es), úteis para tarefas específicas, usáveis em outros comandos SQL. |
Cursores | Permitem percorrer linha a linha o resultado de um SELECT, útil para operações em registros individuais. |
Observações…
Como organizei o conteúdo desta página
Esta página contém resumos dos principais conceitos de banco de dados extraídos de arquivos no formato PDF com a ferramenta NotebookLM.
De forma simples, enviei os arquivos para o NotebookLM e pedi os resumos com os seguintes comandos:
Organize uma tabela com os principais conceitos do texto. Na primeira coluna, o nome do conceito e na segunda, o conceito em si.
A partir do segundo pedido, usei o comando:
Repita o processo anterior para este texto.
No terceiro pedido, recebi a mensage de:
O comando fornecido solicita que o processo anterior seja repetido. No entanto, não há processo anterior no histórico de conversas fornecido. [Me] Para obter uma resposta abrangente, forneça o processo anterior que você gostaria que fosse repetido.
Desta forma, alternei entre o primeiro e segundo comando até o último arquivo, que veio com a formatação Markdown deformada. Então, pedi uma última revisão com o comando:
Refaça a tabela para uma melhor formatação em Markdown.
A publicação final continua uma exportação simples, do formato org mode para HTML, usando o Emacs.