Blog

Postado em em 20 de outubro de 2023

Diagrama de Banco de Dados no SQL – Com e Sem Constraints

Aprenda o que é e como construir um Diagrama de Banco de Dados no SQL. Entenda a diferença entre um diagrama com e sem constraints.

Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo ou acesse o nosso canal do YouTube!

Para receber por e-mail o(s) arquivo(s) utilizados na aula, preencha:

Diagrama de Banco de Dados no SQL

Na aula de hoje, você aprenderá o que é um Diagrama de Banco de Dados no SQL e como criar esse diagrama.

Também vou te mostrar como visualizar o diagrama de banco de dados para que você possa compreender a diferença entre o diagrama com e sem constraints.

Para isso, faremos a criação de bancos de dados com e sem constraints em SQL e veremos como o diagrama de banco de dados no SQL oferece um esquema visual das tabelas, tornando mais prático e fácil visualizar as informações.

Além disso, nesta aula, usaremos o SQL Server. Se quiser seguir exatamente como será demonstrado aqui, você pode aprender a instalá-lo a partir desta aula.

Após a instalação, faça o download do material disponível e vamos começar esta aula sobre diagrama de banco de dados no SQL.

O que é um Diagrama de Banco de Dados no SQL?

Um Diagrama de Banco de Dados é um esquema visual que representa todas as tabelas em um banco de dados específico, mostrando como essas tabelas se relacionam entre si..

A visualização do diagrama de banco de dados irá variar de acordo com a presença ou não de constraints no nosso banco de dados.

Constraints em SQL

Em resumo, as constraints em SQL são regras estabelecidas em um banco de dados para assegurar que os valores inseridos obedeçam a condições específicas.

Por exemplo, podemos desejar que a coluna nome de uma tabela específica não contenha valores duplicados ou que a coluna CPF seja definida como chave primária da tabela.

Criação de Banco de Dados Sem Constraints

Para visualizarmos nosso diagrama de banco de dados no SQL, precisamos primeiro criar um banco de dados. Como queremos destacar a diferença entre um banco de dados com constraints e um sem, precisaremos criar dois bancos de dados.

Começaremos criando o banco de dados sem constraints. Para isso, execute o seguinte comando:

CREATE DATABASE BDSemConstraints;

Em seguida, para garantir que as tabelas sejam adicionadas a este banco de dados, utilizaremos o comando:

USE BDSemConstraints;

Em seguida, podemos criar o nosso banco de dados sem restrições, sem constraints, que terá três tabelas: Cliente, Gerente e Contratos. Essas tabelas não terão nenhuma restrição, e definiremos apenas o nome das colunas de cada uma e o tipo de dados de cada coluna.

CREATE TABLE Cliente(
                id_cliente INT,
                nome_cliente VARCHAR(100),
                genero VARCHAR(100),
                data_de_nascimento DATE,
                cpf VARCHAR(100)
);

CREATE TABLE Gerente(
                id_gerente INT,
                nome_gerente VARCHAR(100),
                data_contratacao VARCHAR(100),
                salario FLOAT
);

CREATE TABLE Contratos(
                id_contrato INT,
                data_assinatura DATE,
                id_cliente INT,
                id_gerente INT,
                valor_contrato FLOAT
);

Após a criação, podemos visualizar essas tabelas utilizando o comando SELECT * FROM Nome_da_Tabela. Por exemplo, para visualizar a tabela Cliente, execute o seguinte comando:

SELECT * FROM Cliente;

Que nos retornará a tabela com as colunas criadas.

Tabela criada

Como Visualizar o Diagrama de Banco de Dados – Sem Constraints

Com o banco de dados e as tabelas criadas, podemos visualizar o diagrama desse banco de dados. Para isso, vá em Pesquisador de Objetos e, caso seu banco de dados ainda não esteja aparecendo, selecione o servidor e clique em atualizar.

Atualizar banco de dados

