2 REDE – 28/02/2024 – BD – Modelo conceitual, físico e linguagem SQL – Blog Gerardão

2 REDE – 28/02/2024 – BD – Modelo conceitual, físico e linguagem SQL

modelo conceitual é uma representação abstrata dos dados, que busca detalhar as necessidades do usuário e as regras de negócio. Ele é independente de qualquer tecnologia ou sistema de gerenciamento de banco de dados.

Nesse modelo, a ideia é representar graficamente “objetos”, suas “propriedades” e “ações”, por meio de entidadesatributos e relacionamentos, respectivamente. Para isso, usamos figuras como retângulos e losangos.

modelo lógico, por sua vez, é uma representação mais detalhada do modelo conceitual, que busca descrever como os dados serão armazenados no banco de dados. Ele identifica as entidades, os atributos, as chaves primárias e estrangeiras, e os relacionamentos entre as entidades.

modelo físico é a representação mais próxima do banco de dados real, considerando as características específicas do sistema de gerenciamento de banco de dados que será utilizado. Ele descreve como os dados serão armazenados fisicamente, incluindo detalhes como o tipo de dadotamanhoíndices, entre outros.

Linguagem SQL – Structured Query Language

A linguagem SQL é o recurso mais conhecido por DBAs e programadores para a execução de comandos em bancos de dados relacionais. É por meio dela que criamos tabelas, colunas, índices, atribuímos permissões a usuários, bem como realizamos consultas a dados. Enfim, é utilizando a SQL que “conversamos” com o banco de dados.

 A linguagem SQL é organizada em subconjuntos, cada um com propósitos bem definidos:

  • DQL – Linguagem de Consulta de Dados – Define o comando utilizado para que possamos consultar (SELECT) os dados armazenados no banco;
  • DML – Linguagem de Manipulação de Dados – Define os comandos utilizados para manipulação de dados no banco (INSERT, UPDATE e DELETE);
  • DDL – Linguagem de Definição de Dados – Define os comandos utilizados para criação (CREATE) de tabelas, views, índices, atualização dessas estruturas (ALTER), assim como a remoção (DROP);
  • DCL – Linguagem de Controle de Dados – Define os comandos utilizados para controlar o acesso aos dados do banco, adicionando (GRANT) e removendo (REVOKE) permissões de acesso;
  • DTL – Linguagem de Transação de Dados – Define os comandos utilizados para gerenciar as transações executadas no banco de dados, como iniciar (BEGIN) uma transação, confirmá-la (COMMIT) ou desfazê-la (ROLLBACK).

Chave primária

A chave primária, ou primary key, é o conceito mais básico relacionado à organização em um banco de dados. Toda tabela possuirá uma, e somente uma, chave primária. Essa chave é utilizada como identificador único da tabela, sendo representada por aquele campo (ou campos) que não receberá valores repetidos.

Por causa disso, existe uma lista de características que deve ser levada em consideração ao definir uma chave primária:

  1. Chaves primárias não podem ser nulas;
  2. Cada registro na tabela deve possuir uma, e somente uma, chave primária;
  3. Normalmente, chaves primárias são incrementadas automaticamente pelo banco de dados, ou seja, não há necessidade de passarmos esse valor em um INSERT. Entretanto, essa é uma opção configurada na criação da base de dados que não é obrigatória. Nos casos em que ela (incremento automático) não é definida, é preciso garantir que não haverá valores repetidos nessa coluna;
  4. São as chaves para o relacionamento entre entidades ou tabelas da base de dados. Assim haverá na tabela relacionada uma referência a essa chave primária (que será, na tabela relacionada, a chave estrangeira).

Para criarmos uma chave primária precisamos de um código como o da figura abaixo:

Figura 1

Vale ressaltar que a chave primária é essencial para o funcionamento da base de dados, representando um registro único que facilita buscas e garante que cada valor dentro da tabela será diferente do outro.

Chave estrangeira

A chave estrangeira, ou foreign key, é um conceito ligeiramente diferente. Ela não diz respeito, especificamente, a uma tabela, mas sim a um relacionamento entre tabelas. De forma sucinta, a chave estrangeira é uma referência em uma tabela a uma chave primária de outra tabela. Para facilitar a compreensão, tomemos como exemplo duas tabelas: Pessoa Carro. Para montarmos um relacionamento entre elas poderíamos ter na tabela Carro o campo ID_Pessoa fazendo referência à chave primária da tabela Pessoa.

Diferentemente da chave primária, a chave estrangeira:

  1. Pode ser nula (NOT NULL);
  2. É um campo em uma tabela que faz referência a um campo que é chave primária em outra tabela;
  3. É possível ter mais de uma (ou nenhuma) em uma tabela.

Um alerta: embora não haja, efetivamente, nenhum problema das chaves estrangeiras aceitarem o valor null, tal característica pode gerar o que é chamado de registro órfão, isto é, um registro sem dados para um determinado relacionamento. Por exemplo, um registro de Pessoa que não possui Carro. Embora comum na realidade, é preciso levar em consideração essa regra de negócio na aplicação para evitar problemas.

A criação de chaves estrangeiras em uma tabela se dá de duas formas: a Figura 2 mostra a adição da chave estrangeira diretamente quando criamos a tabela, enquanto na Figura 3 vemos a utilização do comando ALTER TABLE para inserir essa constraint em uma tabela já existente.

Figura 2
Figura 3

Os comandos das Figuras 2 e 3 fazem a mesma coisa, mas por caminhos diferentes. A chave estrangeira gerada é a mesma, bem como o relacionamento entre as tabelas Pessoa e Carro.

EXERCÍCIOS

  • 1. Qual a diferença mais notável entre o modelo conceitual e o modelo lógico?
  • 2. Qual aa diferença mais notável entre o modelo lógico e o modelo físico?
  • 3. Utilize um dos 03 modelos de banco de dados para modelar um pequeno:
  • 3.a. Sistema de agendamentos em uma barbearia.
  • 3. b. Sistema de cadastro de produtos de uma mercearia.
  • 3. c. Sistema de agendamento e controle de projetores da escola Gerardo José.
  • 3. d Sistema de agendamento e controle das chaves dos laboratórios da escola Gerardo José

Deixe um comentário