O que é um dicionário de Dados SQL Server?

o que é um dicionário de dados?

no servidor SQL o dicionário de dados é um conjunto de tabelas de banco de dados usadas para armazenar informações sobre a definição de um banco de dados. O dicionário contém informações sobre objetos de banco de dados, tais como tabelas, índices, colunas, tipos de dados e vistas.

O dicionário de dados é usado pelo SQL Server para executar consultas e é automaticamente atualizado sempre que os objetos são adicionados, removidos ou alterados dentro da base de dados.todos os exemplos deste artigo baseiam-se no Estúdio de gestão de servidores SQL da Microsoft e na base de dados AdventureWorks2012. Você pode começar a usar estas ferramentas gratuitas usando o meu guia começar a usar o servidor SQL.

como o servidor SQL usa o dicionário de dados

o servidor SQL usa o dicionário de base de dados para verificar as declarações SQL. Quando executa uma declaração SQL, o DBMS (sistema de gestão de bases de dados) analisa a declaração e, em seguida, determina se as tabelas e campos que está a referenciar são válidos. Para fazer isso rapidamente ele faz referência ao dicionário de dados.

In addition to testing the validity of statements, SQL Server uses the data dictionary to assist with query plan generation and to reference information defining the structure of the database.

O dicionário de dados torna-se um livro guia, por si só, para o servidor SQL usar para acessar seus dados. Simplificando, sem o dicionário de dados, embora o SQL Server saberia e entenderia a linguagem SQL, ele não saberia sobre suas tabelas e colunas de banco de dados; portanto, ele não seria capaz de consultá-las.

Outras utilizações para o dicionário de dados

Uma vez que o dicionário de dados contém a definição da base de dados, é um recurso realmente bom para você usar para obter informações sobre a base de dados. A coisa realmente legal é que o dicionário de dados é composto de tabelas e vistas SQL. Isso significa que você pode obter informações sobre o DB através de consultas!os dicionários de dados são usados por designers e desenvolvedores para entender a estrutura da base de dados. Você pode pensar no dicionário como um documento de referência atualizado.

Ferramentas de Design como o SQL Server Management Studio mostram informações sobre as bases de dados através do object explorer usando o dicionário de dados.

SSMS Object Explorer
SQL Server Management Studio Object Explorer

As tabelas listadas acima não são magicamente conhecido, em vez disso, o objeto de explorer emitiu uma consulta ao dicionário de dados para recuperar todas as tabelas de usuário.

O dicionário de dados é armazenado em uma série de tabelas do sistema. Embora você possa consultar diretamente estas tabelas, a Microsoft reserva o direito de modificar as tabelas do sistema que compõem o dicionário de dados. Por causa disso, eles recomendam que você consulta os pontos de vista INFORMATION_SCHEMA em vez de acessar diretamente as tabelas.

Uma vez que você pode consultar o dicionário de dados você mesmo, você pode responder a algumas perguntas que de outra forma exigiria um monte de Caça e bicagem através do explorador de objetos. Por exemplo, como você pode encontrar facilmente todas as tabelas e vistas usando a coluna BusinessEntityID? Sem o dicionário de dados, você terá que usar o Explorador de objetos e abrir cada tabela e ver e olhar através das definições para a coluna. No entanto, usando o dicionário de dados isso pode ser feito usando uma consulta simples.

INFORMATION_SCHEMA Views

The INFORMATION_SCHEMA views included in SQL Server comply with the SQL-92 ISO standard. Isto significa que outros vendedores de banco de dados que cumprem a norma ISO fornecerão o mesmo conjunto de visualizações.

Aqui estão algumas das vistas mais comumente usadas e suas descrições:

  • colunas-devolve uma linha para cada coluna que o utilizador actual tenha acesso a usar na base de dados actual. Esta vista pode ser usada para determinar o tipo de dados e tabela que a coluna é definida para uso.
  • TABLES-Return uma linha para cada tabela os usuários têm acesso a usar dentro da base de dados atual. Nota, ambas as tabelas e vistas são devolvidas usando a janela de tabelas.
  • VIEW_TABLE_ usage-devolve uma linha para cada tabela que é usada numa vista dentro da base de dados actual.
  • vistas-devolve uma linha para as vistas que possam ser acedidas usando as permissões do utilizador das correntes da base de dados actual.