Feito isso, seu banco de dados será exibido, e dentro dele estará o diagrama de banco de dados. Clique no sínal de mais ao lado do nome do banco de dados para acessar mais opções.

Diagrama de Banco de Dados sem constraints

Clique com o botão direito do mouse sobre Diagramas de Banco de Dados e selecione Novo Diagrama de Banco de Dados. Na janela que será aberta, clique em Sim.

Diagrama de Banco de Dados sem constraints

Após a confirmação, uma lista com as suas tabelas disponíveis para serem adicionadas ao diagrama de banco de dados será exibida. Selecione todas elas (pode fazer isso segurando a tecla Ctrl pressionada e clicando com o botão esquerdo do mouse) e clique em Adicionar.

Diagrama de Banco de Dados sem constraints

Assim teremos o nosso diagrama de banco de dados no SQL será criado e estará pronto para ser visualizado.

Diagrama de Banco de Dados sem constraints

Repare que ele exibe o nome das nossas tabelas e as colunas presentes em cada uma delas. Essa é uma funcionalidade muito útil, especialmente quando estamos trabalhando com várias tabelas, pois permite uma visualização resumida de todas elas.

Também é importante notar que as três tabelas são independentes, ou seja, não existe nenhuma conexão estabelecida entre elas.

Criação de Banco de Dados Com Constraints

Agora veremos a diferença entre um banco de dados com constraints e um sem constraints. Para criar o banco de dados, seguiremos o mesmo procedimento que utilizamos para criar o banco de dados sem constraints, com a diferença de que o código utilizado será o seguinte:

CREATE DATABASE BDComConstraints;

USE BDComConstraints;

CREATE TABLE Cliente(
                id_cliente INT,
                nome_cliente VARCHAR(100) NOT NULL,
                genero VARCHAR(100) NOT NULL,
                data_de_nascimento DATE NOT NULL,
                cpf VARCHAR(100) NOT NULL,
                CONSTRAINT dcliente_id_cliente_pk PRIMARY KEY(id_cliente)
);

CREATE TABLE Gerente(
                id_gerente INT,
                nome_gerente VARCHAR(100) NOT NULL,
                data_contratacao VARCHAR(100) NOT NULL,
                salario FLOAT NOT NULL,
                CONSTRAINT dgerente_id_gerente_pk PRIMARY KEY(id_gerente)
);

CREATE TABLE Contratos(
                id_contrato INT,
                data_assinatura DATE,
                id_cliente INT,
                id_gerente INT,
                valor_contrato FLOAT,
                CONSTRAINT fcontratos_id_contrato_pk PRIMARY KEY(id_contrato),
                CONSTRAINT fcontratos_id_cliente_fk FOREIGN KEY(id_cliente) REFERENCES Cliente(id_cliente),
                CONSTRAINT fcontratos_id_gerente_fk FOREIGN KEY(id_gerente) REFERENCES Gerente(id_gerente)
);

Veja que a estrutura do código é a mesma. Primeiro, criamos o banco de dados e, em seguida, o selecionamos para uso, e criamos as mesmas três tabelas: Cliente, Gerente e Contratos.

No entanto, agora podemos notar que dentro das tabelas, além do nome das colunas e do tipo de dado que elas armazenam, existem regras, conhecidas como constraints, que estabelecem condições para cada uma dessas colunas e determinam quais dados são aceitos.

Vamos analisar a criação de cada tabela individualmente:

Tabela Cliente:

CREATE TABLE Cliente(
                id_cliente INT,
                nome_cliente VARCHAR(100) NOT NULL,
                genero VARCHAR(100) NOT NULL,
                data_de_nascimento DATE NOT NULL,
                cpf VARCHAR(100) NOT NULL,
                CONSTRAINT dcliente_id_cliente_pk PRIMARY KEY(id_cliente)
);

Nesta tabela, estamos definindo, além dos valores de cada coluna, que eles não podem ser nulos/vazios, usando a restrição NOT NULL.

