Understanding the foundations of T-SQL

(P. 2)  Apesar do T-SQL ser uma linguagem para o SQL Server, o mesmo possui fortes fundamentos matemáticos. É importante entendermos essas bases fundamentais para melhor entender a linguagem que estamos lidando.

Evolução do T-SQL

O T-SQL é a principal linguagem para manipular dados no SQL Server e no Azure SQL. A figura a seguir dá uma idéia de como foi a evolução do T-SQL:

ScreenHunter_450 Jan. 25 12.44

T-SQL é o dialeto padrão do SQL Server. É padronizado pela ISO (Internation Organization os Standards) e pela ANSI (American National Standards Institute. A lista dos padrões revisados são:

■ SQL-86
■ SQL-89
■ SQL-92
■ SQL:1999
■ SQL:2003
■ SQL:2006
■ SQL:2008
■ SQL:2011

Todos os principais fornecedores de banco de dados, incluindo a Microsoft, implementam um dialeto de SQL como o idioma principal para gerenciar e manipular dados em suas plataformas de banco de dados. Portanto, os principais elementos principais da linguagem são os mesmos. No entanto, cada fornecedor decide quais recursos implementar e quais recursos não devem ser implementados. Além disso, o padrão às vezes deixa alguns aspectos como uma escolha da implementação. Cada fornecedor também geralmente implementa extensões para o padrão nos casos em que o fornecedor sente que uma característica importante não é coberta pelo padrão.

Escrever códigos no padrão é considerada uma boa prática, por ser mais portável. Relação no modelo Relacional é o que o SQL representa em forma de tabela.

Mas é importante notar que, conforme você compreende os princípios do modelo,
você pode usar o SQL – ou mais precisamente, o dialecto que você está usando – de forma relacional.

Voltando a uma relação, o que o SQL tenta representar com uma tabela: uma relação tem um título e um corpo. O título é um conjunto de atributos (o que o SQL tenta representar com as colunas), cada um de um determinado tipo. Um atributo é identificado pelo nome e pelo nome do tipo. O corpo é um conjunto de tuplas (o que o SQL tenta representar com as linhas). Cada título da tupla é o título da relação. Cada valor do atributo de cada tupla é do seu tipo respectivo.Alguns dos aspectos mais importantes para entender sobre T-SQL derivam do relacionalfundamentos principais do modelo: teoria de conjuntos e lógica de predicado.Lembre-se de que o título de uma relação é um conjunto de atributos, e o corpo é um conjunto detuplas. Então, o que é um conjunto? De acordo com o criador da teoria dos conjuntos matemáticos, Georg Cantor, um conjunto é descrito da seguinte forma:Por um “conjunto”, queremos dizer qualquer coleção M em um conjunto de objetos definidos e distintosm (que são chamados de “elementos” de M) de nossa percepção ou de nosso pensamento.

—George Cantor, in
“Georg Cantor” by Joseph
W. Dauben (Princeton
University Press, 1990)

(P. 5) Há uma série de elementos muito importantes nesta definição que, se entendido,
deve ter implicações diretas em suas práticas de codificação T-SQL. Um elemento que requer atenção é o termo inteiro. Um conjunto deve ser considerado como um todo. Isso significa que você não interage com os elementos individuais do conjunto, em vez do conjunto como um todo.
Observe o termo distinto; um conjunto não tem duplicatas. Codd observou uma vez o aspecto não duplicado: “Se algo for verdadeiro, então, dito duas vezes não o tornará mais verdadeiro”. Por exemplo, o conjunto {a, b, c} é considerado igual ao conjunto {a, a , b, c, c, c}.
Outro aspecto crítico de um conjunto não aparece explicitamente na definição acima mencionada por Cantor, mas está implícito; não há relevância para a ordem dos elementos em um conjunto. Em contraste, uma seqüência (que é um conjunto ordenado), tem uma ordem para seus elementos. Combinando as duplicações e nenhuma relevância para os aspectos de ordem significa que a coleção {a, b, c} é um conjunto, mas a coleção {b, a, c, c, a, c} não é.

O outro ramo da matemática com o qual o modelo relacional é chamado de lógica de predicado. Um predicado é uma expressão que, quando atribuída a algum objeto, faz uma proposição verdadeira ou falsa. Por exemplo, “salário superior a US $ 50.000” é um predicado. Você pode avaliar este predicado para um empregado específico, caso em que você tem uma proposição. Por exemplo, suponha que, para um empregado em particular, o salário seja de US $ 60.000. Quando você avalia a proposição para esse funcionário, você obtém uma verdadeira proposição. Em outras palavras, um predicado é uma proposição parametrizada.
O modelo relacional usa predicados como um dos seus elementos principais. Você pode impor integridade de dados usando predicados. Você pode filtrar dados usando predicados. Você pode até usar predicados para definir o próprio modelo de dados. Você primeiro identifica proposições que precisam ser armazenadas no banco de dados. Aqui está uma proposição de exemplo: um pedido com a ID de pedido 10248 foi colocado em 12 de fevereiro de 2017 pelo cliente com ID 7 e manipulado pelo empregado com ID 3. Você então cria predicados das proposições removendo os dados e mantendo o título.
Lembre-se, o título é um conjunto de atributos, cada um identificado pelo nome e nome do tipo. Neste exemplo, você ordenou INT, ordenou DATE, custid INT e INT empid.

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s

learningdatabase.com.br

Tecnologias em Banco de Dados Relacionais, Modelagem de dados dimencionais, tecnologias SQL Servere e Oracle

Aprendendo Programação

Algorítmos, C, C++,Pascal, Python, R

WikiDBA

by Virendra Yaduvanshi - Microsoft SQL Server Database Architect | Consultant | Blogger | Specialist | DBA | Speaker

Blog - Fabiano Neves Amorim

SELECT * FROM [Coisas Da Minha Cabeça] WHERE dbo.fn_TempoParaPost() < dbo.fn_TempoLivre()

Tércio Costa, Oracle Developer, OCE SQL, ACE Associate

Guia de estudos para certificação ORACLE SQL(1Z0-047, 1Z0-051, 1Z0-061 e 1Z0-071) e PL/SQL(1Z0-144, 1Z0-146 e 1Z0-148)

Strate SQL

Data Adventures with an Architect

%d blogueiros gostam disto: