sexta-feira, 20 de agosto de 2010

Tutorial de Business Intelligence

Pra quem ainda não conhece a metodologia de BI (Business Intelligence) este tutorial explica detalhadamente as etapas envolvidas. Ele foi feito usando uma parte da minha monografia de conclusão de curso.

DOWNLOAD

segunda-feira, 12 de julho de 2010

Tutorial de Scala

Scala é uma linguagem de programação funcional onde cada função é um valor, também é puramente orientada a objetos, gera bytecodes Java e ainda suporta todas as bibliotecas e APIs Java. Ela fornece uma sintaxe leve e limpa para a definição de funções anônimas, mas o seu maior atrativo é que ela foi projetada para trabalhar com concorrência, implementando um sofisticado controle de threads através do uso de classes atores. Como existe muito pouco material de qualidade (em português) sobre esta linguagem na Internet, elaborei este tutorial que também traz o código da resolução do problema do Barbeiro Sonolento em Scala.

sexta-feira, 7 de maio de 2010

Homem de Ferro 2 e Oracle

Ninguém discorda que a Marvel soube popularizar seus heróis através do cinema, gerando até um novo gênero cinematográfico: o filme de super-heróis. Mas é interessante notar que isso agora tem chamado a atenção das empresas, quem ainda não assistiu Homem de Ferro 2 repare que o nome da empresa de informática Oracle aparece durante todo o filme, incluindo até uma ponta do presidente da companhia Larry Ellison. E se eu já tinha suspeitas sobre um possível patrocínio da Oracle, elas foram confirmadas ao receber ontem a revista Oracle Magazine cuja capa (que eu achei muito legal) compartilho com vocês.

segunda-feira, 15 de fevereiro de 2010

Criação manual de banco de dados

O utilitário DBCA (Database Creation Assistant) pode criar um banco de dados com apenas alguns cliques, mas algumas vezes você pode precisar criar um banco de dados manualmente, ou seja na linha de comando do SQLPlus.

Nesse caso você deve especificar os seguintes parâmetros:

  • DATABASE: É o nome do banco de dados a ser criado.
  • CONTROLFILE REUSE: Especifica que um arquivo de controle existente identificado no arquivo de parâmetros seja reutilizado.
  • LOGFILE GROUP: Especifica os nomes dos arquivos de log a serem utilizados e o grupo ao qual eles pertencem.
  • MAXLOGFILES: Especifica o número máximo de grupos de arquivos de redo log que podem ser criados para o banco de dados.
  • MAXLOGMEMBERS: Especifica o número máximo de membros de arquivos de log para um grupo de arquivos de log.
  • MAXLOGHISTORY: Especifica o número máximo de redo logs arquivados para recuperação automática de mídia do Oracle Parallel Server.
  • DATAFILE filespec Especifica os arquivos de dados a serem utilizados.
  • AUTOEXTENT: Ativa ou desativa a extensão automática de um arquivo de dados.
  • MAXDATAFILES: Especifica o tamanho inicial da seção do arquivo de dados do arquivo de controle no momento da execução de CREATE DATABASE ou CONTROLFILE. Uma tentativa de adicionar um novo arquivo cujo número seja superior a MAXDATAFILES, mas inferior ou igual a DB_FILES, faz o arquivo de controle expandir-se automaticamente, de forma que a seção dos arquivos de dados pode acomodar mais arquivos.
  • MAXINSTANCES: É o número máximo de instâncias que podem montar e abrir simultaneamente o banco de dados.
  • ARCHIVELOG: Estabelece que os redo logs devem ser arquivados antes de serem reutilizados.
  • NOARCHIVELOG: Estabelece que os redo logs podem ser reutilizados sem que seu conteúdo seja arquivado.
  • CHARACTER SET: È o conjunto de caracteres que o banco de dados utiliza para armazenar dados
  • NATIONAL CHARACTER SET: Especifica o conjunto de caracteres nacionais utilizados para armazenar dados nas colunas definidas como NCHAR, NCLOB, NVARCHAR2.

O comando completo ficará assim:

