Dados Relacionais, Normalização, SQL e Objetos de Banco de Dados
Tabelas relacionais, chaves, normalização, dialetos SQL, DDL, DCL, DML, junções, exibições, procedimentos armazenados e compensações de desempenho dos índices
Tempo de estudo sugerido: 70 minutos • Nível iniciante • Alinhado ao plano de estudos DP-900 e à documentação oficial do Microsoft Learn
Por João Ricardo Dutra••Material integral
1. Por que o modelo relacional existe
Os primeiros aplicativos costumavam armazenar dados em estruturas proprietárias difíceis de compartilhar, manter e otimizar. O modelo relacional substituiu esses formatos isolados por uma representação padronizada que vários aplicativos podem consultar. As tabelas tornam as informações estruturadas intuitivas, flexíveis e eficientes.
Organizações usam bancos relacionais em estoque, comércio eletrônico, operações financeiras e cadastros críticos de clientes. Eles são especialmente adequados quando fatos relacionados devem seguir regras explícitas e permanecer consistentes.
Resumo do tópico
O modelo relacional padroniza dados estruturados para que os aplicativos possam armazená-los, relacioná-los e consultá-los com consistência.
2. Entidades, tabelas, linhas e colunas
Uma entidade é um objeto ou evento do mundo real que vale a pena registrar, como cliente, produto, pedido ou item de pedido. Cada tipo de entidade vira uma tabela, cada linha representa uma instância e as colunas armazenam seus atributos.
Dados relacionais são estruturados: as linhas de uma tabela compartilham as mesmas colunas. Um valor opcional, como nome do meio, pode usar uma coluna anulável; NULL significa valor ausente ou desconhecido, não texto vazio nem zero.
Resumo do tópico
Tabelas representam tipos de entidade, linhas representam instâncias e colunas armazenam atributos definidos de forma consistente.
3. Tipos de dados e restrições de coluna
Uma coluna possui um tipo de dados que limita valores válidos e orienta armazenamento e operações. Textos podem usar tipos de tamanho fixo ou variável, preços usam decimais, quantidades usam inteiros e datas usam tipos de data e hora.
Os nomes exatos variam entre mecanismos, embora conceitos padronizados pela ANSI sejam amplamente suportados. Restrições como NOT NULL tornam um valor obrigatório; sem ela, NULL é permitido.
Resumo do tópico
Tipos de dados e restrições protegem o significado e a validade dos valores armazenados em cada coluna.
4. Relacionamentos, chaves e um esquema de varejo
As tabelas se tornam relacionais por meio de chaves. A chave primária identifica uma linha de forma exclusiva. A chave estrangeira armazena a chave primária de uma linha relacionada, como CustomerID em um pedido ou ProductID em um item.
Um esquema de varejo pode separar Cliente, Produto, Pedido e ItemPedido, preservando as conexões. Isso evita repetir todos os dados do cliente e do produto em cada transação.
Figura 1 - Relacionamentos, chaves e um esquema de varejo.
Normalização é o processo de refatorar o esquema para reduzir duplicação e favorecer a integridade. Uma sequência prática separa cada entidade em sua tabela, cada atributo discreto em sua coluna, atribui uma chave primária a cada linha e conecta entidades com chaves estrangeiras.
Uma planilha de vendas desnormalizada repete endereços de clientes e preços de produtos. Após normalizar, o endereço muda uma vez em Cliente e o preço uma vez em Produto, reduzindo anomalias de atualização e cópias inconsistentes.
Figura 2 - Princípios da normalização.
Resumo do tópico
A normalização separa entidades e atributos para que cada fato seja armazenado uma vez e conectado por chaves.
6. Integridade referencial e chaves compostas
Um SGBDR pode impor integridade referencial rejeitando uma chave estrangeira sem linha correspondente. Isso impede que um pedido aponte para um cliente inexistente.
Uma chave pode usar várias colunas. OrderID mais LineNumber pode identificar exclusivamente um item; juntos formam uma chave primária composta. Na terceira forma normal, cada atributo não chave depende da chave, de toda a chave e de nada além da chave.
Resumo do tópico
A integridade referencial preserva relacionamentos válidos, enquanto chaves compostas identificam linhas por uma combinação exclusiva.
7. Padrões, mecanismos e dialetos SQL
SQL é a linguagem padrão de comunicação com SGBDRs. É usada pelo Microsoft SQL Server, ,,, MySQL, PostgreSQL, Oracle e outros mecanismos.
A ANSI padronizou SQL em 1986 e a ISO em 1987. Extensões de fornecedores originaram dialetos: Transact-SQL nas plataformas Microsoft, extensões procedurais do PostgreSQL e PL/SQL da Oracle. O também oferece assistência de IA para escrever e entender consultas em linguagem natural.
Resumo do tópico
SQL é padronizada, mas cada plataforma acrescenta um dialeto cujos detalhes importam em produção.
8. Três famílias de instruções SQL
As instruções SQL são agrupadas por intenção. DDL altera objetos; DCL administra permissões; DML lê e modifica linhas.
CREATE, ALTER, DROP e RENAME são DDL; GRANT, DENY e REVOKE são DCL; SELECT, INSERT, UPDATE e são DML. Classificar o verbo acelera o raciocínio na DP-900.
Figura 3 - Três famílias de instruções SQL.
CREATE TABLE Product (
ProductID INT PRIMARY KEY,
ProductName VARCHAR(40) NOT NULL,
Price DECIMAL(10,2) NULL
);
Resumo do tópico
DDL define objetos, DCL controla o acesso e DML trabalha com as linhas das tabelas.
9. DDL e criação de tabelas
DDL cria, modifica, renomeia e remove objetos como tabelas, exibições e procedimentos armazenados. A definição informa nomes, tipos, nulabilidade e chaves. É recomendável que toda tabela tenha chave primária, embora o SQL não obrigue essa regra.
DROP é destrutivo: remover uma tabela elimina suas linhas junto com o objeto. A recuperação normalmente depende de backup válido, portanto exige revisão cuidadosa.
Resumo do tópico
DDL molda o esquema; CREATE e ALTER o constroem, enquanto DROP pode eliminar objetos e dados.
10. DCL e permissões
Administradores usam DCL para conceder, negar explicitamente ou revogar acesso de usuários e grupos. As permissões podem abranger leitura, inserção ou atualização de uma tabela específica.
GRANT concede, DENY bloqueia e REVOKE remove uma permissão anterior, conforme a plataforma. Isso é diferente de manipular linhas de negócio.
GRANT SELECT, INSERT, UPDATE
ON Product
TO analyst1;
Resumo do tópico
DCL expressa quem pode executar quais ações nos objetos do banco de dados.
11. Consultas DML, filtros e ordenação
SELECT recupera linhas. Listar colunas retorna apenas os campos necessários; asterisco solicita todas. WHERE limita o resultado por predicado e ORDER BY produz uma ordenação definida.
Sem ORDER BY, a ordem das linhas não é garantida. No padrão da avaliação, SELECT ProductName, Price FROM Products WHERE Price < 10 é correto: colunas antes de FROM e condição depois de WHERE.
SELECT ProductName, Price
FROM Product
WHERE Price < 10
ORDER BY ProductName;
Resumo do tópico
SELECT lê dados, WHERE filtra e ORDER BY torna a ordem de apresentação explícita.
12. Junção de tabelas relacionadas
JOIN combina colunas de tabelas relacionadas, normalmente correspondendo uma chave estrangeira à chave primária referenciada. Aliases encurtam nomes qualificados e removem ambiguidades.
Uma junção entre Pedido e Cliente retorna identificadores e datas junto com endereços de entrega sem duplicar o endereço em cada pedido.
Figura 4 - Junção de tabelas relacionadas.
SELECT o.OrderID, o.OrderDate, c.LastName, c.City
FROM SalesOrder AS o
JOIN Customer AS c ON o.CustomerID = c.CustomerID;
Resumo do tópico
JOIN percorre relacionamentos de chave para apresentar fatos de várias tabelas em um resultado.
13. INSERT, UPDATE, e predicados seguros
INSERT informa tabela e colunas e fornece valores correspondentes. Alguns dialetos aceitam vários grupos de valores. UPDATE altera valores existentes e remove linhas.
UPDATE e afetam todas as linhas quando não há WHERE. SQL não oferece uma confirmação universal; predicados, transações, backups e revisão são proteções essenciais.
INSERT INTO Product (ProductID, ProductName, Price)
VALUES (99, 'Cordless drill', 49.90);
UPDATE Customer
SET Address = '123 High Street'
WHERE CustomerID = 1;
DELETE FROM Product
WHERE ProductID = 162;
Resumo do tópico
INSERT adiciona linhas; UPDATE e exigem predicados bem delimitados para evitar mudanças amplas.
14. Exibições como tabelas virtuais reutilizáveis
Uma exibição é uma tabela virtual definida por SELECT. Ela apresenta linhas e colunas de uma ou mais tabelas subjacentes como um objeto mais simples e reutilizável.
Aplicativos consultam e filtram uma exibição como uma tabela. Uma exibição Entregas pode ocultar a junção e expor campos necessários sem armazenar outra cópia independente.
CREATE VIEW Deliveries AS
SELECT o.OrderID, o.OrderDate, c.FirstName, c.LastName, c.Address, c.City
FROM SalesOrder AS o
JOIN Customer AS c ON o.CustomerID = c.CustomerID;
Resumo do tópico
Uma exibição empacota uma consulta como tabela virtual reutilizável e simplifica dados unidos ou filtrados.
15. Procedimentos armazenados e parâmetros
Um procedimento armazenado é um conjunto nomeado de instruções SQL executado sob demanda. Ele encapsula lógica de banco utilizada repetidamente por aplicativos.
Parâmetros tornam o procedimento reutilizável. RenameProduct recebe identificador e novo nome e atualiza somente a linha correspondente. A execução varia por dialeto.
CREATE PROCEDURE RenameProduct
@ProductID INT,
@NewName VARCHAR(40)
AS
UPDATE Product
SET ProductName = @NewName
WHERE ProductID = @ProductID;
Resumo do tópico
Procedimentos armazenados centralizam ações repetíveis e aceitam parâmetros para comportamento flexível.
16. Índices: velocidade e custo
Um índice mantém valores de colunas em estrutura ordenada com referências às linhas. O otimizador pode localizar correspondências sem varrer toda a tabela. Em tabela pequena, a varredura pode ser mais barata e o índice pode ser ignorado.
Índices melhoram consultas em tabelas grandes, especialmente por colunas como SaleDate. Também consomem armazenamento e precisam de manutenção em INSERT, UPDATE e . O projeto equilibra leitura rápida e custo de gravação.
Figura 5 - Índices: velocidade e custo.
CREATE INDEX idx_ProductName
ON Product(ProductName);
Resumo do tópico
Índices aceleram leituras seletivas, mas consomem espaço e acrescentam trabalho às modificações.
17. Raciocínio da avaliação e revisão do capítulo
Os nove cenários avaliam sintaxe, normalização e escolha de objeto. Coluna anulável atende nome do meio opcional; redundância e anomalias indicam desnormalização; índice reduz grandes varreduras; e a quantidade de índices equilibra leitura e manutenção.
Crie índice em SaleDate para filtros frequentes; a terceira forma normal mantém atributos não chave dependentes somente da chave; SELECT retorna linhas e não atualiza nem exclui. Bancos relacionais combinam tabelas normalizadas, chaves, SQL, exibições, procedimentos e índices.
Resumo do tópico
Na prova, identifique se o requisito trata de estrutura, permissão, manipulação de linhas, lógica reutilizável ou desempenho de acesso.