Além disso, determinamos que a coluna id_cliente será a primary key dessa tabela, uma coluna que identifica de forma única cada linha da tabela e nos auxilia a conectá-la com outra tabela do banco de dados.

Tabela Gerente:

CREATE TABLE Gerente(
                id_gerente INT,
                nome_gerente VARCHAR(100) NOT NULL,
                data_contratacao VARCHAR(100) NOT NULL,
                salario FLOAT NOT NULL,
                CONSTRAINT dgerente_id_gerente_pk PRIMARY KEY(id_gerente)
);

A tabela Gerente segue a mesma lógica da de Cliente com as restrições de NOT NULL. E nela temos a coluna id_gerente definida como primary key.

Tabela Contratos:

CREATE TABLE Contratos(
                id_contrato INT,
                data_assinatura DATE,
                id_cliente INT,
                id_gerente INT,
                valor_contrato FLOAT,
                CONSTRAINT fcontratos_id_contrato_pk PRIMARY KEY(id_contrato),
                CONSTRAINT fcontratos_id_cliente_fk FOREIGN KEY(id_cliente) REFERENCES Cliente(id_cliente),
                CONSTRAINT fcontratos_id_gerente_fk FOREIGN KEY(id_gerente) REFERENCES Gerente(id_gerente)
);

Na tabela Contratos temos basicamente que a coluna id_contrato é a primary key e as colunas id_cliente e id_gerente serão foreign keys (chaves estrangeiras) que fazem referência as chaves primárias das tabelas Cliente e Gerente.

Visualizar o Diagrama de Banco de Dados – Com Constraints

Com o banco de dados com constraint criado, podemos ir em Pesquisador de Objetos para visualizar o diagrama correspondente a esse banco de dados. Caso ele não esteja aparecendo ainda, faça como anteriormente, selecione o servidor e clique em atualizar.

Quando o banco de dados com constraints estiver disponível, clique no ícone de mais, vá até Diagramas de Banco de Dados e crie um Novo Diagrama de Banco de Dados.

Diagrama de Banco de Dados Com constraints

Selecione novamente as três tabelas existentes e clique em Adicionar.

Diagrama de Banco de Dados Com constraints

Repare que temos um Diagrama de Banco de Dados diferente do que tínhamos anteriormente. Agora podemos visualizar quais colunas são as Primary Keys de cada tabela, sinalizada pelo ícone de chave ao lado do nome da coluna.

Além disso, o diagrama já exibe as conexões entre essas tabelas. Temos duas conexões: uma entre Contratos e Cliente, que se dá pela coluna id_cliente, e outra entre Contratos e Gerente, que ocorre pela coluna id_gerente.

Esse é um banco de dados mais bem estruturado e mais confiável, pois agora estamos determinando para o SQL que existe uma relação entre essas tabelas.

Dessa forma, nesse banco de dados, não seria possível adicionar dados à tabela Contrato com o id de um cliente ou gerente que não exista, pois o SQL não permitirá. Por outro lado, no banco de dados sem constraints, isso seria possível, tornando seu banco de dados menos preciso, coerente e seguro.

Conclusão – Diagrama de Banco de Dados no SQL

Na aula de hoje eu te mostrei o que é um diagrama de banco de dados no SQL e como criar um a partir do seu banco de dados.

Além disso, você aprendeu sobre constraints e qual a diferença entre um banco de dados com e sem constraints, e como podemos visualizar isso através do diagrama de banco de dados.

Os diagramas de banco de dados são uma ferramenta muito importante no SQL, que te auxiliará a obter uma melhor visualização e compreensão das tabelas presentes no seu banco de dados de forma rápida, prática e eficiente.

Hashtag Treinamentos

Para acessar outras publicações de SQL, clique aqui!


Quer aprender mais sobre SQL com um minicurso básico gratuito?

Quer sair do zero no Python e virar uma referência na sua empresa? Inscreva-se agora mesmo no Python Impressionador