Quais são os nomes dos conceitos destacados na tabela SQL a seguir? Se o Postgres tiver nomes específicos para eles, eu os preferiria, caso contrário, os nomes gerais do SQL seriam úteis.
Estou especialmente interessado no nome de 5 porque realmente não tenho a menor idéia.
Meus palpites/intuição são
Especificação da tabela
Fileira
Nome da coluna
Coluna
Não tenho certeza. "Campo"?
O pano de fundo dessa pergunta é que eu mantenho uma API PostgreSQL para Haskell e gostaria de dar a esses conceitos seus nomes corretos na minha API.
Se você quiser nomes de teoria relacional , então:
... e um tipo de dados é um domínio . Toda a mesa é uma relação .
Ninguém realmente usa essa linguagem embora. Mais típico seria:
A coisa toda em conjunto é geralmente chamada de tabela , mas a relação também é bastante comum.
Quaisquer que sejam os nomes que você escolher usar, não assuma que as tuplas tenham qualquer ordem natural em uma relação . Eles não.
E não coloque a ordenação de colunas em sua API. A ordenação das colunas é estável em um resultado de consulta, é claro, mas os aplicativos devem ser desencorajados de codificar as posições ordinais das colunas. Tudo bem (pseudocódigo):
mas esta é uma má, má ideia:
pois qualquer adição de uma coluna quebrará o código. Assim como mudanças menos óbvias, como alterar o tipo de dados de uma coluna.
Os aplicativos devem ser incentivados a usar interfaces de consulta que produzem um mapa de nome de campo para valor como resultado, onde os nomes de campo são descobertos a partir dos metadados do conjunto de resultados.
Para eficiência, você ainda deseja oferecer acesso ordinal. Mas o acesso ao nome do campo geralmente é preferível.
Python, por exemplo, faz isso com um objeto de resultado que pode se comportar tanto como uma matriz (acesso ordinal) quanto como um dicionário (acesso de chave).
No entanto , você omitiu a digitação de dados . BDs relacionais são fortemente tipados.
Aqui está uma definição de tabela mais típica:
Criticamente, observe que cada coluna tem um nome, um tipo e zero ou mais restrições como
not null
ouprimary key
. Há também vários outros detalhes, como restrições de chave estrangeira.