Qual é o uso de surrogate key em SQL?

Melhor resposta

Uma chave primária é uma restrição especial em uma coluna ou conjunto de colunas. Uma restrição de chave primária garante que as colunas assim designadas não tenham valores NULL e que cada valor seja único. Fisicamente, uma chave primária é implementada pelo sistema de banco de dados usando um índice único, e todas as colunas na chave primária devem ter sido declaradas NOT NULL. Uma tabela pode ter apenas uma chave primária, mas pode ser composta (consistir em mais de uma coluna).

Uma chave substituta é qualquer coluna ou conjunto de colunas que podem ser declaradas como a chave primária em vez de a “real” ou natural chave . Às vezes, pode haver várias chaves naturais que podem ser declaradas como a chave primária, e todas são chamadas de chaves candidatas . Portanto, um substituto é uma chave candidata. Na verdade, uma tabela pode ter mais de uma chave substituta, embora isso seja incomum. O tipo mais comum de surrogate key é um inteiro de incremento, como uma coluna auto\_increment no MySQL, ou uma sequência no Oracle, ou uma coluna de identidade no SQL Server.

Vantagens de usar chaves substitutas

Conforme mencionado, uma chave substituta sacrifica parte do contexto original dos dados. No entanto, pode ser extremamente útil para fins analíticos pelos seguintes motivos:

  • As chaves substitutas são exclusivas. Porque as chaves substitutas são gerado pelo sistema, é impossível para o sistema criar e armazenar um valor duplicado.
  • Chaves substitutas aplicam regras uniformes a todos os registros. O valor da chave substituta é o resultado de um programa, que cria o valor gerado pelo sistema. Qualquer chave criada como resultado de um programa aplicará regras uniformes para cada registro.
  • Chaves substitutas resistem ao teste do tempo. Porque substitutas as chaves não têm qualquer contexto ou significado comercial, não haverá necessidade de alterá-las no futuro.
  • As chaves substitutas permitem valores ilimitados. Chaves sequenciais, de carimbo de data / hora e aleatórias não têm limites práticos para combinações únicas.

Resposta

A maioria dos bancos de dados hoje são realmente sistemas de gerenciamento de banco de dados (DBMS). Eles consistem em dois componentes:

  1. o banco de dados adequado , que armazena os dados, junto com metadados, como relações, restrições , etc…
  2. a interface do usuário, onde o desenvolvedor e / ou administrador do banco de dados insere comandos SQL.

A maioria dos bancos de dados vem com um utilitário de linha de comando para fazer a interface com o banco de dados. Por exemplo, o MySQL fornece um shell SQL simples com recursos de edição de linha de entrada. Ele suporta o uso interativo e não interativo. Quando usados ​​interativamente, os resultados da consulta são apresentados em um formato de tabela ASCII. Quando usado de forma não interativa (por exemplo, como um filtro), o resultado é apresentado em formato separado por tabulação. O formato de saída pode ser alterado usando opções de comando.

Para invocar o shell do MySQL a partir do prompt de seu interpretador de comandos, você deve inserir algo como o seguinte:

shell> mysql --user=user\_name --password db\_name

Enter password: your\_password

Depois de fazer login em seu banco de dados, você pode executar comandos, como uma consulta SELECT , contra ele:

shell>SELECT * FROM shop ORDER BY article;

+---------+--------+-------+

| article | dealer | price |

+---------+--------+-------+

| 1 | A | 3.45 |

| 1 | B | 3.99 |

| 2 | A | 10.99 |

| 3 | B | 1.45 |

| 3 | C | 1.69 |

| 3 | D | 1.25 |

| 4 | D | 19.95 |

+---------+--------+-------+

Você também pode colocar suas instruções SQL em um arquivo e então diga ao mysql para ler sua entrada desse arquivo. Para fazer isso, você deve criar um arquivo de texto que contém as instruções que deseja executar. Em seguida, invoque mysql conforme mostrado aqui:

shell> mysql db\_name

Alguns fornecedores de banco de dados também oferecem clientes e utilitários GUI, além de um comando- cliente de linha. Mantendo o MySQL, seu cliente GUI é o MySQL Workbench. Disponível no Windows, Linux e Mac OS X, o MySQL Workbench é direcionado a arquitetos de banco de dados, desenvolvedores e DBAs. Ele fornece modelagem de dados, desenvolvimento de SQL e ferramentas de administração abrangentes para configuração de servidor, administração de usuário, backup e muito mais.

Outras ferramentas

Além das ferramentas oferecidas pelos próprios fornecedores de banco de dados, existem muitas outras ofertas comerciais e de código aberto disponíveis para todos os tipos de banco de dados e serviços em nuvem. Em termos de diferenças, tanto os produtos gratuitos quanto os comerciais são adequados para sua finalidade.O que você escolherá geralmente será mais uma função do tipo de trabalho que você faz do que da usabilidade.

Tendo trabalhado um pouco com software livre e produtos comerciais, descobri que progressivamente gravitei em direção ao depois, à medida que a eficiência do trabalho se tornou mais importante para o meu trabalho como consultor de TI. Minha opinião pessoal é que os produtos comerciais podem torná-lo mais produtivo, pois otimizam tarefas comuns para aumentar a eficiência.

Como resultado, tenho usado o Navicat Premium desenvolvimento de banco de dados e cliente de administração há vários anos. Embora o Navicat crie clientes para todos os bancos de dados populares, o Navicat Premium é a única ferramenta que usei capaz de se conectar simultaneamente aos bancos de dados MySQL, MariaDB, MongoDB, SQL Server, Oracle, PostgreSQL e SQLite em um único aplicativo. Também é totalmente compatível com bancos de dados em nuvem como Amazon RDS, Amazon Aurora, Amazon Redshift, Microsoft Azure, Oracle Cloud e Google Cloud.

Aqui está uma captura de tela da tela principal do Windows:

Todos os produtos Navicat estão disponíveis para Linux e macOS, bem como Windows.

Em particular, o Editor de consultas me ajuda a escrever minhas consultas mais rápidas, incluindo destaque de sintaxe, fragmentos de código reutilizáveis ​​e personalizáveis, bem como sugestão automática, ilustrada abaixo:

Ele ainda possui um criador de consultas, que é de grande benefício para usuários menos experientes. Ele permite que você crie e edite consultas visualmente com praticamente nenhum conhecimento de SQL!

Espero que ajude!

Atenciosamente,

Adam

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *