AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / dba / Perguntas / 65609
Accepted
BradC
BradC
Asked: 2014-05-22 08:28:10 +0800 CST2014-05-22 08:28:10 +0800 CST 2014-05-22 08:28:10 +0800 CST

Coluna x Campo: tenho usado esses termos incorretamente?

  • 772

Eu me sinto meio envergonhado aqui, sempre usei os termos "coluna" e "campo" de forma completamente intercambiável, o que recentemente causou alguma confusão em uma discussão técnica.

Foi-me dito, no entanto, que isso não estava correto, que deveria ser (traduzindo cada termo em terminologia de planilha, ignorando tipos de dados e todas as outras coisas que tornam os bancos de dados úteis):

  • Coluna de banco de dados: como uma coluna de planilha
  • Registro de banco de dados: como uma linha de planilha
  • Campo de banco de dados: como uma "célula" de planilha (uma coluna específica de uma linha específica)

Isto está certo? Eu poderia jurar que coluna e campo são usados ​​de forma mais intercambiável do que isso. Eu certamente fui.

Então não adicionamos campos a uma tabela, adicionamos colunas a uma tabela, e os campos só são relevantes quando falamos de dados dentro de um registro?

Outros pensamentos sobre coluna vs campo?

Edit: para esclarecer, o contexto atual é o MS SQL Server. Meu histórico antes do SQL Server era o MS Access, o que pode influenciar no uso desses termos.

terminology fields
  • 5 5 respostas
  • 30728 Views