exemplos de information_schema vistas

listando todas as tabelas que incluem uma coluna especificada

você pode fazer isso usando o INFORMATION_SCHEMA.Vista das colunas. Por exemplo, as seguintes listas todas as tabelas e vistas contêm a coluna”BusinessEntityID”

SELECT TABLE_NAMEFROM AdventureWorks2012_Data.INFORMATION_SCHEMA.COLUMNSWHERE COLUMN_NAME = 'BusinessEntityID'

como pode imaginar, o dicionário de dados pode ser útil! Você pode imaginar ter que procurar cada definição à mão para encontrar toda a ocorrência de um campo dentro da base de dados?

listar todas as tabelas de uma base de dados

utilize a INFORMATION_SCHEMA.TABLES view to do this.

SELECT TABLE_NAME, TABLE_TYPEFROM AdventureWorks2012_Data.INFORMATION_SCHEMA.TABLESORDER BY TABLE_NAME

esta consulta devolve tanto as tabelas de base como as vistas.

Lista o Número de Tabelas em Cada Esquema

neste exemplo, a cada esquema e o número de tabelas e modos de exibição definidos dentro deles estão listados:

SELECT TABLE_SCHEMA, Count(TABLE_SCHEMA)FROM AdventureWorks2012_Data.INFORMATION_SCHEMA.TABLESGROUP BY TABLE_SCHEMA

SQL Server Catalog Vistas

As exibições de catálogo são outra forma de ler o dicionário de dados. Eu sinto que as vistas do Catálogo do objeto fornecem mais informações e eu tendem a usar estas vistas sobre as vistas do INFORMATION_SCHEMA.

algumas das vistas que achei mais úteis incluem:

  • objectos-contêm uma linha para cada objecto, como uma chave estrangeira ou uma restrição primária de chave definida na base de dados.
  • colunas-contém uma linha para cada coluna de um objecto como vista ou tabelas.
  • tables-return a row for each table object

Examples using Catalog Views

The following examples use the Microsoft SQL Server catalog views to obtain the same information use did so above using the INFORMATION_SCHEMA.

listando todas as tabelas que incluem uma coluna especificada

A fim de obter os nomes das tabelas usando uma coluna específica, ambos os sistemas.tables and sys.a vista das colunas deve ser usada em conjunto. Eles são unidos através do object_id, que é usado para identificar objetos de banco de dados comuns, tais como tabelas e vistas.

SELECT t.name, t.type_descFROM AdventureWorks2012_Data.sys.columns AS cINNER JOIN sys.tables AS t ON c.object_id = t.object_idWHERE c.name = 'BusinessEntityID'

listar todas as tabelas em uma base de dados

o sistema.a janela de tabelas pode ser usada para obter nomes de todas as tabelas definidas na base de dados. Esta vista devolve tanto as tabelas como as vistas de base.

SELECT name, type_descFROM AdventureWorks2012_Data.sys.tablesORDER BY Name

List Number of Tables in Each Schema

the sys.a janela de tabelas não inclui um nome do esquema, por isso o esquema de funções incorporado é usado para obtê-lo.

SELECT SCHEMA_NAME(schema_id), count(name)FROM AdventureWorks2012_Data.sys.tablesGROUP BY SCHEMA_NAME(schema_id)

como você pode ver a partir do exemplo, é um pouco mais técnico do que usar o INFORMATION_SCHEMA. No entanto, eu digo por experiência que há muito mais informação contida nas vistas do catálogo … se você tem uma pergunta particular sobre a estrutura de um banco de dados, estes são a tabela a acertar.

Related Posts

Deixe uma resposta

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