[Cascavel-pm] Databases, SQL, e operadores "leigos" [Was: Como verificar se um registro já...]

Nilson Santos Figueiredo Junior acid06 em gmail.com
Quinta Outubro 26 15:45:55 PDT 2006


On 10/26/06, André Garcia Carneiro <andre.garcia.carneir em terra.com.br> wrote:
> Bom, se você não se lembra nem disso, é melhor continuar usando o seu MSSQL mesmo... :) Brincadeira. As vezes
> não é necessário saber isso mesmo, concordo. Principalmente nas coisas de rotina como criar uma FK. No entanto
> ferramentas gráficas raramente são completas. Para o que falta é necessário saber fazer sem a ferramenta
> gráfica. E se você precisar corrigir um script na mão? Como vc faz isso sem saber PL/SQL??? Refazer um índice,
> por exemplo? E mais. Se a ferramenta estiver fazendo algo que no final gera um desempenho ruim? Como você pode
> avaliar isso, se você não souber como a ferramenta está gerando isso para vc??? Pense nisso...

Eu não uso MSSQL faz mais de um ano. A ferramenta que utilizo cobre
todas criações de índices, de tabelas e de constraints. Eu não tenho
nenhum problema algum em escrever queries SQL na mão, quando preciso
(no caso, por exemplo, de definir uma view, ou uma stored procedure,
etc).

Não é possível a ferramenta criar uma tabela errado de forma que gere
má performance no final das contas. Eu que defino o que ela vai fazer,
quais serão os índices, as chaves. Eu não preciso me preocupar com
detalhes como regras de quoting de indentificadores, como eu declaro
constraints ou foreign keys (cada banco de dados que eu já vi varia um
pouco).

Isso é irrelevante e se caso eu *realmente* precisar de saber, é algo
que é feito com uma consulta de 5 minutos ao manual.

> Bom, então sinto dizer, mas você está condenado a pagar licensas e sofrer por problemas bizarros oriundos de
> programas Microsoft pelo resto de seus dias... :)

Obviamente você usa Slackware. Ou nunca experimentou um SuSE ou um (K)Ubuntu.
No máximo deve ter chegado perto de um Red Hat...

De fato, a única coisa que eu considero como produtos com boa
usabilidade provindos da Microsoft são as ferramentas de RDBMS e o
próprio Windows (talvez esse muito mais por costume). O resto é
terrível. As ferramentas de desenvolvimento então... são as piores.

> Olha o Postgres implementa autoincrement tá... não chama auto_increment,  e eu não me lembro direito como faz,
> mas eu usei inclusive. Ele age da mesma maneira que o MySQL, ou seja, gera a sequence para você.

Sim, ele possui um atalho. Você declara como SERIAL o campo.
O problema é que isso é estranho e internamente você tem uma seqüência criada.

Custava eles terem implementado a keyword AUTO INCREMENT?

> Todas as ferramentas que você criticou são infinitamente mais flexíveis do que as ferramentas da Microsoft.

Talvez tenha passado despercebido, mas eu fiz questão de ressaltar que
normalmente eu não elogio as coisas da Microsoft. Elas são ruins, em
geral. Mas eu considero o MSSQL um bom produto.

> Hospital do Rim e Hipertensão, onde eu trabalho é uma delas, a IBM faz(você disse grande), a própria Microsoft
> faz. Você pegou num ponto ruim para fazer essa crítica. Quanto maior a empresa, mais necessidade de políticas
> são necessárias.

Sim. As políticas existem. O problema é exatamente que elas são ruins.
Um exemplo: versões antigas do DB2 tinham restrições esdrúxulas quanto
a nomes de identificadores. Normalmente, toda empresa que definiu suas
políticas nessa época, manteu a tradição das regras esdrúxulas pra
nomes mesmo essa limitação não existindo mais em RDBMS modernas.

-Nilson Santos F. Jr.


Mais detalhes sobre a lista de discussão Cascavel-pm