5 respostas

  • Voted
  1. Best Answer
    gview
    2014-05-22T09:50:45+08:002014-05-22T09:50:45+08:00

    A teoria de banco de dados relacional não inclui o uso da palavra Campo. Dr. EF Codd, que escreveu a série de artigos que fornecem a base teórica para RDBMS, nunca usou o termo. Você pode ler seu artigo seminal de 1970, A Relational Model of Data for Large Shared Data Banks , se quiser verificar.

    Termos como Domínio, Tabela, Atributo, Chave e Tupla são usados. Uma razão para isso é que seus artigos estavam amplamente preocupados com álgebra relacional, e a maneira como uma implementação específica definiria uma tabela em um banco de dados não foi considerada importante por Codd. Os fornecedores aprofundariam isso mais tarde. As pessoas também precisam entender que, historicamente, os RDBMS evoluíram a partir de bancos de dados hierárquicos e de rede existentes que os antecedem, E o funcionamento interno de um RDMBS ainda precisa se preocupar com a organização e o armazenamento de dados.

    No uso comum, e você pode verificar isso facilmente simplesmente pesquisando um pouco, Campos e colunas são a mesma coisa.

    Bancos de dados de PC como DBase, Access e Filemaker normalmente usam "campo" em vez de "coluna". "Atributo" é outro termo que pode ser usado de forma intercambiável.

    Por exemplo, aqui está um link para o manual do MS Access sobre como adicionar um " campo " a uma tabela. É claro que no MS Access um "campo" é equivalente a uma "coluna".

    O mesmo vale para Dbase e Filemaker Pro.

    Às vezes, as pessoas se referem a um valor específico em uma linha específica como sendo um "campo" ou, mais propriamente, um "valor de campo", mas isso não torna incorreto o uso de "campo" ao se referir a uma coluna ou a um conceito de coluna equivalente. Isso tende a causar um nível de confusão porque as pessoas usaram "campo" para significar coisas diferentes por muitos anos. Na teoria relacional - um único valor atômico é chamado de "Datum".

    Se alguém afirmou que um "campo" é um valor em um banco de dados relacional e não o mesmo que uma coluna, essa é a opinião deles, pois "campo" não faz parte do vernáculo do banco de dados relacional. Eles não estão certos nem errados, no entanto, em todo o mundo do banco de dados, o campo é mais frequentemente usado para significar coluna.

    Com isso dito, projetos e equipes geralmente precisam entender como desejam usar uma terminologia específica dentro do projeto para evitar confusão.

    Você não está errado, mas também pode decidir simplesmente seguir a convenção que está sendo usada ou evitar usar a palavra campo completamente em favor de "coluna". Com bancos de dados relacionais, "Tabela" e "Coluna" são os blocos de construção que existem em DDL e é melhor usar apenas esses termos e evitar "campo" que não é usado, nem claramente definido.

    • 37
  2. Daniel Vérité
    2014-06-09T12:59:57+08:002014-06-09T12:59:57+08:00

    O SQL:92 mais antigo refere-se a fieldscomponentes de itens de data e hora:

    "Campos em itens de data e hora", especifica os campos que podem compor um valor de data e hora; um valor de data e hora é composto por um subconjunto desses campos

    Os campos aqui são ano, mês e assim por diante... e o termo fieldnão parece ter nenhum outro significado no restante do documento.

    O padrão SQL:2003 mais recente tem isso:

    Colunas, campos e atributos

    Os termos coluna, campo e atributo referem-se a componentes estruturais de tabelas, tipos de linha e tipos estruturados, respectivamente, de maneira análoga. Assim como a estrutura de uma tabela consiste em uma ou mais colunas, a estrutura de um tipo de linha consiste em um ou mais campos e a de um tipo estruturado em um ou mais atributos. Cada elemento estrutural, seja uma coluna, um campo ou um atributo, é principalmente um nome emparelhado com um tipo declarado.

    e depois:

    Um campo F é descrito por um descritor de campo. Um descritor de campo inclui:
    — O nome do campo.
    — O descritor de tipo de dados do tipo declarado de F.
    — A posição ordinal de F dentro do tipo de linha que simplesmente o contém.

    Este contraste com a coluna, que é definida como:

    Uma coluna C é descrita por um descritor de coluna. Um descritor de coluna inclui:
    — O nome da coluna.
    — Se o nome da coluna é um nome dependente da implementação.
    — Se a coluna for baseada em um domínio, o nome desse domínio; caso contrário, o descritor de tipo de dados do tipo declarado de C.
    — O valor de , se houver, de C.
    — A característica de nulidade de C.
    — A posição ordinal de C dentro da tabela que o contém.
    ... (e mais)

    Depois, novamente, ao introduzir tabelas:

    Uma tabela é uma coleção de linhas com uma ou mais colunas. Uma linha é um valor de um tipo de linha. Cada linha da mesma tabela tem o mesmo tipo de linha. O valor do i-ésimo campo de cada linha em uma tabela é o valor da i-ésima coluna dessa linha na tabela . A linha é a menor unidade de dados que pode ser inserida em uma tabela e excluída de uma tabela.

    (grifo meu). Isso parece apoiar o que você escreveu na pergunta: uma coluna específica de uma linha específica .

    • 11
  3. Vérace
    2014-06-06T08:14:02+08:002014-06-06T08:14:02+08:00

    E quantos anjos podem dançar em volta da cabeça de um alfinete?

    A pessoa que corrigiu você poderia ser corrigida.

    • Tabela = Relação

    • Linha = Tupla

    • Coluna = Atributo

    • Domínio = Tipo de dados

    Veja a entrada da Wikipedia sobre bancos de dados relacionais aqui .

    Trabalhei para uma companhia aérea e a palavra "voo" pode ser usada de três maneiras diferentes, dependendo de você estar falando com pilotos/comissários de bordo, engenheiros ou marketing.

    • pilotos/atendentes: um "voo" estava saindo e voltando da base (ou seja, duas decolagens e duas aterrissagens),
    • engenheiros: uma descolagem e uma aterragem, pode ser teste, reparação, treino (ou seja, um aeroporto de volta ao mesmo aeroporto) ou uma "perna", ou seja, um aeroporto para outro - o que os "civis" normalmente chamariam de voo, como em "Vou pegar meu voo para casa amanhã"),

    • marketing: uma série de seis meses (normalmente na temporada ou fora da temporada) de "voos" de/para um determinado aeroporto no contexto de um contrato.

    A analogia da planilha é mais do que suficiente para 99,99% dos casos, mesmo em discurso razoavelmente técnico (a menos que um seja professor de álgebra relacional). A pessoa que corrigiu você usa a palavra "quem" corretamente? 99,99% das pessoas não e isso realmente não importa.

    • 6
  4. GDD
    2014-06-07T05:08:37+08:002014-06-07T05:08:37+08:00

    Eu geralmente uso "campo" e "coluna" de forma intercambiável, mais recentemente tendendo para "coluna". Eu não ouvi o termo "campo" sozinho para indicar "dados". Também não ouvi o termo "atributo" para indicar "campo" ou "coluna". Uma Coluna/Campo possui atributos, acessíveis através da Classe FieldInfo, por exemplo.

    Acredito que "coluna" é simplesmente uma evolução da terminologia. DBs de desktop (xBASE, MSAccess) geralmente usam "campo". M204 usa "campo". Essa terminologia de "campo" foi transportada para o xml do MSOffice e outros. Os documentos para Oracle (não me deixarão postar mais links, desculpe) e MSSQL usam "campo" e "coluna" de forma intercambiável. A Sybase (agora uma empresa SAP) usa predominantemente "coluna", mas às vezes "campo" em sua documentação.

    Desde que seu grupo de trabalho concorde com um termo, não importa qual. É uma síndrome de "rosa por qualquer outro nome".

    • 2
  5. HogHunter
    2017-06-23T05:08:01+08:002017-06-23T05:08:01+08:00

    Então eu percebo que esta é uma pergunta antiga, mas é uma que eu ouço com frequência. Minha opinião sobre isso vem do envolvimento que nossa equipe de dados tem com nossa equipe de desenvolvimento. Os desenvolvedores definitivamente têm campos dentro de registros que são mostrados nas telas e esses campos contêm dados que podem ser frequentemente mapeados para colunas com linhas específicas. No entanto, em muitos casos, o método relacional usado para acessar os dados pode alterar o que acaba em uma tela específica em um campo específico.

    Eu registro é uma representação do valor atual que os dados entregam. Com o passar do tempo, esses valores podem e provavelmente mudarão, então o registro também muda. Os dados para suportar o que é agora e o que era em um determinado momento podem ser facilmente armazenados em um conjunto de tabelas. As relações entre os dados determinam os significados que compõem o registro em um determinado momento.

    A lógica que deriva os campos é algo que pode mudar ao longo do tempo. Por exemplo, uma funcionária é contratada como Susan Jones e ela foi contratada em 01/12/2010 como balconista na loja nº 101 que se reporta a Bill Anderson como gerente da loja. Sendo uma empresa progressista, eles também têm um mentor atribuído a cada funcionário. A mentora de Susan é Mary Phillips. Mary Phillips é gerente de loja, mas também é gerente regional da loja em que Susan trabalha. Em 10/11/2011, Susan foi promovida a gerente de loja. Não sabemos o que aconteceu com Bill, mas Susan agora é a gerente da loja.

    Temos uma tabela de funcionários com nome, número, data de contratação, cargo e localização.

    Temos uma tabela de mentores com números de funcionários para os mentores e o funcionário que eles estão orientando mais as datas que descrevem o início e o fim do relacionamento do mentor.

    Temos uma tabela de regiões com um nome para a região e um número de gerente atribuído.

    Temos outra tabela de locais com endereço, descrição, região e número do gerente.

    A tela que exibe as informações da loja pode ter um campo para gerente da loja. O valor para gerente de loja não é um campo de banco de dados, mas é um valor computável que pode mudar com o tempo. Também o gerente de uma pessoa pode mudar. Os dados que o suportam ainda são armazenados em colunas, mas os relacionamentos entre as colunas foram alterados e, quando montados para uma finalidade específica, tornam-se um campo.

    • 2

relate perguntas

  • Validade e precisão dos dados de acordo com a integridade do banco de dados

  • No SQL, são chaves compostas ou compostas?

  • O que é um predicado residual?

  • Uma “Tabela de 'Junção'” é o mesmo que uma Entidade Fraca?

  • Engenheiros de software e DBAs [fechado]

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host

    • 12 respostas
  • Marko Smith

    Como fazer a saída do sqlplus aparecer em uma linha?

    • 3 respostas
  • Marko Smith

    Selecione qual tem data máxima ou data mais recente

    • 3 respostas
  • Marko Smith

    Como faço para listar todos os esquemas no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    Como usar o sqlplus para se conectar a um banco de dados Oracle localizado em outro host sem modificar meu próprio tnsnames.ora

    • 4 respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Martin Hope
    Jin conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane Como faço para listar todos os esquemas no PostgreSQL? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh Por que o log de transações continua crescendo ou fica sem espaço? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland Listar todas as colunas de uma tabela especificada 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney O MySQL pode realizar consultas razoavelmente em bilhões de linhas? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx Como posso monitorar o andamento de uma importação de um arquivo .sql grande? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve