Dados Relacionais, Normalização, SQL e Objetos de Banco de Dados
Voltar para Learn
DP-900Capítulo 3

Estudo para a Certificação Microsoft DP-900

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

Escudo neon de Azure Data Fundamentals cercado por tabelas relacionais, SQL, chaves e índices

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.

Diagrama de conceitos de banco de dados relacional.
Figura 1 - Relacionamentos, chaves e um esquema de varejo.

Resumo do tópico

Chaves primárias identificam linhas; chaves estrangeiras conectam linhas relacionadas entre tabelas normalizadas.

5. Princípios da normalização

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.

Diagrama de conceitos de banco de dados relacional.
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.

Diagrama de conceitos de banco de dados relacional.
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.

Diagrama de conceitos de banco de dados relacional.
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.

Diagrama de conceitos de banco de dados relacional.
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.