CREATE DATABASE [database]
[CONTROLFILE REUSE]
[LOGFILE [GROUP integer] filespec
[ [GROUP integer] filespec...]
[MAXLOGFILES integer]
[MAXLOGMEMBERS integer]
[MAXLOGHISTORY integer]
[MAXDATAFILES integer]
[MAXINSTANCES integer]
[ARCHIVEDLOG | NOARCHIVEDLOG]
[CHARACTER SET charset]
[NATIONAL CHARACTER SET charset]
[DATAFILE filespec [autoextent_clause]
[ filespec [autoextent_clause]]
filespec :=='filename [SIZE integer] [KIM] [REUSE] autoextent_clause := = [AUTOEXTENT [OFF [ ON [NEXT integer [KIM] [MAXSIZE [UNLIMITED[integer[KIM]]]

quarta-feira, 25 de novembro de 2009

Tutorial Hibernate

Devido a carência de bons tutoriais sobre Hibernate, estou disponibilizando este tutorial criado a partir de um trabalho meu de faculdade.
O Hibernate é uma ferramenta de mapeamento objeto-relacional, você não entendeu o que isso quer dizer? Bom, digamos que você tem uma aplicação Java desenvolvida através do modelo de orientação a objetos, e você precisa interagir com um banco de dados relacional, o Hibernate faria esta interface fazendo um mapeamento do banco sem que você tenha de alterar seu modelo OO. Parece simples, mas o Hibernate é bem chato com algumas coisas, mas uma vez configurado você não terá mais problemas.

DOWNLOAD


sábado, 21 de novembro de 2009

Funções MySQL no PHP

A linguagem PHP tem um relacionamento muito íntimo com o MySQl, existem várias funções criadas especificamente para trabalhar com este banco de dados. Vamos ver algumas delas:

mysql_connect()
Acessa o banco de dados
Exemplo:

$conexao = mysql_connect(“localhost”, “root”, “senha”);
mysql_select_db(“Nome do banco”, $conexao);
O valor de retorno é 1 se conectar, e 0 se o comando falhar.

mysql_query()
Para fazer consultas
Exemplo:

Primeiro definimos uma variável que conterá a consulta:
$insere = “INSERT INTO tabela_exemplo (nome, email) VALUES (“José da Silva”, “jose.silva@mail.com.br”);
Executamos a consulta:
mysql_query($insere, $conexao);

mysql_fetch_row()
Escrevendo dados do banco

$consulta = “SELECT nome, email FROM tabela_exemplo”;
Definimos uma variável para receber os dados da consulta:
$resultado = mysql_query($consulta, $conexao);

E por fim escrevemos os dados no browser:
A variável $linha irá pegar (fetch) todos as linhas de resultado:
while ($linha = mysql_fetch_row($resultado)) {
   echo “Nome: ”;
   printf("$linha[0]”);
   echo “Email: ”;
   printf(“$linha[1]”);
}

mysql_close()
Fecha a conexão ao banco

mysql_close(“Nome do Banco”);

Outras funções utéis:

mysql_affected_rows()
Retorna o número de linhas alteradas, inseridas ou excluidas pela última consulta com UPDATE, DELETE, ou INSERT.

mysql_change_user()
Muda o usuario em um banco de dados em uma conexão que já esta aberta.

mysql_character_set_name()
Retorna o nome do conjunto de caracteres usado para abrir a conexão.

mysql_data_seek()
Busca por uma linha determinada no resultado de uma consulta.

mysql_debug()
Efetua um DBUG_PUSH com a string dada.

mysql_dump_debug_info()
Faz o servidor escrever informações de depuração no log.

mysql_eof()
Determina quando a ulitma linha de um conjunto de resultados foi lida.

mysql_errno()
Retorna o número do erro para uma função MySQL.

mysql_error()
Retorna a mensagem de erro para uma função MySQL.

mysql_escape_string()
Escapa strings para serem utilizadas no MySQL, escapar é trocar algo que não pode (aspas, por exemplo) por caracteres aceitos pelo banco (barra aspas, no exemplo).

mysql_fetch_field()
Retorna o tipo do próximo campo na tabela.

mysql_fetch_field_direct()
Retorna o tipo de um campo da tabela, dado um número do campo.

mysql_fetch_fields()
Retorna um vetor com todas as estruturas do campo.

mysql_fetch_lengths()
Retorna o tamanho de todas as colunas da linha atual.

mysql_field_seek()
Coloca o cursor de busca da em uma coluna específica.

mysql_field_count()
Retorna o número de colunas resultantes da consulta mais recente.

mysql_field_tell()
Retorna a posição do cursor de campos usado pelo último mysql_fetch_field().

mysql_free_result()
Libera a memória usada por um resultado.

mysql_get_client_info()
Retorna uma string com a versão do cliente.

mysql_get_client_version()
Returna o número da versão do cliente.

mysql_get_host_info()
Retorna uma string descrevendo os parâmetros da conexão.

mysql_get_server_version()
Retorna o número da versão do servidor como um inteiro (disponível somente a partir da versão 4.1).

mysql_get_proto_info()
Retorna a versão do protocolo usado para a conexão.

mysql_get_server_info()
Retorna o número da versão do servidor.

mysql_info()
Retorna informações sobre a consulta executada mais recentemente.

mysql_init()
Aloca ou inicializa um objeto MYSQL.

mysql_insert_id()
Retorna o ID gerado para uma coluna AUTO_INCREMENT pela consulta anterior.

mysql_kill()
Mata uma thread dada.

mysql_list_dbs()
Retorna o nome do banco de dados que coincidem com uma expressão regular.

mysql_list_fields()
Retorna o nome dos campos que coincidem com uma expressão regular.

mysql_list_processes()
Retorna uma lista das threads atuais do servidor.

mysql_list_tables()
Retorna os nomes de tabelas que coincidem com uma expressão regular.

mysql_num_fields()
Retorna o número de colunas em um conjunto de resultados.

mysql_num_rows()
Retorna o número de linhas em um conjunto de resultados.

mysql_options()
Define opções de conexão para mysql_connect().

mysql_ping()
Verifica se a conexão ao servidor está funcionando, e se necessário se reconecta.

mysql_query()
Executa uma consulta SQL especificada com uma string terminada com null.

mysql_real_connect()
Conecta no servidor MySQL (equivalente a mysql_connect()).

mysql_real_escape_string()
Escapa caracteres especiais em uma string para ser utilizada em uma instrução SQL (equivalente a mysql_escape_string()).

mysql_real_query()
Executa uma consulta SQL especificada como uma string fixa.

mysql_reload()
Informa ao servidor para recarregar a tabela de permissões

mysql_row_seek()
Busca por um offset de linha no resultado, usando o valor retornado de mysql_row_tell().

mysql_row_tell()
Retorna a posição do cursor de linhas.

mysql_select_db()
Seleciona um banco de dados (para servidores onde existe mais do que um banco).

mysql_set_server_option()
Define uma opção para a conexão (como multi-statements).

mysql_sqlstate()
Retorna o código de erro SQLSTATE para o último erro.

mysql_shutdown()
Desliga o servidor de banco de dados.

mysql_stat()
Retorna o status do servidor como uma string.

mysql_store_result()
Recupera um resultado completo para o cliente.

mysql_thread_id()
Retorna a identificação da thread atual.

mysql_thread_safe()
Retorna 1 se o cliente foi compilado como thread-safe.

mysql_use_result()
Inicia um resultado recuperado registro por registro.

mysql_warning_count()
Retorna a contagem do aviso da instrução SQL anterior.

mysql_commit()
Faz um commit na transação (disponível somente a partir da versão 4.1).

mysql_rollback()
Faz um roll back na transação (disponível somente a partir da versão 4.1).

mysql_autocommit()
Liga ou desliga o modo autocommit (disponível somente a partir da versão 4.1).

mysql_more_results()
Verifica se não existem mais resultados (disponível somente a partir da versão 4.1).

mysql_next_result()
Em execuções de consultas múltiplas, retorna e reinicia o próximo resultado (disponível somente a partir da versão 4.1).

sexta-feira, 6 de novembro de 2009

Script de Criação de Tabelas no SQL Server

Para quem quiser aprender como fazer um script de criação de tabelas é só baixar este arquivo SQL exemplo, além das tabelas também existem exemplos de criação de índices e constraints default e check.


Se tudo correr bem na execução do script ele irá criar uma estrutura igual ao diagrama a seguir.