Vou mencionar em itens o que mais me chamou atenção nesta primeira lição:
- Apesar da prova ser da Microsoft, do livro ser da Microsoft e da tecnologia abordada ser também da Microsoft, a boa prática é sempre utilizar comandos padrões SQL Standard. Exemplo, ao invés de usar convert, use cast, a não ser que você venha fazer uso do terceiro parâmetro da função convert. Sim, isso é uma recomendação do livro.
- Uma coisa que eu achei legal e vejo ser pouco comentado é esclarecer que banco de dados relacional não significa relacional por permitir juntar várias tabelas e criar foreign keys. O nome banco de dados relacional tem este nome pois foi construído com base em um conceito matemático chamado relation. O livro não faz uma referência profunda a estes conceitos, porém exemplifica que tabelas com suas colunas e linhas são uma tentativa de representar\implementar este conceito matemático.
- Considerando então que o banco de dados foi construído baseado em um conceito matemático, o modo de interagir com ele pede que tenhamos conhecimento de alguns itens básicos deste conceito.
- Diferente de qualquer linguagem comum de programação, a linguagem SQL leva em consideração que você está trabalhando com um conjunto de dados e não apenas com um dado de cada vez. Ou seja, resolva a maioria dos seus problemas com SELECT e não com cursores pois o banco de dados foi feito principalmente para trabalhar com conjuntos de dados.
- Por definição do conceito, um conjunto de dados não deve possuir dados repetidos. O SQL não força esta situação, porém quando criamos uma tabela por exemplo, a recomendação é que esta sempre tenha uma chave primária. Trabalhar com dados únicos respeita a definição do conceito e por consequência o banco de dados trabalha de melhor forma.
- Outro item que por definição é desconsiderado pelo banco de dados é a ordem de apresentação dos dados. Ou seja, apresentar {A,B,C} é igual a {C,B,A}. Forçar a ordenação dos dados não vai de encontro ao conceito, por isso em muitas situações a ordenação de dados custa caro no processamento. Outra coisa com relação a ordenação de dados e que sempre gera confusão, caso não explícito a cláusula ORDER BY, o SQL não garante o retorno de dados em uma determinada ordem. Isso mesmo, nunca tem-se essa garantia.
- Todo atributo de um modelo relacional também deve ter um nome único, uma boa prática sempre é dar um nome único as colunas a serem retornadas em um SQL.
- Para finalizar, o último item abordado é com relação aos 3 possíveis retornos em uma comparação. Os 3 possíveis retornos são verdadeiro, falso e desconhecido. O desconhecido em SQL é representado pelo NULL. Exemplo, JOAO, MARIA e NULL. Se quiséssemos selecionar todos os nomes que não sejam iguais a JOAO, quais teríamos como retorno? O retorno seria apenas MARIA, pois o NULL representa o desconhecido, ou seja, não se pode afirmar que é igual nem diferente a JOAO. Das "dicas" aqui mencionadas, acredito que essa seja a mais importante. Fiquem ligados quando trabalharem com colunas que permitem marca nulo, você pode estar desconsiderando resultados que talvez não seja essa a sua verdadeira intenção.
- O último tópico teórico de hoje é com relação a nomenclatura. O livro menciona que o termo correto para nos dirigirmos ao que normalmente chamamos de registro é na verdade linha. E o que chamamos de campo é na verdade coluna. Outro item é chamarmos o NULL de valor, o correto seria chamar de "NULL mark" que em uma tradução direta para o português seria "marca NULL" ou simplesmente chamar de NULL.
Nossa, era pra ser um post rápido, porém com tanto conteúdo teórico ficou difícil. Da próxima tentarei um post mais direto.
Até mais...
Nenhum comentário:
Postar um comentário