IRONSOFTWAREHOME

Banco de Dados SQL em C#: Um Olhar Mais Profundo Através da Lição de Tim Corey

C# App Start To Finish Lesson 08 - SQL Database Design

Tim Corey

1h 08m 25s

No mundo do desenvolvimento de aplicações C#, trabalhar com um banco de dados SQL é uma das habilidades mais importantes que você pode aprender. Em seu vídeo "C# App Start To Finish Lesson 08 – SQL Database Design", Tim Corey percorre o processo de projetar um banco de dados relacional, criar tabelas, definir relacionamentos e escrever procedimentos armazenados.

Neste artigo, iremos dar uma olhada mais profunda na lição de Tim e explicar as ideias exatamente como ele as apresenta. Se você quer um melhor entendimento de como uma aplicação C# se conecta ao SQL Server e como estruturar seu banco de dados corretamente, o vídeo de Tim oferece um excelente guia.

Introdução ao Design de Banco de Dados

Aos 1:00, Tim começa lembrando os espectadores que eles receberão todos os scripts e arquivos no pacote, incluindo os scripts do banco de dados. Ele enfatiza que o objetivo não é se tornar um especialista completo em SQL Server em uma lição, mas entender o design e como pensar na estruturação de dados. Tim então passa diretamente para o diagrama do banco de dados.

Entendendo o Diagrama do Banco de Dados

Aos 1:52, Tim destaca a tabela de membros da equipe e explica que ela não armazena diretamente o nome ou sobrenome de uma pessoa. Em vez disso, ela armazena um ID de Pessoa que se liga de volta à tabela de Pessoas. Este é um exemplo de um relacionamento um-para-muitos em um banco de dados relacional, onde uma pessoa pode pertencer a várias equipes.

Tim dá um exemplo prático: uma pessoa pode fazer parte de mais de uma equipe se vários torneios acontecerem simultaneamente. Isso evita duplicação e mostra como usar uma chave primária ajuda você a consultar dados de forma eficiente. Tim enfatiza que dados duplicados são prejudiciais porque levam a informações conflitantes, como endereços de e-mail inconsistentes.

Ele explica que a abordagem de design é usar IDs em vez de armazenar dados duplicados completos. Esse é o fundamento de um bom design de banco de dados SQL Server.

Evitando Colunas Duplicadas

Aos 4:48, Tim fala sobre por que você deve evitar armazenar múltiplos endereços de e-mail em colunas separadas como Email2 ou Email3. Em vez disso, ele sugere criar uma tabela de endereços de e-mail separada que inclui colunas para Person ID e Email Address. Isso permite que uma pessoa tenha múltiplos endereços de e-mail sem complicar a tabela de Pessoas.

Tim explica que o design do banco de dados é um equilíbrio entre simplicidade e flexibilidade. Para este tutorial, ele decide armazenar apenas um e-mail e um número de telefone, mantendo o design limpo e prático.

Criando um Banco de Dados no SQL Server Management Studio

Às 6:44, Tim muda para o SQL Server Management Studio e explica que está usando o SQL Server 2016 Developer Edition, que é gratuito e tem as mesmas funcionalidades da Enterprise Edition. Ele observa que não pode ser usado em produção, mas é perfeito para desenvolvimento em uma máquina local.

Tim explica duas maneiras de criar um banco de dados SQL Server: através do diálogo do SSMS ou usando uma consulta SQL. Ele prefere o método de consulta porque é mais rápido. O comando que ele usa é:

create database tournaments;
Text

Ele explica que o ponto e vírgula é importante e deve ser usado no final de cada instrução SQL. Após criar o banco de dados, Tim mostra como atualizar a janela do SSMS para ver o novo banco de dados aparecer.

Visualizando Tabelas e Design de Tabelas

Às 12:06, Tim menciona que já criou todas as tabelas usando scripts. Em seguida, demonstra como abrir o designer de tabelas no SSMS. Tim explica que scripts SQL podem ser intimidantes para desenvolvedores C#, e o designer ajuda a editar tabelas visualmente sem precisar memorizar a sintaxe SQL.

Tim usa a tabela Prizes como exemplo. Ele explica como definir a chave primária, escolher tipos de dados e gerenciar valores nulos. Ele também observa que a chave primária ajuda o SQL a otimizar o armazenamento e a recuperação de dados da tabela. Sem uma chave primária, o SQL cria um "heap", o que torna as consultas mais lentas.

IDs de Auto-Incremento

Às 15:36, Tim explica como fazer a coluna de ID auto-incrementar usando a Especificação de Identidade. Ele define o incremento e a semente para 1. Tim enfatiza que isso dá a cada linha um identificador único e ajuda o SQL a organizar os dados de maneira eficiente.

Ele aponta que essa abordagem oferece um design altamente otimizado com esforço mínimo, o que é perfeito para desenvolvedores C# que querem um banco de dados SQL Server sólido sem ajustes complexos.

Entendendo Tipos de Dados

Às 18:09, Tim explica os diferentes tipos de string SQL: varchar, nvarchar e nvarchar(max). Ele descreve:

  • Char: armazena caracteres

  • Var: comprimento variável (até um número máximo)

  • N: suporte Unicode para caracteres internacionais

Tim explica que nvarchar usa mais espaço de armazenamento, mas oferece suporte a idiomas globais, enquanto varchar é ideal para texto apenas em inglês. Ele também explica que nvarchar(max) é usado para strings muito grandes como JSON, que podem ser armazenadas e posteriormente recuperadas por um aplicativo.

Tipos de Dados Money e Float

Às 24:00, Tim compara tipos de dados SQL com tipos C#. Ele usa money para valores monetários (semelhante a decimal em C#) e float para percentuais (semelhante a double). Isso ajuda desenvolvedores C# a associar tipos SQL com seus tipos de programação.

Relacionamentos entre Tabelas

Às 25:04, Tim demonstra como criar relacionamentos usando chaves estrangeiras. Ele abre o editor de Relacionamentos e explica que a tabela primária contém o ID real, enquanto a tabela estrangeira referencia esse ID.

Ele também explica a ideia de exclusão em cascata, que remove automaticamente registros relacionados quando o registro pai é excluído. Tim adverte que os IDs devem ser tratados como imutáveis, o que significa que você nunca deve alterá-los uma vez criados.

Criando uma Nova Tabela

Às 29:30, Tim demonstra a criação de uma nova tabela usando o editor do SSMS. Ele constrói uma tabela de teste de pessoa com colunas como:

  • Primeiro nome

  • Sobrenome

  • Endereço de Email

  • Número de Telefone

  • Número de Filhos

  • Data de Criação

Tim mostra como definir valores padrão, como definir Número de Filhos como 0, e usar getdate() para definir o horário atual. Ele explica que getutcdate() é melhor para aplicações que abrangem fusos horários.

Editando Dados na Tabela

Às 39:39, Tim mostra como editar linhas diretamente no SSMS. Ele adiciona registros de exemplo e explica que mesmo inserções falhas ainda consomem valores de ID. Ele aconselha deixar o SQL continuar a sequência de auto-incremento e não se preocupar com IDs faltantes.

Consultas SQL Básicas

Às 44:23, Tim ensina a sintaxe básica de consulta:

  • SELECT \ FROM table*

  • WHERE

  • LIKE

  • ORDER BY

  • Alias de Coluna usando AS

Ele observa que SELECT * é bom para aprender, mas em aplicativos reais você deve especificar colunas para desempenho e clareza.

Procedures Armazenadas

Às 50:33, Tim introduz stored procedures. Ele explica que stored procedures permitem acessar a lógica do banco de dados de forma segura e prevenir ataques de injeção SQL. Tim prefere stored procedures ao acesso direto à tabela ou views porque fornecem melhor segurança.

Ele mostra como criar uma stored procedure que recupera prêmios pelo ID do torneio. Ele explica parâmetros, blocos BEGIN e END, e a instrução NOCOUNT ON.

Executando Procedures Armazenadas

Às 58:04, Tim cria uma stored procedure para obter pessoas de teste pelo sobrenome e demonstra como executá-la usando:

EXEC dbo.SP_TestPerson_GetByLastName 'Corey'
Text

Ele explica que o esquema dbo é o padrão e que o SQL Server não diferencia maiúsculas de minúsculas para nomes de procedures.

Considerações finais

Tim em seu vídeo, conclui que o design do banco de dados SQL pode parecer complicado, mas os conceitos principais são simples. Ele encoraja os espectadores a praticar e explorar, e dá uma prévia da próxima lição onde ele conectará o banco de dados ao código C#.

Earn More by Sharing What You Love

Do you create content for developers working with .NET, C#, Java, Python, or Node.js? Turn your expertise into extra income!

Let's Stay in Touch!

Join our newsletter, you’ll get exclusive access on article updates. We value your privacy

Key in blue circle

Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.

Your trial license will be sent to your email address

Sem limitações. 100% desbloqueado. Sem cartão de crédito.

bullet_checkedNão é necessário cartão de crédito nem criação de conta.Sem limitações. 100% desbloqueado. Sem cartão de crédito.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Agende sua consulta sem compromisso.
Preencha o formulário abaixo ou envie um e-mail para sales@ironsoftware.com
Os seus dados serão sempre mantidos em sigilo.
Aprovado por milhões de engenheiros em todo o mundo.
Logotipos dos clientes da Iron Software
Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.
Não é necessário cartão de crédito nem criação de conta.