novidades do firebird 2 - goncalves.pro.br · este artigo apresenta as novidades do firebird 2 de...

3

Click here to load reader

Upload: ngonga

Post on 26-Nov-2018

212 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Novidades do Firebird 2 - goncalves.pro.br · Este artigo apresenta as novidades do Firebird 2 de uma forma bem su-cinta, ... Carlos H. Cantu.´ Firebird 2.0 - O Banco de Dados do

Novidades do Firebird 2

Rodrigo [email protected]

17 de Novembro de 2006

Resumo

Este artigo apresenta as novidades do Firebird 2 de uma forma bem su-cinta, deixando maiores detalhes sobre os aspectos abordados para seremconsultados atraves do livro Firebird - o banco de dados do novo milenio,de Carlos H. Cantu. Ao final de cada item abordado serao incluıdas aspaginas referentes ao assunto no livro.

1 Novidades

Atraves da ferramenta ISQL, temos agora o comando show database; que nospermite obter informacoes sobre o banco (semelhante ao comando gstat [1, p.13].

A manutencao de usuarios (criar, incluir, excluir) agora so pode ser feita viaAPI. Nao e mais permitido acessar remotamente o banco de dados (isto temimportancia com relacao a criacao do usuario Replicador pelo Utilitarios). [1,p. 37].

Em relacao a instalacao das bibliotecas nas maquinas clientes, temos algunsrecursos novos no instalador para otimizar e acelerar o processo de instalacao(fazer o mesmo ser automatico, sem intervencao do usuario para dar “Next”,“Next”, ... [1, p. 20,21].

Conexoes ao banco de dados nao aceitam mais o protocolo local (o protocolomudou, portanto componentes feitos para trabalhar com o Firebird 1/1.5 naofuncionam com o 2). O protocolo TCP/IP funciona sem problemas.

Em comandos SELECT nao e permitido mais misturar o nome da tabelae seu alias. Portanto um comando SELECT a.nome, cl pacientes.idadeFROM cl pacientes a nao e mais valido, sendo valido apenas SELECTa.nome, a.idade FROM cl pacientes a ou SELECT nome, cl pacientes.idade FROM cl pacientes [1, p. 75].

A funcao current timestamp agora tras milissegundos tambem no valor.No Linux, para Kernels maiores ou iguais a versa o 2.6 (ou seja, em qualquer

distribuicao nova de Linux - incluindo Mandrake/Mandriva) e recomendadoutilizar a versao NPLT do Firebird 2.

Em um Firebird 2 instalado no Linux, existe agora um script para tro-car a senha do usuario SYSDBA em /opt/firebird/changeDBApassword.sh.

1

Page 2: Novidades do Firebird 2 - goncalves.pro.br · Este artigo apresenta as novidades do Firebird 2 de uma forma bem su-cinta, ... Carlos H. Cantu.´ Firebird 2.0 - O Banco de Dados do

Este script ira pedir a senha atual, que vai estar no arquivo /opt/firebird/SYSDBA.password, bastando dar um cat nele para ver a senha.

Alguns problemas com o banco de dados que originavam buffer overflowsforam corrigidos nesta nova versao [1, p. 45,46].

Temos agora o predicado SKIP em comandos SELECT para pular os n pri-meiros registros [1, p. 72,72].

Pode-ser fazer um cast de parametros agora - SELECT * FROM cl pacientesWHERE nome = CAST(:nome AS VARCHAR(50)) [1, p. 73].

Foi implementado o recurso de crossjoin, para permitir o produto cartesianoentre tabelas [1, p. 78.79].

A clausula GROUP BY agora aceita apelidos de campos e expressoes para fazero agrupamento [1, p. 80].

O comando UNION agora esta mais inteligente e consegue compatibilizarmais tipos de dados sem a necessidade de casts [1, p. 81].

Existe agora a clasula WITH LOCK em comandos SELECT, que trava os regis-tros retornados contra edicao por outros usuarios ate o fim da transacao [1, p.86].

Temos agora a possibilidade de fazer consultas sobre dados de outras consul-tas: SELECT ... FROM (SELECT ... FROM (SELECT ... FROM tabela))[1, p. 89,90].

Comandos SELECT ordenando por um campo sendo usado para calculo (AVG,SUM) nao sao mais permitidos [1, p. 91].

O comando SELECT agora tem uma clausula ROWS que tem um funcionamentoque engloba as clausulas FIRST/SKIP, que segue o SQL padrao ANSI [1, p. 95].

Temos novos operadores de comparacao: !¿, !¡, ¡, etc. [1, p. 102].Podemos especificar um collate especıfico na clausula WHERE, que nos permite

por exemplo filtrar independente de acentos [1, p. 102].Temos a clausla ESCAPE em comandos SQL agora para indicar um caracter

como caracter de escape e permitir que coloquemos caracteres como % em umSELECT [1, p. 107].

Predicados existenciais estao disponıveis: ALL, ANY, EXISTS, etc., que nospermitem algumas consultas otimizadas [1, p. 109].

Temos agora o operador DISTINCT, que tem um funcionamento igual ao <>porem sabe tratar corretamente campos nulos [1, p. 116, 117].

Podemos agora usar a sintaxe SEQUENCE ao inves de GENERATOR,pois ela segueo SQL Padrao ANSI e tem alguns recursos adicionais [1, p. 134].

Views agora sao atualizaveis [1, p. 140,141].Podemos fazer o INSERT em uma tabela a partir dos dados de uma consulta

(INSERT INTO ... SELECT * FROM ... [1, p. 151].Podemos agora incluir no comando INSERT uma clausula RETURNING que nos

permite retornar valores passados ao INSERT (util especialmente para quandodamos INSERT via generator e queremos o valor do nov o handle) [1, p. 152].

Podemos obter o dia da semana de uma data atraves da funcao WEEKDAY [1,p. 159].

Temos agora o comando SUBSTRING em SELECTs [1, p. 160].Tambem temos o comando TRIM em SELECTs [1, p. 163].

2

Page 3: Novidades do Firebird 2 - goncalves.pro.br · Este artigo apresenta as novidades do Firebird 2 de uma forma bem su-cinta, ... Carlos H. Cantu.´ Firebird 2.0 - O Banco de Dados do

Agora podemos usar o comando RECREATE TRIGGER para criar uma novatrigger ou atualizar uma existente sem precisar verificar se a mesma existe ounao [1, p. 173].

Alem do CASE, temos agora as funcoes IIF e NULLIIF em comandos SQL [1,p. 183-185].

Podemos agora usar a variavel USER SESSION e a funcao $rdb setcontextpara definir variaveis que ficam disponıveis a todos os comandos SQLs de umaconexao (semelhante a uma sessao em PHP) [1, p. 208].

Temos tambem a variavel SYSTEM para obter informacao sobre o servidor ea conexao ao banco de dados [1, p. 210].

Foram realizadas otimizacoes nos ındices do banco de dados que melhorama performance do mesmo depois de varios dias em operacao, alem de outrasotimizacoes diversas [1, p. 248,251 ].

E possıvel agora criar ındices em cima de campos calculados [1, p. 251].O Garbage Collector foi melhorado, ajudando na performance do banco no

decorrer de sua utilizacao por varios diass/semanas [1, p. 258-262].Temos agora o comando gfix -shut -single que garante que apenas uma

conexao ao banco de dados sera permitida - muito util para fazer manutencaoem um banco de dados garantido que nenhum usuario ira conectar no mesmo -MNGUtilitarios [1, p. 264, 265].

Por ultimo temos o comando gfix -shut -full que impede qualquer co-nexao ao banco de dados - util para derrubar o banco de forma garantida quenenhum usuario consiga conectar nele - bom para renomear o banco de dadossem precisar parar o banco [1, p. 264].

Referencias

[1] Carlos H. Cantu. Firebird 2.0 - O Banco de Dados do Novo Milenio. EditoraCiencia Moderna, 2006.

3